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] [March 2015 Threads]
Hi,
I use FreeRTOS V7.1.0 on a LPC2368 togther with Crossworks 3.0.
I have two tasks and an ISR. H-task has a high prio. L-task has a low prio.
H-task executes xQueueReceive and gets blocked as expected.
L-task executes endless background processing and has no blocking statements.
When the ISR is called, I use the following code and would expect H-task to resume.
portBASETYPE taskWoken=pdFALSE;
taskWoken = xQueueSendToBackFromISR(xWavPlayerRequestQueue,&pWavFile,&taskWoken);
if( taskWoken != pdFALSE )
portYIELDFROM_ISR();
But L-task keeps executing and H-task never resumes from xQueueReceive.
With the debugger I see that H-task is marked as "executing" but the breakpoint after xQueueReceive never hits.
Any ideas?
Shouldn't H-task be activated after the next vNonPreemptiveTick?
Thanks in advance.
Its been a long time since I did anything on an ARM7, but I don't recognise portYIELDFROMISR() as a macro that was ever provided for ARM7 ports (might be wrong). I think in ARM7 ports it is called portENDSWITCHINGISR().
Also in ARM7 ports you need to provide an assembly wrapper around interrupt service routines, are you doing that? Please post the code you are using the enter the interrupt.
Regards.
You are my hero! ;-)
Of course I had no wrapper. I wasn't aware that I need one.
After reading the word "wrapper" I examined the ARM7LPC2368Rowley demo and found in EMAC_isr.c the pattern for it.
Knowing the answer I also found the proper documentation here:
http://www.freertos.org/portlpciar.html
http://www.freertos.org/portlpc2106.html
http://www.freertos.org/portat91fr40008.html
Thank you very much!
Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.