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] [August 2012 Threads]
Background: I downloaded the latest FreeRTOS distribution,
ported the PIC24F demo program to the "PIC24F Starter Kit" board (distribution demo is for "Explorer 16" board),
added Microchip USB stack and simulated serial port RX/TX to PC (displaying text on OLED).
So far, all AOK. And I will post the demo when I fix up a couple loose ends !
However... In my real application, I have an ISR using a binary semaphore to awaken a task.
I expected to code:
xSemaphoreGiveFromISR(channelDataReadySemaphore,&xHigherPriorityTaskAwoken); // unblock above channel data task
if(xHigherPriorityTaskAwoken==pdTRUE) { vPortYieldFromISR(); }
Unfortunately I can't find any of vPortYieldFromISR, portSWITCH_CONTEXT, or portEND_SWITCHING_ISR in this port of FreeRTOS.
Sorry if I'm being dense, but how do I ensure that FreeRTOS will return to the awakened high-priority task from the ISR in this PIC24F port ?
Thanks in advance,
Best Regards, Dave
Look at the example interrupt called _U2TXInterrupt() provided in FreeRTOS/Demo/PIC24_MPLAB/serial/serial.c, as described in the Interrupt Service Routines section on the documentation page for the example: http://www.freertos.org/portpic24_dspic.html.
Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.