SlideShare a Scribd company logo
1 of 15
Download to read offline
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

What's hot

Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureChristian Charreyre
 
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyDesign of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyTELKOMNIKA JOURNAL
 
Radius portable briefcase style workstation
Radius portable briefcase style workstationRadius portable briefcase style workstation
Radius portable briefcase style workstationrwachsman
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Pradeep Singh
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 
Intel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFIntel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFOfer Rosenberg
 
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...EneaSoftware
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boardsLF Events
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Harshit Srivastava
 
Fpga video capturing
Fpga video capturingFpga video capturing
Fpga video capturingshehryar88
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldOmer Kilic
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeOfer Rosenberg
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
 

What's hot (20)

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

Similar to Port Qt Embedded Linux on TI Processors

Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoEmbarcados
 
S5429_LanceBrown
S5429_LanceBrownS5429_LanceBrown
S5429_LanceBrownLance Brown
 
Parallel Rendering of Webpages
Parallel Rendering of WebpagesParallel Rendering of Webpages
Parallel Rendering of WebpagesLangtech
 
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus SDN/OpenFlow switch
 
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12ndzervas
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015ICT PRISTINE
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
Cuda meetup presentation 5
Cuda meetup presentation 5Cuda meetup presentation 5
Cuda meetup presentation 5Rihards Gailums
 
Rico board
Rico boardRico board
Rico boardmyirtech
 
MYC-J1028X CPU Module Overview
MYC-J1028X CPU Module OverviewMYC-J1028X CPU Module Overview
MYC-J1028X CPU Module OverviewLinda Zhang
 
LEGaTO Heterogeneous Hardware
LEGaTO Heterogeneous HardwareLEGaTO Heterogeneous Hardware
LEGaTO Heterogeneous HardwareLEGATO project
 

Similar to Port Qt Embedded Linux on TI Processors (20)

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

More from account inactive

KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phonesaccount inactive
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbianaccount inactive
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics Viewaccount inactive
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integrationaccount inactive
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systemsaccount inactive
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CEaccount inactive
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applicationsaccount inactive
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 
Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbianaccount inactive
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Nativeaccount inactive
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsaccount inactive
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qtaccount inactive
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
 

More from account inactive (20)

Meet Qt
Meet QtMeet Qt
Meet Qt
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics View
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
 
Qt Kwan-Do
Qt Kwan-DoQt Kwan-Do
Qt Kwan-Do
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systems
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt Widget In-Depth
Qt Widget In-DepthQt Widget In-Depth
Qt Widget In-Depth
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbian
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIs
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qt
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 
The Mobility Project
The Mobility ProjectThe Mobility Project
The Mobility Project
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
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
  • 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