Nuclues Add-On for Qt Webinar

13
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

description

Qt webinar ppt

Transcript of Nuclues Add-On for Qt Webinar

  • 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