X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=doc%2Fhtml%2Ftep107.html;h=ab3eaed5070c1f26ce9a808a615744fbeeee02d1;hb=ace2e1376f6c85defb0a5fe22ca43456a796ce05;hp=907c5754b68c24413d87d7f7a51cfd610c932a40;hpb=d68b8abef28bcad6157aed63edeb0f535c82d097;p=tinyos-2.x.git diff --git a/doc/html/tep107.html b/doc/html/tep107.html index 907c5754..ab3eaed5 100644 --- a/doc/html/tep107.html +++ b/doc/html/tep107.html @@ -303,9 +303,9 @@ ul.auto-toc {
+/* This platform_bootstrap macro exists in accordance with TEP + 107. A platform may override this through a platform.h file. */ +#include <platform.h> +#ifndef platform_bootstrap +#define platform_bootstrap() {} +#endif +
The boot sequence has three separate initializations: Scheduler, PlatformInit, and SoftwareInit. The boot configuration (MainC) wires the first two automatically, to TinySchedulerC (discussed in TEP 106) @@ -519,9 +530,7 @@ initialization order. As these hidden dependencies must be due to hardware, the sequence is platform-specific. A port of TinyOS to a new plaform MUST include a component PlatformC which provides one and only one instance of the Init interface.
-Generally, component intialization occurs through SoftwareInit. -PlatformInit is for a small subset of initializations whose properties -requires that they be performed separately. Initializations invoked +
Initializations invoked through PlatformC meet some or all of the following criteria:
Note that not all code which meets some of these criteria is wired through +PlatformC. In particular, criterion 1 is typically necessary but not +sufficient to require PlatformC. For example, a timer system that +configures overflow and capture settings or a UART stack that sets the +baud rate and transmission options can often be wired to SoftwareInit. +They are encapsulated abstractions which will not be invoked or +started until the boot event, and only need to be configured if the +system includes their functionality.
Components whose initialization does not directly depend on hardware resources SHOULD wire to MainC.SoftwareInit. If a component requires a specific initialization ordering, then it is responsible for