[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