SlideShare a Scribd company logo
1 of 32
Download to read offline
Qualcomm Developer Network Presents
Developing for Industrial IoT with Embedded Linux OS on
DragonBoard™ 410c by Timesys University
SESSION 2: Application Development for Embedded
Linux®
Co-sponsored by Qualcomm Technologies, Inc. and Arrow Electronics
www.timesys.com ©2017 Timesys Corp.
Session 2
Application Development for Embedded Linux®
Maciej Halasz, Vice President of Technology
Timesys Corporation
www.timesys.com ©2017 Timesys Corp.
3
Webinar Series
This is one of a 4-part webinar series Developing for Industrial IoT with Linux OS on DragonBoard™ 410c to explore the process of building an
embedded Linux based device using the Qualcomm® Snapdragon™ 410E powered DragonBoard 410c development board fromArrow
Electronics. With topics that cover build systems, deployment strategy, designing-in and managing security, device appearance and ease of user
interaction, you’ll gain insight into various aspects of technology and design decisions developers face when choosing to build embedded Linux
based products for this increasingly demanding and expanding connected world.All sessions in this Qualcomm Developer Network sponsored
series are designed to provide hands-on experience throughout the entire development process.
 Session 1: Introduction to DragonBoard 410 SoC and Starting Development of Your Embedded Linux
based “Industrial Internet of Things” (IIoT) Device
• Setup for designing IIoT products
• How to assemble and deploy initial BSP
 Session 2: Application Development for Embedded Linux
• Application development environment setup
• How to reflect product requirements in the BSP
• Communication in the IIoT system
 Session 3: Building a Cutting-Edge User Interface with Qt®
• Developing modern, rich UIs for factory terminals
 Session 4: Embedded Products Security
• Designing security-rich devices
Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
www.timesys.com ©2017 Timesys Corp.
4 Recap of the previous session
 What we did:
• Went through the process of flashing rescue and Linux images to the DragonBoard 410c
• Discussed the high level requirements of the IIoT system
• Learned about OpenEmbedded Reference Platform Build (RPB) BSP from
Linaro™/96Boards™
• Setup the OpenEmbedded RPB on a host PC
• Rebuilt the rpb-console-image locally
 Key takeaways:
• OpenEmbedded RPB BSP ≠ Yocto Project® BSP
– Use same BitBake build engine but different BSP structure
• Must use a micro SD card to rescue the board
• Reference images provided by 96Boards
– Can also receive them from Timesys®
• Linux support available
– Forum: 96Boards
– Ticket-based: Timesys
www.timesys.com ©2017 Timesys Corp.
5 Session 2 — Agenda
 IIoT Application requirements considerations
• Hardware
• Software
 Reflecting API requirements in OpenEmbedded RPB Linux BSP
• Customizations
 Application Development Environment setup
 Application Development
• IDE based C/C++ development/deployment/debugging
• Data gathering/classification from IIoT end points
• Application logic development
• System analysis and tuning
– Profiling
– Tracing
CLICK HERE TO VIEW WEBINAR RECORDING
www.timesys.com ©2017 Timesys Corp.
6
Industrial IoT Product Requirements
www.timesys.com ©2017 Timesys Corp.
7 IIoT point requirements
 Requirements are industry
process-specific
 Topography of IIoT can vary
 Requirements typically include
• Connectivity:
– Bluetooth®
– Ethernet ®
– WiFi™
– BUS
• Sensors:
– Discrete
– Continuous
• Sensor examples
– Temperature
– Pressure
– Movement
– ON/OFF
HUB/Concentrator
Autonomous Decision
Humidity &
Temperature
Accelerometer
& Gyroscope
Luminosity &
Color Detection
Pressure
Sensing
Magnetic
Sensor
www.timesys.com ©2017 Timesys Corp.
8 Requirements summary
 Hardware
• DragonBoard 410c
• Sensor module
 Software (DragonBoard 410c only)
• LTS Linux
• Root filesystem APIs:
– Baseline (Boot Linux)
– BlueZ (Bluetooth LE)
– Debug and Profiling Tools
– OpenSSL ™ + OpenSSH (Secure
Shell)
– Wireless tools (WiFi)
• Application shall be written in C++
• Application shall:
– Gather data via BLE from sensors
– Analyze the information and
perform an action:
 Alert – light is too bright
 Robotic arm is moving in direction
XYZ
CSR1010 SensiBLE
CSR chipsets are a product of Qualcomm Technologies, International
www.timesys.com ©2017 Timesys Corp.
9
Reflecting Software Requirements in
OpenEmbedded RPB BSP for the DragonBoard 410c
www.timesys.com ©2017 Timesys Corp.
10 OpenEmbedded RPB — BSP customizations
 There are many ways and processes to customize OE RPB BSP
• Driven by the customization type and scope
• Examples:
– Adding a new API to OpenEmbedded RPB BSP
– Modifying API package configuration
– Modifying API code
– Defining a new RFS content
– Extending OpenEmbedded RPB BSP to support custom hardware
 Customizations for our product
• Focusing on the RFS – APIs
• Adding required software to the reference BSP
• Process we will follow:
1. Create a product specific metalayer
2. Develop a recipe for an API package
3. Extend RFS definition to include required APIs
4. Build the customized OpenEmbedded RPB BSP/SDK
www.timesys.com ©2017 Timesys Corp.
11 OpenEmbedded RPB customizations (1)
 Dedicated Metalayer
• Metalayer is a group of files – recipes, configuration files, which provide a support for a
specific feature or functionality
• Organized under metalayer directory
• Examples of existing metalayers
– meta-qcom
– meta-qt5
• Provides organized approach to defining new features/functionality
• Allows us to overwrite/extend functionality defined in other metalayers
OpenEmbedded (meta-openembedded)
Distribution (meta-rpb)
Hardware specific BSP (meta-96boards, meta-qcom)
UI specific (meta-qt5)
Dev project specific (meta-custom)
Metalayer library:
https://layers.openembedded.org
www.timesys.com ©2017 Timesys Corp.
12 OpenEmbedded RPB customizations (2)
 Process
• Copy one of existing metalayers and rename it i.e.
• Remove existing recipe directories
• Create your own recipes directory
• Change name in conf/layer.conf
• Add new metalayer to the conf/bblayers.conf file in your BSP build directory
$ cp –r meta-backports meta-companyX
$ cd meta-companyX
$ rm –rf browser* COPYING* core meta* openembedded* README
$ mkdir recipes-iiot
www.timesys.com ©2017 Timesys Corp.www.timesys.com
13
 Adding a new API
• Requires a new recipe
• Can be added in the dedicated
metalayer
• Create recipes-iiot directory
• Inside, create a directory for every
package you are adding
• Save the recipe in a package/API
folder
• Recipe can be generated with a
recipetool as follows:
OpenEmbedded RPB customizations (3)
Note: New meta-companyX layer and recipes will be available to you for download after this session.
$ recipetool create -o gattlib.bb -N gattlib -V 1.0 -a git://github.com/labapart/gattlib.git
www.timesys.com ©2017 Timesys Corp.
14 LAB 1 — OpenEmbedded RPB BSP customization
 Create a meta-companyX
 Inside the new layer create recipes-iiot directory
 Add gattlib API
• Create needed directory structure
• Generate a gattlib.bb recipe with recipetool
• Introduce needed changes
– Licensing
– Packaging
 Add meta-companyX to bblayers
www.timesys.com ©2017 Timesys Corp.
15 OpenEmbedded RPB customizations (4)
 Extending BSP filesystem
 Process:
• Copy the original rpb-console-image.bb to meta-companyX
• Copy also rpb-minimal-image.bb
• Edit the rpb-console-image-session2.bb – add gattlib package
$ cd meta-companyX/recipes-iiot
$ mkdir images
$ cp ../../meta-rpb/recipes-samples/images/rpb-console-image.bb 
images/rpb-console-image-session2.bb
www.timesys.com ©2017 Timesys Corp.
16 OpenEmbedded RPB customizations (5)
 Add debug utilities to the RFS via conf/auto.conf file
 Process:
• From the build-rpb directory open the conf/auto.conf for editing
– Use the EXTRA_IMAGE_FEATURES and IMAGE_INSTALL_append variables to extend
RFS definition
 Add “tools-profile” and “tools-debug” - for i.e. lttng, prof, etc
 Build and install a Valgrind package
www.timesys.com ©2017 Timesys Corp.
17 OpenEmbedded RPB customizations (6)
 Build the new, custom image
 Run bitbake from the build directory
 Deploy the image to the DragonBoard 410c
• DragonBoard 410c with existing software can be put in the
fastboot mode with the following procedure
– Power down the system
– Press and Hold S4 button (-)
– Power on the system
– Connect from host with fastboot and flash new images using
commands learned in session 1
$ bitbake rpb-console-image-session2
$ bitbake rpb-console-image-session2 –c populate_sdk
www.timesys.com ©2017 Timesys Corp.
18 LAB 2 — OpenEmbedded RPB BSP customization
 Extend rpb-console-image
• Create a custom rpb-console-image-session2.bb based on original rpb-console-
image.bb
• Add the gattlib package to the rpb-console-image-session2.bb
 Install additional debug and profiling tools in the RFS
 Build the custom BSP image and the matching SDK
 Install the custom BSP image on the DragonBoard 410c
 Install the custom SDK on the Host PC
www.timesys.com ©2017 Timesys Corp.
19
Application Development Setup
www.timesys.com ©2017 Timesys Corp.
20 IDE considerations
 Integrated Development Environments help greatly with software development
• Keep the workspace organized
• Promote and support collaborative development
• Simplify and accelerate coding, debugging and software optimization
 Eclipse™ framework — most popular IDE baseline leveraged by many tools
• TimeStorm™ — IDE used in this session
 Development environment Setup
www.timesys.com ©2017 Timesys Corp.
21 TimeStorm IDE
 Integrated Development Environment (IDE)
 Extends Eclipse Project
 Focus:
• Embedded systems
• SDK management
• Target management
• Application development
• Linux kernel development
• Device driver development
• Debugging (kernel, application)
• Profiling
– Gprof
– OProfile
• Code coverage
• Memory leak analysis
• Tracing (LTTng)
• Factory™/Yocto Project® /OpenEmbedded integration
www.timesys.com ©2017 Timesys Corp.
22
Host PC/Linux
IDE and Cross-Environment
TimeStorm
Local OpenEmbedded
RPB SDK
Recognizes
Automatically
www.timesys.com ©2017 Timesys Corp.
23
Application Development
www.timesys.com ©2017 Timesys Corp.
24 Application Development Environment Setup
 Download TimeStorm ( http://linuxlink.timesys.com )
• Free registration required
• You get free 30-day license for the fully featured IDE
 Download and install Oracle® Java® JSE version 1.8
( http://www.oracle.com/technetwork/java/javase/downloads/index.html )
 Make sure both your DragonBoard 410c and your Host PC have IP address
assigned
Host PC
www.timesys.com ©2017 Timesys Corp.
25 Connecting DragonBoard 410c via TCP/IP
 DragonBoard 410c comes equipped with the WiFi chipset
 Firmware is available and preinstalled in the custom RPB BSP we built
 Procedure to connect to a WiFi router:
1. Show all connections
1. Show device status
2. View the list of available access points
3. Create a connection
1. Setup password (if needed)
2. Enable the connection
$ nmcli connection show
$ nmcli device status
$ nmcli dev wifi list
$ nmcli con add con-name WiFi ifname wlan0 type wifi ssid foonet
$ nmcli con modify WiFi wifi-sec.key-mgmt wpa-psk
$ nmcli con modify WiFi wifi-sec.psk mypassword
$ nmcli con up WiFi
Note: We can also use the UI
based configuration tool called:
nmtui
www.timesys.com ©2017 Timesys Corp.
26 Gathering Sensor Data
 Linux BSP deployed on DragonBoard 410c has Bluetooth enabled
 Sensor board
 Collects data from onboard sensors
• Makes them available via BLE protocol
 We need to:
• Establish BLE connection
• Receive sensor BLE messages
• Process the information — analyze and trigger an action
www.timesys.com ©2017 Timesys Corp.
27 Application Development (1) – BLE Protocol
 GATT – Generic Attribute Profile
• Defines a way two BLE devices
exchange data
• Use concepts of
– Services
– Characteristics
• Requires that connection is already
advertised – managed by GAP
• GATT Connections are one-to-one
(exclusive)
– Once a BLE peripheral connects to
DragonBoard 410c, it will stop
advertising itself
• In Linux we can manage
communications with
– gatttool (utility)
– gattlib (programming API)
Generic Access
Profile (GAP)
Security
Manager (SM)
Generic
Attribute Profile
(GATT)
Attribute
Protocol (ATT)
Logical Link Control and Adaptation Protocol (L2CAP)
Host-Controller (HCI)
Link Layer (LL)
Physical Layer (PHY)
BLUEZChipset/Kernel
www.timesys.com ©2017 Timesys Corp.
28 LAB 3 – Setup Application Development Environment
 Start the IDE
• Verify that the newly installed SDK has been discovered
– Navigate in the IDE to:
Window > Preferences > TimeStorm > SDKs > Yocto SDKs
 Connect DragonBoard 410c to the wireless router using nmtui, obtain an IP
address
 Verify connection to the target
• Use ping command from host to the target
• Use IDEs Target Management
– Setup the DragonBoard 410c — Use ssh and scp for connection
– Verify connection with “Check Link” button
www.timesys.com ©2017 Timesys Corp.
29 Application Development (2)
 We will develop C application called IIoT Concentrator
 Available advertised characteristics
 The application shall:
• Scan the hci0 interface
• Discover BLE devices
• Discover supported characteristics
• Setup notifications on select characteristics
– Temperature
– Light
– Free fall
• Run analytics based on received data
• Display on the console
– Warning message – not enough light
– Alert – Temperature too high
– Info – Robotic arm moved fast down
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Feature RFU RFU RFU RFU
Beam
forming
Acc
Event
Free
Fall
Sensor
Fusion
Sensor
Fusion Compass Motion intensity Activity Carry Position Proximity Gesture Mems Gesture Pedometer
Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Feature RFU
ADPCM
Sync Switch
Direction of
arrival ADPC Audio MicLevel Proximity Lux Acc Gyro Mag Pressure Humidity Temperature Battery
Second
Temperature
Source: http://www.sensiedge.com/
 Characteristics represented by a 32 bit value
 Advertised characteristic: LUX
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x1000000
www.timesys.com ©2017 Timesys Corp.
30 LAB 4 — C Application Development
 IIoT Concentrator application source code review
 Compile and deploy the application in TimeStorm
 Deploy and run the code on the DragonBoard 410c
 Debug application remotely on the DragonBoard 410c
 Advanced analysis of the developed code
• Verify code coverage
• Profile application through instrumentation
• Perform memory analysis searching for memory leaks
• Trace the application execution in time
www.timesys.com ©2017 Timesys Corp.
31
Questions?
Source code, deployment images and SDK can be downloaded from
linuxlink.timesys.com
developer.qualcomm.com 96boards.org arrow.com timesys.com
Thank you
All data and information contained in or disclosed by this document is confidential and proprietary information of Qualcomm Technologies, Inc. and/or its affiliated
companies and all rights therein are expressly reserved. By accepting this material the recipient agrees that this material and the information contained therein is to
be held in confidence and in trust and will not be used, copied, reproduced in whole or in part, nor its contents revealed in any manner to others without the express
written permission of Qualcomm Technologies, Inc. Nothing in these materials is an offer to sell any of the components or devices referenced herein.
©2017 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved.
Qualcomm, Snapdragon and DragonBoard are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other products and
brand names may be trademarks or registered trademarks of their respective owners.
References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within
the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent
portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s
engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT.
Follow us on:
For more information, visit us at:
www.qualcomm.com & www.qualcomm.com/blog

More Related Content

What's hot

How we test tvideo at skype
How we test tvideo at skypeHow we test tvideo at skype
How we test tvideo at skypeQA Club Kiev
 
Embedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneEmbedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneChris Simmonds
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overviewQA Club Kiev
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)Chris Simmonds
 
Manage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleManage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleSZ Lin
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphoneChris Simmonds
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devicesChris Simmonds
 
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Chris Simmonds
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOChris Simmonds
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded LinuxChris Simmonds
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiChris Simmonds
 
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...Kuralamudhan Ramakrishnan
 
Android rpi-csimmonds-fosdem-2019
Android rpi-csimmonds-fosdem-2019Android rpi-csimmonds-fosdem-2019
Android rpi-csimmonds-fosdem-2019Chris Simmonds
 
A Skype case study (2011)
A Skype case study (2011)A Skype case study (2011)
A Skype case study (2011)Vasia Kalavri
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorSatya Harish
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of playChris Simmonds
 
Docker Enterprise Deployment Planning
Docker Enterprise Deployment PlanningDocker Enterprise Deployment Planning
Docker Enterprise Deployment PlanningStephane Woillez
 

What's hot (20)

How we test tvideo at skype
How we test tvideo at skypeHow we test tvideo at skype
How we test tvideo at skype
 
Embedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphoneEmbedded Android: Android beyond the smartphone
Embedded Android: Android beyond the smartphone
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)
 
Manage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleManage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycle
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devices
 
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded Linux
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
 
Bring Out the Best in Embedded Computing
Bring Out the Best in Embedded ComputingBring Out the Best in Embedded Computing
Bring Out the Best in Embedded Computing
 
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
ONS 2018 LA - Intel Tutorial: Cloud Native to NFV - Alon Bernstein, Cisco & K...
 
Android rpi-csimmonds-fosdem-2019
Android rpi-csimmonds-fosdem-2019Android rpi-csimmonds-fosdem-2019
Android rpi-csimmonds-fosdem-2019
 
A Skype case study (2011)
A Skype case study (2011)A Skype case study (2011)
A Skype case study (2011)
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of play
 
NFV features in kubernetes
NFV features in kubernetesNFV features in kubernetes
NFV features in kubernetes
 
Docker Enterprise Deployment Planning
Docker Enterprise Deployment PlanningDocker Enterprise Deployment Planning
Docker Enterprise Deployment Planning
 

Similar to Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2

The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution ProjectYoshitake Kobayashi
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2Vincent Mercier
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?GlobalLogic Ukraine
 
Docker and the K computer
Docker and the K computerDocker and the K computer
Docker and the K computerPeter Bryzgalov
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
 
Version your build process as you version your code
Version your build process as you version your codeVersion your build process as you version your code
Version your build process as you version your codeVincent Latombe
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)William Yeh
 
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...DevDay.org
 
Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration BusGeza Geleji
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryDocker, Inc.
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗William Yeh
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovskyphp-user-group-minsk
 

Similar to Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2 (20)

The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?
 
Docker and the K computer
Docker and the K computerDocker and the K computer
Docker and the K computer
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
Version your build process as you version your code
Version your build process as you version your codeVersion your build process as you version your code
Version your build process as you version your code
 
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
 
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
 
Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration Bus
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗
 
spack_hpc.pptx
spack_hpc.pptxspack_hpc.pptx
spack_hpc.pptx
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 

More from Qualcomm Developer Network

How to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersHow to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersQualcomm Developer Network
 
Making an on-device personal assistant a reality
Making an on-device personal assistant a realityMaking an on-device personal assistant a reality
Making an on-device personal assistant a realityQualcomm Developer Network
 
Connected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of EverythingConnected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of EverythingQualcomm Developer Network
 
Android Tools for Qualcomm Snapdragon Processors
Android Tools for Qualcomm Snapdragon Processors Android Tools for Qualcomm Snapdragon Processors
Android Tools for Qualcomm Snapdragon Processors Qualcomm Developer Network
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Developer Network
 
How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption Qualcomm Developer Network
 
LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More Qualcomm Developer Network
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityQualcomm Developer Network
 
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Qualcomm Developer Network
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Qualcomm Developer Network
 
Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Qualcomm Developer Network
 
Bridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalBridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalQualcomm Developer Network
 
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Developer Network
 
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)Qualcomm Developer Network
 

More from Qualcomm Developer Network (20)

How to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersHow to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR Viewers
 
What consumers want in their next XR device
What consumers want in their next XR deviceWhat consumers want in their next XR device
What consumers want in their next XR device
 
More Immersive XR through Split-Rendering
More Immersive XR through Split-RenderingMore Immersive XR through Split-Rendering
More Immersive XR through Split-Rendering
 
Making an on-device personal assistant a reality
Making an on-device personal assistant a realityMaking an on-device personal assistant a reality
Making an on-device personal assistant a reality
 
Connected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of EverythingConnected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of Everything
 
Android Tools for Qualcomm Snapdragon Processors
Android Tools for Qualcomm Snapdragon Processors Android Tools for Qualcomm Snapdragon Processors
Android Tools for Qualcomm Snapdragon Processors
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
 
How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption
 
LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything Connectivity
 
The Future Mobile Security
The Future Mobile Security The Future Mobile Security
The Future Mobile Security
 
Get Educated on Education Apps
Get Educated on Education Apps Get Educated on Education Apps
Get Educated on Education Apps
 
Bringing Mobile Vision to Wearables
Bringing Mobile Vision to Wearables Bringing Mobile Vision to Wearables
Bringing Mobile Vision to Wearables
 
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
 
Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything
 
Bridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalBridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with Gimbal
 
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
 
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
 
Android Platform Debugging & Development
Android Platform Debugging & Development Android Platform Debugging & Development
Android Platform Debugging & Development
 

Recently uploaded

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2

  • 1. Qualcomm Developer Network Presents Developing for Industrial IoT with Embedded Linux OS on DragonBoard™ 410c by Timesys University SESSION 2: Application Development for Embedded Linux® Co-sponsored by Qualcomm Technologies, Inc. and Arrow Electronics
  • 2. www.timesys.com ©2017 Timesys Corp. Session 2 Application Development for Embedded Linux® Maciej Halasz, Vice President of Technology Timesys Corporation
  • 3. www.timesys.com ©2017 Timesys Corp. 3 Webinar Series This is one of a 4-part webinar series Developing for Industrial IoT with Linux OS on DragonBoard™ 410c to explore the process of building an embedded Linux based device using the Qualcomm® Snapdragon™ 410E powered DragonBoard 410c development board fromArrow Electronics. With topics that cover build systems, deployment strategy, designing-in and managing security, device appearance and ease of user interaction, you’ll gain insight into various aspects of technology and design decisions developers face when choosing to build embedded Linux based products for this increasingly demanding and expanding connected world.All sessions in this Qualcomm Developer Network sponsored series are designed to provide hands-on experience throughout the entire development process.  Session 1: Introduction to DragonBoard 410 SoC and Starting Development of Your Embedded Linux based “Industrial Internet of Things” (IIoT) Device • Setup for designing IIoT products • How to assemble and deploy initial BSP  Session 2: Application Development for Embedded Linux • Application development environment setup • How to reflect product requirements in the BSP • Communication in the IIoT system  Session 3: Building a Cutting-Edge User Interface with Qt® • Developing modern, rich UIs for factory terminals  Session 4: Embedded Products Security • Designing security-rich devices Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
  • 4. www.timesys.com ©2017 Timesys Corp. 4 Recap of the previous session  What we did: • Went through the process of flashing rescue and Linux images to the DragonBoard 410c • Discussed the high level requirements of the IIoT system • Learned about OpenEmbedded Reference Platform Build (RPB) BSP from Linaro™/96Boards™ • Setup the OpenEmbedded RPB on a host PC • Rebuilt the rpb-console-image locally  Key takeaways: • OpenEmbedded RPB BSP ≠ Yocto Project® BSP – Use same BitBake build engine but different BSP structure • Must use a micro SD card to rescue the board • Reference images provided by 96Boards – Can also receive them from Timesys® • Linux support available – Forum: 96Boards – Ticket-based: Timesys
  • 5. www.timesys.com ©2017 Timesys Corp. 5 Session 2 — Agenda  IIoT Application requirements considerations • Hardware • Software  Reflecting API requirements in OpenEmbedded RPB Linux BSP • Customizations  Application Development Environment setup  Application Development • IDE based C/C++ development/deployment/debugging • Data gathering/classification from IIoT end points • Application logic development • System analysis and tuning – Profiling – Tracing CLICK HERE TO VIEW WEBINAR RECORDING
  • 6. www.timesys.com ©2017 Timesys Corp. 6 Industrial IoT Product Requirements
  • 7. www.timesys.com ©2017 Timesys Corp. 7 IIoT point requirements  Requirements are industry process-specific  Topography of IIoT can vary  Requirements typically include • Connectivity: – Bluetooth® – Ethernet ® – WiFi™ – BUS • Sensors: – Discrete – Continuous • Sensor examples – Temperature – Pressure – Movement – ON/OFF HUB/Concentrator Autonomous Decision Humidity & Temperature Accelerometer & Gyroscope Luminosity & Color Detection Pressure Sensing Magnetic Sensor
  • 8. www.timesys.com ©2017 Timesys Corp. 8 Requirements summary  Hardware • DragonBoard 410c • Sensor module  Software (DragonBoard 410c only) • LTS Linux • Root filesystem APIs: – Baseline (Boot Linux) – BlueZ (Bluetooth LE) – Debug and Profiling Tools – OpenSSL ™ + OpenSSH (Secure Shell) – Wireless tools (WiFi) • Application shall be written in C++ • Application shall: – Gather data via BLE from sensors – Analyze the information and perform an action:  Alert – light is too bright  Robotic arm is moving in direction XYZ CSR1010 SensiBLE CSR chipsets are a product of Qualcomm Technologies, International
  • 9. www.timesys.com ©2017 Timesys Corp. 9 Reflecting Software Requirements in OpenEmbedded RPB BSP for the DragonBoard 410c
  • 10. www.timesys.com ©2017 Timesys Corp. 10 OpenEmbedded RPB — BSP customizations  There are many ways and processes to customize OE RPB BSP • Driven by the customization type and scope • Examples: – Adding a new API to OpenEmbedded RPB BSP – Modifying API package configuration – Modifying API code – Defining a new RFS content – Extending OpenEmbedded RPB BSP to support custom hardware  Customizations for our product • Focusing on the RFS – APIs • Adding required software to the reference BSP • Process we will follow: 1. Create a product specific metalayer 2. Develop a recipe for an API package 3. Extend RFS definition to include required APIs 4. Build the customized OpenEmbedded RPB BSP/SDK
  • 11. www.timesys.com ©2017 Timesys Corp. 11 OpenEmbedded RPB customizations (1)  Dedicated Metalayer • Metalayer is a group of files – recipes, configuration files, which provide a support for a specific feature or functionality • Organized under metalayer directory • Examples of existing metalayers – meta-qcom – meta-qt5 • Provides organized approach to defining new features/functionality • Allows us to overwrite/extend functionality defined in other metalayers OpenEmbedded (meta-openembedded) Distribution (meta-rpb) Hardware specific BSP (meta-96boards, meta-qcom) UI specific (meta-qt5) Dev project specific (meta-custom) Metalayer library: https://layers.openembedded.org
  • 12. www.timesys.com ©2017 Timesys Corp. 12 OpenEmbedded RPB customizations (2)  Process • Copy one of existing metalayers and rename it i.e. • Remove existing recipe directories • Create your own recipes directory • Change name in conf/layer.conf • Add new metalayer to the conf/bblayers.conf file in your BSP build directory $ cp –r meta-backports meta-companyX $ cd meta-companyX $ rm –rf browser* COPYING* core meta* openembedded* README $ mkdir recipes-iiot
  • 13. www.timesys.com ©2017 Timesys Corp.www.timesys.com 13  Adding a new API • Requires a new recipe • Can be added in the dedicated metalayer • Create recipes-iiot directory • Inside, create a directory for every package you are adding • Save the recipe in a package/API folder • Recipe can be generated with a recipetool as follows: OpenEmbedded RPB customizations (3) Note: New meta-companyX layer and recipes will be available to you for download after this session. $ recipetool create -o gattlib.bb -N gattlib -V 1.0 -a git://github.com/labapart/gattlib.git
  • 14. www.timesys.com ©2017 Timesys Corp. 14 LAB 1 — OpenEmbedded RPB BSP customization  Create a meta-companyX  Inside the new layer create recipes-iiot directory  Add gattlib API • Create needed directory structure • Generate a gattlib.bb recipe with recipetool • Introduce needed changes – Licensing – Packaging  Add meta-companyX to bblayers
  • 15. www.timesys.com ©2017 Timesys Corp. 15 OpenEmbedded RPB customizations (4)  Extending BSP filesystem  Process: • Copy the original rpb-console-image.bb to meta-companyX • Copy also rpb-minimal-image.bb • Edit the rpb-console-image-session2.bb – add gattlib package $ cd meta-companyX/recipes-iiot $ mkdir images $ cp ../../meta-rpb/recipes-samples/images/rpb-console-image.bb images/rpb-console-image-session2.bb
  • 16. www.timesys.com ©2017 Timesys Corp. 16 OpenEmbedded RPB customizations (5)  Add debug utilities to the RFS via conf/auto.conf file  Process: • From the build-rpb directory open the conf/auto.conf for editing – Use the EXTRA_IMAGE_FEATURES and IMAGE_INSTALL_append variables to extend RFS definition  Add “tools-profile” and “tools-debug” - for i.e. lttng, prof, etc  Build and install a Valgrind package
  • 17. www.timesys.com ©2017 Timesys Corp. 17 OpenEmbedded RPB customizations (6)  Build the new, custom image  Run bitbake from the build directory  Deploy the image to the DragonBoard 410c • DragonBoard 410c with existing software can be put in the fastboot mode with the following procedure – Power down the system – Press and Hold S4 button (-) – Power on the system – Connect from host with fastboot and flash new images using commands learned in session 1 $ bitbake rpb-console-image-session2 $ bitbake rpb-console-image-session2 –c populate_sdk
  • 18. www.timesys.com ©2017 Timesys Corp. 18 LAB 2 — OpenEmbedded RPB BSP customization  Extend rpb-console-image • Create a custom rpb-console-image-session2.bb based on original rpb-console- image.bb • Add the gattlib package to the rpb-console-image-session2.bb  Install additional debug and profiling tools in the RFS  Build the custom BSP image and the matching SDK  Install the custom BSP image on the DragonBoard 410c  Install the custom SDK on the Host PC
  • 19. www.timesys.com ©2017 Timesys Corp. 19 Application Development Setup
  • 20. www.timesys.com ©2017 Timesys Corp. 20 IDE considerations  Integrated Development Environments help greatly with software development • Keep the workspace organized • Promote and support collaborative development • Simplify and accelerate coding, debugging and software optimization  Eclipse™ framework — most popular IDE baseline leveraged by many tools • TimeStorm™ — IDE used in this session  Development environment Setup
  • 21. www.timesys.com ©2017 Timesys Corp. 21 TimeStorm IDE  Integrated Development Environment (IDE)  Extends Eclipse Project  Focus: • Embedded systems • SDK management • Target management • Application development • Linux kernel development • Device driver development • Debugging (kernel, application) • Profiling – Gprof – OProfile • Code coverage • Memory leak analysis • Tracing (LTTng) • Factory™/Yocto Project® /OpenEmbedded integration
  • 22. www.timesys.com ©2017 Timesys Corp. 22 Host PC/Linux IDE and Cross-Environment TimeStorm Local OpenEmbedded RPB SDK Recognizes Automatically
  • 23. www.timesys.com ©2017 Timesys Corp. 23 Application Development
  • 24. www.timesys.com ©2017 Timesys Corp. 24 Application Development Environment Setup  Download TimeStorm ( http://linuxlink.timesys.com ) • Free registration required • You get free 30-day license for the fully featured IDE  Download and install Oracle® Java® JSE version 1.8 ( http://www.oracle.com/technetwork/java/javase/downloads/index.html )  Make sure both your DragonBoard 410c and your Host PC have IP address assigned Host PC
  • 25. www.timesys.com ©2017 Timesys Corp. 25 Connecting DragonBoard 410c via TCP/IP  DragonBoard 410c comes equipped with the WiFi chipset  Firmware is available and preinstalled in the custom RPB BSP we built  Procedure to connect to a WiFi router: 1. Show all connections 1. Show device status 2. View the list of available access points 3. Create a connection 1. Setup password (if needed) 2. Enable the connection $ nmcli connection show $ nmcli device status $ nmcli dev wifi list $ nmcli con add con-name WiFi ifname wlan0 type wifi ssid foonet $ nmcli con modify WiFi wifi-sec.key-mgmt wpa-psk $ nmcli con modify WiFi wifi-sec.psk mypassword $ nmcli con up WiFi Note: We can also use the UI based configuration tool called: nmtui
  • 26. www.timesys.com ©2017 Timesys Corp. 26 Gathering Sensor Data  Linux BSP deployed on DragonBoard 410c has Bluetooth enabled  Sensor board  Collects data from onboard sensors • Makes them available via BLE protocol  We need to: • Establish BLE connection • Receive sensor BLE messages • Process the information — analyze and trigger an action
  • 27. www.timesys.com ©2017 Timesys Corp. 27 Application Development (1) – BLE Protocol  GATT – Generic Attribute Profile • Defines a way two BLE devices exchange data • Use concepts of – Services – Characteristics • Requires that connection is already advertised – managed by GAP • GATT Connections are one-to-one (exclusive) – Once a BLE peripheral connects to DragonBoard 410c, it will stop advertising itself • In Linux we can manage communications with – gatttool (utility) – gattlib (programming API) Generic Access Profile (GAP) Security Manager (SM) Generic Attribute Profile (GATT) Attribute Protocol (ATT) Logical Link Control and Adaptation Protocol (L2CAP) Host-Controller (HCI) Link Layer (LL) Physical Layer (PHY) BLUEZChipset/Kernel
  • 28. www.timesys.com ©2017 Timesys Corp. 28 LAB 3 – Setup Application Development Environment  Start the IDE • Verify that the newly installed SDK has been discovered – Navigate in the IDE to: Window > Preferences > TimeStorm > SDKs > Yocto SDKs  Connect DragonBoard 410c to the wireless router using nmtui, obtain an IP address  Verify connection to the target • Use ping command from host to the target • Use IDEs Target Management – Setup the DragonBoard 410c — Use ssh and scp for connection – Verify connection with “Check Link” button
  • 29. www.timesys.com ©2017 Timesys Corp. 29 Application Development (2)  We will develop C application called IIoT Concentrator  Available advertised characteristics  The application shall: • Scan the hci0 interface • Discover BLE devices • Discover supported characteristics • Setup notifications on select characteristics – Temperature – Light – Free fall • Run analytics based on received data • Display on the console – Warning message – not enough light – Alert – Temperature too high – Info – Robotic arm moved fast down Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Feature RFU RFU RFU RFU Beam forming Acc Event Free Fall Sensor Fusion Sensor Fusion Compass Motion intensity Activity Carry Position Proximity Gesture Mems Gesture Pedometer Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Feature RFU ADPCM Sync Switch Direction of arrival ADPC Audio MicLevel Proximity Lux Acc Gyro Mag Pressure Humidity Temperature Battery Second Temperature Source: http://www.sensiedge.com/  Characteristics represented by a 32 bit value  Advertised characteristic: LUX 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x1000000
  • 30. www.timesys.com ©2017 Timesys Corp. 30 LAB 4 — C Application Development  IIoT Concentrator application source code review  Compile and deploy the application in TimeStorm  Deploy and run the code on the DragonBoard 410c  Debug application remotely on the DragonBoard 410c  Advanced analysis of the developed code • Verify code coverage • Profile application through instrumentation • Perform memory analysis searching for memory leaks • Trace the application execution in time
  • 31. www.timesys.com ©2017 Timesys Corp. 31 Questions? Source code, deployment images and SDK can be downloaded from linuxlink.timesys.com developer.qualcomm.com 96boards.org arrow.com timesys.com
  • 32. Thank you All data and information contained in or disclosed by this document is confidential and proprietary information of Qualcomm Technologies, Inc. and/or its affiliated companies and all rights therein are expressly reserved. By accepting this material the recipient agrees that this material and the information contained therein is to be held in confidence and in trust and will not be used, copied, reproduced in whole or in part, nor its contents revealed in any manner to others without the express written permission of Qualcomm Technologies, Inc. Nothing in these materials is an offer to sell any of the components or devices referenced herein. ©2017 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved. Qualcomm, Snapdragon and DragonBoard are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other products and brand names may be trademarks or registered trademarks of their respective owners. References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT. Follow us on: For more information, visit us at: www.qualcomm.com & www.qualcomm.com/blog