I am using RedSuite with last FreeRTOS on a LPC2387.
I solved some problems related to force supervisor on startup.
Now I have a problem with portYIELD_WITHIN_API inside vTaskDelay.
The run stops on the Yield, I search similar post and I checked:
- tick is running vPreemptiveTick loops
- process is moved correctly from running->blocked->running based on tick
It seems blocked to “SWI 0” instruction.
Thank for your support
Andrea
portYIELD_WITHIN_API hang
portYIELD_WITHIN_API hang
Check that your software interrupt / exception is running and caught correctly by the appropriate handler.
portYIELD_WITHIN_API hang
I checked with debugger and vPreemptiveTick is called, but return always to Yield point of vTaskDelay.
vApplicationTickHook is correctly called by interupt function.
vApplicationTickHook is correctly called by interupt function.
portYIELD_WITHIN_API hang
I tried to activate vApplicationIdleHook, it is also executed only one time.
I tried to trace return from vPreemtiveTick to task moving the pc+4 and it restart to executes until next vTaskDelay. I am reading Using the FreeRTOS…guide but I am not able to find informations abut Yield should work at low level.
I am tracing portSAVE_CONTEXT portRESTORE_CONTEXT and seems all ok.
I am trying to understand what should cause the execution of next instruction. Andrea
I tried to trace return from vPreemtiveTick to task moving the pc+4 and it restart to executes until next vTaskDelay. I am reading Using the FreeRTOS…guide but I am not able to find informations abut Yield should work at low level.
I am tracing portSAVE_CONTEXT portRESTORE_CONTEXT and seems all ok.
I am trying to understand what should cause the execution of next instruction. Andrea
portYIELD_WITHIN_API hang
Probably I found the problem, I had a wrong SWI pointer, correct is
_swi: .word vPortYieldProcessor
_swi: .word vPortYieldProcessor