Hi&nbsp;Nelson&nbsp;&amp;&nbsp;glee,<br> <br>thanks for your quick reply.<br><br>when i build okl4 with &quot;driver&quot; example, i got following warnings and abort building process.<br><br>[CC  ] build/iguana/drivers_example/object/src/drivers_example.o
<br>iguana/example/drivers/src/drivers_example.c: In function `init_serial&#39;:<br>iguana/example/drivers/src/drivers_example.c:378: warning: implicit declaration of function `iguana_getenv&#39;<br>iguana/example/drivers/src/drivers_example.c:378: warning: nested extern declaration of `iguana_getenv&#39;
<br>iguana/example/drivers/src/drivers_example.c: In function `init_timer&#39;:<br>iguana/example/drivers/src/drivers_example.c:504: warning: nested extern declaration of `iguana_getenv&#39;<br>iguana/example/drivers/src/drivers_example.c:378: warning: redundant redeclaration of &#39;iguana_getenv&#39;
<br>iguana/example/drivers/src/drivers_example.c:378: warning: previous implicit declaration of &#39;iguana_getenv&#39; was here<br>scons: *** [build/iguana/drivers_example/object/src/drivers_example.o] Error 1<br>scons: building terminated because of errors.
<br><br>i didn&#39;t change any source code of it. how to fix it?<br><br><br>i&nbsp;have&nbsp;some&nbsp;addition&nbsp;question&nbsp;about&nbsp;timer&nbsp;driver:<br> what  does&quot;handling timeouts correctly&quot; mean?<br>does it mean i should check if timer&#39;s period setting effectively?
<br>or there are some actions i should do when timeout occurs? (ex: ?)<br><br>what should i implement in &quot;device_interrupt_impl&quot; ?<br>what does the return value indicate?<br> <br>thanks in advance<br><br><br>Best,
<br>kashin lin<br><br><div><span class="gmail_quote">2008/1/8, Nelson Tam &lt;<a href="mailto:nelson@ok-labs.com">nelson@ok-labs.com</a>&gt;:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
On 08/01/2008, at 3:09 AM, Geoffrey Lee wrote:<br><br>&gt; On Mon, Jan 07, 2008 at 05:11:46PM +0800, kashin Lin wrote:<br>&gt;&gt;<br>&gt;&gt; but when i tried to use wombat as l4 application, it stop at &quot;while<br>&gt;&gt; (ticks
<br>&gt;&gt; == jiffies) ;&quot;&nbsp;&nbsp;in src/linux/kernel-2.6.11-v2/init/calibrate.c.<br>&gt;&gt;<br>&gt;&gt; it seems the<br>&gt;&gt; &quot;jiffies&quot; doesn&#39;t change in this case. so i wonder what may cause<br>&gt;&gt; this ?
<br>&gt;&gt;<br>&gt;&gt; i guess it may related to timer driver in src/drivers/. (i port a<br>&gt;&gt; timer<br>&gt;&gt; driver named &quot;davinci_timer&quot; too)<br>&gt;&gt;<br>&gt;&gt; if the<br>&gt;&gt; problem resulted from that driver, are there anything i should take
<br>&gt;&gt; care or<br>&gt;&gt; must implement when i write the timer driver ?<br>&gt;<br>&gt;<br>&gt; At the very least you need to make sure that your timer driver can<br>&gt; correctly<br>&gt; handle timeouts.&nbsp;&nbsp;Try running the drivers example, that has code which
<br>&gt; does some basic tests for your timer.<br><br><br>Hi Kashin,<br><br>In particular, do make sure that when the drivers example calls<br>virtual_timer_current_time(), the return value is increasing over time.<br><br>
Possible reasons why it isn&#39;t working:<br><br>1. the mapping isn&#39;t actually pointing to device registers (check your<br>physical address defined in device core)<br><br>2. timer needs to be enabled or setup properly (this really depends on
<br>your<br>hardware)<br><br>3. the mapping is mapped as cached (nasty, but I don&#39;t think this is<br>your<br>problem)<br><br>Also like Geoff said, make sure that your driver is handling timeouts<br>correctly.<br><br>Enjoy,
<br><br>Nelson.<br>--<br>(nt)<br><br><br></blockquote></div><br>