Tizen-Rt-Lpwan-20180204Rzr.Pdf (Slides)

Tizen-Rt-Lpwan-20180204Rzr.Pdf (Slides)

: RT A lightweight RTOS platform for low-end IoT devices #FOSDEM, IoT Track Brussels, Belgium <2018-02-04> Philippe Coval Samsung Open Source Group / SRUK [email protected] Samsung Open Source Group 1 https://fosdem.org/2018/schedule/event/tizen_rt/ Who is Philippe Coval? ● Software engineer for Samsung Research – Open Source Group, EU team (@UK + DE + FR + CZ...) ● Interest: IoT, demos, usages, OS/hardware support, community – Projects: IoTivity, Tizen, Yocto, Automotive, etc ● Ask me online for help: – https://wiki.tizen.org/wiki/User:Pcoval Samsung Open Source Group 2 https://fosdem.org/2018/schedule/event/tizen_rt/ Agenda ● Technology overview: ● Crash course: – Tizen, the OS of everything ? – build sources, – Software platforms – log in, shell & apps – for Low end devices – develop apps: ● NuttX, Tinyara, TizenRT ● Native or Javascript? ● & relationships ● Demo & tips – Features & differentiation ● Resources and QA Samsung Open Source Group 3 https://fosdem.org/2018/schedule/event/tizen_rt/ What do you know of ? ● Tizen is an Operating System based on FLOSS – Powered by Linux Kernel – Open to platform and application developers: ● Native (EFL) , Web (HTML5), .Net... ● Shipped into consumer electronics products – TVs, Wearables, Home kitchen appliances... – With connectivity features (OCF, SmartThings. S-Connect) ● Supports: Architecture: ARM/Intel 32/64 bits (+ SBC) – 2013: Tizen-2.0: RD210: 1.2 GHz – 2014: Tizen-2.2 Gear2: 1GHz, 512MB, +4GB – 2016: Tizen-3 Wearable GearS3: 1GHz*2, 768MB Samsung Open Source Group 4 https://fosdem.org/2018/schedule/event/tizen_rt/ “I'm not crazy. My reality is just different from yours.” ~ Lewis Carroll Samsung Open Source Group 5 https://fosdem.org/2018/schedule/event/tizen_rt/ Tizen the OS of Everything? ● What about low-end and low-cost IoT devices? – Without display or rich UI/UX (just small LCD or buttons) – Battery powered, low consumption matters! – running ubiquitous micro controllers (MCU) ● Cheap: Cost (<10$) and usage (Low Consumption <mW) ● But can be very constrained in RAM+ROM – RFC7228: Class 0 from <10KiB+100KiB ● TizenRT is targeting middle configurations (RAM+Flash): – Cortex M3 (30KB+512KB), M4 (256KB+16MB), R4 (2MB+16MB) Samsung Open Source Group 6 https://fosdem.org/2018/schedule/event/tizen_rt/ Different software stack for low end devices ● For developers, there is gap between: – Linux kernel is flexible to some extend, ● Typically: RAM=8MB + ROM=2MB (down for XIP: RAM=1MB ROM=4MB) ● uClinux is lowering requirements (No MMU, Reported, STM32F4's M4: 256KB+2MB) – Baremetal: Optimal but not flexible: costly, slow ● For dedicated Oses: Genericity vs Speciality (~ trade of). ● Consider features, requirements, learning curve (tools), licensing – BSD: NuttX, TinyOS, MIT: FreeRTOS* Contiki, – Apache: Mbed, Zephyr, GPL: RIOT, ChibiOS, Inferno.. – Unfree/Closed source: NucleusOS, eCosPro, ThreadX, VxWorks, QNX, uC/OS, RTX... Samsung Open Source Group 7 https://fosdem.org/2018/schedule/event/tizen_rt/ TizenRT's origin ● TinyAra 2015 project to collect, store, and deliver IoT sensor data using ● IoTivity: IoT framework for seamless connectivity (+LWIP port for IPv6, +LWM2M) ● AraStorage: Data management (SQL, b+ tree index) – sources released to public on tizen.org (SOSCON2016) ● Based on NuttX RealTime kernel (deterministic and priorities) – Initial release in 2007, community led by main author Gregory Nutt – Stable & Mature (2.5M LoC) – BSD Licensed: ● used in many other OS projects or products, Industry adoption – PX4/PixHawk (Drones), Thingsee (IoT box) ● TizenRT is the whole stack: TinyAra kernel + middlewares (TDC2017) Samsung Open Source Group 8 https://fosdem.org/2018/schedule/event/tizen_rt/ NuttX is easy for Linux devs ● UNIX/Linux inspired OS (+ shell & apps) ● Comply with standards (POSIX/ANSI): – uses custom C library & C++ (uClibc++ or LLVM) – uses GNU tools, GCC, gmake, Kconfig, GDB, openocd... ● Filesystem (RO,RW), VFS (/dev/, /proc), MTD – handled by drivers (read, write, iotctl opts) ● Network: BSD sockets (uIP: TCP, UDP, IPv6, 6lowpan) NTP, FTP, HTTP etc ● Concurrency: Multi tasks & pthread support – +mutexes, message queues, signals, TLS, SMP, IPC, FIFO shed, preempt... ● Modular and configurable and scalable (Kconfig), – Low requirements: footprint is <16KB. Supports Many BSP (8 to 32 bits, 27 arch, 200 boards) Samsung Open Source Group 9 https://fosdem.org/2018/schedule/event/tizen_rt/ Tizen:RT Architecture and progress overview Current status: V1.1 + ~650 patches Samsung Open Source Group 10 https://fosdem.org/2018/schedule/event/tizen_rt/ JavaScript runtime: “IoT.js is to NodeJs what JerryScript is to v8” (For more, Welcome to FOSDEM's IoT room at 15h05 for Ziran's Sun presentation) Samsung Open Source Group 11 https://fosdem.org/2018/schedule/event/tizen_rt/ Tizen:RT plan for reliability ● Memory protection unit (MPU > MMU) – User/Kernel separation ● Per thread mem protection ● Micro kernel architecture – Only for scheduling tasks, memory, IPC ● + user space services (Net, drivers...) ● Fault Tolerance – Self healing ● restart services (and dependencies) – Fallback option: Live update (DM) Samsung Open Source Group 12 https://fosdem.org/2018/schedule/event/tizen_rt/ Tizen:RT for IoT: Connectivity & Security ● Connectivity: – Standard protocols: LWIP (IPv6), mDSN, DHCP, BSD/Web/Sockets, MQTT (Eclipse's mosquitto) – OCF's IoTivity: CoAP Discovery, Messaging (CA, RA, Cloud), Security (PM, DTLS, SRM) – WiFi, WPASupplicant, APIs for onboarding (ARTIK app using QR codes)... – Cloud: ARTIK=>SmartThings cloud, AWS... + S.Connect App ● Device Management Framework: Monitor connectivity & power, report – OMA-based Lightweight M2M ● Over the air (FOTA...) ● Eclipse Wakaama (formerly liblwm2m) ● More security features: Crypto (AES 128/256, RSA, ECC....) – Secure: Boot, Flash Storage, Channel (DTLS using mbedtls), Certs Samsung Open Source Group 13 https://fosdem.org/2018/schedule/event/tizen_rt/ Hardware support : 05x (053, 053s, 055, 055S) ● Ie: SoM ARTIK 055S + Interposer board: – 32-bit ARM® Cortex® R4 @ 320MHz ● R for Real Time and safety critical ● S for Secure: SE+TEE, Secure Sub System (sssfw.bin) – Crypto (Certs, Key, ECDSA, RNG, PUF), – Boot: ROM>bl1.bin> U-Boot (bl2.bin)> TizenRT OS (signed with artik05x_codesigner) – 1280KB RAM, 8MB Flash, WiFi (firmware wlanfw.bin) – IO: GPIO*29 (3.3VDC), ADC*4 (1.8V 12bits@6Mhz), PWM*5 ● UART*4 (2-pin), SPI*2, I2C*2, I2S, RTC, JTAG (lock) ● Others? : QEmu, SIDK_S5JT200 – docs/HowToAddnewBoard.md – Or port NuttX BSPs (STM32, ESP32? ...) Samsung Open Source Group 14 https://fosdem.org/2018/schedule/event/tizen_rt/ “Simplicity is the ultimate sophistication.” ~Leonardo da Vinci Samsung Open Source Group 15 https://fosdem.org/2018/schedule/event/tizen_rt/ First boot of “TizenRT ARTIK SDK” on 055s sudo screen /dev/ttyUSB1 115200 dirty (Aug 07 2017 - 17:16:21 +0900) U-Boot 2017.01-g3129855- TASH>>He llo, Worl CPU: Exynos200 @ 320 MHz d!! Model: ARTIK-053 based on ExynoTs ATS20 DRAM: 722 KiB H>> help led WARNING: Caches not enab TA BL1 released at 2017-3-13 15:00 SH comma nd list SSS released at 2016-12-30 ------ WLAN released at ????-??-?? cat -------- c ------ Flash: 8 MiB d **** Warning - bad CRC, using dedfhaculptd en vironment date exit df heap fre 0 00 info e g In: serial@8018 0 hello etenv Out: serial@80180000 ifdown help ifup ifco Err: serial@80180000 k nfig illall iperf Hit any key to stop autoboot: 0 logm kill mk gpio: pin gpg16 (gpio 46) value isr 1d ls 020 ... mksma mkdir ## Starting application at 0x04o0Cn8bo rtfs mou s5j_sflash_init: FLASH Quad Enabled ard p nt nt r ing pclient uart_register: Registering /dev/ecobnosolte ps /ttyS0 rm pwd uart_register: Registering /devset rm (…) env dir s sh ecurity_a System Information: tls_clien sleep pi Version: 1.0 t tls_se stkmon uptim rver umou Commit Hash: 13711f7a9a7b2063e2 e2 e b 90 awdi38fb8097eaec0aff nt unse (...) i tenv Samsung Open Source Group 16 https://fosdem.org/2018/schedule/event/tizen_rt/ Explore system using TASH Shell and apps TASH>>mount TASH>>cat /proc/version TA SH>>df /mnt type smartfs Version: 1.0 Block Numbe Commit Hash: 13711f7a... Size r /proc type procfs Bloc 512 ks Build User: root@gateway 2 Used rtfs 800 Availa /sss type sma 0 15 ble Mo TASH> 5 0 unted >cat Build Time: 2017-08-17 01:22:4712 2785 / on Name /proc 1024 0 mnt /part TAS 0 bl1 St ition H>>fr 14 /proc art s ee 1010 ss Siz /sss sro 0 e M b TD l2 4 4 tota T T A S progm l u ASH>>h sssfw H > 1>stkmo n12 Datem sed ttp 6 prog a: 7 fr wlan 48 mem 79296 ee T fw 64 pro 153 large ASH>>g os 8 gmem 632 st pio TASH >7>2 = ====== = =p=r====== 6256 fa 12 ogmem =============================6==4= = == ===========T= ctory 200 8 p 6102 ASH>>c o P ID S T A T6US ro gSmIe ZE PEAK_STAC 88 loud ta 800 00 m K PEAK_HEAP TIME THREAD NAME progm TA user - - -11-8------38-4- - -----e-m-------------------- SH>>s 4 prog ------------------------ dk mod nvra 15 384 mem ules m ----6-8 - - ------ -p-r-o ---------------------------------- T sss 1 350 gmem ------------- ASH>>s rw 918 pr ensorb 0 A C T I VE o g m em1024 1024 81840 30755 Idle Tas d 1920 2 p k 1 rogme (¼) 28 m fi progm TASH>>wi 6 ACTIVE e m4076 artsta 844 3584 30755 tash H>>wifi st (¼) TAS ASH>>scan $PASS 3 ACTIVE 2028 300 10256 307 T n $SSID 55 logm >>wifi joi TASH l1 dhcp TA ifconfig w TASH>>killall logm SH>>websock TASH>> et connect TASH>>mqtt_ wss://echo sub -d -h .websocket. Samsung Open Source Group 198.41.30. org/ 241 -t $SYS 17 / https://fosdem.org/2018/schedule/event/tizen_rt/ “Talk is cheap. Show me the code.” ~ Linus Torvalds Samsung

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    33 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us