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] [April 2013 Threads] [AVR] portYIELD_FROM_ISR should be providedPosted by BeginEnd on April 18, 2013 I think that there should be macro portYIELD_FROM_ISR and function vPortYieldFromISR() added to ATMega323 port. This is becouse vPortYield() uses "ret" to return, but if current contex was switched in vPortTickFromISR(), restored SREG do not have global interrupt flag set.
RE: [AVR] portYIELD_FROM_ISR should be providedPosted by Richard on April 18, 2013 This (extremely old) port is explained in on the following (extremely old) web pages. I have only linked to the two relevant pages:
http://www.freertos.org/implementation/a00016.html http://www.freertos.org/implementation/a00017.html
SREG is saved and restored as part of the task context. When a task that is switched out from an interrupt is next executed it will be switched back into the interrupt (from exactly where it was switched out) - where it will execute its end of interrupt code setting SREG back to its required value. Likewise if a task is switched in from inside an interrupt it will start executing from wherever it was switched out - which may or may not be in an interrupt but its SREG will also be correct for wherever it ends up.
Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|