Re: Fast performing Timer APIs in WinCE...



hi,
Thankyou for your replies.I am sorry for not giving a clear picture
of what i am trying to do.During Read and Write from the NAND flash we
use interrupt(interrupt gets signalled once nand flash is ready)to
determine if the NAND flash is ready for accepting the next command/
address/data.So each Read and Write consists of a sequence of
command,address and data inputs . Hence each read/Write will consist
of waiting for the interrupt several times.We start a timer with some
maximum time out value (maximum ready/busy time) and wait on the
interrupt which indicates if NAND is ready.After interrupt occurs we
check if the timer is still running.If running then we stop the timer
and return success .otherwise if the timeout occurs we indicate
failure .We do absolutely nothing in the callback except for stopping
the timer .But in our case the callback will never be called as we
give the maximum timeout value which will almost never occur.So since
the timer APIs need to be called for every sequence of command,address
and data issue the read/Write performance is getting hindered.I get
around 6.00Mbps for read and 4.50 Mbps for write when using interrupt
without timer.Wheras if i use the timer i get only 4.07Mbps for read
and 3.58 Mbps for write.I would really appreciate if you could give me
some llight into how to use the timer interrupts?



On Oct 24, 8:24 pm, Valter Minute
<v_a_l_t_e_r.m_i_n_u_t_e@xxxxxxxxxxxxx> wrote:
kamali.sriniva...@xxxxxxxxx wrote innews:4412b29f-d25d-4be6-9b74-3d84b95a1f5b@xxxxxxxxxxxxxxxxxxxxxxxxxxx
m:

hello,
     I am looking for Timer APIs in WinCE6.0.I need to start a
     timer
with some timeout value and i need a callback to be signalled
after the timeout value expires.We need to use these timer APIs in
our storage driver .Since it is a driver we cannot use the Timer
APIs like SetTimer ,KillTimer as they are application timers and
require a message loop.Thus we went in for using the timer driver
APIs (Mmtimer library) like timeSetEvent() and timeKillEvent() but
on using them the read/Write performance of the storage driver is
bad even after disabling the cache manager.Is there any other
timer APIs which would speed up the performance.I would really
appreciate if someone could help me out.

What's the resolution that you need for those timers?
If you need milliseconds you may use Sleep() in a high-priority
thread.

--
Valter Minutewww.fortechembeddedlabs.it
Training, support and development for Windows CE
(the reply address of this message is invalid)

.



Relevant Pages

  • Re: Fast performing Timer APIs in WinCE...
    ... signalled once NAND flash is ready)to determine if NAND flash is ready ... for accepting the next command/address/data.Each Read/Write consists ... consists of waiting for the interrupt several times .For each command/ ... NAND flash is ready .once the interrupt occurs we check if our timer ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Fast performing Timer APIs in WinCE...
    ... During Read/Writes from the NAND flash we use interrupt(interrupt gets ... for accepting the next command/address/data.Each Read/Write consists ... consists of waiting for the interrupt several times .For each command/ ... NAND flash is ready .once the interrupt occurs we check if our timer ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Fast performing Timer APIs in WinCE...
    ... During Read/Writes from the NAND flash we use interrupt(interrupt gets ... for accepting the next command/address/data.Each Read/Write consists ... consists of waiting for the interrupt several times .For each command/ ... we check if our timer ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Fast performing Timer APIs in WinCE...
    ... you are the OEM, if your CPU has an extra timer interrupt that you can use, ... then use one of the timer interrupts. ... During Read/Writes from the NAND flash we use interrupt(interrupt gets ... for accepting the next command/address/data.Each Read/Write consists ...
    (microsoft.public.windowsce.platbuilder)
  • WARNING: at kernel/smp.c:369 smp_call_function_many+0x52/0x1b3() [2.6.30-01557-gb640f04]
    ... spurious 8259A interrupt: IRQ7. ... 3 timers in total, 0 timers will be used for per-cpu timer ... # CPU Frequency scaling ... # Bus options (PCI etc.) ...
    (Linux-Kernel)