SlideShare a Scribd company logo
Porting Qt for Embedded Linux on
Embedded Processors
Frank Walzer – Texas Instruments
Beagle Board
                                              Peripheral I/O
OMAP3530 Processor                             DVI-D video out
 600MHz Cortex-A8        10 cm
                                               SD/MMC+
     NEON+VFPv3                                S-Video out
     16KB/16KB L1$
                                               USB 2.0 HS OTG
     256KB L2$
                                               I2C, I2S, SPI,
 430MHz C64x+ DSP
     32K/32K L1$                               MMC/SD
     48K L1D                                   JTAG
     32K L2                                    Stereo in/out
 PowerVR SGX GPU                               Alternate power
 64K on-chip RAM                               RS-232 serial

POP Memory
                                    USB Powered
 256MB LPDDR RAM                     2W maximum consumption
 256MB NAND flash                         OMAP is small % of that
                                     Many adapter options
                                          Car, wall, battery, solar, …
Agenda


•   Motivation for using Qt at Texas Instruments
•   Porting Qt to TI Embedded Processors
•   What do we do with Qt?
•   Enhancing Qt through Accelerators
•   Future

                        Frank Walzer
                        Senior System Engineer
                        Texas Instruments Germany
                        f-walzer@ti.com
Motivation


• Complexity, complexity, complexity…
• Reduce amount of time to build a real system
   –   System software
   –   Feature complete
   –   Easy to learn & use
   –   OS API abstraction
   –   Cross-platform support
   –   Modular & flexible
   –   Open-source
• So we found Qt™
• Many other options exist but none are matching our
  requirements any better
Porting Qt to Embedded Processors


•   Many TI Embedded Processors are ARM core based
     – ARM supported as architecture in Qt
     – Qt Embedded Linux our standard choice
•   Follow the Qt build process
     –   Get source download or use Git to clone Gitorious Qt tree(s)
     –   Adaptation of mkspecs as needed
     –   Configure, compile & test
     –   Usually painless
•   Already tested devices
     –   OMAP35xx family (Cortex-A8, DSP, PowerVR SGX)
     –   AM35xx (Cortex-A8, PowerVR SGX)
     –   OMAP-L137/L138 (ARM9, DSP)
     –   DM365 and DM644x (ARM9)
•   Modifications to Qt sources?
     – Only once to work around a framebuffer issue (two lines of code)
     – 100% of demos and examples work unmodified
     – Expect changes needed for optimized hardware integration
OMAP3530 Processor
OMAP35x Processor
                              C64x+™ DSP and                      Display Subsystem
                             video accelerators
                              (3525/3530 only)
                                                                 LCD
    ARM®                                                                  Video      10 bit DAC
                                                                Cont-
                                                                roller     Enc       10 bit DAC
  Cortex™-A8
     CPU
                             POWERVR SGX™                                Camera I/F
                                 Graphics
                              (3515/3530 only)
                                                                 Image Pipe       Parallel I/F




                                  L3/L4 Interconnect


 Peripherals                        Connectivity                              System

                             USB 2.0 HS                                       Timers
                                                 USB
                                OTG                                           GP x12
                                           Host Controller x3
                              Controller                                      WDT x2
      Serial Interfaces                                 Program/Data Storage
  McBSP    I2C      UART          HDQ /
                     x2                                 SDRC                  MMC/
    x5      x3                    1-wire
                                                                               SD/
                                                        GPMC                  SDIO
  McSPI             UART
   x4               w/IRDA                                                     x3
Our Use of Qt

•   Ability to support customers porting Qt
     – Drive Qt releases to include tested mkspecs targeting TI devices
     – Provide example configurations to enable advanced hardware
•   Creation of focused applications
     – Targeted end-equipment GUIs
     – Customer or major event support
     – From bare GUI prototype to full applications
•   Standard demonstrations
     – Using Qt demos and examples a lot!
•   Benchmarks
     – Either Qt demos & examples or small applications
     – qgears for graphics
•   Early system testing
     – Quick way to evaluate complex peripherals on new hardware
Qt Application Development

• Often done cross-platform
   – New hardware not available in time
   – More efficient on PC
   – 99% of Qt application source code can be directly cross-
     compiled with no modification
        • Serial port exception!
• Porting final applications to multiple platforms
   –   Embedded platforms supported with multiple operating systems
   –   Again limited hardware availability
   –   Identical GUI maybe shown using PC only
   –   Rapid prototyping
Development Experience

• Focused on Qt Embedded Linux
• Human Machine Interface demo
   –   Done in 5 weeks
   –   New graphical display & communications
   –   1 student + 0.5 engineers
   –   Started on OMAP3 and ported to OMAP-L1
   –   New hardware, new to Qt
• Weight Scale GUI prototype
   – 2 days
   – Developed on PC and tested on OMAP3
     EVM using touch screen control
• Several customer applications
   – Just compile and run
   – For benchmarking on different OS
Demo Software Stack – OMAP-L1

  OS: MV pro5 Linux
  Qt 4.5 framework abstracts OS API
  Application program using C++ Object Oriented Programming
  Debug on other platforms possible due to Qt 4.5 cross-platform support
  High abstraction on application level leads to fast development



                        Temperature Demo

                 Qt 4.5 Embedded Linux

           GUI/FB    Serial IO   TCP/IP   Timer


                        Linux API                            Graphic
MV Pro5                                                    Acceleration
 Linux    Ethernet   USB/ACM Display      Timer             (optional)

              ARM / Peripherals                                DSP
Real Applications




                    TSC2046



                      SPI

                 OMAP3/
                OMAP-L1xx
Enhancing Qt

• Full support for embedded hardware beyond ARM core
   – PowerVR SGX core for OpenGLES, OpenVG
   – C6xxx DSP for effective signal processing
• Ready to use with Qt classes
   – Initial support in Qt for OpenGLES
   – Still evaluating best use cases
• DSP designated for multimedia applications
   – Possible integration of TI gstreamer-plugin with Phonon?
   – Already requested by customers
   – Very early discussion phase
• Optimizing Qt for dedicated hardware requires support
  from silicon vendor
Future

• Provide full Qt porting support
  – Using gitorious as platform
  – Update when new devices appear
  – Wiki: http://omap.wiki.com/Building_Qt
• Evaluate Qt 4.6 SVG support
  – Does it integrate well with OpenVG API on OMAP3?
• Drive Qt use in TI on world-wide level
• Develop additional reference applications
  – Industrial automation market
  – Use Qt as GUI for process control software
Summary

• Customers can benefit from Qt in a similar way
  –   Highly efficient development
  –   Portable and re-usable (C++)
  –   Great GUI creation tools
  –   Same constraints on resources as we have
• We stepped into Qt at the right time
  – Highly successful projects for TI
  – Lots of customer requests
  – Plays well with TI plans and needs for Embedded
    Processing
Demonstration

More Related Content

PPTX
2nd ARM Developer Day - NXP USB Workshop
PDF
MIPI DevCon 2016: Accelerating Software Development for MIPI CSI-2 Cameras
PDF
Audio in linux embedded
PDF
Rapid prototyping with open source
PPTX
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
PDF
Xilinx manual
PDF
Porting linux on ARM
PDF
LCE13: Android Graphics Upstreaming
2nd ARM Developer Day - NXP USB Workshop
MIPI DevCon 2016: Accelerating Software Development for MIPI CSI-2 Cameras
Audio in linux embedded
Rapid prototyping with open source
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
Xilinx manual
Porting linux on ARM
LCE13: Android Graphics Upstreaming

What's hot (20)

PDF
Developing an embedded video application on dual Linux + FPGA architecture
PDF
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
PDF
Radius portable briefcase style workstation
PDF
GPU Ecosystem
PPT
OMAP
PDF
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
PDF
Embedded Android : System Development - Part II (HAL)
ODP
Embedded Linux Multimedia
PDF
Intel's Presentation in SIGGRAPH OpenCL BOF
PPTX
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
PDF
Linxu conj2016 96boards
PDF
Introduction to intel galileo board gen2
PPTX
Fpga video capturing
PDF
Interfacing the Raspberry Pi to the World
PDF
Newbie’s guide to_the_gpgpu_universe
PDF
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
PDF
The GPGPU Continuum
PDF
Nvidia Cuda Apps Jun27 11
PDF
Craneboard
PPTX
SoC FPGA Technology
Developing an embedded video application on dual Linux + FPGA architecture
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Radius portable briefcase style workstation
GPU Ecosystem
OMAP
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Embedded Android : System Development - Part II (HAL)
Embedded Linux Multimedia
Intel's Presentation in SIGGRAPH OpenCL BOF
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
Linxu conj2016 96boards
Introduction to intel galileo board gen2
Fpga video capturing
Interfacing the Raspberry Pi to the World
Newbie’s guide to_the_gpgpu_universe
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
The GPGPU Continuum
Nvidia Cuda Apps Jun27 11
Craneboard
SoC FPGA Technology
Ad

Similar to Case Study: Porting Qt for Embedded Linux on Embedded Processors (20)

PDF
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
PDF
Shresta Product Line Card
PPTX
PDF
PDF
S5429_LanceBrown
PPTX
Parallel Rendering of Webpages
PDF
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
PPTX
Fixed-point Multi-Core DSP Platform
PDF
Lec09-DSP.pdf
PPSX
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
PDF
Q7 SoM presentation at FTF India,2011
PPTX
Pristine glif 2015
PPT
Current Trends in HPC
PDF
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
PPTX
Introduction to DPDK
PPTX
Cuda meetup presentation 5
PPT
nios.ppt
PDF
Rico board
PDF
MYC-J1028X CPU Module Overview
PPTX
LEGaTO Heterogeneous Hardware
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Shresta Product Line Card
S5429_LanceBrown
Parallel Rendering of Webpages
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Fixed-point Multi-Core DSP Platform
Lec09-DSP.pdf
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
Q7 SoM presentation at FTF India,2011
Pristine glif 2015
Current Trends in HPC
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Introduction to DPDK
Cuda meetup presentation 5
nios.ppt
Rico board
MYC-J1028X CPU Module Overview
LEGaTO Heterogeneous Hardware
Ad

More from account inactive (20)

ODP
PDF
KDE Plasma for Mobile Phones
PDF
Shipping Mobile Applications Using Qt for Symbian
PDF
The Future of Qt Widgets
PDF
Scripting Your Qt Application
PDF
Special Effects with Qt Graphics View
PDF
Developments in The Qt WebKit Integration
PDF
Qt Kwan-Do
PDF
Qt on Real Time Operating Systems
PDF
Development with Qt for Windows CE
PDF
Translating Qt Applications
PDF
Qt Creator Bootcamp
PDF
Qt Widget In-Depth
PDF
Qt State Machine Framework
PDF
Mobile Development with Qt for Symbian
PDF
How to Make Your Qt App Look Native
PPT
Animation Framework: A Step Towards Modern UIs
PDF
Using Multi-Touch and Gestures with Qt
PDF
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
PDF
The Mobility Project
KDE Plasma for Mobile Phones
Shipping Mobile Applications Using Qt for Symbian
The Future of Qt Widgets
Scripting Your Qt Application
Special Effects with Qt Graphics View
Developments in The Qt WebKit Integration
Qt Kwan-Do
Qt on Real Time Operating Systems
Development with Qt for Windows CE
Translating Qt Applications
Qt Creator Bootcamp
Qt Widget In-Depth
Qt State Machine Framework
Mobile Development with Qt for Symbian
How to Make Your Qt App Look Native
Animation Framework: A Step Towards Modern UIs
Using Multi-Touch and Gestures with Qt
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
The Mobility Project

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
Teaching material agriculture food technology
PDF
Modernizing your data center with Dell and AMD
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
A Presentation on Artificial Intelligence
PDF
Empathic Computing: Creating Shared Understanding
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars
Teaching material agriculture food technology
Modernizing your data center with Dell and AMD
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
A Presentation on Artificial Intelligence
Empathic Computing: Creating Shared Understanding
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Monthly Chronicles - July 2025
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx

Case Study: Porting Qt for Embedded Linux on Embedded Processors

  • 1. Porting Qt for Embedded Linux on Embedded Processors Frank Walzer – Texas Instruments
  • 2. Beagle Board Peripheral I/O OMAP3530 Processor DVI-D video out 600MHz Cortex-A8 10 cm SD/MMC+ NEON+VFPv3 S-Video out 16KB/16KB L1$ USB 2.0 HS OTG 256KB L2$ I2C, I2S, SPI, 430MHz C64x+ DSP 32K/32K L1$ MMC/SD 48K L1D JTAG 32K L2 Stereo in/out PowerVR SGX GPU Alternate power 64K on-chip RAM RS-232 serial POP Memory USB Powered 256MB LPDDR RAM 2W maximum consumption 256MB NAND flash OMAP is small % of that Many adapter options Car, wall, battery, solar, …
  • 3. Agenda • Motivation for using Qt at Texas Instruments • Porting Qt to TI Embedded Processors • What do we do with Qt? • Enhancing Qt through Accelerators • Future Frank Walzer Senior System Engineer Texas Instruments Germany f-walzer@ti.com
  • 4. Motivation • Complexity, complexity, complexity… • Reduce amount of time to build a real system – System software – Feature complete – Easy to learn & use – OS API abstraction – Cross-platform support – Modular & flexible – Open-source • So we found Qt™ • Many other options exist but none are matching our requirements any better
  • 5. Porting Qt to Embedded Processors • Many TI Embedded Processors are ARM core based – ARM supported as architecture in Qt – Qt Embedded Linux our standard choice • Follow the Qt build process – Get source download or use Git to clone Gitorious Qt tree(s) – Adaptation of mkspecs as needed – Configure, compile & test – Usually painless • Already tested devices – OMAP35xx family (Cortex-A8, DSP, PowerVR SGX) – AM35xx (Cortex-A8, PowerVR SGX) – OMAP-L137/L138 (ARM9, DSP) – DM365 and DM644x (ARM9) • Modifications to Qt sources? – Only once to work around a framebuffer issue (two lines of code) – 100% of demos and examples work unmodified – Expect changes needed for optimized hardware integration
  • 6. OMAP3530 Processor OMAP35x Processor C64x+™ DSP and Display Subsystem video accelerators (3525/3530 only) LCD ARM® Video 10 bit DAC Cont- roller Enc 10 bit DAC Cortex™-A8 CPU POWERVR SGX™ Camera I/F Graphics (3515/3530 only) Image Pipe Parallel I/F L3/L4 Interconnect Peripherals Connectivity System USB 2.0 HS Timers USB OTG GP x12 Host Controller x3 Controller WDT x2 Serial Interfaces Program/Data Storage McBSP I2C UART HDQ / x2 SDRC MMC/ x5 x3 1-wire SD/ GPMC SDIO McSPI UART x4 w/IRDA x3
  • 7. Our Use of Qt • Ability to support customers porting Qt – Drive Qt releases to include tested mkspecs targeting TI devices – Provide example configurations to enable advanced hardware • Creation of focused applications – Targeted end-equipment GUIs – Customer or major event support – From bare GUI prototype to full applications • Standard demonstrations – Using Qt demos and examples a lot! • Benchmarks – Either Qt demos & examples or small applications – qgears for graphics • Early system testing – Quick way to evaluate complex peripherals on new hardware
  • 8. Qt Application Development • Often done cross-platform – New hardware not available in time – More efficient on PC – 99% of Qt application source code can be directly cross- compiled with no modification • Serial port exception! • Porting final applications to multiple platforms – Embedded platforms supported with multiple operating systems – Again limited hardware availability – Identical GUI maybe shown using PC only – Rapid prototyping
  • 9. Development Experience • Focused on Qt Embedded Linux • Human Machine Interface demo – Done in 5 weeks – New graphical display & communications – 1 student + 0.5 engineers – Started on OMAP3 and ported to OMAP-L1 – New hardware, new to Qt • Weight Scale GUI prototype – 2 days – Developed on PC and tested on OMAP3 EVM using touch screen control • Several customer applications – Just compile and run – For benchmarking on different OS
  • 10. Demo Software Stack – OMAP-L1 OS: MV pro5 Linux Qt 4.5 framework abstracts OS API Application program using C++ Object Oriented Programming Debug on other platforms possible due to Qt 4.5 cross-platform support High abstraction on application level leads to fast development Temperature Demo Qt 4.5 Embedded Linux GUI/FB Serial IO TCP/IP Timer Linux API Graphic MV Pro5 Acceleration Linux Ethernet USB/ACM Display Timer (optional) ARM / Peripherals DSP
  • 11. Real Applications TSC2046 SPI OMAP3/ OMAP-L1xx
  • 12. Enhancing Qt • Full support for embedded hardware beyond ARM core – PowerVR SGX core for OpenGLES, OpenVG – C6xxx DSP for effective signal processing • Ready to use with Qt classes – Initial support in Qt for OpenGLES – Still evaluating best use cases • DSP designated for multimedia applications – Possible integration of TI gstreamer-plugin with Phonon? – Already requested by customers – Very early discussion phase • Optimizing Qt for dedicated hardware requires support from silicon vendor
  • 13. Future • Provide full Qt porting support – Using gitorious as platform – Update when new devices appear – Wiki: http://omap.wiki.com/Building_Qt • Evaluate Qt 4.6 SVG support – Does it integrate well with OpenVG API on OMAP3? • Drive Qt use in TI on world-wide level • Develop additional reference applications – Industrial automation market – Use Qt as GUI for process control software
  • 14. Summary • Customers can benefit from Qt in a similar way – Highly efficient development – Portable and re-usable (C++) – Great GUI creation tools – Same constraints on resources as we have • We stepped into Qt at the right time – Highly successful projects for TI – Lots of customer requests – Plays well with TI plans and needs for Embedded Processing