[Tinyos-beta-commits] CVS: tinyos-1.x/beta/teps/html tep1.html, 1.8, 1.9 tep101.html, 1.6, 1.7 tep102.html, 1.8, 1.9 tep103.html, 1.4, 1.5 tep104.html, 1.4, 1.5 tep105.html, 1.4, 1.5 tep106.html, 1.5, 1.6 tep107.html, 1.3, 1.4 tep2.html, 1.4, 1.5 tep3.html, 1.5, 1.6

Phil Levis scipio at users.sourceforge.net
Mon Jun 6 14:30:44 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/teps/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26133/html

Modified Files:
	tep1.html tep101.html tep102.html tep103.html tep104.html 
	tep105.html tep106.html tep107.html tep2.html tep3.html 
Log Message:
Updated HTML.


Index: tep1.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep1.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** tep1.html	24 Mar 2005 21:21:41 -0000	1.8
--- tep1.html	6 Jun 2005 21:30:38 -0000	1.9
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>TEP Structure and Keywords</title>
  <meta name="author" content="Philip Levis" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>TEP Structure and Keywords</title>
  <meta name="author" content="Philip Levis" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="tep-structure-and-keywords">
  <h1 class="title">TEP Structure and Keywords</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="tep-structure-and-keywords">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep101.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep101.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** tep101.html	25 May 2005 02:46:52 -0000	1.6
--- tep101.html	6 Jun 2005 21:30:38 -0000	1.7
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Analog-to-Digital Converters (ADCs)</title>
  <meta name="author" content="Jan-Hinrich Hauer, Philip Levis, Vlado Handziski, David Gay" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Analog-to-Digital Converters (ADCs)</title>
  <meta name="author" content="Jan-Hinrich Hauer, Philip Levis, Vlado Handziski, David Gay" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="analog-to-digital-converters-adcs">
  <h1 class="title">Analog-to-Digital Converters (ADCs)</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 301,307 ****
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">20-Dec-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.5</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-02-14</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Discuss:</th><td class="field-body">TinyOS Developer List &lt;tinyos-devel at mail.millennium.berkeley.edu&gt;</td>
--- 300,306 ----
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">20-Dec-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.9</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-06-06</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Discuss:</th><td class="field-body">TinyOS Developer List &lt;tinyos-devel at mail.millennium.berkeley.edu&gt;</td>
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="analog-to-digital-converters-adcs">
  <div class="note">
  <p class="first admonition-title">Note</p>
***************
*** 318,327 ****
  <div class="section" id="abstract">
  <h1><a name="abstract">Abstract</a></h1>
! <p>This TEP proposes a new hardware abstraction for the analog-to-digital
! converters (ADCs) in TinyOS 2.x. It focuses on aligning the ADC
  abstraction with the three-layer Hardware Abstraction Architecture
! (HAA) described in TEP 2. The ADC abstraction itself does not include
! an HIL, but the platform independent representation is discussed in
! TEP 109 (Sensorboards).</p>
  </div>
  <div class="section" id="introduction">
--- 318,327 ----
  <div class="section" id="abstract">
  <h1><a name="abstract">Abstract</a></h1>
! <p>This TEP proposes a hardware abstraction for TinyOS 2.x
! analog-to-digital converters (ADCs). It focuses on aligning the ADC
  abstraction with the three-layer Hardware Abstraction Architecture
! (HAA) described in TEP 2. This TEP only addresses the HPL and HAL of
! an ADC. TEP 109 (Sensorboards) presents an example HIL that can sit on
! top of the ADC.</p>
  </div>
  <div class="section" id="introduction">
***************
*** 329,354 ****
  <p>Analog-to-digital converters (ADCs) are devices that convert analog
  input signals to discrete digital output signals, typically voltage to
! a digital number. The ADCs used in TinyOS differ in many respects (see
! <a class="reference" href="#hardware-differences-between-the-current-platforms">Hardware differences between the current platforms</a>). This makes it
! difficult to find a chip independent representation for ADCs. Even if
! there was such a representation, the configuration details of an ADC
! would still depend on the actual device (sensor) producing the input
! signal. Neither a platform independent application nor the ADC
! hardware stack itself has access to this information. It can only be
! determined on a platform or sensorboard level, e.g. which ADC port a
  certain sensor is attached to and how a conversion result needs to be
! interpreted. Thus there is no platform independent (HIL)
! representation of an ADC in TinyOS.</p>
! <p>Instead, on top of the ADC hardware abstraction a further abstraction
! concept is required to use ADCs in a platform independent way. This
! concept is described in TEP 109 (Sensorboards): Named sensor
! components, called sensor wrappers, provide platform independent
! access to sensors by providing standard TinyOS interfaces.</p>
! <p>In order to facilitate the writing of sensor wrappers and allow them
! to incorporate certain services (e.g. access to the ADC on a round
! robin basis), the ADC hardware stack will include as its top layer a
! second, chip independent (but still platform dependent) HAL.  The
! following section gives an overview of the involved components.
! Afterwards each layer is discussed in detail.</p>
  </div>
  <div class="section" id="overview">
--- 329,371 ----
  <p>Analog-to-digital converters (ADCs) are devices that convert analog
  input signals to discrete digital output signals, typically voltage to
! a digital number. In earlier versions of TinyOS, the distinction
! between a sensor and an ADC were blurred: this led components that had
! nothing to do with an ADC to still resemble one programatically, even
! though the semantics and forms of operation were completely
! different. This led non-ADC sensors to introduce new interfaces, such
! as ADCError, that were tightly bound to sensor acquisition but
! separate in wiring. The separation between the ADC and ADCError
! interface is bug prone and problematic, as is the equation of a sensor
! and an ADC. TinyOS 2.x separates the structure and interfaces of an
! ADC from those of sensors (which may be on top of an ADC, but this is
! hidden from higher level components). This TEP presents how TinyOS 2.x
! decomposes and structures ADC software. TEP 109 (Sensorboards) presents how a
! platform can present actual named sensors <a class="citation-reference" href="#tep109" id="id1" name="id1">[tep109]</a>.</p>
! <p>TinyOS platforms are based on many different hardware chips, whose
! ADCs differ in many respects (see <a class="reference" href="#hardware-differences-between-the-current-platforms">Hardware differences between the
! current platforms</a>).  This makes it difficult to find a chip
! independent representation for ADCs. Even if there were such a
! representation, the configuration details of an ADC still depend on
! the actual device (sensor) producing the input signal. Neither a
! platform independent application nor the ADC hardware stack itself has
! access to this information, which can only be determined on a platform
! or sensorboard level. For example, determining which ADC port a
  certain sensor is attached to and how a conversion result needs to be
! interpreted is a platform specific determination. Thus ADCs themselves
! are not well suited to a platform independent (HIL) representation.</p>
! <p>Although ADCs are very platform specific, there are commonalities
! across platforms. For example, many ADCs only allow a single sample at
! a time. As many components may be sampling different sensors that
! share an ADC, the ADC system needs to provide some form of resource
! arbitration, and being able to use a library of common arbitration
! components is desirable. Therefore, following a common structure to
! interface to the HIL can greatly simplify sensor deployment and
! development.</p>
! <p>In order to facilitate sensor development and allow them to
! incorporate certain services (e.g. access to the ADC on a round robin
! basis), the ADC hardware stack includes as its top layer a second,
! chip independent (but still platform dependent) HAL.  The following
! section gives an overview of the involved components.  Afterwards each
! layer is discussed in detail.</p>
  </div>
  <div class="section" id="overview">
***************
*** 359,393 ****
  This overview shows how they match up by describing the integrated
  component graph in a top-down fashion.</p>
! <p>The highest layer of abstraction, the HIL, will be composed of named
! sensor components (sensor wrappers) that provide interfaces only for
! acquiring the corresponding data. TEP 109 covers the definition and
! implementation of these HIL sensor components. However, many sensors
! sit on top of a shared hardware ADC.</p>
! <p>As the ADC hardware will usually be multiplexed between several client
! applications, access to it needs to be arbitrated.  The ADC stack uses
  standard TinyOS resource management modules, such as
! AcquireDataRoundRobinM, to arbitrate access. These generic arbitration
! modules use parameterized AcquireData[Now] (and Resource) interfaces.
! An ADC hardware stack that supports arbitration of its input channels
! therefore incorporates a layer providing these interfaces for standard
! arbiter components to use. The parameter to such a parameterized
! interface defines the sensor or, more precisely, the ADC input
! channel. An input channel is the most natural representation on this
! level of abstraction, because a common denominator of all ADCs is that
! they sample an input channel and produce conversion results. Thus one
! level of abstraction of the ADC is a parameterized AcquireData
! interface, where the parameter defines the ADC input channel to be
! sampled. This level of abstraction, however, is not a HIL
  representation, because choosing an input channel is a platform or
  sensorboard specific decision (as a platform independent application
! would not know which channel to choose).  Instead, this layer provides
! a platform dependent HAL interface. It is important to note that the
! implementation of this HAL is, however, chip dependent and platform
! independent, while the instantiation is performed on a platform level
! (for an example, see below).</p>
  <p>There is also need for an HAL in the 'traditional' sense of the
! Hardware Abstraction Architecture (HAA): An HAL that offers access to
! all the chip specific capabilities via a chip specific interface.
! Below this HAL the lowest layer is, as usual, composed of the HPL.</p>
  <p>An example for a component stack of a platform independent application
  wiring to a sensor wrapper on the 'eyes' platform (using the MSP430)
--- 376,414 ----
  This overview shows how they match up by describing the integrated
  component graph in a top-down fashion.</p>
! <p>The highest layer of abstraction, the HIL, is composed of named sensor
! components that provide interfaces only for acquiring the
! corresponding data <a class="citation-reference" href="#tep109" id="id2" name="id2">[tep109]</a>.</p>
! <p>Many sensors sit on top of a shared hardware ADC, however. As the ADC
! hardware is a shared resource that is multiplexed between several
! clients, it requires access arbitration.  The Service layer provides
! this level of ADC abstraction. The Service layer uses a library of
  standard TinyOS resource management modules, such as
! AcquireDataRoundRobinM (found in tos/lib/adc), to arbitrate access to
! underlying ADC abstractions. These generic arbitration modules use
! parameterized intefaces, where the parameterization follows the
! Service Instance pattern to represent arbitration
! clients <a class="citation-reference" href="#sipattern" id="id3" name="id3">[sipattern]</a>.</p>
! <p>The highest level of actual ADC abstraction -- HAL2, which sensors
! interact with -- is composed of three parameterized interfaces:
! AcquireData, AcquireDataNow, and Resource.  An ADC hardware stack that
! supports arbitration of its input channels therefore MUST incorporate
! a layer providing these interfaces for standard arbiter components to
! use. The parameter to these parameterized interface defines the sensor
! or, more precisely, the ADC input channel. An input channel is the
! most natural representation on this level of abstraction, because a
! common denominator of all ADCs is that they sample an input channel
! and produce conversion results.</p>
! <p>Although HAL2 is common across many ADCs, it is <em>not</em> a HIL
  representation, because choosing an input channel is a platform or
  sensorboard specific decision (as a platform independent application
! would not know which channel to choose).  Instead, this layer is a
! platform dependent HAL interface. The implementation HAL2 is chip
! dependent and platform independent, and instantiation is performed on
! a platform level (for an example, see below).</p>
  <p>There is also need for an HAL in the 'traditional' sense of the
! Hardware Abstraction Architecture (HAA): a HAL that offers access to
! all the chip specific capabilities via a chip specific interface. This
! HAL is called HAL1. HAL1 resembles a standard HAL in the HAA; the HPL
! lies below it.</p>
  <p>An example for a component stack of a platform independent application
  wiring to a sensor wrapper on the 'eyes' platform (using the MSP430)
***************
*** 451,457 ****
  <div class="section" id="hardware-differences-between-the-current-platforms">
  <h1><a name="hardware-differences-between-the-current-platforms">Hardware differences between the current platforms</a></h1>
! <p>Currently two different on-chip ADCs are in use for TinyOS, the ADC of
! the Atmel ATmega 128 and the ADC12 of TI MSP430.  Their
! characteristics are compared in the following table:</p>
  <table border="1" class="docutils">
  <colgroup>
--- 472,481 ----
  <div class="section" id="hardware-differences-between-the-current-platforms">
  <h1><a name="hardware-differences-between-the-current-platforms">Hardware differences between the current platforms</a></h1>
! <p>The TI MSP430 and the Atmel ATmega 128 are two common microcontrollers
! used in TinyOS platforms. They both have integrated ADCs, but have
! very different functionality and capabilities. These distinctions
! illustrate the complexities that prevent ADCs from having a truly
! hardware independent abstraction. The following table comparse the
! characteristics of the two microcontrollers:</p>
  <table border="1" class="docutils">
  <colgroup>
***************
*** 600,604 ****
  <p>As explained in the <a class="reference" href="#overview">Overview</a> the HAL consists of two sublayers.  To
  differentiate the two Hardware Adaptation 'sub'Layers they are called
! HAL2 (for the HAL providing a parameterized AcquireData[Now]
  interface) and HAL1 (for the 'traditional' HAL). In the hardware stack
  for the ADC the HAL1 resides below HAL2, i.e. HAL2 uses the primitives
--- 624,628 ----
  <p>As explained in the <a class="reference" href="#overview">Overview</a> the HAL consists of two sublayers.  To
  differentiate the two Hardware Adaptation 'sub'Layers they are called
! HAL2 (for the HAL providing a parameterized AcquireData and AcquireData
  interface) and HAL1 (for the 'traditional' HAL). In the hardware stack
  for the ADC the HAL1 resides below HAL2, i.e. HAL2 uses the primitives
***************
*** 622,627 ****
  configuration MSP430ADC12C  
  {
!   //provides interface Init;
!   //provides interface StdControl;
    provides interface Resource[uint8_t client];
    provides interface MSP430ADC12SingleChannel as SingleChannel[uint8_t id];
--- 646,650 ----
  configuration MSP430ADC12C  
  {
!   provides interface Init;
    provides interface Resource[uint8_t client];
    provides interface MSP430ADC12SingleChannel as SingleChannel[uint8_t id];
***************
*** 656,662 ****
  for all other requests, therefore an application SHOULD
  minimize this reservation period. Every application MUST
! conform to this policy. The HAL1 will NOT check at runtime
! whether a data request maps to the application that has
! reserved the ADC.</p>
  <p>ii. The MSP430ADC12SingleChannel interface includes four
  <em>getData</em> commands, two events signalling data back and a
--- 679,685 ----
  for all other requests, therefore an application SHOULD
  minimize this reservation period. Every application MUST
! conform to this policy. The HAL1 MAY check at runtime whether a
! data request maps to the application that has reserved the ADC, but
! a caller MUST NOT assume it does.</p>
  <p>ii. The MSP430ADC12SingleChannel interface includes four
  <em>getData</em> commands, two events signalling data back and a
***************
*** 689,703 ****
  </pre>
  <p>An application needs to implement an event handler for the
! MSP430ADC12SingleChannel.getConfigurationData() event. This event 
! handler MUST return the configuration data for the channel
! the application wants to sample. The event MAY be signalled
! multiple times by HAL1 and the application MUST always return  
! the same configuration data. 
! This approach (in contrast to a command) has the
! advantage that HAL1 does not need to maintain a table 
! of configuration data in RAM. Instead configuration data is 
! retrieved from the application at runtime whenever needed.
! The application SHOULD keep configuration data in program
! memory (flash), not in RAM.</p>
  <p>The <em>getData</em> commands use the four different conversion modes
  of the ADC12: A single channel converted once or repeatedly or
--- 712,726 ----
  </pre>
  <p>An application needs to implement an event handler for the
! MSP430ADC12SingleChannel.getConfigurationData() event. This
! event handler MUST return the configuration data for the
! channel the application wants to sample. The event MAY be
! signalled multiple times by HAL1 and the application MUST
! return the same configuration data for each of these
! events. This approach (in contrast to a command) has the
! advantage that HAL1 does not need to maintain a table of
! configuration data in RAM. Instead configuration data is
! retrieved from the application at runtime whenever needed.  The
! application SHOULD keep configuration data in program memory
! (flash), not in RAM.</p>
  <p>The <em>getData</em> commands use the four different conversion modes
  of the ADC12: A single channel converted once or repeatedly or
***************
*** 817,821 ****
      interface AcquireDataBuffered[uint8_t port];
    }
-   }
  }
  implementation {
--- 840,843 ----
***************
*** 823,827 ****
    
    Init = MSP430ADC12C;
-   StdControl = MSP430ADC12C;
    Resource = MSP430ADC12C;
    AcquireData = ADCM;
--- 845,848 ----
***************
*** 872,876 ****
  mentioned in the <a class="reference" href="#introduction">Introduction</a>. Instead named sensor wrappers
  provide platform independent access to the ADC which is covered in TEP
! 109 (Sensorboards).</p>
  </div>
  <div class="section" id="implementation">
--- 893,897 ----
  mentioned in the <a class="reference" href="#introduction">Introduction</a>. Instead named sensor wrappers
  provide platform independent access to the ADC which is covered in TEP
! 109 <a class="citation-reference" href="#tep109" id="id4" name="id4">[tep109]</a>.</p>
  </div>
  <div class="section" id="implementation">
***************
*** 912,915 ****
--- 933,951 ----
  </div>
  </div>
+ <div class="section" id="citations">
+ <h1><a name="citations">5. Citations</a></h1>
+ <table class="docutils citation" frame="void" id="sipattern" rules="none">
+ <colgroup><col class="label" /><col /></colgroup>
+ <tbody valign="top">
+ <tr><td class="label"><a class="fn-backref" href="#id3" name="sipattern">[sipattern]</a></td><td>The Service Instance Pattern. In <em>Software Design Patterns for TinyOS.</em> David Gay, Philip Levis, and David Culler. Published in Proceedings of the ACM SIGPLAN/SIGBED 2005 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'05).</td></tr>
+ </tbody>
+ </table>
+ <table class="docutils citation" frame="void" id="tep109" rules="none">
+ <colgroup><col class="label" /><col /></colgroup>
+ <tbody valign="top">
+ <tr><td class="label"><a name="tep109">[tep109]</a></td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id2">2</a>, <a class="fn-backref" href="#id4">3</a>)</em> TEP 109: Sensorboards. David Gay, Wei Hong, Philip Levis, and Joe Polastre.</td></tr>
+ </tbody>
+ </table>
+ </div>
  </div>
  </body>

Index: tep102.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep102.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** tep102.html	20 May 2005 10:10:08 -0000	1.8
--- tep102.html	6 Jun 2005 21:30:38 -0000	1.9
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Timers</title>
  <meta name="author" content="Cory Sharp" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Timers</title>
  <meta name="author" content="Cory Sharp" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="timers">
  <h1 class="title">Timers</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 301,305 ****
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">22-Sep-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.9</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-05-20</td>
--- 300,304 ----
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">22-Sep-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.10</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-05-20</td>
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="timers">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep103.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep103.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tep103.html	24 Mar 2005 21:21:41 -0000	1.4
--- tep103.html	6 Jun 2005 21:30:39 -0000	1.5
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Permanent Data Storage (Flash)</title>
  <meta name="author" content="David Gay, Jonathan Hui" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Permanent Data Storage (Flash)</title>
  <meta name="author" content="David Gay, Jonathan Hui" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="permanent-data-storage-flash">
  <h1 class="title">Permanent Data Storage (Flash)</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="permanent-data-storage-flash">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep104.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep104.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tep104.html	24 Mar 2005 21:21:41 -0000	1.4
--- tep104.html	6 Jun 2005 21:30:39 -0000	1.5
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Radio Physical Layer</title>
  <meta name="author" content="Kevin Klues" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Radio Physical Layer</title>
  <meta name="author" content="Kevin Klues" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="radio-physical-layer">
  <h1 class="title">Radio Physical Layer</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 307,310 ****
--- 306,310 ----
  </tbody>
  </table>
+ <div class="document" id="radio-physical-layer">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep105.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep105.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tep105.html	24 Mar 2005 21:21:41 -0000	1.4
--- tep105.html	6 Jun 2005 21:30:39 -0000	1.5
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Radio Link Layer</title>
  <meta name="author" content="Joe Polastre" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Radio Link Layer</title>
  <meta name="author" content="Joe Polastre" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="radio-link-layer">
  <h1 class="title">Radio Link Layer</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="radio-link-layer">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep106.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep106.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** tep106.html	24 Mar 2005 21:21:41 -0000	1.5
--- tep106.html	6 Jun 2005 21:30:39 -0000	1.6
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Schedulers and Tasks</title>
  <meta name="author" content="Philip Levis and Cory Sharp" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Schedulers and Tasks</title>
  <meta name="author" content="Philip Levis and Cory Sharp" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="schedulers-and-tasks">
  <h1 class="title">Schedulers and Tasks</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="schedulers-and-tasks">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep107.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep107.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tep107.html	24 Mar 2005 21:21:41 -0000	1.3
--- tep107.html	6 Jun 2005 21:30:39 -0000	1.4
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Boot Sequence</title>
  <meta name="author" content="Philip Levis" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Boot Sequence</title>
  <meta name="author" content="Philip Levis" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="boot-sequence">
  <h1 class="title">Boot Sequence</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="boot-sequence">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep2.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep2.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tep2.html	24 Mar 2005 21:21:41 -0000	1.4
--- tep2.html	6 Jun 2005 21:30:39 -0000	1.5
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Hardware Abstraction Architecture</title>
  <meta name="author" content="Vlado Handziski, Joseph Polastre, Jan-Hinrich Hauer, Cory Sharp, Adam Wolisz and David Culler" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Hardware Abstraction Architecture</title>
  <meta name="author" content="Vlado Handziski, Joseph Polastre, Jan-Hinrich Hauer, Cory Sharp, Adam Wolisz and David Culler" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="hardware-abstraction-architecture">
  <h1 class="title">Hardware Abstraction Architecture</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="hardware-abstraction-architecture">
  <div class="note">
  <p class="first admonition-title">Note</p>

Index: tep3.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep3.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** tep3.html	24 Mar 2005 21:39:21 -0000	1.5
--- tep3.html	6 Jun 2005 21:30:39 -0000	1.6
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
  <title>Coding Standard</title>
  <meta name="author" content="Ion Yannopoulos" />
--- 4,8 ----
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
  <title>Coding Standard</title>
  <meta name="author" content="Ion Yannopoulos" />
***************
*** 281,285 ****
  </head>
  <body>
- <div class="document" id="coding-standard">
  <h1 class="title">Coding Standard</h1>
  <table class="docinfo" frame="void" rules="none">
--- 281,284 ----
***************
*** 301,307 ****
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">31-Dec-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.8</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-03-24</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Discuss:</th><td class="field-body">TinyOS Developer List &lt;tinyos-devel at mail.millennium.berkeley.edu&gt;</td>
--- 300,306 ----
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">31-Dec-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.10</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2005-06-06</td>
  </tr>
  <tr class="field"><th class="docinfo-name">Draft-Discuss:</th><td class="field-body">TinyOS Developer List &lt;tinyos-devel at mail.millennium.berkeley.edu&gt;</td>
***************
*** 309,312 ****
--- 308,312 ----
  </tbody>
  </table>
+ <div class="document" id="coding-standard">
  <div class="note">
  <p class="first admonition-title">Note</p>
***************
*** 594,605 ****
  <li>Functions should be lower case, words separated by underscores,
  prefixed by package.</li>
! <li>Function macros should be all upper case, words separated by
! underscores, prefixed by package.<ul>
! <li>Use of function macros is discouraged: use inline functions.</li>
  </ul>
  </li>
  <li>Constants should be all upper case, words separated by underscores,
  prefixed by package.<ul>
! <li>Use of <cite>#define</cite> numeric constants is discouraged: use <cite>enum</cite>.</li>
  <li>Do use <cite>#define</cite> for string constants.</li>
  </ul>
--- 594,605 ----
  <li>Functions should be lower case, words separated by underscores,
  prefixed by package.</li>
! <li>Function macros (<cite>#define</cite> ) should be all upper case, words separated
! by underscores, prefixed by package.<ul>
! <li>Using function macros is discouraged: use <cite>inline</cite> functions.</li>
  </ul>
  </li>
  <li>Constants should be all upper case, words separated by underscores,
  prefixed by package.<ul>
! <li>Use of <cite>#define</cite> for numeric constants is discouraged: use <cite>enum</cite>.</li>
  <li>Do use <cite>#define</cite> for string constants.</li>
  </ul>



More information about the Tinyos-beta-commits mailing list