nuclues add-on for qt webinar
DESCRIPTION
Qt webinar pptTRANSCRIPT
-
12/03/2014
1
mentor.com/embedded
Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Qt is a registered trade mark of Digia Plc and/or its subsidiaries. All other trademarks mentioned in this document are trademarks of their respective owners.
Phil Brumby
Qt is a registered trade mark of Digia Plc and/or its subsidiaries.
Create compelling UI for embedded devices with the Nucleus Add-on for the Qt
Framework
2 mentor.com/embedded
2
Agenda
What is Qt?
Qt for Embedded
Demo - Nucleus Add-on for the Qt Framework
Memory Management
Performance Matters
Demo - Bad Frame rate analysis
Summary
-
12/03/2014
2
3 mentor.com/embedded
3
WHAT IS QT?
4 mentor.com/embedded
4
What is Qt?
A cross-platform UI framework
Spans traditional to more sophisticated UIs
Includes UI development tools
Open source project
Wide range of developers, open governance model
Over 450,000 developers in more than 70 industries
Used extensively in embedded
Medical, white goods, automotive, consumer, industrial
UI implementation is portable across many platforms
-
12/03/2014
3
5 mentor.com/embedded
5
What is Qtcontinued
Offers two UI development environments:
Qt Widgets
Ideal for static, traditional 2D UIs buttons, controls
Uses Qt Designer a WYSIWYG UI editor
Auto code generation
Compact UI code memory footprint
Qt Quick
For more advanced and animated UIs with 3D and OpenGL/ES shader effects
UI written in QML (CSS & JavaScript like script)
Uses Qt Quick Designer a WYSIWyG UI editor
Runs on embedded rendering engine
Requires OpenGL/ES GPU
6 mentor.com/embedded
6
QT FOR EMBEDDED
-
12/03/2014
4
7 mentor.com/embedded
7
Embedded - A QWidget or Qt Quick solution?
From engagements experienced in the embedded space significant use cases exist for deployment of both QWidget & Qt Quick solutions.
As GPU enablement and memory size continues to increase across a fuller range of hardware, QML based Qt Quick solutions become more viable
Substantial embedded device market opportunities for mid-range UIs via QWidget
Resource limited embedded devices requiring smaller memory footprint, No GPU available
Non-CE markets, such as medical and white goods requiring static layout and more traditional 2D buttons and controls style UIs
Well correlated with the general embedded RTOS market opportunity
8 mentor.com/embedded
8
What is the Nucleus Add-on for Qt?
Optional companion product to Nucleus (ReadyStart)
Supports Qt Widgets & Qt Designer UI tooling
Enables Qt-based UIs on Nucleus applications
Execution of Qt run-time on Nucleus RTOS
Accessibility of Qt tools / artifacts in ReadyStart IDE
Core Qt port licensed under LGPL
Will be contributed to the open source community (Qt Project)
Community availability drives more adoption
Nucleus Add-on for Qt is a package of value-adds
Enhanced tooling, footprint management, etc.
-
12/03/2014
5
9 mentor.com/embedded
9
Nucleus Add-on for Qt Product Overview Qt version supported
5.0.2
Qt Library Modules included
Qt GUI, Qt Core, Qt Widgets
Qt Designer UI development tool
UI development host platform
Windows
QEMU Simulation
Footprint management tool
Trace points and agents for performance analysis of Qt-based GUIs
Supported platforms
TI AM3358 EVM (ARM A8)
i.MX6 SabreLite (ARM A9)
Additional platforms on roadmap
Qt GUI
Qt Core Windowing
System
Nucleus RTOS with Process
Model
Target Embedded Hardware
Qt Widgets
10 mentor.com/embedded
10
Qt Config & Build Integration
Plug-ins to the Nucleus IDE provide integration of Qt
Qt appears as a library project within Nucleus
Wizard takes care of project creation from Qt + patches
Configuration and build via IDE
Conceals Qts complex command line build process
Qt Creator doesnt help with this stuff
Easier to build and configure Qt under Nucleus than under any other OS including desktops
-
12/03/2014
6
11 mentor.com/embedded
11
CodeBench: Application Design & Build Integration
Plug-ins to CodeBench in Nucleus ReadyStart handle Qt project specifics
Project builds, runs and debugs just like any other Nucleus Process
Qt presentation layer is enclosed in a sub-folder
Qt tool chain is hidden behind the IDE
Can right-click or double click to launch Qt GUI design tool
12 mentor.com/embedded
12
Qt Designer
-
12/03/2014
7
13 mentor.com/embedded
13
DEMO - NUCLEUS ADD-ON FOR THE QT FRAMEWORK
14 mentor.com/embedded
14
MEMORY MANAGEMENT
-
12/03/2014
8
15 mentor.com/embedded
15
Qt Footprint Management
Qt has around 140 optional features
Manual Qt library configuration is a headache!
Under Nucleus, these are easily customizable
Base options turned on/off in IDE (about 9-10)
16 mentor.com/embedded
16
Qt Footprint Management
Build compacted option strips out other options if unused
One click memory optimization
Produces an application-specific library instance, of minimum size
Not available with standard Open Source Qt
Qt library footprint for the Washing Machine demo was reduced from ~13MB to ~4MB by compacting
Absolute minimum Qt library footprint is ~3MB
-
12/03/2014
9
17 mentor.com/embedded
17
PERFORMANCE MATTERS!
18 mentor.com/embedded
For Mentor, after enabling a customer with UI technology, OS, Middleware and Dev tools, we have a vested interest in ensuring a quality product is produced!
Why does UI performance matter to Mentor Embedded?
No matter how good your underlying system is, the users will only remember your user interface. Fail there and you will fail, period. -- Tristan Louis
-
12/03/2014
10
19 mentor.com/embedded
19
Typical Performance Problems
Responsiveness How quickly a UI responds to an input
(e.g. a touch event)
Avoiding UIs which are perceived as laggy
Animation smoothness Typically measured in frames per
second
Start-up time Affected by OS, UI framework,
application processing, resource loading and graphics computation
20 mentor.com/embedded
20
Performance Metrics
To get to the bottom of Qt performance issues, you must understand system metrics for measuring performance
We can then use them to understand the story of just what is happening on the hardware at any given time
Execution profile LISRS, HISRS, Tasks, Events
CPU State, utilisation, multi core access
Memory Pools, usage, load
File system activity
These should be coupled with computational user defined metrics
Frame rate (FPS), pixel load, runtime data requests, % screen redraw, start up time
-
12/03/2014
11
21 mentor.com/embedded
21
What is Sourcery Analyzer?
Sourcery Analyzer is a new and powerful way to debug and analyze the behavior and performance of complex single and multi-core embedded systems.
uses tracing to investigate problems where interactive debuggers fall short
provides a variety of out-of-the-box analysis tools to get up and running quickly
enables users to develop application-specific analysis tools tailored to their unique requirements
22 mentor.com/embedded
22
Sourcery Analyzer Instrumentation of Qt
Trace points and agents for analysis of Qt-based GUIs
System level analysis visualization view
Focused on analysis of specific common GUI problems
Available agents
UI Smoothness
UI Startup
UI Latency
UI Core Events
Resource Loading
Profiling Template
Visualization time-correlated with Nucleus RTOS, middleware, device drivers, etc.
Average Framerate Variation Analysis
-
12/03/2014
12
23 mentor.com/embedded
23
DEMO SOURCERY ANALYZER
24 mentor.com/embedded
24
Use Case Intermittent frame rate issues
SEP 2.0 Washing Machine UI, Qt Widget, Nucleus RTOS, Qemu
-
12/03/2014
13
25 mentor.com/embedded
25
SUMMARY
26 mentor.com/embedded
26
Summary
Integration of Qt QWidgets with an RTOS yields an attractive mid-range embedded UI solution
Fully enabling effective embedded UI development requires features beyond those available via the open source Qt project:
Host based UI development and simulation
Automated memory footprint management tool
Built-in UI performance analysis instrumentation
The users interactive experience of the UI is critical to the success of the device, performance matters!
Performance visualization tools such as Sourcery Analyzer provide deeper and faster insight into difficult UI problems by performing customized analysis across the OS, Qt framework and application layers