stem/IOT/OS
andy 3fc7fa863e vault backup: 2023-12-22 12:45:16
Affected files:
.obsidian/graph.json
.obsidian/workspace-mobile.json
.obsidian/workspace.json
Christmas Movies.md
Politcs/Fascism.md
Politcs/Neoliberalism/Neoliberalism.md
STEM/AI/Neural Networks/CNN/Interpretation.md
STEM/CS/Languages/Python.md
STEM/IOT/OS/Composition.md
STEM/IOT/OS/Contiki.md
STEM/IOT/OS/OS.md
STEM/IOT/OS/README.md
STEM/img/iot-event-based.png
STEM/img/iot-os-stack.png
STEM/img/iot-thread-based.png
2023-12-22 12:45:16 +00:00
..
Composition.md vault backup: 2023-12-22 12:45:16 2023-12-22 12:45:16 +00:00
Contiki.md vault backup: 2023-12-22 12:45:16 2023-12-22 12:45:16 +00:00
OS.md vault backup: 2023-12-22 12:45:16 2023-12-22 12:45:16 +00:00
README.md vault backup: 2023-12-22 12:45:16 2023-12-22 12:45:16 +00:00

Environment

  • Energy efficiency
  • Restricted code
    • Compared to full OS

Features

  • Memory management
  • Power management
  • File management
  • Networking
  • Dev environment and tools
    • Commands
    • Interpreters
    • Compilers
  • Entry points for sensitive resources
    • Input components
  • Functional aspects
    • Scheduling
    • Multi-threading
    • Interrupts
    • Memory allocation

Dynamic Programming

  • Program parts of application after deployment
    • Settings and requirements not known prior to deployment
      • Can change over time
    • Bug fixes or update requirements wile in operation
    • Manual updates maybe not possible
  • Needs boundaries between application and OS
  • OS receive software updates and store in active memory
    • Check this is an updated version
    • Install and configure new version

Paradigm

  • Node-centric
    • Focuses on software for each node
    • Operating individually
  • Application-centric
    • Treat nodes as one application
    • Requires collaboration between nodes
      • Collection
      • Dissemination
      • Analysis and/or processing of generated and collected data

Deploy to Mote

  • Compile
    • make TARGET=xm1000 _____
  • Deploy
    • make TARGET=xm1000 _____.upload
      • As root
  • Terminal
    • make TARGET=xm1000 login

TinyOS

Embedded, component-based operating system and platform for low-power wireless devices, such as those used in wireless sensor networks (WSNs), smartdust, ubiquitous computing, personal area networks, building automation, and smart meters

From <https://en.wikipedia.org/wiki/TinyOS>

  • Written in nesC
    • Network Embedded Systems C
    • Component-based
      • Wired together to run applications
    • Event-driven
    • Extension to C
  • Non-blocking
    • One stack
    • No abstraction between OS and application
  • No dynamic programming
  • I/O ops longer than hundreds of milliseconds are async
  • Mainly event-based

FreeRTOS

  • Minimal ROM, RAM, processing overhead
  • Bin image 6K - 12K
  • 3 C files
  • Smaller & easier real-time processing alternative
  • Port layer
    • Architecture specific part of port
    • Officially supported or contributed
  • Good for AWS