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.
http://qt.nokia.com/developer/learning/elearning
Ensuring Technical Readiness For Copilot in Microsoft 365
Port Qt Embedded Linux on TI 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
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