[Tinyos-devel] TEP116 HIL/HAL discussion
Vlado Handziski
handzisk at tkn.tu-berlin.de
Thu May 15 08:37:44 PDT 2008
Just a short follow up on my comments about the use of the name HAL in
section 5 in TEP116.
In code implemented using the HAA decomposition, there is usually an
abstraction penalty between the HAL and the HIL, effectively the cost one is
paying for interoperability. Looking at this the other way, the HAL
interface is a well defined point in the abstraction stack that represents
the optimal interface towards the specific HW module, that does not contain
a portability penalty. The implementation components in between these two
interfaces, that help in casting HAL to HIL, can be still be platform/chip
dependent, but are not HAL per se.
On the concrete example, CC2420ActiveMesage[CP].nc is the implementation of
the active message HIL abstraction fro the cc2420 radio. The platform
ActiveMessageC.nc is just a name wrapper over this component. There is no
portability penalty between the two. So it is a bit wrong to call
CC2420ActiveMessage[CP].nc a HAL. For what is worth, we could have opted for
a solution where this component is in fact called ActiveMessageC.nc and deal
with the selection of the right HIL implementation via shadowing instead of
name wrapper and wiring.
I don't want to open here the discussion about what is then the HAL in the
cc2420 implementation, for me it would be somewhere close to the
CC2420Receive/Transmit/Control level of abstraction. The TEP 116 is already
finalized, so this message should be taken just as clarification and
guidance about the proper naming of the HIL implementation components, that
are above the HAL.
Vlado
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-devel/attachments/20080515/b7800ca6/attachment.htm
More information about the Tinyos-devel
mailing list