ISR to thread

Steve Holle sholle at link-comm.com
Tue Dec 21 14:58:15 UTC 2004


That's exactly what I was looking for.  I think I need an event task 
because I need to read from a queue and send data out in synchronization 
with receiving.

Thanks for the help.

At 06:08 PM 12/20/2004, Ian Caddy wrote:
>Hi Steve,
>
>It is hard to provide example code, as it really depends on your application.
>
>It you have a task that is doing nothing other than waiting for the ISR to 
>tell it to do something, then an event will probably be OK for you.
>
>The thing to remember about events is that you can not queue them.  For 
>example if your task is still processing the last event, and the ISR 
>generates an event.  The task is still busy and the ISR generates another 
>event.  When the task gets around to looking at the event again, there is 
>only one.  For this reason, I do not really like events.
>
>So, if your task might not be ready for your ISR, you would be better 
>using message queues, with the ISR only sending messages of course... ;-)
>
>In that way, you will be able to queue up multiple things for the 
>processing task to look after if it got busy and the ISR could generate as 
>many of them as required.
>
>Then if your task is not doing anything else, just wait forever on a queue.
>
>The ISR can then perform a queue send and can even put data in the message 
>relavent to the processing.
>
>So, an overall flow for a message queue would be:
>
>processing_task()
>{
>
>    while_forever
>       wait forever on rtems queue
>          do_processing
>}
>
>ISR()
>{
>    remove_interrupt
>    place data in message
>    send message to processing task
>}
>
>I hope this helps.
>
>Ian Caddy
>
>
>Steve Holle wrote:
>>I'm trying to move my ISR processing to a thread and am wondering what 
>>the best way to accomplish that task is?
>>Should I spawn another thread and block on an event?
>>Would a signal be a good choice in this case?
>>Does anyone have some sample code I could look at?
>>Thanks again.
>>Steve Holle
>>Link Communications, Inc.
>>1035 Cerise Rd.
>>Billings, MT  59101
>>sholle at link-comm.com
>
>Steve Holle
>Link Communications, Inc.
>1035 Cerise Rd.
>Billings, MT  59101
>sholle at link-comm.com  




More information about the users mailing list