West is a command line tool that manages Zephyr projects. It initializes workspaces, updates repositories, and provides commands for common development tasks like building, flashing, and debugging. West separates the core tool functionality from Zephyr-specific extensions, allowing it to manage multiple projects. When initializing a workspace, West clones the main Zephyr repository and any dependencies, creating a reproducible development environment.
Presentation delivered at LinuxCon China 2017.
Zephyr is an upstream open source project for places where Linux is too big to fit. This talk will overview the progress we've made in the first year towards the projects goals around incorporating best of breed technologies into the code base, and building up the community to support multiple architectures and development environments. We will share our roadmap, plans and the challenges ahead of the us and give an overview of the major technical challenges we want to tackle in 2017.
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
Faites communiquer vos objets connectés avec la solution RIOT !
RIOT est un nano système d'exploitation open source, l’équivalent de Linux, pour l’internet des objets. Grâce aux standards de communication qu'il implémente, il vous permettra de développer facilement et de façon pérenne et sécurisée vos applications pour vos objets communicants et embarqués (agriculture connectée, suivi et gestion de bâtiments intelligents, petits automatismes, usine du futur ...).
Inria, l'institut national de recherche dédié au numérique, qui à French Tech Central connecte les entrepreneurs au meilleur de la recherche publique française, est un des membres co-fondateurs de la communauté mondiale des développeurs RIOT.
Intro to GitOps with Weave GitOps, Flagger and LinkerdWeaveworks
You may not think of "GitOps" and "service mesh" together – but maybe you should! These two wildly different technologies are each enormously capable independently, and combined they deliver far more than the sum of their parts: a single Git commit can control workflows customized for your exact situation by taking advantage of the service mesh's ability to measure and manipulate traffic anywhere in your application's call graph, and you can rest easy knowing that Git is preserving the complete configuration for your entire application every step of the way.
See how these technologies can work together to tackle complex problems in cloud-native applications.
What you’ll get out of this:
* Understand what GitOps and service meshes can - and can't - do for you.
* Understand basic operations with GitOps and Linkerd.
* Understand the basics of continuous deployment with Weave GitOps and Linkerd.
Presentation delivered at LinuxCon China 2017.
Zephyr is an upstream open source project for places where Linux is too big to fit. This talk will overview the progress we've made in the first year towards the projects goals around incorporating best of breed technologies into the code base, and building up the community to support multiple architectures and development environments. We will share our roadmap, plans and the challenges ahead of the us and give an overview of the major technical challenges we want to tackle in 2017.
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
Faites communiquer vos objets connectés avec la solution RIOT !
RIOT est un nano système d'exploitation open source, l’équivalent de Linux, pour l’internet des objets. Grâce aux standards de communication qu'il implémente, il vous permettra de développer facilement et de façon pérenne et sécurisée vos applications pour vos objets communicants et embarqués (agriculture connectée, suivi et gestion de bâtiments intelligents, petits automatismes, usine du futur ...).
Inria, l'institut national de recherche dédié au numérique, qui à French Tech Central connecte les entrepreneurs au meilleur de la recherche publique française, est un des membres co-fondateurs de la communauté mondiale des développeurs RIOT.
Intro to GitOps with Weave GitOps, Flagger and LinkerdWeaveworks
You may not think of "GitOps" and "service mesh" together – but maybe you should! These two wildly different technologies are each enormously capable independently, and combined they deliver far more than the sum of their parts: a single Git commit can control workflows customized for your exact situation by taking advantage of the service mesh's ability to measure and manipulate traffic anywhere in your application's call graph, and you can rest easy knowing that Git is preserving the complete configuration for your entire application every step of the way.
See how these technologies can work together to tackle complex problems in cloud-native applications.
What you’ll get out of this:
* Understand what GitOps and service meshes can - and can't - do for you.
* Understand basic operations with GitOps and Linkerd.
* Understand the basics of continuous deployment with Weave GitOps and Linkerd.
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
How to Debug IoT Agents Webinar - 17th April 2019
Corresponding webinar recording: https://youtu.be/FRqJsywi9e8
Chapter: IoT Agents
Difficulty: 3
Audience: Any Technical
Presenter: Jason Fox (Senior Technical Evangelist, FIWARE Foundation)
How to debug IoT Agents - investigating what goes wrong and how to fix it.
Automated Deployment and Management of Edge CloudsJay Bryant
This presentation discusses the challenges of cloud computing at the edge. From the exploding number of nodes, the need for integrated monitoring and zero touch discovery. We introduce Lenovo Open Cloud Automation, an automated framework built in collaboration with Red Hat to help address these challenges.
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Arnaud Le Hors
This presentation gives a quick technical overview of what Hyperledger Fabric is about and how to get started using it to develop a blockchain application.
The Internet of Things (IoT) is advancing at a tremendous rate. By 2020, more than 50 billion intelligent devices are expected to connect to and exchange information over the Internet.
This presentation examines the current role of open source software in the IoT build-out and how open source can shape the coming Internet of Things.
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...MediaTek Labs
Want to add Wi-Fi to your IoT project? This 30 minute webinar, presented by technical consultant Ajith KP, demonstrated how to program (using Arduino and Python) for peripheral sensors connected to the MediaTek LinkIt Smart 7688 Duo’s microcontroller and how to communicate between the microcontroller and the MT7688 SOC.
Three ways to undertake the peripheral programming for the MediaTek LinkIt Smart 7688 Duo were covered:
1) Using a primitive UART connection
2) Using the Firmata protocol
3) Using the Arduino Yun Bridge Library
A recording of the live event can be found at http://home.labs.mediatek.com/technical-mediatek-linkit-smart-7688-webinar-recording-available/
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersOPNFV
NetIDE is a EU-funded project that is known to the OpenDaylight community, because we have contributed a component to the Beryllium release. However, the full NetIDE ecosystem is much more. It is an extended SDN controller framework that allows users to cherry-pick the best of breed both for the network facing controller and the SDN framework for applications. In addition it provides an application composition engine that allows network operators to introduce software development concepts like code reusability in their production cycle. In this talk, I will introduce the whole Network Engine as well as the NetIDE Eclipse plugin that allows us to create SDN applications, test them and run them on the NetIDE engine and reflect on why we contributed what we contributed to OpenDaylight.
DevOps and Git: Solving for CI/CD at ScalePerforce
-Learn how to accelerate build performance across multiple Git repos
-Explore various scalable and high availability solutions for large, distributed teams
-Discover the best technical solutions for scaling your Git repos
Building specialized container-based systems with Moby: a few use cases
This talk will explain how you can leverage the Moby project to assemble your own specialized container-based system, whether for IoT, cloud or bare metal scenarios. We will cover Moby itself, the framework, and tooling around the project, as well as many of it’s components: LinuxKit, InfraKit, containerd, SwarmKit, Notary. Then we will present a few use cases and demos of how different companies have leveraged Moby and some of the Moby components to create their own container-based systems.
MQTT is by far the most popular Internet of Things protocol used in the largest professional IoT deployments worldwide. The protocol is so simple and versatile, that it can be used for private home automation projects as well as ultra-secure and highly scalable enterprise installations. This talk will show how a pure Java and open source technology stack can be used for IoT devices as well as backend applications for building next-generation IoT projects.
It's a pivotal challenge to update the software in embedded systems due to many restrictions such as unreliable network and power supply, limited bandwidth, harsh environment, etc. This slide aims to provide the background knowledge and the open source tool to achieve the software update in embedded systems.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
How to Debug IoT Agents Webinar - 17th April 2019
Corresponding webinar recording: https://youtu.be/FRqJsywi9e8
Chapter: IoT Agents
Difficulty: 3
Audience: Any Technical
Presenter: Jason Fox (Senior Technical Evangelist, FIWARE Foundation)
How to debug IoT Agents - investigating what goes wrong and how to fix it.
Automated Deployment and Management of Edge CloudsJay Bryant
This presentation discusses the challenges of cloud computing at the edge. From the exploding number of nodes, the need for integrated monitoring and zero touch discovery. We introduce Lenovo Open Cloud Automation, an automated framework built in collaboration with Red Hat to help address these challenges.
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Arnaud Le Hors
This presentation gives a quick technical overview of what Hyperledger Fabric is about and how to get started using it to develop a blockchain application.
The Internet of Things (IoT) is advancing at a tremendous rate. By 2020, more than 50 billion intelligent devices are expected to connect to and exchange information over the Internet.
This presentation examines the current role of open source software in the IoT build-out and how open source can shape the coming Internet of Things.
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...MediaTek Labs
Want to add Wi-Fi to your IoT project? This 30 minute webinar, presented by technical consultant Ajith KP, demonstrated how to program (using Arduino and Python) for peripheral sensors connected to the MediaTek LinkIt Smart 7688 Duo’s microcontroller and how to communicate between the microcontroller and the MT7688 SOC.
Three ways to undertake the peripheral programming for the MediaTek LinkIt Smart 7688 Duo were covered:
1) Using a primitive UART connection
2) Using the Firmata protocol
3) Using the Arduino Yun Bridge Library
A recording of the live event can be found at http://home.labs.mediatek.com/technical-mediatek-linkit-smart-7688-webinar-recording-available/
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersOPNFV
NetIDE is a EU-funded project that is known to the OpenDaylight community, because we have contributed a component to the Beryllium release. However, the full NetIDE ecosystem is much more. It is an extended SDN controller framework that allows users to cherry-pick the best of breed both for the network facing controller and the SDN framework for applications. In addition it provides an application composition engine that allows network operators to introduce software development concepts like code reusability in their production cycle. In this talk, I will introduce the whole Network Engine as well as the NetIDE Eclipse plugin that allows us to create SDN applications, test them and run them on the NetIDE engine and reflect on why we contributed what we contributed to OpenDaylight.
DevOps and Git: Solving for CI/CD at ScalePerforce
-Learn how to accelerate build performance across multiple Git repos
-Explore various scalable and high availability solutions for large, distributed teams
-Discover the best technical solutions for scaling your Git repos
Building specialized container-based systems with Moby: a few use cases
This talk will explain how you can leverage the Moby project to assemble your own specialized container-based system, whether for IoT, cloud or bare metal scenarios. We will cover Moby itself, the framework, and tooling around the project, as well as many of it’s components: LinuxKit, InfraKit, containerd, SwarmKit, Notary. Then we will present a few use cases and demos of how different companies have leveraged Moby and some of the Moby components to create their own container-based systems.
MQTT is by far the most popular Internet of Things protocol used in the largest professional IoT deployments worldwide. The protocol is so simple and versatile, that it can be used for private home automation projects as well as ultra-secure and highly scalable enterprise installations. This talk will show how a pure Java and open source technology stack can be used for IoT devices as well as backend applications for building next-generation IoT projects.
It's a pivotal challenge to update the software in embedded systems due to many restrictions such as unreliable network and power supply, limited bandwidth, harsh environment, etc. This slide aims to provide the background knowledge and the open source tool to achieve the software update in embedded systems.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
HEAP SORT ILLUSTRATED WITH HEAPIFY, BUILD HEAP FOR DYNAMIC ARRAYS.
Heap sort is a comparison-based sorting technique based on Binary Heap data structure. It is similar to the selection sort where we first find the minimum element and place the minimum element at the beginning. Repeat the same process for the remaining elements.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
2. • Open source real time operating system
• Vibrant Community participation
• Built with safety and security in mind
• Cross-architecture with broad SoC and
development board support.
• Vendor Neutral governance
• Permissively licensed - Apache 2.0
• Complete, fully integrated, highly
configurable, modular for flexibility
• Product development ready using LTS
includes security updates
• Certification ready with Auditable
Zephyr Project
Open Source, RTOS, Connected, Embedded
Fits where Linux is too big
Kernel
OS Services
Application Services
HAL
3rd Party Libraries
Zephyr OS
8. Zephyr OS: Long Term Support (LTS - 1.14)
It is:
• Product Focused
• Current with latest Security Updates
• Compatible with New Hardware: We will make point releases throughout
the development cycle to provide functional support for new hardware.
• Tested: Shorten the development window and extend the Beta cycle to
allow for more testing and bug fixing
• Supported for 2 years
It is not:
• A Feature-Based Release: focus on hardening functionality of existing
features, versus introducing new ones.
• Cutting Edge
9. Zephyr OS: Long Term Support (LTS - 1.14)
9
Delivering bug fixes and latest security updates!
10. Vulnerability Management Process
●Early in 2020 the project received a
bulk vulnerability report
●Highlighted need to better document
vulnerability management processes
●Added vulnerability reporting to project
docs and top level web pages
●Process:
○Embargo period
○Stages issue goes through
○Working with maintainers to see
issues fixed
○Public disclosure at end
11. Project Security Documentation
●Project Security Overview
●Started with documents from other
projects
●Built around Secure Development,
Secure Design, and Security Certification
●Ongoing process, rather than something
to just be accomplished
12. CVE Numbering Authority with PSIRT
●PSIRT is Subset of Security Subcommittee
●CNA: CVE Numbering Authority
●Registered with MITRE as the numbering authority for the
project. We issue our own CVEs
●Must satisfy MITRE documentation and process requirements
13. Recent Security Report
●NCC Group reported ~26 issues
●Critical, High and Medium made
into JIRA tickets
●These have now been fixed
●Embargo is past, everything
updated now in the vulnerability
report page
●Most issues identified resulted in 1
or more CVEs being reported
14. Results from the Report
●Most issues were fixed in reasonable
time and included in releases
●One issue, recommendation is to
disable
●Increased embargo from 60 to 90 days
○Zephyr isn’t an end product, vendors need
time to incorporate fixes into products
○Zephyr needs alert system to notify vendors
●Continue to improve process
15. Vulnerability Alert Registry
●For Embargos to work, product
makers need to be notified early
so they can remediate
●Created Vulnerability Registry for
vendors to register to receive
these alerts for free
●Goal: Zephyr to fix issues within
30 days and then give product
makers 60 days before
publication of vulnerability
21. Core modules: vendor HALs, crypto,
AMP, filesystems
Zephyr OS
• Kernel and drivers
• OS services such as IPC, Logging, file
systems, connectivity stacks, crypto
Zephyr Project
• SDK, west, tools and development
environment
• Additional middleware and features
• Device Management and Bootloader
Zephyr Community
• 3rd Party modules and libraries
• Support for Zephyr in 3rd party projects,
for example: micro-ROS, Tensorflow
LITE, Micropython, Jerryscript
Zephyr Ecosystem
Zephyr “Community”
Zephyr Project
Zephyr OS
Kernel / drivers
OS Services
Application Services
• Scheduler
• Kernel objects and services
• low-level architecture and board support
• power management hooks and low level
interfaces to hardware
• Peripheral and hardware drivers
• Platform specific drivers
• Generic implementation of I/O APIs
• File systems, Logging, Debugging and IPC
• Cryptography Services
• Networking and Connectivity
• Device Management
• High Level APIs
• Access to standardized data models
• High Level networking protocols
Kernel / drivers
OS Services and Low level APIs
Application Services
Main repository
Core modules: vendor HALs, crypto,
AMP, filesystems
22. Zephyr Repositories
• Main (or m anifest repository):
https://github.com /zephyrproject-rtos/zephyr
• Contains all core Zephyr code
• All (or almost) code is Apache v2 licensed
• Externally m aintained code is in separate repositories
• Vendor HALs (CMSIS, stm32cube, mcux, nrfx, etc.)
• Crypto (mbedTLS)
• Filesystems (LittleFS, FATFS, etc.)
• Libraries (OpenAMP, LoRA, LVGL, OpenThread, Canopennode, etc.)
• Clean separation of Zephyr-specific code and 3rd-
party projects
• Our m eta-tool, west, m anages the repos
23. Build and configuration systems
• Zephyr is cross-platform and can build, flash and debug on all m ajor
Operating System s (Windows, m acOS, Linux)
• CMake
• Industry standard build system
• Cross-platform
• Extensible and script-based
• Kconfig
• Configuration system originally developed for the Linux kernel
• Implemented in Python (so cross-platform)
• Devicetree
• Standards-based hardware description language
• All references resolved at build-time
• Access from source code via a macro API
24. Architecture
• Highly Configurable, Highly Modular
• Cooperative and Preemptive Threading
• Memory and Resources are typically
statically allocated
• Integrated device driver interface
• Memory Protection: Stack overflow
protection, Kernel object and device driver
permission tracking, Thread isolation
• Bluetooth® Low Energy (BLE 5.1) with both
controller and host, BLE Mesh
• 802.15.4 OpenThread
• Native, fully featured and optimized
networking stack
Platform
Radios
Power Management
Kernel Services / Schedulers
Sensors Crypto HW
I2C
SPI
UART
GPIO
…
File
Systems
Logging/
Tracing
Settings
Crypto
IPC
Flash
Sensors
...
Low Level API
Device
Mgmt
802.15.4
IPv6/IPv4
TCP/UDP
BLE Wi-Fi CAN ...
6LoWPAN
Thread
TLS
DTLS
CoAP
HTTP
MQTT
LWM2M
…
Application
Smart Objects / High Level APIs / Data Models
Kernel
OS
Services
Application
Services
Fully featured OS allows developers to focus on the application
25. Flexible and modern RTOS kernel
• Single core, SMP and AMP (via IPM driver) support
• Cooperative and preemptible threads
• Extensive set of synchronization and data-passing primitives
• User mode (userspace):
• Isolates user mode threads from kernel and each other
• Exposes a subset of kernel and driver primitives to user mode threads
• Validates all parameters through system calls
• Efficient device driver model
• Storage of constant driver data in ROM
• Direct access to Devicetree nodes
• Common APIs for all hardware implementations
Kernel and drivers
26. • Build from scratch for Zephyr
• Using Zephyr native kernel concepts
• Dual mode IPv4/v6 stack
• TCP v4/v6, second generation
• DHCP v4; IPv4 autoconf; IPv6 SLAAC; DNS; SNTP
• Multiple network interfaces support
• Time Sensitive Networking support
• 802.1QAV API
• 802.1AS (gPTP, generalized Precision Time Protocol)
• BSD Sockets-based API
• TLS/DTLS supported via setsockopt call
• RAW socket support for IP and non-IP traffic
• Supports IP offloading
• Transparent for application using Socket API
• Compliance and security tested
• >500 automated tests for TCP level using commercial
products like IWL Maxwell Pro
Native IP Stack
27. High-Level Protocols
• CoAP v1
• MQTT Client v3.1.1
• HTTP
• Native HTTP client
• Server is implemented using
CivetWEB library
• Websocket client
• SOCKS5
• LWM2M
• Thread
• Supported by OpenThread project
Zephyr Networking Features
Supported technologies
• Ethernet
• Ethernet over USB
• WiFi with IP offload
• IEEE 802.15.4 with 6Lo
• Bluetooth LE with 6Lo
• CANbus with 6Lo
• PPP
• Serial modem interface
28. • Bluetooth 5.1 compliant
• Low Energy & experimental
Bluetooth Classic
• Multiple HCI transports
• Qualified (as of 1.14.1) for LE
and Mesh
• Can be built separately or
combined with the controller
• Active community developing
upcoming standards
• Mesh & GATT reference stack in
Bluetooth SIG training materials
Bluetooth Host and Mesh
29. Second-generation open source BLE software Controller:
• Bluetooth 5.1 compliant and qualified (v1.14.1)
• Split design with Upper and Lower Link Layers
• Support for multiple BLE radio hardware architectures
• Nordic nRF5 on Arm Cortex-M (Arm v6-M, v7-M and v8-M)
• VEGAboard on RISC-V (RV32)
• Proprietary radio and ISA (downstream only)
• Support for both Big and Little-Endian architectures
• Asynchronous handling of procedures in the ULL
• Enhanced radio utilization (99% on continuous 100ms scan)
• Latency resilience: Approx 100uS vs 10uS, 10x improvement over 1st gen
• CPU and power usage: About 20% improvement over 1st gen
• Multiple advertiser and scanner instances
Bluetooth Low Energy Controller
30. Zephyr USB Device Stack
• Supports multiple MCU families (STM32, Kinetis, nRF, SAM, …)
• USB 2.0 support
• Full and High speed support
• Supported classes:
• CDC ACM, ECM, EEM
• RNDIS
• HID
• Mass Storage
• Bluetooth
• Device Firmware Update
• Tight integration with the RTOS
• Flexible descriptor instancing
• Native execution support for emulated development on Linux
• WebUSB support
31. Native Execution on a POSIX-compliant OS
• Build Zephyr as native Linux application
• Enable large scale simulation of network
or Bluetooth tests without involving HW
• Improve test coverage of application
layers
• Use any native tools available for
debugging and profiling
• Develop GUI applications entirely on the
desktop
• Optionally connect to real devices with
TCP/IP, Bluetooth, and CAN
• Reduce requirements for HW test
platforms during development
32. POSIX API on Zephyr
Provides familiar API to non-embedded programmers,
especially to Linux developers
Enable re-use (portability) of existing libraries
based on POSIX APIs
• Provides efficient subset appropriate for small
(MCU) embedded systems
• POSIX API subset is increasingly popular
operating system abstraction layer (OSAL) for IoT
• Supports subsets of PSE51, PSE52, and BSD
sockets API Hardware MCU/SoC
BSP
Zephyr Kernel
Middleware
Networking
Application
File System
BSD Sockets
POSIX PSE52
POSIX
PSE51
POSIX support in Zephyr
https://docs.zephyrproject.org/latest/guides/portability/posix.html
33. and much more...
• Powerful logging subsystem with multiple backends
• Fully-featured shell for interaction with the system
• Device Firmware Update support via multiple mechanisms
• MCUMgr (UART, BLE, TCP/IP)
• Updatehub (TCP/IP)
• Hawkbit (HTTP)
• Display support with LVGL
• Multiple filesystems and storage mechanisms
• C++ support
34. Thank you for watching
Carles Cufí, Nordic Sem iconductor
36. Outline: Presenter: Marti Bolivar
- Zephyr and west developer
- What we’re doing today:
- Overview of what’s available in west
- Good starting points for experimenting and getting help
- Helpful if you’ve already gone through the Zephyr Getting Started Guide
for v2.3.0, but not required:
https://docs.zephyrproject.org/2.3.0/getting_started/index.htm l
37. What is west?
Zephyr’s “m eta-tool” or “swiss arm y knife,” used for m any com m on
developm ent workflows.
An extensible com m and line tool for m anaging a Zephyr workspace:
https://docs.zephyrproject.org/2.3.0/guides/west/index.htm l
Recom m ended but not required:
https://docs.zephyrproject.org/2.3.0/guides/west/without-west.htm l
Developed in its own git repository:
https://github.com /zephyrproject-rtos/west
38. West “proper” vs. Zephyr uses
West “proper”
● Workspace commands
(init , update , etc.)
● Configuration command
(config )
● APIs for adding extension
commands (external plug-
ins)
Zephyr’s west usage and
extensions
● Zephyr module integration
● Extension commands
(build , flash , debug ,
etc.)
In the zephyr repository
In the west repository
39. Creating a workspace: west init
● zephyrproject: the west workspace’s top
level directory, or topdir. The . we s t
directory marks the topdir.
● zephyr: the manifest repository (in this
example)
● .west/config: the workspace local
configuration file; tells west that “zephyr”
is the manifest repository
● west.yml: the manifest file; says what
other git repositories should be pulled in via
we s t upda t e
Vocabulary
$ west init - m ht t ps : / / gi t hub. c om/ z ephyr pr oj e ct - r t os / ze phyr
- - mr v2. 3. 0 z e phyr pr oj e ct
Results (simplified)
z e phyr pr oj e c t
├── . we s t
│ └── c onf i g
└── z e phyr
└── we s t . yml
40. Manifest file, west.yml
Sim plified contents of
zephyr/west.ym l in v2.3.0.
• remotes : where projects
can be fetched
• projects : a list of git
repositories in the
workspace
• self : configures the
manifest repository
(zephyr) itself
42. Updating a workspace: west update
● Modules: third-party code with Zephyr
integration, can be integrated into Zephyr
applications, device drivers, etc.
● Includes things like file systems, vendor
HALs, etc.
● A small number west projects live outside
the modules directory. Currently just the
mcuboot bootloader and some additional
developer tools repositories
Vocabulary
$ west update # r un i ns i de t he “ z e phyr pr oj e c t ” wor ks pa c e
Results (simplified)
z e phyr pr oj e c t
├── boot l oa de r
│ └── mc uboot
├── modul e s
│ └── f s
│ └── f a t f s
├── . we s t
│ └── c onf i g
└── z e phyr
└── we s t . yml
43. Other workspace commands
Som e additional workspace m anagem ent com m ands:
list print inform ation about projects in the west m anifest
manifest slice and dice the west m anifest
diff "git diff" for one or m ore projects
status "git status" for one or m ore projects
forall run a com m and in one or m ore local projects
For a com plete list of com m ands, including extensions, run:
$ west help
44. Zephyr extension commands
Som e additional Zephyr developm ent extension com m ands:
build com pile zephyr applications
flash flash a com piled application to a board
debug flash an application and enter a debugger (usually GDB)
debugserver flash an application and start a debug server
attach attach a debugger to a board without flashing
45. Most common extension issue
If you see this when running an extension like west build :
west: error: argument <command>: invalid choice: 'build'
(...)
Then you’re not in your workspace, so the extension can’t be found.
See this item on the troubleshooting page:
https://docs.zephyrproject.org/2.3.0/guides/west/troubleshooting.html#invalid
-choice-build-or-flash-etc
46. West configuration files
● “INI-like” (Python configparser syntax)
● We saw .west/config earlier; that’s the workspace configuration file
● You can also set user- and system-wide configuration values
● Run west config to manage your configuration
● See also: https://docs.zephyrproject.org/2.3.0/guides/west/config.html
47. Help and troubleshooting
Docum entation: West page in the Zephyr guides and Troubleshooting
west . Also:
$ west help
List all com m ands and one line help for each (including extensions).
$ west <command> help
Help for a specific <com m and>, like west help init
$ west - v <command>
Enable verbose output for <command>, like west - v init