Kick Start your Embedded Development with Qt Increasing Return On Investment & shortening time-to-market Nils Christian Roscher-Nielsen Product Manager, The Qt Company
Overview Problems facing Device Creators How Qt for Device Creation addresses those Problems Boot to Qt pre-built reference stack Demonstrations 2
Problems facing Device Creators (Software) Finding a Software Development Kit Interfacing with Hardware Finding Middleware to accelerate development Tooling that enables rapid iterative development 3
Software Development Kits for Device Creation System Images Software that runs on the hardware Toolchain Compilers Tools Sysroot Development files for system image 4
Operating System SDK: Linux Yocto Buildroot Ubuntu/Debian Board Support Packages (BSP) Linux kernel (patches) Graphics Drivers Radio hardware firmware Wi-Fi Bluetooth NFC GSM 5
Operating System SDK: Android AOSP (Android Open Source Project) Linux/Android Kernel Standardized platform Graphics Multimedia Pre-Built Images Google s Android SDK + NDK 6
Operating System SDK: Windows Embedded Pre-built images from hardware vendors. Microsoft provides SDK and Tooling (Visual Studio) 7
Operating System SDK: RTOS(s) QNX, VxWorks Need to go through the RTOS provider to get the image and SDK 8
Interfacing with Device Hardware Camera and Sensors GPU OpenGL OpenCL / CUDA Radio (Wi-Fi, Bluetooth, NFC) Serial, CAN, i 2 c, Profibus Audio Display Application Qt Libraries Platform Native Interfaces Linux Android Windows Embedded QNX VxWorks 9
Accelerating Development with Qt Middleware User Interface Primitives Buttons, Checkboxes, Radio Buttons Views Easily converting designer s vision into a User Interface Look and Feel Internationalization Support Input methods (Virtual Keyboards, remote controls) Integrated Web Browser Multimedia playback 10
Qt Developer Offering, Cross-Platform APIs Essentials GUI Widgets C++ Native L&F Layouts Styles OpenGL Qt Quick QML Controls Layouts Styles OpenGL WebEngine + WebView HTML 5 Hybrid UIs Charts SVG Canvas 3D Add-ons Data Visualization Virtual Keyboard Core Multimedia Network Serial Port Bluetooth non-gui Processes Threads IPC Containers I/O Strings Etc. Audio Video Radio Camera Sql SQL and Oracle databases HTTP FTP TCP/UDP SSL Qt Test Positioning Printing NFC XML Image formats Concurrency Scripting Platform Extras Sensors In-App Purchasing 11
Tooling for Rapid Iterative Development IDE (Integrated Development Environment) Ease of deployment to devices Remote debugging and profiling Simulation/Emulation of devices 12
Qt Creator
XML Bluetooth Positioning NFC Serial Port Rapid Workflow with Qt Quick Declarative UI Design Designer Modern User Interfaces, written with QML. Ideal for rapid UI prototyping. Imperative Logic Power of Cross-Platform Native Qt/C++ Developer Core Network Sql Processes, Threads, IPC, Containers, I/O, Strings, Etc. HTTP FTP SSL SQL & Oracle Databases + Direct Hardware Access 14
Boot to Qt: Pre-built Reference Stack Lightweight Linux Stack Without X11 (targets fbdev) Minimum dependencies to enable most Qt features Images and Full Development Environment available for reference hardware Build Scripts to further customize the image and SDK for your needs 15
Boot to Qt: Immediate prototyping with a reference stack 16
Demo Time!
Embedded Linux: Building your own Qt Toolchain Sysroot Yocto/Buildroot Existing image Host machine vs Target Image 18
Ways of Using Qt on Embedded Platforms Qt Enterprise Embedded Qt Creator IDE, Development environment Pre-built HW image ( Boot to Qt Software Stack ) Tools to configure the software stack Qt libraries (source code) Manual configuration and compilation HW HW 1. Use pre-built, configurable software stack as-is in the hardware, for embedded Android or embedded Linux. 2. Configure and compile Qt directly from the source codes to a large variety of HW and OS combinations using your own software stack 2014 Digia 19
Qt Configure Arguments for Cross-Compilation -prefix /usr/local Intended install directory on the device -extprefix $SYSROOT/usr/local Location installed on host machine by make install -host prefix ~/Qt-build/ Location to install host tools (qmake, moc, uic ) -sysroot $SYSROOT -device rasp-pi Name of the devices mkspec you are targeting -device-option CROSS_COMPILE=${location_of_toolchain} 20
From Prototype to Product with Qt for Device Creation Qt Application No Changes Qt Application Boot to Qt Software Stack Embedded Linux Embedded Linux Customize and build yourself with Boot to Qt Yocto recipes Boot to Qt Software Stack Reference HW (eg. BD i.mx6 SABRELITE) Production HW (eg. Custom i.mx6) The Qt Company and Partners can help 21 21
Demo: Adding new Device Kit to Qt Creator
Thank You! www.qt.io www.qt.io/download