On Thu, Nov 30, 2006 at 04:40:23PM +0100, Andrew Lunn wrote: > On Thu, Nov 30, 2006 at 04:21:58PM +0100, Stefan Sommerfeld wrote: > > > > It looks like the cyg_drv_dsr_lock() will lock all DSRs and so it will stop > > multitasking and any other DSRs to run. That's not what I'm searching for. > > Any other solution? > > It should not stop multi-tasking. The scheduler can still run and do > task switches. But all DSR are blocked. So, for example, round-robin > will not happen, since that needs a timer tick, and so a DSR. All > your device driver IO stops etc. But plain thread/thread interactions > should keep working.
Correct me if I am wrong, but unless you build a kernel-less configuration, cyg_drv_dsr_lock() is just an alias for cyg_scheduler_lock(). Therefore it prevents thread scheduling as well as other DSR processing. Ivan -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
