[Tinyos-devel] Request for comments on TEP 103, due August 10th

Philip Levis pal at cs.stanford.edu
Tue Jul 25 18:10:56 PDT 2006


On Jul 25, 2006, at 5:47 PM, Joe Polastre wrote:

>
> David Moss makes a great point--By using get() functions combined with
> the lowest common denominator, you can build Block/Config/Log above
> it.  If you go back and re-read the Flexible Hardware Abstraction
> paper, it clearly articulates that you should use HAL interfaces for
> optimal performance.  For optimal hardware independence, you should
> use HIL interfaces.

Unfortunately, that leaves a typical developer in a bit of a bind: if  
the only choices are HAL (optimal performance) or HIL (optimal  
independence), then there is no middle ground with tradeoffs. The  
paper -- and TEP 2 -- certainly don't take so strong a stance. In  
fact, the HAA paper proposes Log, Config, and Block! E.g.:

"The API ''contract'' should reflect the typical hardware services  
that are required in a WSN application."

"The platform-independent HIL interfaces represent a compromise  
between the capabilities of the currently supported platforms."

There's also discussion of versioning HIL interfaces, as well as  
branching them -- providing more than one option at the HIL level.

>
> Jonathan's comments when taken in the context of the original paper
> are in conflict--The goal of the HIL is not performance but
> interoperability.  As such, the interface that provides the greatest
> interoperability should be used at the HIL.  The interfaces that
> provide the greatest performance should be used at the HAL.  David
> Moss has made an excellent case that the current HIL interfaces are
> unsuitable for building file systems in a platform independent manner.
> With this feedback, I believe it is worthwhile to revisit why
> Config/Block/Log are the appropriate cross-platform HIL interfaces.

The HAA paper proposed them....

Phil





More information about the Tinyos-devel mailing list