<<

Kick Start your Embedded Development with

Increasing Return On Investment & shortening time-to-market

Nils Christian Roscher-Nielsen Product Manager, 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 SDK:

• Yocto • Buildroot • Ubuntu/Debian • Board Support Packages (BSP) • (patches) • Graphics Drivers • Radio hardware • Wi-Fi • • NFC • GSM

5 Operating System SDK: Android

• AOSP (Android 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. • 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 Application • GPU • OpenGL • OpenCL / CUDA Qt Libraries • Radio (Wi-Fi, Bluetooth, NFC) • Serial, CAN, i2c, Profibus Platform Native Interfaces • Audio Windows Linux Android QNX VxWorks • Display Embedded

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

Widgets WebEngine Add-ons + WebView ++ QML Charts Native L&F Controls GUI HTML 5 Layouts Layouts Hybrid UIs SVG Data Visualization Styles Styles OpenGL OpenGL Canvas 3D Virtual Keyboard

Core Multimedia Network Serial Port Bluetooth

Processes Audio HTTP Positioning Concurrency Threads Video FTP IPC Radio TCP/UDP Printing Scripting non-GUI Containers Camera SSL I/O NFC Platform Extras Strings Sql Qt Test Etc. XML Sensors SQL and Oracle databases Image formats 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 Rapid Workflow with Qt Quick

Declarative UI Design

Modern User Interfaces, written with QML. Ideal for rapid Designer UI prototyping.

Imperative Logic

Power of Cross-Platform Native Qt/C++

Developer Core Network Sql

Processes, Threads, HTTP SQL IPC, Containers, FTP

& NFC XML

I/O, Strings, SSL Oracle

Bluetooth Serial Port Serial Etc. Databases Positioning

+ 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, Pre-built HW image Tools to configure Qt libraries Development (”Boot to Qt Software the software stack () environment Stack”)

Manual configuration and compilation

HW HW

1. Use pre-built, configurable software 2. Configure and compile Qt directly from the stack as-is in the hardware, for embedded source codes to a large variety of HW and OS Android or embedded Linux. 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 “ install” • -host prefix ~/Qt-build/ • Location to install host tools (, 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

No Changes Qt Application Qt Application

Customize Embedded Linux and build Boot to Qt yourself with Boot to Qt Software Stack Boot to Qt Software Stack Yocto recipes Embedded Linux Reference HW (eg. BD i.MX6 Production HW SABRELITE) (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