stem/IOT/OS
Andy Pack b96482abd3 vault backup: 2023-12-28 11:35:06
Affected files:
.obsidian/graph.json
.obsidian/workspace-mobile.json
.obsidian/workspace.json
Politcs/America/94 Crime Bill.md
Politcs/America/Black.md
Politcs/America/Presidents.md
Politcs/BLM.md
Politcs/British/Prime Ministers.md
Politcs/British/Tory.md
Politcs/Compass.md
Politcs/Fascism.md
Politcs/Labour Laws.md
Politcs/Neoliberalism/Neoliberalism.md
Politcs/Neoliberalism/Thatcher.md
Politcs/Now.md
Politcs/Socialism.md
STEM/IOT/Cyber-Physical Systems.md
STEM/IOT/Networking/Networking.md
STEM/IOT/OS/Composition.md
STEM/IOT/OS/Contiki.md
STEM/IOT/OS/OS.md
STEM/IOT/Software Services.md
2023-12-28 11:35:06 +00:00
..
Composition.md vault backup: 2023-12-28 11:35:06 2023-12-28 11:35:06 +00:00
Contiki.md vault backup: 2023-12-28 11:35:06 2023-12-28 11:35:06 +00:00
OS.md vault backup: 2023-12-28 11:35:06 2023-12-28 11:35:06 +00:00
README.md vault backup: 2023-12-22 12:45:16 2023-12-22 12:45:16 +00:00

tags
iot

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