Nordic Semiconductor Asa · OSL:NOD

Nordic Semiconductor Asa — Technical Presentation (September 2024)

49 slides from Nordic Semiconductor Asa's technical presentation, September 2024

  1. Slide 1: Zephyr Project: Unlocking Innovation with an Open Source RTOS

    Zephyr Project: Unlocking Innovation with an Open Source RTOS Kate Stewart, The Linux Foundation Carles Cufi, Nordic Semiconductor Marti Bolivar, Nordic Semiconductor Copyright © 2020 The Linux Foundation. Made avaiilable under Attribution-ShareAlike 4.0 International

  2. Slide 2: Zephyr Project

    Zephyr Project • Open source real time operating system Open Source, RTOS, Connected, Embedded Fits where Linux is too big • Vibrant Community participation • Built with safety and security in mind • Cross-architecture with broad SoC and Zephyr OS development board support. 3rd Party Libraries • Ven

  3. Slide 3: Products Running Zephyr Today

    Products Running Zephyr Today Grush Gaming hereO Proglove Rigado IoT Gateway Distancer Toothbrush Smartwatch Ellcie-Healthy Smart Intellinium Safety Adero Tracking Anicare Reindeer GNARBOX 2.0 SSD Sentrius Connected Eyewear Shoes Devices Tracker GEPS Point Home Alarm RUUVI Node HereO Core Box Safety

  4. Slide 4: Zephyr Supported Hardware Architectures

    Zephyr Supported Hardware Architectures Cortex-M, Cortex-R & Cortex-A X86 & x86_64 32 & 64 bit Xtensa Coming soon:

  5. Slide 5: Development Boards Shipping with Zephyr Today

    Development Boards Shipping with Zephyr Today Nordic Thingy91 Phytec Reel Board Icarus (Adafruit Feather) - Actinius Antmicro Badge Phytec Link Board BASE Electronuts Papyr

  6. Slide 6: Board Support – 200+ and growing

    Board Support – 200+ and growing Arduino Due Nucleo 103RB Adafruit Feather Nucleo64 L476RG Nucleo F411RE NRF91 pca10090 Nucleo F334R8 Synopsys EMSK Minnowboard Altera MAX10 Nucleo 401RE Vega Board ARM V2M MPS2 STM3210c Atmel SAM E70 NRF51 NXP FRDM K64F NRF52 Seed Carbon TI Launchpad Wifi BBC Microbi

  7. Slide 7: Code Repositories

    Code Repositories Backports & Keeping Configurations in Sync Long Term Development Support Auditable Community Safety & Security “Stable” Contributions Processes via DCO Certifiable Releases LTS Releases Releases

  8. Slide 8: Zephyr OS: Long Term Support (LTS - 1.14)

    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 t

  9. Slide 9: Zephyr OS: Long Term Support (LTS - 1.14)

    Zephyr OS: Long Term Support (LTS - 1.14) Delivering bug fixes and latest security updates! 9

  10. Slide 10: Vulnerability Management Process

    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 ○Workin

  11. Slide 11: Project Security Documentation

    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. Slide 12: CVE Numbering Authority with PSIRT

    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. Slide 13: Recent Security Report

    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. Slide 14: Results from the Report

    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 ●

  15. Slide 15: Vulnerability Alert Registry

    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 publicati

  16. Slide 16: Zephyr in RTOS Landscape 2020/08/24

    Zephyr in RTOS Landscape 2020/08/24 #1 #1 Total Total Contributors Commits Rank RTOS # Rank RTOS # 1 Zephyr 747 1 Zephyr 43,312 2 mbed OS 612 2 nuttX 38,031 3 RT-Thread 288 3 RIOT 31,144 16

  17. Slide 17: Github Web Traffic

    Github Web Traffic 2 weeks of traffic to github.com/zephyr code repository as of 2020/09/22

  18. Slide 18: Growing a Diverse Community!

    Growing a Diverse Community! Lifetime project participation Company Participation over the last 12 months • 2016/2: 80 Authors • 2020/9: 766 • 2016/2: 2,806 Commits • 2020/9: 44,306 • 2016/2: 4 Boards • 2020/9: 200+

  19. Slide 19: Vibrant, Active & Global Community

    Vibrant, Active & Global Community > 4300 Followers on Twitter > 1200 Active on LinkedIn > 325 Members in WeChat Group > 1500 Active on Slack

  20. Slide 20: Zephyr: Technology Overview

    Zephyr: Technology Overview Ca rle s Cu fí, No rd ic Se m icon d u ctor

  21. Slide 21: Zephyr Ecosystem

    Zephyr Ecosystem Zephyr Community Zephyr “Community” Kernel / drivers • 3rd Party modules and libraries • Scheduler • Support for Zephyr in 3rd party projects, Zephyr Project • Kernel objects and services for example: micro-ROS, Tensorflow • low-level architecture and board support LITE, Micropython

  22. Slide 22: Zephyr Repositories

    Zephyr Repositories • Ma in (or m a n ife st re p osito ry): h ttp s://gith u b .com /ze p h yrp ro je ct-rto s/ze p h yr • Contains all core Zephyr code • All (or almost) code is Apache v2 licensed • Exte rn a lly m a in ta in e d co d e is in se p a ra te re p o sito rie s • Vendor HALs (CMSIS, st

  23. Slide 23: Build and configuration systems

    Build and configuration systems • Ze p h yr is cro ss-p la tform a n d ca n b u ild , fla sh a n d d e b u g on a ll m a jor Op e ra tin g Syste m s (Win d o ws, m a cOS, Lin u x) • CMa ke • Industry standard build system • Cross-platform • Extensible and script-based • Kcon fig • Configuration syst

  24. Slide 24: Architecture

    Architecture Application • Highly Configurable, Highly Modular Application Smart Objects / High Level APIs / Data Models Services … LWM2M MQTT HTTP CoAP • Cooperative and Preemptive Threading DTLS TLS • Memory and Resources are typically TCP/UDP statically allocated Thread Device Mgmt IPv6/IPv4 6LoW

  25. Slide 25: Kernel and drivers

    Kernel and drivers 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 sub

  26. Slide 26: Native IP Stack

    Native IP Stack • 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, gen

  27. Slide 27: Zephyr Networking Features

    Zephyr Networking Features High-Level Protocols Supported technologies • CoAP v1 • Ethernet • MQTT Client v3.1.1 • Ethernet over USB • HTTP • WiFi with IP offload • Native HTTP client • IEEE 802.15.4 with 6Lo • Server is implemented using CivetWEB library • Bluetooth LE with 6Lo • Websocket client •

  28. Slide 28: Bluetooth Host and Mesh

    Bluetooth Host and Mesh • 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 stac

  29. Slide 29: Bluetooth Low Energy Controller

    Bluetooth Low Energy Controller 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) • V

  30. Slide 30: Zephyr USB Device Stack

    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 in

  31. Slide 31: Native Execution on a POSIX-compliant OS

    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

  32. Slide 32: POSIX API on Zephyr

    POSIX API on Zephyr Provides familiar API to non-embedded programmers, Application especially to Linux developers Enable re-use (portability) of existing libraries POSIX POSIX PSE52 BSD Sockets Middleware based on POSIX APIs PSE51 File System Networking • Provides efficient subset appropriate for sm

  33. Slide 33: and much more...

    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 a

  34. Slide 34: Thank you for watching

    Thank you for watching Ca rle s Cu fí, No rd ic Se m icon d u ctor

  35. Slide 35: Building with Zephyr? West overview

    Building with Zephyr? We st o ve rvie w Ma rti Bo liva r, Nord ic Se m icon d u ctor

  36. Slide 36: Outline: Presenter: Marti Bolivar

    Outline: Presenter: Marti Bolivar - Ze p h yr a n d we st d e ve lo p e r - Wh a t we ’re d oin g tod a y: - Overview of what’s available in west - Good starting points for experimenting and getting help - He lp fu l if you ’ve a lre a d y go n e th ro u gh th e Ze p h yr Ge ttin g Sta rte d Gu id e

  37. Slide 37: What is west?

    What is west? Ze p h yr’s “m e ta -to o l” o r “swiss a rm y kn ife ,” u se d fo r m a n y co m m on d e ve lop m e n t wo rkflo ws. An e xte n sib le com m a n d lin e too l fo r m a n a gin g a Ze p h yr wo rksp a ce : h ttp s://d ocs.ze p h yrp roje ct.o rg/2.3.0/gu id e s/we st/in d e x.h tm l R

  38. Slide 38: West "proper" vs. Zephyr uses

    West “proper” vs. Zephyr uses West “proper” Zephyr’s west usage and extensions ● Workspace commands (init , update , etc.) ● Zephyr module integration ● Configuration command ● Extension commands (config ) (build , flash , debug , ● APIs for adding extension etc.) commands (external plug- ins) In th

  39. Slide 39: Creating a workspace: west init

    Creating a workspace: west init $ west init - m h t t p s : / / gi t h ub . c om/ z e p hy r p r o j e c t - r t o s / z e ph yr \ - - mr v 2 . 3 . 0 z e p h y r p r o j e c t Results (simplified) Vocabulary z e phyr pr oj e c t ● zephyrproject: the west workspace’s top level directory, or topdir. T

  40. Slide 40: Manifest file, west.yml

    Manifest file, west.yml Sim p lifie d con te n ts of ze p h yr/we st.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

  41. Slide 41: Manifest file semantics

    Manifest file semantics zephyrproject-rtos/zephyr zephyrproject-rtos/<project> west.yml manifest: projects: - ... zephyrproject-rtos/<project> -… - ... zephyrproject-rtos/<project> Every element of the projects list is another Git repository that is included in the upstream Zephyr project distributi

  42. Slide 42: Updating a workspace: west update

    Updating a workspace: west update $ west update # r u n i n s i d e t h e “ z e p h y r p r o j e c t ” wo r k s p a c e Results (simplified) Vocabulary z e phyr pr oj e c t ● Modules: third-party code with Zephyr ├── b o o t l o a d e r integration, can be integrated into Zephyr │ └── mc u b o o t

  43. Slide 43: Other workspace commands

    Other workspace commands Som e a d d ition a l worksp a ce m a n a ge m e n t co m m a n d s: list p rin t in form a tio n a b o u t p ro je cts in th e we st m a n ife st manifest slice a n d d ice th e we st m a n ife st diff "git d iff" fo r o n e o r m o re p ro je cts status "git sta tu s" fo r

  44. Slide 44: Zephyr extension commands

    Zephyr extension commands Som e a d d ition a l Ze p h yr d e ve lo p m e n t e xte n sio n co m m a n d s: build com p ile ze p h yr a p p lica tio n s flash fla sh a com p ile d a p p lica tio n to a b o a rd debug fla sh a n a p p lica tio n a n d e n te r a d e b u gge r (u su a lly GDB) debugse

  45. Slide 45: Most common extension issue

    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/g

  46. Slide 46: West configuration files

    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/guid

  47. Slide 47: Help and troubleshooting

    Help and troubleshooting Docu m e n ta tion : West page in the Zephyr guides a n d Troubleshooting west . Also: $ west help List a ll co m m a n d s a n d o n e lin e h e lp fo r e a ch (in clu d in g e xte n sion s). $ west <command> help He lp for a sp e cific <co m m a n d >, like west help init

  48. Slide 48: www.zephyrproject.org

    www.zephyrproject.org

  49. Slide 49: Q&A

    Q&A

Nordic Semiconductor — Technical Presentation (September 2024) on 6ix