<html>
<head>
- <title>Installing TinyOS 2.0</title>\r
+ <title>Installing TinyOS 2.0.2</title>\r
<link href="../stylesheets/tutorial.css" rel="stylesheet" type="text/css">\r
</head>
<body>
- <div class="title">Upgrading from TinyOS 1.x to TinyOS 2.x</div>
- <div class="subtitle">Last updated 8 April 2007</div>
+ <div class="title">Upgrading from TinyOS 1.x to TinyOS 2.0.2</div>
+ <div class="subtitle">Last updated 30 July 2007</div>
<p>
This document describes how to upgrade your TinyOS 1.x environment to
a TinyOS 2.x environment. This requires that you not only install the
such as the error message "the procedure entry point basename could not be located
in the dynamic link library cygwin1.dll", this is likely due
to a Cygwin version incompatibility: try the "Other" Windows/Cygwin
-RPM (1.2.7a).
+RPM. If you are using Cygwin and installing the nesC RPM
+causes an error that the RPM was built for Cygwin, add the <tt>--ignoreos</tt>
+option.
+
+
<p>
<td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/linux/nesc-1.2.8a-1.i386.rpm">nesc-1.2.8a-1.i386.rpm </a></td>
<td><a href=""></a><code>rpm -Uvh</code><br><code>rpm -Uvh --ignoreos</code> (if Cygwin complains)</td>
</tr>
-
+<tr></tr>
+<tr>
+ <td bgcolor="#dddddd"><b>Tool</b></td>
+ <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>
+ <td bgcolor="#dddddd"><b>32-bit Linux</b></td>
+ <td bgcolor="#dddddd"><b>64-bit Linux</b></td>
+ <td bgcolor="#dddddd"><b>Command</b></td>
+</tr>
<tr>
- <td bgcolor="#dddddd">tinyos-tools</td>
- <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-tools-1.2.3-1.cygwin.i386.rpm">tinyos-tools-1.2.2-1.cygwin.i386.rpm</a></td>
- <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-tools-1.2.3-1.cygwin.i386.rpm">tinyos-tools-1.2.2-1.cygwin.i386.rpm</a></td>
- <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.3-1.i386.rpm">tinyos-tools-1.2.2-1.i386.rpm</a></td>
- <td bgcolor="#dddddd"><a href=""></a><code>rpm -ivh --force</code> (1.x tree)<br><code>rpm -Uvh</code> (no 1.x tree)<br></td>
+ <td>tinyos-tools</td>
+ <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-tools-1.2.4-2.cygwin.i386.rpm">tinyos-tools-1.2.4-2.cygwin.i386.rpm</a></td>
+ <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.4-2.i386.rpm">tinyos-tools-1.2.4-2.i386.rpm</a></td>
+ <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.4-2.i686.rpm">tinyos-tools-1.2.4-2.i686.rpm</a></td>
+ <td><a href=""></a><code>rpm -ivh --force</code> (1.x tree)<br><code>rpm -Uvh</code> (no 1.x tree)<br></td>
</tr>
</tbody></table>
<tr>
<td>TinyOS</td>
- <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-2.0.0-3.cygwin.noarch.rpm">tinyos-2.0.0-3.cygwin.noarch.rpm</a></td>
- <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-2.0.0-3.noarch.rpm">tinyos-2.0.0-3.noarch.rpm</a></td>
+ <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-2.0.2-2.cygwin.noarch.rpm">tinyos-2.0.2-2.cygwin.noarch.rpm</a></td>
+ <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-2.0.2-2.noarch.rpm">tinyos-2.0.2-2.noarch.rpm</a></td>
<td><tt>rpm -Uvh</tt> (to upgrade)<br>
<tt>rpm -ivh</tt> (to install)<br>
<tt>rpm -ivh --force</tt> (to force install)<br>
groups: </li>
-->
</code></code></li></ol>
+<li><p>Finally, if you have installed TinyOS 2.0.1, there is a bug in TOSSIM (which will be fixed in 2.0.2).
+The bug is in file <tt>tos/chips/atm128/sim/atm128_sim.h</tt>. Change these lines 22 and 23 from:
+
+<pre>
+#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + 0x20)
+#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr) + 0x20)
+</pre>
+
+to
+
+<pre>
+#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr))
+#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr))
+</pre>
+
+If you do not do this, then timers will not work correctly.
</li></ul>
<a name="tinyos1"><h1>Switching back to a TinyOS 1.x tree</h1></a>