]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - doc/html/deluge-t2-manual.html
Proper MSP_BSL_FLAGS for telosa and telosb based platforms using TMI modular tos...
[tinyos-2.x.git] / doc / html / deluge-t2-manual.html
index 94b0de528558e26dfc41fcda192491d185884f27..8078304729dce5699e2ff3285e369fc540753377 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
@@ -8,6 +9,8 @@ Deluge T2 - Programming Manual
 <meta name=robots content="index,follow">
 </head>
 <body>
+<div id=title>
+<p></p>
 <p>
 
 </p>
@@ -18,11 +21,11 @@ Deluge T2 - Programming Manual
 
 
 </p>
-<h1 class=title align=center><br><br>Deluge T2 - Programming Manual</h1>
+<h1 class=title>Deluge T2 - Programming Manual</h1>
 <p></p>
 <div align=center>
 Chieh-Jan Mike Liang<br>
-Razvan Musaloiu-E.<p>May 25, 2007</p>
+Razvan Musaloiu-E.<p>January 14, 2008</p>
 </div>
 <p></p>
 <p>
@@ -39,20 +42,43 @@ Hui, and Deluge 2.0 is the most recent version. Documentations on Deluge
 <a href="http://www.cs.berkeley.edu/~jwhui/research/deluge/">http://www.cs.berkeley.edu/~jwhui/research/deluge/</a>.</p>
 <p>
 Deluge T2 is an effort to port Deluge 2.0 from TinyOS 1 to TinyOS 2. 
-Since the code from Deluge 2.0 is reused as much as possible, the 
-behavior and the usage of Deluge T2 should be similar to Deluge 2.0. 
-Having said that, it would be helpful to read the Deluge 2.0 manual and 
-related documentations.</p>
+Although the code from Deluge 2.0 is reused as much as possible, the 
+behavior and the usage of Deluge T2 are not entirely identical to Deluge 
+2.0. Having said that, it would still be helpful to read the Deluge 2.0 
+manual and related documentations.</p>
 <p>
 Deluge T2 is still in experimental phase. One current limitation is 
-platform support. Deluge T2 has been developed and tested on Tmote Sky 
-(<i>telosb</i>) only. In addition, Deluge T2 comes with 2 flash volumes by 
+platform support. Deluge T2 has been developed on Tmote Sky (<i>telosb</i>) 
+and MicaZ only. In addition, Deluge T2 comes with 2 flash volumes by 
 default. However, more volumes can be added, if necessary. There are 
-also minor details that will be improved in future releases.</p>
+also some minor details that will be improved in future releases.</p>
 <p>
 </p>
 <a name="node_sec_2"></a>
-<h1>2&nbsp;&nbsp;Quick Start</h1>
+<h1>2&nbsp;&nbsp;Tools Installation</h1>
+<p>Deluge T2 requires a few Python scripts that not yet included in the
+official <code class=verbatim>tinyos-tools</code> RPM package. On the CVS, the scripts are
+located in <code class=verbatim>tinyos-2.x/tools/tinyos/misc</code>. The steps to install
+them are the following:</p>
+<p>
+</p>
+<pre class=verbatim>  % cd $TOSROOT/tools
+  % ./Bootstrap
+      ...
+  % ./configure
+      ...
+  % cd tinyos/misc
+  % make ; make install
+      ...
+</pre><p></p>
+<p>
+By default, the files will be installed in <code class=verbatim>/usr/local/bin</code>. If
+desired, the <code class=verbatim>--prefix</code> parameter from <code class=verbatim>configure</code> can be
+used to indicate a different path. </p>
+<p>
+</p>
+<a name="node_sec_3"></a>
+<h1>3&nbsp;&nbsp;Quick Start</h1>
 <p></p>
 <p>
 This section introduces the basics of reprogramming with an example. In 
@@ -60,7 +86,7 @@ addition, it provides a quick test for software prerequisite. The latest
 TinyOS 2 CVS tree and Python 2.4 with pySerial support are recommended 
 for running Deluge T2.</p>
 <p>
-To start the example, we first compile TOSBoot provided in <code class=verbatim>tinyos-2.x/tos/lib/TOSBoot</code>.
+To start the example, we first compile tosboot provided in <code class=verbatim>tinyos-2.x/tos/lib/tosboot</code>.
 For example,
 </p>
 <pre class=verbatim>   % make telosb
@@ -68,7 +94,7 @@ For example,
 Then, we run the <code class=verbatim>burn</code> script provided in <code class=verbatim>tinyos-2.x/apps/tests/deluge/Blink</code>.
 For example,
 </p>
-<pre class=verbatim>   % ./burn /dev/ttyUSB0
+<pre class=verbatim>   % ./burn /dev/ttyUSB0 telosb
 </pre><p>
 This <code class=verbatim>burn</code> script programs the directly-connected mote with one 
 version of Blink. Then, it injects and reprograms the mote with another 
@@ -76,34 +102,37 @@ version of Blink. At this point, you can try to retrieve program image
 versioning information. The script to interface with the mote is 
 provided in <code class=verbatim>tinyos-2.x/tools/tinyos/misc</code>. For example,
 </p>
-<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 -p 0
+<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 telosb -p 0
 </pre><p>
 You should see something similar to the output below.
 </p>
 <pre class=verbatim>   Pinging node ...
-   Connected to Deluge node.
    --------------------------------------------------
-   Stored image 0
-     Prog Name:   BlinkAppC     
-     Compiled On: Thu May 17 00:36:33 2007
-     Platform:    telosb          
-     User ID:     mike          
-     Host Name:   sprite        
-     User Hash:   0xC50D8DA4L
-     Num Pages:   24/24
+   Currently Executing:
+     Prog Name:   BlinkAppC
+     UID:         0xA274CBBE
+     Compiled On: Mon Jan 14 13:09:38 2008
+     Node ID:     1
    
-     Size:        26512
-     UID:         2302157803
-     Version:     6
+   Stored image 0
+     Prog Name:   BlinkAppC
+     UID:         0xD7EEFACE
+     Compiled On: Mon Jan 14 12:40:06 2008
+     Platform:    telosb
+     User ID:     tinyos2
+     Host Name:   bluephase
+     User Hash:   0x587C9C16
+     Size:        33504
+     Num Pages:   30
    --------------------------------------------------
 </pre><p></p>
 <p>
 The usage of <code class=verbatim>tos-deluge</code> is available by running the script without 
-any arguments, and it will be discussed in section <a href="#node_sec_4">4</a>.</p>
+any arguments, and it will be discussed in section <a href="#node_sec_5">5</a>.</p>
 <p>
 </p>
-<a name="node_sec_3"></a>
-<h1>3&nbsp;&nbsp;Reprogramming a Network</h1>
+<a name="node_sec_4"></a>
+<h1>4&nbsp;&nbsp;Reprogramming a Network</h1>
 <p></p>
 <p>
 This section illustrates the procedure to reprogram a network. 
@@ -111,9 +140,9 @@ Specifically, we will see how program images are injected and how
 versioning information is retrieved.</p>
 <p>
 </p>
-<a name="node_sec_3.1"></a>
-<h2>3.1&nbsp;&nbsp;Setting Up the Motes</h2>
-<p>We first install both TOSBoot and a program that runs Deluge T2. For 
+<a name="node_sec_4.1"></a>
+<h2>4.1&nbsp;&nbsp;Setting Up the Motes</h2>
+<p>We first install both tosboot and a program that runs Deluge T2. For 
 simplicity, we use the golden image as the program. The golden image is 
 provided in <code class=verbatim>tinyos-2.x/apps/tests/deluge/GoldenImage</code>, and it does 
 nothing except initializing Deluge T2. This step can be done by 
@@ -126,14 +155,14 @@ act as a base station, which requires an additional component to accept
 user commands from the serial port. Normally, only one mote in the 
 network needs to be the base station, and other motes are reprogrammed 
 over-the-air. If error occurs when running the command above, you might 
-need to compile TOSBoot as shown in section <a href="#node_sec_2">2</a>. 
+need to compile tosboot as shown in section <a href="#node_sec_3">3</a>. 
 Deluge T2 makes sure the mote ID remain persistent over image 
 reprogramming. You can test the installation by interacting with the 
 mote through <code class=verbatim>tos-deluge</code>.</p>
 <p>
 </p>
-<a name="node_sec_3.2"></a>
-<h2>3.2&nbsp;&nbsp;Preparing Your Application</h2>
+<a name="node_sec_4.2"></a>
+<h2>4.2&nbsp;&nbsp;Preparing Your Application</h2>
 <p>In most cases, the only two files you need to modify are the top-level
 wiring file and the Makefile. You need to make sure <code class=verbatim>DelugeC</code>
 component is included. In addition, the Makefile should have the
@@ -148,49 +177,55 @@ example,
 </pre><p></p>
 <p>
 </p>
-<a name="node_sec_3.3"></a>
-<h2>3.3&nbsp;&nbsp;Injecting Your Application</h2>
+<a name="node_sec_4.3"></a>
+<h2>4.3&nbsp;&nbsp;Injecting Your Application</h2>
 <p>Before a program image is disseminated in the network, we need to first 
 inject it to the base station. For example,
 </p>
-<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 -i 1 apps/Blink/build/telosb/tos_image.xml
+<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 telosb -i 1 apps/Blink/build/telosb/tos_image.xml
 </pre><p>
 You should see something similar to the output below.</p>
 <p>
 </p>
 <pre class=verbatim>   Pinging node ...
    Connected to Deluge nodes.
+   No valid image was detected.
    --------------------------------------------------
-   Stored image 1
-     No proper Deluge image found!
-   --------------------------------------------------
+   Create image: /home/tinyos2/local/bin/tos-build-deluge-image -i 1 build/telosb/tos_image.xml
    Ihex read complete:
-     Total bytes = 25526
-     Sections = 2
+     35916 bytes starting at 0x4A00
+        32 bytes starting at 0xFFE0
+     35948 bytes in 2 sections
+   CRCs:
+     0xCC0E 0xE57B 0xC224 0xE4FA 0x63EB 0xEBA5 0xE50B 
+     0x8073 0x345E 0x3BBF 0xF415 0xA7DB 0xA67C 0x6953 
+     0x6638 0x3D76 0x7218 0x0E8F 0x9C93 0xD679 0x7A50 
+     0xBFCD 0x8B57 0x7A47 0x323E 0x29FF 0x5EFF 0xB0AE 
+     0x1392 0x4A82 0xACFB 0x69D7 0x8C07 
+   --------------------------------------------------
+   36816 bytes in 28.23 seconds (1303.9932 bytes/s)     
    --------------------------------------------------
    Replace image with:
-     Prog Name:   BlinkAppC     
-     Compiled On: Mon May 07 00:01:43 2007
-     Platform:    telosb          
-     User ID:     mike          
-     Host Name:   sprite        
-     User Hash:   0xC50D8DA4L
-     Num Pages:   24/24
-   
-     Size:        26512
-     UID:         507153792
-     Version:     0
+     Prog Name:   BlinkAppC
+     UID:         0x76D2FB1B
+     Compiled On: Sun Jan 13 21:47:54 2008
+     Platform:    telosb
+     User ID:     tinyos2
+     Host Name:   bluephase
+     User Hash:   0x587C9C16
+     Size:        36816
+     Num Pages:   33
    --------------------------------------------------
 </pre><p></p>
 <p>
 </p>
-<a name="node_sec_3.4"></a>
-<h2>3.4&nbsp;&nbsp;Reprogramming with New Image</h2>
+<a name="node_sec_4.4"></a>
+<h2>4.4&nbsp;&nbsp;Reprogramming with New Image</h2>
 <p>After you decide which program image you want to reprogram, you can 
 first test on the base station by issuing the reboot command. For 
 example,
 </p>
-<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 -r 1
+<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 telosb -r 1
 </pre><p>
 After a few moments, the mote will begin quickly flashing the LEDs to 
 signify the reprogramming process.</p>
@@ -198,68 +233,80 @@ signify the reprogramming process.</p>
 Now, you can have the base station disseminate a program image to the rest of 
 the network. For example,
 </p>
-<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 -d 1
+<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 telosb -d 1
 </pre><p>
 This command instructs the base station to notify the whole network of 
-the availablility of a new program image. This notification is currently 
+the availability of a new program image. This notification is currently 
 done via TinyOS dissemination service, and it triggers all motes in the 
-network to get the new program image. Upon receiving the complete image 
-over-the-air, each node automatically reboots and reprograms itself.</p>
+network to get the new program image. After all motes receive the image 
+over-the-air, you can instruct the base station to disseminate the 
+command to reprogram in the network. For example,
+</p>
+<pre class=verbatim>   % tos-deluge /dev/ttyUSB0 telosb -dr 1
+</pre><p></p>
 <p>
 </p>
-<a name="node_sec_4"></a>
-<h1>4&nbsp;&nbsp;Deluge T2 Python Toolchain</h1>
+<a name="node_sec_5"></a>
+<h1>5&nbsp;&nbsp;Deluge T2 Python Toolchain</h1>
 <p></p>
 <p>
 Different from Deluge 2.0, Deluge T2 toolchain is written in Python. 
-However, as demonstrated in the previous section, the usage is very 
-similar.</p>
+However, as demonstrated in the previous section, the usage is similar.</p>
 <p>
 </p>
-<a name="node_sec_4.1"></a>
-<h2>4.1&nbsp;&nbsp;-p -ping</h2>
+<a name="node_sec_5.1"></a>
+<h2>5.1&nbsp;&nbsp;-p -ping</h2>
 <p>This command is useful for checking the status of program images on a 
 mote. It provides information such as program name, compile time, size 
 of the image, and so on.</p>
 <p>
 </p>
-<a name="node_sec_4.2"></a>
-<h2>4.2&nbsp;&nbsp;-i -inject</h2>
-<p>This command creates a program image from the supplied 
-<code class=verbatim>tos_image.xml</code> file, and it injects the image into specified 
-volume on the mote. All versioning information is kept on the mote, so 
-no state is stored on the PC.</p>
+<a name="node_sec_5.2"></a>
+<h2>5.2&nbsp;&nbsp;-i -inject</h2>
+<p>This command creates a program image from the supplied
+<code class=verbatim>tos_image.xml</code> file, and it injects the image into specified
+volume on the mote. </p>
 <p>
 </p>
-<a name="node_sec_4.3"></a>
-<h2>4.3&nbsp;&nbsp;-r -reboot</h2>
-<p>This command sets up the mote to reprogram itself after reboot, and then 
-it reboots the mote. This command is applicable only to the directly 
-connected mote.</p>
+<a name="node_sec_5.3"></a>
+<h2>5.3&nbsp;&nbsp;-r -reprogram</h2>
+<p>This command sets up the directly-connected mote to reprogram itself
+after reboot, and then it reboots the mote.</p>
 <p>
 </p>
-<a name="node_sec_4.4"></a>
-<h2>4.4&nbsp;&nbsp;-d -dissemination</h2>
-<p>This command instructs the directly connected mote to disseminate an 
-image to the network. This image is specified by the volume ID. Upon 
-successfully receiving an image, motes in the network automatically 
-reprogram themselves.</p>
+<a name="node_sec_5.4"></a>
+<h2>5.4&nbsp;&nbsp;-d -disseminate</h2>
+<p>This command instructs the base station mote to disseminate an image to 
+the network. This image is specified by the volume ID.</p>
+<p>
+</p>
+<a name="node_sec_5.5"></a>
+<h2>5.5&nbsp;&nbsp;-dr -disseminate-and-reprogram</h2>
+<p>This command asks the motes in the network not only to disseminate an
+image but also to start running it. This is accomplish using a reboot.</p>
 <p>
 </p>
-<a name="node_sec_4.5"></a>
-<h2>4.5&nbsp;&nbsp;-e -erase</h2>
-<p>This command erases a flash volume on the directly connected mote.</p>
+<a name="node_sec_5.6"></a>
+<h2>5.6&nbsp;&nbsp;-e -erase</h2>
+<p>This command erases a flash volume on the base station mote.</p>
 <p>
 </p>
-<a name="node_sec_4.6"></a>
-<h2>4.6&nbsp;&nbsp;-s -reset</h2>
-<p>This command resets versioning information of a specific image on the 
-directly connected mote.</p>
+<a name="node_sec_5.7"></a>
+<h2>5.7&nbsp;&nbsp;-s -stop</h2>
+<p>The effect of <code class=verbatim>-d</code> and <code class=verbatim>-dr</code> is continuous which means a new
+mote will become ``infected'' if he is nearby. This command stops the
+``infection''.</p>
 <p>
 </p>
-<div align=right class=colophon>
-<i>Last modified: Friday, May 25th, 2007<br>
-HTML conversion by <a href="http://www.ccs.neu.edu/~dorai/tex2page/tex2page-doc.html">TeX2page 2004-09-11</a></i>
+<a name="node_sec_5.8"></a>
+<h2>5.8&nbsp;&nbsp;-ls -local-stop</h2>
+<p>When <code class=verbatim>-d</code> or <code class=verbatim>-dr</code> are in effect, the volume used by them is
+locked. This command can be used to unlock the volume in order to
+erase or inject a new image.</p>
+<p>
+</p>
+<p></p>
+<div align=right class=colophon>Last modified: Monday, January 14th, 2008 2:11:03pm<br><div align=right class=advertisement>HTML conversion by <a href="http://www.ccs.neu.edu/~dorai/tex2page/tex2page-doc.html">TeX2page 20050501</a></div></div>
 </div>
 </body>
 </html>