[Tinyos-devel] Request for comments on TEP 103, due August 10th
Joe Polastre
joe at polastre.com
Tue Jul 25 17:47:52 PDT 2006
> While I'm sure that it's possible to write Blackbook such that its
> implementation is chip independent, I feel that making it chip
> dependent would allow you to utilize chip-specific features and
> increase performance considerably. Blackbook can still provide the
> same interfaces on top. Sure, it will require you to maintain a
> version for each flash chip, but that is the tradeoff. I guess I'm
> more inclined to strive for greater performance when operating on
> already resource constrained devices.
My two cents:
I think it is a mistake to encourage multiple implementations per
chip. It is a tremendously painful experience writing TinyOS code,
and encourage users to write addtional code per chip only extends
development time.
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.
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.
-Joe
More information about the Tinyos-devel
mailing list