WikiStart

Version 52 (Anthony Rowe, 03/05/2007 05:18 pm)

1 25 Anthony Rowe
2 10 Anthony Rowe
{{{
3 10 Anthony Rowe
#!html
4 10 Anthony Rowe
<table border="0">
5 17 Anthony Rowe
<br>
6 17 Anthony Rowe
<tr><td valign="top" style="height:500px;"> 
7 12 Anthony Rowe
<div class="menu_active">Overview</div>
8 40 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/FAQ" class="menu">FAQ</a></div>
9 30 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/Quick-Start" class="menu">Quick-Start</a></div>
10 24 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/Documentation" class="menu">Documentation</a></div>
11 23 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/People" class="menu">People</a></div>
12 24 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/Links" class="menu">Links</a></div>
13 31 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/Pubs" class="menu">Publications</a></div>
14 42 Anthony Rowe
<div class="menu"><a href="/nano-RK/wiki/Projects" class="menu">Projects</a></div>
15 10 Anthony Rowe
</td>
16 10 Anthony Rowe
17 25 Anthony Rowe
<td valign="top" style="width:100%;padding-left:50px">
18 10 Anthony Rowe
}}}
19 45 Anthony Rowe
= Nano-RK: A Preemptive Real-Time Resource Centric Kernel for Sensor Networks =
20 9 Anthony Rowe
Nano-RK is a reservation-based real-time operating system (RTOS) from [http://www.cmu.edu Carnegie Mellon University] with multi-hop networking support for use in wireless sensor networks. Nano-RK currently runs on the FireFly Sensor Networking Platform as well as the [wiki:MicaZ] motes. It includes a light-weight embedded resource kernel (RK) with rich functionality and timing support using less than 2KB of RAM and 16KB of ROM. Nano-RK supports fixed-priority preemptive multitasking for ensuring that task deadlines are met, along with support for CPU, network, as well as, sensor and actuator reservations. Tasks can specify their resource demands and the operating system provides
21 34 Anthony Rowe
timely, guaranteed and controlled access to CPU cycles and network packets. Together these resources form virtual energy reservations that allows the OS to enforce system and task level energy budgets. 
22 5 Anthony Rowe
23 32 Anthony Rowe
24 32 Anthony Rowe
Nano-RK has the following features:
25 32 Anthony Rowe
 * C GNU tool-chain
26 32 Anthony Rowe
 * Classical Preemptive Operating System Multitasking Abstractions
27 32 Anthony Rowe
 * Real-Time Priority Based Scheduling
28 33 Anthony Rowe
 * Built-in Fault Handling
29 35 Anthony Rowe
  * Task Timing Violations
30 35 Anthony Rowe
  * Stack Integrity
31 35 Anthony Rowe
  * Unexpected Node Restarts
32 35 Anthony Rowe
  * Resource Over-Use 
33 34 Anthony Rowe
  * Low Voltage Detection
34 43 Anthony Rowe
 * Energy Efficient Scheduling based on ''a-prior'' task-set knowledge
35 43 Anthony Rowe
 * Small Footprint (<2K RAM, 12K ROM, including link layer)
36 32 Anthony Rowe
37 37 Anthony Rowe
Nano-RK supports various link layer protocols including:
38 36 Anthony Rowe
 * [wiki:RT-Link] for collision free Real-Time communication
39 52 Anthony Rowe
 * [wiki:WiDOM] a collision free priority based link layer
40 1
 * [wiki:b-mac] for low-power contention based communication
41 37 Anthony Rowe
42 37 Anthony Rowe
Nano-RK supports comes with the following network layer protocols:
43 41 Anthony Rowe
 * [wiki:Flooding] a starting point for building your own protocol
44 36 Anthony Rowe
 * [wiki:DSR] for ad-hoc routing
45 46 Anthony Rowe
46 46 Anthony Rowe
47 51 Anthony Rowe
[[Image(htdocs:images/nrk_arch.png)]]
48 48 Anthony Rowe
49 49 Anthony Rowe
Sample Nano-RK architecture figure showing user applications and [wiki:RT-Link].