Case Study: Porting Qt for Embedded Linux on Embedded Processors


Published on

Qt has been crucial for Texas Instruments to develop attractive applications as system demonstrations including appealing graphics and communication features within a defined time space and resource environment. This session will discuss porting and using Qt for Embedded Linux on several embedded processors. Walzer will present TI's experience and the current status of configuring Qt for ARM based platforms running Linux as the operating system, as well as have a look at the current state of integrating hardware accelerators such as DSP and graphics cores into Qt4.

Presentation by Frank Walzer held during Qt Developer Days 2009.

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Case Study: Porting Qt for Embedded Linux on Embedded Processors

  1. 1. Porting Qt for Embedded Linux on Embedded Processors Frank Walzer – Texas Instruments
  2. 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. 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
  4. 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. 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. 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. 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. 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. 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. 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. 11. Real Applications TSC2046 SPI OMAP3/ OMAP-L1xx
  12. 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. 13. Future • Provide full Qt porting support – Using gitorious as platform – Update when new devices appear – Wiki: • 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. 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
  15. 15. Demonstration