I’m getting an undefined handler on vPortStartFirstTask(). It happens when “SUBS PC, LR, #4” executes… I’ve checked and MCU is in supervisor mode. I’m using STR711FR0.
Can you be more specific? You are going into a default interrupt handler, or you are going into the undefined processor mode?
In the former case you will have to determine the source of the interrupt. Which interrupts do you configure prior to starting the first task.
I have no experience of the latter case other than to know the undefined processor mode is something to do with interfacing coprocessors so if you go into this state something very bad has happened.
I’m going into the undefined processor mode.
I’m using FreeRTOS example and I didn’t configure other interrupt source than wdg, configured by freertos.
The tasks are created correctly but when restoring context of first task the MCU going into undefined mode.
SUBS PC, LR, #4 must jump for the first task and copy SPSR to CPSR, ok?
If I substitute that by SUB PC, LR, #4 it jumps for the task but stay in supervisor mode, don’t enable interrupts and executes the first task forever.
Should I try recover task CPSR without enable interrupts? It doesn’t resolve the problem but can show us if the it is wdg interrupt.