Who is Phil Coval

  • Software Engineer from Rennes, France
  • OpenSource Contributor, Mozilla Rep (IoT)
  • Involved in OS projects supported by industry:
    • Tizen (Intel), IoTivity (Samsung), OSTC-EU
  • Contact: https://purl.org/rzr
    • Currently available for cooperation
    • Link me from Fediverse or @RzrFreeFr
      • Presentations, Videos, Social
  • Interests: FLOSS Community, IoT, 3D/XR…

Demo Walkthrough

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Context

  • This demo illustrates:
  • From "Quick and dirty" demo
    • to top quality upstream code
  • Hint: Isolate changes and features
    • Smallest Atomic commits

NuttX RTOS

  • Committed to comply standards
    • POSIX, ANSI C
    • File based IO (/dev), BSD sockets (uIP)
  • Released by Gregory Nutt in 2007
  • Base of derived projects:
    • TizenRT, PX4, Sony Spresense

Getting started

Board support

  • 200+ supported boards (and configurations)

    ./tools/configure.sh -L
    
  • Several architectures from 8 to 64 bits
    • ./boards/{arm,avr,mips,risc-v,x86…}
    • … and sim for simulator

NXP Freedom Board

Board port

  • Dir "boards/arm/kinetis/freedom-k64f"
    • README.txt
    • configs/{nsh,netnsh,demo…}/defconfig
    • src/k64_bringup.c : Boot
    • src/*.c for IO / peripherals

I2C Support

Using I2C Bus

  • i2c tool is very familiar to Linux's one

    nsh> i2c bus
    Bus 0: YES
    
    nsh> i2c dev 1 0x7F
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
    
    nsh> i2c get -a 1d -r 0d
    #| READ Bus: 0 Addr: 1d Subaddr: 0d Value: c7
    
  • 0x1d is F64F's onboard sensor

Sensor Module

Implement driver

Register driver

Sensor Application

Enable networking

  • Configure
  • Usage:

    nsh> ifconfig
    eth0    Link encap:Ethernet HWaddr (...) at UP
    nsh> renew eth0 && ifconfig
    eth0    Link encap (...) inet addr:192.168.1.42
    

Add network app:

Pipe stream

mkfifo /dev/fifo
fxos8700cq > /dev/fifo &
fxos8700cq [7:100]
netcat 192.168.1.55 31337  /dev/fifo

Summary

  • NuttX RTOS is
  • Supporting standards
    • Close to Linux
  • base to adapt to new hardware
    • Boards bringup
    • Peripheral drivers
  • Supporting applications
    • OS can chain them

Resources and more:

Extra Challenge

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Extra Demo

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

https://nuttx.events

Questions ?
https://purl.org/rzr

  • Thanks:
    • Alan, Alin, Greg and NuttX community !
    • Apache, Mozilla, ST, Samsung-OSG…
  • https://github.com/rzr/rzr-presentations
  • License: CC-BY-SA-4.0 ~RzR 2020
  • Copyrights belong to their respective owners

Video Playback

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Upcoming

More

Related

Playlist

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Created by Philippe Coval