FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [September 2006 Threads] Interrupt during context switchPosted by Nobody/Anonymous on September 12, 2006 Hi
I'm developing a small communication device with Atmel AVR ATMega 2560. I use as IAR C compiler as development tool.
In my application I have very strict timing restrictions during serial communication, so I need that USART interrupt have to be ALLWAYS active.
Unfortunately RTOS during context switch disable interrut. This cause in my application lost or Rxed bytes or many jitter on Txed bytes.
It's possible to keep interrupt active during context switch ?
Someone can help me and give me some directions about this issue ?
Thank you in advice
RE: Interrupt during context switchPosted by Nobody/Anonymous on September 12, 2006 You can re-enable interrupts within an ISR once the context is saved provided that you keep a count of the interrupt nesting depth, and only restore a context once the nesting depth is zero again. You will have to disable interrupts again while you restore the context.
Consider other options first - like using FIFOs, organizing your ISR to trigger a high priority task to handle the data with interrupts enabled, etc.
RE: Interrupt during context switchPosted by Nobody/Anonymous on September 12, 2006 If you are not using the isr to wake blocked tasks you can also speed things up by using a simple circular buffer instead of queues/semaphores. You still need to keep a count of the interrupt nesting depth but don't need to save and restore the context which will speed things up a lot. You can renable interrupt immediately after incrementing the nesting depth, then disable again immediately before decrementing the nesting depth.
RE: Interrupt during context switchPosted by Nobody/Anonymous on September 12, 2006 The AVR port does not save the context until a switch is actually required. You can enable interrupts prior to this point provided the interrupt source is cleared first. Disable again for the switch.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|