[Tinyos-2-commits] CVS: tinyos-2.x/doc/html tep103.html, 1.1.2.2, 1.1.2.3

David Gay idgay at users.sourceforge.net
Fri Jun 9 15:00:04 PDT 2006


Update of /cvsroot/tinyos/tinyos-2.x/doc/html
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9177

Modified Files:
      Tag: tinyos-2_0_devel-BRANCH
	tep103.html 
Log Message:
missing interface name


Index: tep103.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/doc/html/Attic/tep103.html,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -C2 -d -r1.1.2.2 -r1.1.2.3
*** tep103.html	9 Jun 2006 21:12:17 -0000	1.1.2.2
--- tep103.html	9 Jun 2006 22:00:02 -0000	1.1.2.3
***************
*** 4,8 ****
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.4: 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.9: http://docutils.sourceforge.net/" />
  <title>Permanent Data Storage (Flash)</title>
  <meta name="author" content="David Gay, Jonathan Hui" />
***************
*** 304,310 ****
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">27-Sep-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.1.2.8</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2006-06-07</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>
--- 304,310 ----
  <tr class="field"><th class="docinfo-name">Draft-Created:</th><td class="field-body">27-Sep-2004</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Version:</th><td class="field-body">1.1.2.9</td>
  </tr>
! <tr class="field"><th class="docinfo-name">Draft-Modified:</th><td class="field-body">2006-06-09</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>
***************
*** 319,330 ****
  TEP 1.</p>
  </div>
! <div class="section">
! <h1><a id="abstract" name="abstract">Abstract</a></h1>
  <p>This memo documents a set of hardware-independent, non-volatile
  storage interfaces for TinyOS 2.x, and the HPL and HAL layers for
  various flash chips.</p>
  </div>
! <div class="section">
! <h1><a id="introduction" name="introduction">1. Introduction</a></h1>
  <p>There are three different flash chip families under use or
  consideration for TinyOS platforms: the Atmel AT45DB family (Mica
--- 319,330 ----
  TEP 1.</p>
  </div>
! <div class="section" id="abstract">
! <h1><a name="abstract">Abstract</a></h1>
  <p>This memo documents a set of hardware-independent, non-volatile
  storage interfaces for TinyOS 2.x, and the HPL and HAL layers for
  various flash chips.</p>
  </div>
! <div class="section" id="introduction">
! <h1><a name="introduction">1. Introduction</a></h1>
  <p>There are three different flash chip families under use or
  consideration for TinyOS platforms: the Atmel AT45DB family (Mica
***************
*** 345,351 ****
  Writes       :  Slow (100s kB/s)    Slow (60kB/s)  Fast (MBs/s)
  Write unit   :  1 bit               256B           100's of bytes
! Bit-errors   :  Low                 Low            High (requires ECC,
                                                     bad-block mapping)
! Read         :  Fast*               Slow+I/O bus   Fast (but limited by
                                                     I/O bus)
  Erase cycles :  10^4 - 10^5         10^4 **        10^5 - 10^7
--- 345,351 ----
  Writes       :  Slow (100s kB/s)    Slow (60kB/s)  Fast (MBs/s)
  Write unit   :  1 bit               256B           100's of bytes
! Bit-errors   :  Low                 Low            High (requires ECC, 
                                                     bad-block mapping)
! Read         :  Fast*               Slow+I/O bus   Fast (but limited by 
                                                     I/O bus)
  Erase cycles :  10^4 - 10^5         10^4 **        10^5 - 10^7
***************
*** 366,371 ****
  of the bus + processor.</p>
  </div>
! <div class="section">
! <h1><a id="non-volatile-storage-abstraction-in-tinyos-2-x" name="non-volatile-storage-abstraction-in-tinyos-2-x">2. Non-Volatile Storage Abstraction in TinyOS 2.x</a></h1>
  <p>The very significant differences between the flash chips used in TinyOS,
  and lack of RAM to hide these differences, preclude common, low-level HIL
--- 366,371 ----
  of the bus + processor.</p>
  </div>
! <div class="section" id="non-volatile-storage-abstraction-in-tinyos-2-x">
! <h1><a name="non-volatile-storage-abstraction-in-tinyos-2-x">2. Non-Volatile Storage Abstraction in TinyOS 2.x</a></h1>
  <p>The very significant differences between the flash chips used in TinyOS,
  and lack of RAM to hide these differences, preclude common, low-level HIL
***************
*** 382,387 ****
  restrictive approach is practical in the single-application model of
  TinyOS.</p>
! <div class="section">
! <h2><a id="large-objects" name="large-objects">2.1 Large objects:</a></h2>
  <p>A large object ranges from a few kilobytes upwards. A large object
  must be erased before use. Each byte in a large object can only
--- 382,387 ----
  restrictive approach is practical in the single-application model of
  TinyOS.</p>
! <div class="section" id="large-objects">
! <h2><a name="large-objects">2.1 Large objects:</a></h2>
  <p>A large object ranges from a few kilobytes upwards. A large object
  must be erased before use. Each byte in a large object can only
***************
*** 402,407 ****
  <p>Examples: program storage, message buffering in delay-tolerant-networking</p>
  </div>
! <div class="section">
! <h2><a id="large-sequential-objects" name="large-sequential-objects">2.2 Large sequential objects</a></h2>
  <p>Some applications (e.g., low-rate data collection) can use a large
  sequential object to save their results in a reliable fashion. A large
--- 402,407 ----
  <p>Examples: program storage, message buffering in delay-tolerant-networking</p>
  </div>
! <div class="section" id="large-sequential-objects">
! <h2><a name="large-sequential-objects">2.2 Large sequential objects</a></h2>
  <p>Some applications (e.g., low-rate data collection) can use a large
  sequential object to save their results in a reliable fashion. A large
***************
*** 422,427 ****
  <p>Example: logs.</p>
  </div>
! <div class="section">
! <h2><a id="small-objects" name="small-objects">2.3 Small objects:</a></h2>
  <p>A small object may be only a few hundred bytes. Small objects support
  random reads and writes and simple transactional behaviour (each read is a
--- 422,427 ----
  <p>Example: logs.</p>
  </div>
! <div class="section" id="small-objects">
! <h2><a name="small-objects">2.3 Small objects:</a></h2>
  <p>A small object may be only a few hundred bytes. Small objects support
  random reads and writes and simple transactional behaviour (each read is a
***************
*** 432,436 ****
  <li>Reads: random, read data as of last commit</li>
  <li>Writes: random, rewrite ok</li>
! <li>Failure model: failure during/between writes does not lead to object
  loss (at reboot, object will contain state as of the most recent
  successful commit)</li>
--- 432,436 ----
  <li>Reads: random, read data as of last commit</li>
  <li>Writes: random, rewrite ok</li>
! <li>Failure model: failure during/between writes does not lead to object 
  loss (at reboot, object will contain state as of the most recent
  successful commit)</li>
***************
*** 442,453 ****
  </div>
  </div>
! <div class="section">
! <h1><a id="hpl-hal-hil-architecture" name="hpl-hal-hil-architecture">3. HPL/HAL/HIL Architecture</a></h1>
  <p>The proposed architecture aligns with the three-layer Hardware
  Abstraction Architecture (HAA). This document briefly presents
  the components and interfaces; for full details see the nesdoc
  comments in the referenced components and interfaces.</p>
! <div class="section">
! <h2><a id="hardware-presentation-layer-hpl" name="hardware-presentation-layer-hpl">3.1 Hardware Presentation Layer (HPL)</a></h2>
  <p>The flash HPL has a chip-dependent, system-independent interface. The
  implementation of this HPL is system-dependent. The flash HPL SHOULD be
--- 442,453 ----
  </div>
  </div>
! <div class="section" id="hpl-hal-hil-architecture">
! <h1><a name="hpl-hal-hil-architecture">3. HPL/HAL/HIL Architecture</a></h1>
  <p>The proposed architecture aligns with the three-layer Hardware
  Abstraction Architecture (HAA). This document briefly presents
  the components and interfaces; for full details see the nesdoc
  comments in the referenced components and interfaces.</p>
! <div class="section" id="hardware-presentation-layer-hpl">
! <h2><a name="hardware-presentation-layer-hpl">3.1 Hardware Presentation Layer (HPL)</a></h2>
  <p>The flash HPL has a chip-dependent, system-independent interface. The
  implementation of this HPL is system-dependent. The flash HPL SHOULD be
***************
*** 459,463 ****
  <pre class="literal-block">
  configuration HplAt45dbC {
!   provides interface;
  } ...
  </pre>
--- 459,463 ----
  <pre class="literal-block">
  configuration HplAt45dbC {
!   provides interface HplAt45db;
  } ...
  </pre>
***************
*** 490,495 ****
  release the resource itself.</p>
  </div>
! <div class="section">
! <h2><a id="hardware-adaptation-layer-hal" name="hardware-adaptation-layer-hal">3.2 Hardware Adaptation Layer (HAL)</a></h2>
  <p>The flash HAL has a chip-dependent, system-independent interface and
  implementation. Flash families with a common HPL SHOULD have a common
--- 490,495 ----
  release the resource itself.</p>
  </div>
! <div class="section" id="hardware-adaptation-layer-hal">
! <h2><a name="hardware-adaptation-layer-hal">3.2 Hardware Adaptation Layer (HAL)</a></h2>
  <p>The flash HAL has a chip-dependent, system-independent interface and
  implementation. Flash families with a common HPL SHOULD have a common
***************
*** 575,590 ****
                             error_t error);
  
!   command error_t write(stm25p_addr_t addr, void* buf,
                          stm25p_addr_t len);
!   event   error_t writeDone(stm25p_addr_t addr, void* buf,
                              stm25p_addr_t len, error_t error);
  
    command error_t erase(uint8_t sector, uint8_t num_sectors);
!   event   error_t eraseDone(uint8_t sector, uint8_t num_sectors,
                              error_t error);
  
!   command error_t computeCrc(uint16_t crc, stm25p_addr_t addr,
                               stm25p_len_t len );
!   event void computeCrcDone(stm25p_addr_t addr, stm25p_len_t len,
                              uint16_t crc, error_t error);
  }
--- 575,590 ----
                             error_t error);
  
!   command error_t write(stm25p_addr_t addr, void* buf, 
                          stm25p_addr_t len);
!   event   error_t writeDone(stm25p_addr_t addr, void* buf, 
                              stm25p_addr_t len, error_t error);
  
    command error_t erase(uint8_t sector, uint8_t num_sectors);
!   event   error_t eraseDone(uint8_t sector, uint8_t num_sectors, 
                              error_t error);
  
!   command error_t computeCrc(uint16_t crc, stm25p_addr_t addr, 
                               stm25p_len_t len );
!   event void computeCrcDone(stm25p_addr_t addr, stm25p_len_t len, 
                              uint16_t crc, error_t error);
  }
***************
*** 597,602 ****
  within the <tt class="docutils literal"><span class="pre">Stm25pSector</span></tt> interface.</p>
  </div>
! <div class="section">
! <h2><a id="hardware-interface-layer-hil" name="hardware-interface-layer-hil">3.3 Hardware Interface Layer (HIL)</a></h2>
  <p>The HIL implementations are system-independent, but chip (family)
  dependent. They implement the three storage abstractions and
--- 597,602 ----
  within the <tt class="docutils literal"><span class="pre">Stm25pSector</span></tt> interface.</p>
  </div>
! <div class="section" id="hardware-interface-layer-hil">
! <h2><a name="hardware-interface-layer-hil">3.3 Hardware Interface Layer (HIL)</a></h2>
  <p>The HIL implementations are system-independent, but chip (family)
  dependent. They implement the three storage abstractions and
***************
*** 659,665 ****
  <pre class="literal-block">
  interface BlockWrite {
!   command error_t write(storage_addr_t addr, void* buf,
                          storage_len_t len);
!   event void writeDone(storage_addr_t addr, void* buf,
                         storage_len_t len, error_t error);
  
--- 659,665 ----
  <pre class="literal-block">
  interface BlockWrite {
!   command error_t write(storage_addr_t addr, void* buf, 
                          storage_len_t len);
!   event void writeDone(storage_addr_t addr, void* buf, 
                         storage_len_t len, error_t error);
  
***************
*** 680,684 ****
    command error_t computeCrc(storage_addr_t addr, storage_len_t len,
                               uint16_t baseCrc);
!   event   void    computeCrcDone(storage_addr_t addr, storage_len_t len,
                                   uint16_t crc, error_t error );
  
--- 680,684 ----
    command error_t computeCrc(storage_addr_t addr, storage_len_t len,
                               uint16_t baseCrc);
!   event   void    computeCrcDone(storage_addr_t addr, storage_len_t len, 
                                   uint16_t crc, error_t error );
  
***************
*** 746,750 ****
  } ...
  </pre>
! <p>A small object MUST be mounted (see the <tt class="docutils literal"><span class="pre">Mount</span></tt> interface) before
  the first use.</p>
  <p>The <tt class="docutils literal"><span class="pre">Mount</span></tt> and <tt class="docutils literal"><span class="pre">ConfigStorage</span></tt> interfaces contain the following
--- 746,750 ----
  } ...
  </pre>
! <p>A small object MUST be mounted (see the <tt class="docutils literal"><span class="pre">Mount</span></tt> interface) before 
  the first use.</p>
  <p>The <tt class="docutils literal"><span class="pre">Mount</span></tt> and <tt class="docutils literal"><span class="pre">ConfigStorage</span></tt> interfaces contain the following
***************
*** 774,784 ****
  </div>
  </div>
! <div class="section">
! <h1><a id="implementation" name="implementation">4. Implementation</a></h1>
  <p>An AT45DB implementation can be found in tinyos-2.x/tos/chips/at45db.</p>
  <p>An STM25P implementation can be found in tinyos-2.x/tos/chips/stm25p.</p>
  </div>
! <div class="section">
! <h1><a id="authors-addresses" name="authors-addresses">5. Authors' Addresses</a></h1>
  <div class="line-block">
  <div class="line">David Gay</div>
--- 774,784 ----
  </div>
  </div>
! <div class="section" id="implementation">
! <h1><a name="implementation">4. Implementation</a></h1>
  <p>An AT45DB implementation can be found in tinyos-2.x/tos/chips/at45db.</p>
  <p>An STM25P implementation can be found in tinyos-2.x/tos/chips/stm25p.</p>
  </div>
! <div class="section" id="authors-addresses">
! <h1><a name="authors-addresses">5. Authors' Addresses</a></h1>
  <div class="line-block">
  <div class="line">David Gay</div>



More information about the Tinyos-2-commits mailing list