[ECOS] Synchronization primitive for DSRs

Stefan Sommerfeld sommerfeld@mikrom.de
Thu Nov 30 15:24:00 GMT 2006

>> I searching for a kind of mutex which also blocks a specific DSRs. 
>> Mutexes
>> doesn't work within DSRs, so the only way to share resources which are 
>> used
>> by a thread and a DSR is to use scheduler_lock() which blocks the whole
>> system.
> Take a look at
> http://ecos.sourceware.org/docs-latest/ref/devapi-synchronization.html
> It suggests to use cyg_drv_dsr_lock()/cyg_drv_dsr_unlock(). This
> should, it think, leave the scheduler running. However, in RTOSs, most
> things are triggered by ISR, which naturally post DSR, and if you have
> DSRs locked, events are just going to get queued up and never actually
> processed. So think about deadlocks, try not to make any blocking
> calls while you have DSR locked etc...
> Take a look at the serial device driver layers for examples of how to
> use these locks.

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?


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list