[ECOS] Synchronization primitive for DSRs

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


Hi
>>
>> 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?

Bye... 


-- 
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