Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

17,000 contributions in 32K RAM - FOSS North 2019

200 views

Published on

Presentation about Mbed OS, the community and how to engage with >400 contributors. Given at FOSS North in Gothenburg.

Published in: Internet
  • Be the first to comment

17,000 contributions in 32K RAM - FOSS North 2019

  1. 1. 17,000 contributions in 32K of RAM Jan Jongboom, Arm FOSS North 9 April 2019
  2. 2. Jan Jongboom Principal Developer Evangelist jan.jongboom@arm.com
  3. 3. © 2019 Arm Limited 4 Processor shipments (by Arm) Arm: the industry’s Architecture of Choice >95% the world’s smartphones are based on Arm 22 years 4 years 4 years 20171991 2013 2021 50 billion chips shipped 50 billion chips shipped 100 billion chips expected to ship >50% of Arm chips shipped in FYI6 (17+bn) into embedded devices
  4. 4. © 2019 Arm Limited 5 Majority of these do not go into personal computers
  5. 5. © 2019 Arm Limited 6 But rather in these
  6. 6. © 2019 Arm Limited 8 Microcontrollers Small (1cm²) Cheap (~1$) Efficient (standby: 0.3 μA) Everything in one package Slow (max. 100 MHz) Limited memory (max. 256K RAM) Downsides 8 cm
  7. 7. © 2019 Arm Limited 9 Microcontroller vs. application processor No Memory Management Unit (MMU) No BIOS, much simpler boot sequence Waking up: <10 us. from sleep mode, <10 ms. from deep sleep mode Real-time General-Purpose Input/Output ports (GPIO) But much less powerful
  8. 8. © 2019 Arm Limited 10 Development board
  9. 9. © 2019 Arm Limited Not a microcontroller!
  10. 10. © 2019 Arm Limited An operating system for microcontrollers
  11. 11. © 2019 Arm Limited 13 Many software parts Bootloader Asymmetric crypto Storage driver Resilient filesystem Advanced 
 networking stack Radio drivers FlashIAP Sleep managementRTOS
  12. 12. © 2019 Arm Limited 14 Arm Mbed A free, open source Platform OS targeting IoT end node devices Mbed OS Cortex-M RTOS
 kernel Portable
 drivers Integrated
 security IoT
 connectivity Device management Development tools Developer community Partner ecosystem 170 development boards LoRa, BLE, Cellular, Wi-Fi, etc. 14
  13. 13. © 2019 Arm Limited 15 Open source and community built 325,000 developers 70+ partners Apache 2.0 licensed https://os.mbed.com
  14. 14. © 2019 Arm Limited 16 Contributions over time Arm Partners Community
  15. 15. © 2019 Arm Limited 17 Release schedule Feature Releases • Bringing new and enhanced features every 3 months Patch Releases • Adding new partner target support and delivering bug fixes every 2 weeks 2017 2018 2018 A regular release train for effectively supporting developers and partners 1980 Mbed OS 5.7 1980 Mbed OS 5.8 1980 Mbed OS 5.9 1980 Mbed OS 5.10
  16. 16. © 2019 Arm Limited Managing the community
  17. 17. © 2019 Arm Limited 19 Mbed OS developer community
  18. 18. © 2019 Arm Limited 20 Community leaders, partners, and support team
  19. 19. © 2019 Arm Limited 21 Commercial support
  20. 20. © 2019 Arm Limited 22 Community engagement through Office Hours
  21. 21. © 2019 Arm Limited 23 Q&A is vital part of Office Hours
  22. 22. © 2019 Arm Limited 24 Documentation lives on GitHub
  23. 23. © 2019 Arm Limited 25 Continuous integration
  24. 24. © 2019 Arm Limited 26 Tests Mbed OS 5.6 ~500 functional tests System tests Mbed OS 5.10 ~1150 functional tests System tests Host unit tests Fast model More than 100,000 tests cases run per day Farm of over 800 devices ~40,000 hours of testing for Mbed OS 5.10 release
  25. 25. © 2019 Arm Limited Features
  26. 26. © 2019 Arm Limited 29 Components
  27. 27. © 2019 Arm Limited 30 Tooling Online compiler Mbed CLI Offline IDE C:> mbed
  28. 28. © 2019 Arm Limited 31 https://os.mbed.com/platforms
  29. 29. © 2019 Arm Limited 32 Porting Application Mbed C++ HAL (generic) Mbed C HAL (vendor specific) Peripherals Thread safety, sane API Ties in with HAL
  30. 30. © 2019 Arm Limited 33 Blinky, C++ to peripheral #include "mbed.h" DigitalOut led(LED1); int main() { while (1) { led = !led; wait_ms(500); } }
  31. 31. © 2019 Arm Limited 34 Blinky, C++ to peripheral Cortex-M boot sequence explanation: https://www.youtube.com/watch?v=3brOzLJmeek // Mbed C++ HAL DigitalOut::write(int value) { gpio_write(&gpio, value); } // Mbed C HAL (implemented by vendor) void gpio_write(gpio_t *gpio, int value) { if (value == 1) { 0x40200000 = 1U << gpio->pin; } else { 0x40200004 = 1U << gpio->pin; } }
  32. 32. © 2019 Arm Limited 35 Porting
  33. 33. © 2019 Arm Limited 36 Low power Providing Low Power features & optimizations required for IoT devices Low Power Modes Power Mode Tools Tickless Scheduler
  34. 34. © 2019 Arm Limited 37 Idle (no sleep)
  35. 35. © 2019 Arm Limited 38 Deep sleep
  36. 36. © 2019 Arm Limited 39 Networking stacks LwIP (IPv4, IPv6, PPP) Nanostack (IPv6, 6LoWPAN, Thread) Certified 6LoWPAN over 802.15.4 stack Certified LoRaWAN stack BLE 5.1 stack
  37. 37. © 2019 Arm Limited 40 Other features RTOS included (KEIL RTX) Event scheduler (Mbed Events) Filesystems included (FAT and LittleFS) Device statistics Memory tracing supported 40
  38. 38. © 2019 Arm Limited Getting started
  39. 39. © 2019 Arm Limited 42 https://os.mbed.com/platforms
  40. 40. © 2019 Arm Limited 43 Connecting a moisture sensor Signal Power Ground A3 3.3V GND
  41. 41. © 2019 Arm Limited 44 Online Compiler https://ide.mbed.com/compiler
  42. 42. © 2019 Arm Limited 45 Mbed Studio A desktop IDE designed for Mbed OS, suitable for professionals and hobbyists alike. ✓ Arm Compiler 6 ✓ Import Mbed programs from os.mbed.com and GitHub ✓ C/C++ code completion and inspection ✓ Mbed library management ✓ Build, run and debug connected platforms ✓ Support for Windows, Linux and Mac OS ✓ Updated online IDE based on the same framework
  43. 43. © 2019 Arm Limited 46 Reading from the moisture sensor AnalogIn moisture(A3); while (1) { float value = moisture.read(); printf("Moisture value is %fn", value); wait_ms(500); }
  44. 44. © 2019 Arm Limited 47 Flashing through drag-n-drop Compile Drag .bin file to your board (mounts as mass-storage device) Automatically flashes Attach serial monitor to see progress
  45. 45. © 2019 Arm Limited Mbed Labs
  46. 46. © 2019 Arm Limited
  47. 47. © 2019 Arm Limited 50 http://mbed.com/js
  48. 48. © 2019 Arm Limited
  49. 49. © 2019 Arm Limited 52
  50. 50. 53 Recap 1. Most computers are neither in your pocket nor on your desk 2. A constraint device does not have to be scary, actually it can be fun 3. Mbed OS is the platform to help you with this! 4. Come and join our community at https://os.mbed.com !
  51. 51. © 2019 Arm Limited 54 https://os.mbed.com Slides: http://janjongboom.com Thank you!

×