[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 <tinyos-devel at mail.millennium.berkeley.edu></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 <tinyos-devel at mail.millennium.berkeley.edu></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