Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objectives
Lightweight
Contiki Motivations
Custom Applications
Differentiation
TinyOS
MagnetOS
Mantis
Pure MultiThread
Contiki
Dynamic Linking of binaries
Event/Thread Hybrid
Why Loadable
Applications
Less Energy
Why No Threads?
Events
No locking
Only one running at a time
System Overview
Partitioned at compile
time
Core
Single Binary
Ideally never modified
Program
Easily upgraded
Kernel
Debugging issues
Events
Interrupts
Loading Programs
Services
Application
Service Layer
Service Interface
Service Process
Application
Service Layer
Service Example
Service Replacement
Libraries
Application options
Static link with core
Static link with libraries
Single binary
Call a service
Memcpy() vs Atoi()
MemCpy in Core
Communication
Communication Stack
Multi-Threading
Kernel interaction
Platform Independent
Platform Dependent
Multi-Thread API
Code Size
Preemption Demo
Start 8 second
process at 5
Seconds and
continually ping
~.1 ms latency
increase
Poll handler
caused spikes
Mainly Radio
Packet driver
Portability
Questions?