<<

Qt for Device Creation Speeding up ROI & Time-to-Market with Qt

Andy Nichols Software Engineer, Qt R&D, Oslo Overview

• Problems facing Device Creators • How Qt for Device Creation addresses those Problems • Boot to Qt pre-built reference stack • Demonstrations

2 © 2015 Problems facing Device Creators (Software)

• Finding an Kit • Interfacing with Hardware • Finding to accelerate development • Tooling that enables rapid iterative development

3 © 2015 Software Development Kits for Device Creation

• System Images • Software that runs on the hardware • Toolchain • • Sysroot • Development files for system image

4 © 2015 SDK:

• Yocto • Buildroot • / • Board Support Packages (BSP) • Linux kernel (patches) • Drivers • Radio hardware firmware • Wi-Fi • Bluetooth • NFC • GSM

5 © 2015 Operating System SDK: Android

• AOSP (Android Open Source Project) • Linux/Android Kernel • Standardized platform • Graphics • Multimedia • Pre-Built Images • ’s Android SDK + NDK

6 © 2015 Operating System SDK: Windows Embedded

• Pre-built images from hardware vendors. • Microsoft provides SDK and Tooling (Visual Studio)

7 © 2015 Operating System SDK: RTOS(s) QNX, VxWorks

• Need to go through the RTOS provider to get the image and SDK

8 © 2015 Interfacing with Device Hardware

• Camera and Sensors • GPU Application • OpenGL • OpenCL/CUDA • Radio (Wi-Fi, Bluetooth, NFC) Qt Libraries • Serial, CAN, i2c • Audio Platform Native Interfaces • Display Windows Linux Android QNX VxWorks Embedded

9 © 2015 Accelerating Development with Qt Middleware

Primitives • Buttons, Checkboxes, Radio Buttons • Views • Easily converting designer’s vision into a • Internationalization Support • Input methods (Virtual Keyboards, remote controls) • Integrated • Multimedia playback

10 © 2015 Qt Developer Offering, Cross-Platform

Essentials

Widgets Qt Quick WebEngine Add-ons + WebView C++ QML Charts Native LAF Controls GUI HTML 5 Layouts Layouts Hybrid UIs SVG Data 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 Image formats In-App Purchasing

11 © 2015 Tooling for Rapid Iterative Development

• IDE (Integrated Development Environment) • Ease of deployment to devices • Remote debugging and profiling • /Emulation of devices

12 © 2015 Qt Creator Rapid Workflow with Qt Quick

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 © 2015 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 © 2015 Immediate Prototyping with a Reference Stack: Boot to Qt Demo Time! Embedded Linux: Building your own Qt

• Toolchain • Sysroot • Yocto/Buildroot • Existing image • Host vs Target Image

18 © 2015 Qt Configure Arguments for Cross-Compilation

• -prefix /usr/local • Intended insall directory on 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}

19 © 2015 Demo: Adding new Device Kit to Qt Creator Thank You!

www.qt.io www.qt.io/download