]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - doc/txt/tep2.txt
debug: add cfprintf macro
[tinyos-2.x.git] / doc / txt / tep2.txt
index 2878a35f9e99c44465030f8c9603cc9b0859f6df..8b3a0bee6a4da6e12f841a6d2433c94e803346ff 100644 (file)
@@ -5,16 +5,11 @@ Hardware Abstraction Architecture
 :TEP: 2
 :Group: Core Working Group 
 :Type: Best Current Practice
-:Status: Draft
-:TinyOS-Version: 2.0
+:Status: Final
+:TinyOS-Version: 2.x
 :Author: Vlado Handziski, Joseph Polastre, Jan-Hinrich Hauer, 
          Cory Sharp, Adam Wolisz, David Culler, David Gay
 
-:Draft-Created: 14-Sep-2004
-:Draft-Version: $Revision$
-:Draft-Modified: $Date$
-:Draft-Discuss: TinyOS Developer List <tinyos-devel at mail.millennium.berkeley.edu>
-
 .. Note::
 
    This document specifies a Best Current Practices for the TinyOS
@@ -108,45 +103,46 @@ reusable applications.
 
 ::
 
-                                 +-----------------------------+
-                                 |                             |
-                                 | Cross-platform applications |
-                                 |                             |
-                                 +--------------+--------------+
- +-----------------+                            |                            +-----------------+
- |Platform-specific|                            |                            |Platform-specific|
- |  applications   |                            |                            |  applications   |
- +--------+--------+       Platform-independent |  hardware interface        +--------+--------+
-          |          +-----------------+--------+--------+-----------------+          |
-          |          |                 |                 |                 |          |
-          |  +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+  |
-          |  |.------+------.| |.------+------.| |.------+------.| |.------+------.|  |
-          |  ||             || ||             || ||             || ||    HIL 4    ||  |
-          |  ||    HIL 1    || ||    HIL 2    || ||    HIL 3    || |`------+------'|  |
-          |  ||             || |`------+------'| |`------+------'| |       |       |  |
-          |  |`------+------'| |       |       | |       |       | |       |  +----+--+
-          +--+----+  |       | |.------+------.| |       |       | |       |  |    |
-             |    |  |       | ||             || |.------+------.| |.------+--+---.|
-             |.---+--+------.| ||             || ||             || ||             ||
-             ||             || ||    HAL 2    || ||             || ||             ||
-             ||             || ||             || ||    HAL 3    || ||    HAL 4    ||
-             ||    HAL 1    || |`------+------'| ||             || ||             ||
-             ||             || |       |       | ||             || ||             ||
-             ||             || |       |       | |`------+------'| |`------+------'|
-             |`------+------'| |.------+------.| |       |       | |       |       |
-             |       |       | ||             || |.------+------.| |       |       |
-             |.------+------.| ||    HPL 2    || ||             || |.------+------.|
-             ||    HPL 1    || ||             || ||    HPL 3    || ||    HPL 4    ||
-             |`------+------'| |`------+------'| |`------+------'| |`------+------'|
-             +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+  HW/SW
-                     |                 |                 |                 |          boundary
-        ************************************************************************************
-              +------+------+   +------+------+   +------+------+   +------+------+
-              |HW Platform 1|   |HW Platform 2|   |HW Platform 3|   |HW Platform 4|
-              +-------------+   +-------------+   +-------------+   +-------------+
+                           +-----------------------------+
+                           |                             |
+                           | Cross-platform applications |
+                           |                             |
+                           +--------------+--------------+
+ +-----------------+                      |                  +-----------------+
+ |Platform-specific|                      |                  |Platform-specific|
+ |  applications   |                      |                  |  applications   |
+ +--------+--------+                      |                  +--------+--------+
+          |          Platform-independent | hardware interface        |      
+          |        +-------------+--------+----+-------------+        |
+          |        |             |             |             |        |
+          |  +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+  |
+          |  |.----+----.| |.----+----.| |.----+----.| |.----+----.|  |
+          |  ||         || ||         || ||         || ||  HIL 4  ||  |
+          |  ||  HIL 1  || ||  HIL 2  || ||  HIL 3  || |`----+----'|  |
+          |  ||         || |`----+----'| |`----+----'| |     |     |  |
+          |  |`----+----'| |     |     | |     |     | |     |  +--+--+
+          +--+--+  |     | |.----+----.| |     |     | |     |  |  |
+             |  |  |     | ||         || |.----+----.| |.----+--+-.|
+             |.-+--+----.| ||         || ||         || ||         ||
+             ||         || ||  HAL 2  || ||         || ||         ||
+             ||         || ||         || ||  HAL 3  || ||  HAL 4  ||
+             ||  HAL 1  || |`----+----'| ||         || ||         ||
+             ||         || |     |     | ||         || ||         ||
+             ||         || |     |     | |`----+----'| |`----+----'|
+             |`----+----'| |.----+----.| |     |     | |     |     |
+             |     |     | ||         || |.----+----.| |     |     |
+             |.----+----.| ||  HPL 2  || ||         || |.----+----.|
+             ||  HPL 1  || ||         || ||  HPL 3  || ||  HPL 4  ||
+             |`----+----'| |`----+----'| |`----+----'| |`----+----'|
+             +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+  HW/SW
+                   |             |             |             |          boundary
+        ************************************************************************
+            +------+-----+ +-----+-----+ +-----+-----+ +-----+-----+
+            |HW Plat 1   | |HW Plat 2  | |HW Plat 3  | |HW Plat 4  |
+            +------------+ +-----------+ +-----------+ +-----------+
 
                     
-                       Fig.1: The proposed Hardware Abstraction Architecture
+              Fig.1: The proposed Hardware Abstraction Architecture
 
 
 
@@ -495,22 +491,22 @@ partially meet this goal (`Weak HILs`_). This section introduces
 several terms describing different degrees of alignment with the
 concept of a *HIL*. It also uses the following differentiation:
 
-- *platform-defined X* X is defined on all platforms, but the
+- *platform-defined X:* X is defined on all platforms, but the
   definition may be different
 
-- *platform-specific X* X is defined on just one platform
+- *platform-specific X:* X is defined on just one platform
 
 
 Strong/Real HILs 
 ----------------
 
-*Strong Real HILs* mean that "code using these abstractions can
+*Strong/Real HILs* mean that "code using these abstractions can
 reasonably be expected to behave the same on all implementations".
-This matches the original definition of the *HIL*-level according to
+This matches the original definition of the *HIL* level according to
 the *HAA*.  Examples include the *HIL* for the Timer (TimerMilliC,
-[TEP102]_), for LEDs (LedsC), active messages (ActiveMessageC, if not
-using any radio metadata at least), sensor wrappers (DemoSensorC,
-[TEP109]_) or storage ([TEP103]_). Strong *HIL*s may use
+[TEP102]_), for LEDs (LedsC), active messages (ActiveMessageC,
+[TEP116]_, if not using any radio metadata at least), sensor wrappers
+(DemoSensorC, [TEP109]_) or storage ([TEP103]_). Strong *HILs* may use
 platform-defined types if they also provide operations to manipulate
 them (i.e., they are platform-defined abstract data types), for
 example, the TinyOS 2.x message buffer abstraction, ``message_t``
@@ -533,11 +529,11 @@ the returned ADC data may be processed in a platform-independent way,
 for example, by calculating the max/min or mean of multiple ADC
 readings.
 
-The benefit from weak *HIL* are that one can write portable utility
+The benefit from weak *HILs* are that one can write portable utility
 code, e.g., a repeated sampling for an ADC on top of the data path.
 While code using these abstractions may not be fully portable, it will
-still be easier to port than code built on top of *HAL*s, because weak
-*HIL*s involve some guidelines on how to expose some functionality,
+still be easier to port than code built on top of *HALs*, because weak
+*HILs* involve some guidelines on how to expose some functionality,
 which should help programmers and provide guidance to platform
 developers.
 
@@ -613,7 +609,7 @@ Citations
    P.Buonadonna, L.Nachman, G.Tolle, D.Culler, and A.Wolisz, 
    "T2: A Second Generation OS For Embedded Sensor Networks", 
    *Technical Report TKN-05-007*, Telecommunication Networks Group, 
-   Technische Universitรคt Berlin, November 2005.
+   Technische Universitaet Berlin, November 2005.
 
 .. [WindowsCE] "The WindowsCE operating system home page", *Online*,
    http://msdn.microsoft.com/embedded/windowsce
@@ -645,12 +641,7 @@ Citations
 .. [TEP115] Kevin Klues, Vlado Handziski, Jan-Hinrich Hauer, Philip
             Levis, "Power Management of Non-Virtualised Devices"
 
+.. [TEP116] Philip Levis, "Packet Protocols"
+
 .. [TEP117] Phil Buonadonna, Jonathan Hui, "Low-Level I/O"
 
-..
-   Local Variables:
-   mode: indented-text
-   indent-tabs-mode: nil
-   sentence-end-double-space: t
-   fill-column: 70
-   End: