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] [November 2011 Threads] Yielding from ISR on dsPICPosted by https://www.google.com/accounts on November 14, 2011 I'm using FreeRTOS on a dsPIC and want to give a semaphore from an ISR. The xSemaphoreGiveFromISR macro is being called but in all of the documentation it talks about yielding from within the ISR. The actual implementation depends on the port. some ports use taskYIELD. There is a version for the PIC32 that is named portEND_SWITCHING_ISR but I can't find an implementation for the dsPIC. Has anyone implemented this and if so, do you want to share the solution? I'm in crunch mode and don't have time to re-invent the wheel. If nobody has the solution I will implement it and post the code for all to use.
RE: Yielding from ISR on dsPICPosted by Richard on November 14, 2011 See the "Interrupt Service Routines" section of http://www.freertos.org/portpic24_dspic.html, and the example in _U2RXInterrupt() defined within FreeRTOS\Demo\PIC24_MPLAB\serial\serial.c.
Regards.
RE: Yielding from ISR on dsPICPosted by Richard Damon on November 14, 2011 If you want to make the code look the same for PIC32 and dsPIC, you can define #define portEND_SWITCHING_ISR( xSwitchRequired ) \ {\ if( xSwitchRequired ) \ {\ portYIELD(); \ }\ }
RE: Yielding from ISR on dsPICPosted by https://www.google.com/accounts on November 16, 2011 Thank you for the replies. I used the taskYIELD() function and it seems to be working fine. I'm having stack overflow problems but I'm convinced it's elsewhere in the code. I had tried the taskYEILD before but thought it was causing the stack overflows. Now I'm pretty sure it's not the cause.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|