summaryrefslogtreecommitdiff
path: root/nuttx/Documentation/NuttxUserGuide.html
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-21 21:55:16 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-21 21:55:16 +0000
commitefc2cf23a849f7be1d65c4cdd7767f88917c46a7 (patch)
treefbe3518a364d6b9d811e00f7201e082d50ead7e3 /nuttx/Documentation/NuttxUserGuide.html
parent94e5b72f50f3096b83fe50c7b57324a08e318f29 (diff)
downloadpx4-nuttx-efc2cf23a849f7be1d65c4cdd7767f88917c46a7.tar.gz
px4-nuttx-efc2cf23a849f7be1d65c4cdd7767f88917c46a7.tar.bz2
px4-nuttx-efc2cf23a849f7be1d65c4cdd7767f88917c46a7.zip
Progress toward clean SDCC compilation
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@18 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/Documentation/NuttxUserGuide.html')
-rw-r--r--nuttx/Documentation/NuttxUserGuide.html63
1 files changed, 49 insertions, 14 deletions
diff --git a/nuttx/Documentation/NuttxUserGuide.html b/nuttx/Documentation/NuttxUserGuide.html
index 213f75d75..8396651c6 100644
--- a/nuttx/Documentation/NuttxUserGuide.html
+++ b/nuttx/Documentation/NuttxUserGuide.html
@@ -1806,7 +1806,7 @@ initialization time).
<B>Function Prototype:</B>
<PRE>
#include &lt;wdog.h&gt;
- STATUS wd_delete (WDOG_ID wdId);
+ STATUS wd_delete (WDOG_ID wdog);
</PRE>
<P>
@@ -1816,7 +1816,7 @@ has been started.
<P>
<B>Input Parameters:</B>
<UL>
-<LI><I>wdId</I>. The watchdog ID to delete. This is actually a
+<LI><I>wdog</I>. The watchdog ID to delete. This is actually a
pointer to a watchdog structure.
</UL>
@@ -1834,7 +1834,7 @@ it.
<B> POSIX Compatibility:</B> This is a NON-POSIX interface.
VxWorks provides the following comparable interface:
<PRE>
- STATUS wdDelete (WDOG_ID wdId);
+ STATUS wdDelete (WDOG_ID wdog);
</PRE>
<P>
@@ -1850,8 +1850,8 @@ before de-allocating it (i.e., never returns ERROR).
<B>Function Prototype:</B>
<PRE>
#include &lt;wdog.h&gt;
- STATUS wd_start( WDOG_ID wdId, int delay, wdentry_t wdentry,
- int parm1, int parm2, int parm3, int parm4 );
+ STATUS wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry,
+ intt argc, ....);
</PRE>
<P>
@@ -1867,15 +1867,16 @@ was called.
Watchdog timers execute only once.
<P>
To replace either the timeout delay or the function to be executed,
-call wd_start again with the same wdId; only the most recent
+call wd_start again with the same wdog; only the most recent
wd_start() on a given watchdog ID has any effect.
<P>
<B>Input Parameters:</B>
<UL>
-<LI><I>wdId</I>. Watchdog ID
+<LI><I>wdog</I>. Watchdog ID
<LI><I>delay</I>. Delay count in clock ticks
<LI><I>wdentry</I>. Function to call on timeout
-<LI><I>parm1..4</I>. Parameters to pass to wdentry
+<LI><I>argc</I>. The number of uint32 parameters to pass to wdentry.
+<LI><I>...</I>. uint32 size parameters to pass to wdentry
</UL>
<P>
@@ -1892,14 +1893,15 @@ restrictions.
<B> POSIX Compatibility:</B> This is a NON-POSIX interface.
VxWorks provides the following comparable interface:
<PRE>
- STATUS wdStart (WDOG_ID wdId, int delay, FUNCPTR wdentry, int parameter);
+ STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter);
</PRE>
<P>
Differences from the VxWorks interface include:
<UL>
-<LI>The present implementation supports four parameters passed
-to wdentry; VxWorks supports only a single parameter.
+<LI>The present implementation supports multiple parameters passed
+to wdentry; VxWorks supports only a single parameter. The maximum
+number of parameters is determined by
</UL>
<H3>2.6.4 wd_cancel</H3>
@@ -1908,7 +1910,7 @@ to wdentry; VxWorks supports only a single parameter.
<B>Function Prototype:</B>
<PRE>
#include &lt;wdog.h&gt;
- STATUS wd_cancel (WDOG_ID wdId);
+ STATUS wd_cancel (WDOG_ID wdog);
</PRE>
<P>
@@ -1918,7 +1920,7 @@ level.
<P>
<B>Input Parameters:</B>
<UL>
-<LI><I>wdId</I>. ID of the watchdog to cancel.
+<LI><I>wdog</I>. ID of the watchdog to cancel.
</UL>
<P>
@@ -1933,7 +1935,7 @@ level.
<B> POSIX Compatibility:</B> This is a NON-POSIX interface.
VxWorks provides the following comparable interface:
<PRE>
- STATUS wdCancel (WDOG_ID wdId);
+ STATUS wdCancel (WDOG_ID wdog);
</PRE>
<HR>
@@ -4073,6 +4075,39 @@ notify a task when a message is available on a queue.
int sigev_notify;
};
</PRE>
+
+<H3>3.4.9 Watchdog Data Types</H3>
+
+<p>
+ When a watchdog expires, the callback function with this
+ type is called:
+</p>
+<pre>
+ typedef void (*wdentry_t)(int argc, ...);
+</pre>
+<p>
+ Where argc is the number of uint32 type arguments that follow.
+</p>
+ The arguments are passed as uint32 values.
+ For systems where the sizeof(pointer) &lt; sizeof(uint32), the
+ following union defines the alignment of the pointer within the
+ uint32. For example, the SDCC MCS51 general pointer is
+ 24-bits, but uint32 is 32-bits (of course).
+</p>
+<pre>
+ union wdparm_u
+ {
+ void *pvarg;
+ uint32 *dwarg;
+ };
+ typedef union wdparm_u wdparm_t;
+</pre>
+<p>
+ For most 32-bit systems, pointers and uint32 are the same size
+ For systems where sizeof(pointer) > sizeof(uint32), we will
+ have to do some redesign.
+</p>
+
<HR>
<H1>4.0 <A NAME="Problems">Known Problems</A></H1>