Using an STM32F767ZI microcontroller with FreeRTOS
I'm using an STM32F767ZI microcontroller with FreeRTOS. I have two tasks: one receives TCP data triggered by an interrupt every 100ms, and the other handles user requests. When task-2 calls
The error message indicates a hang in
Replacing the task notification with a flag in the interrupt allows the reset but is inefficient. Disabling interrupts with
How can I reliably perform a software reset without these issues?
Here's my code guys:
How can I modify this to ensure a reliable software reset?
@Middleware & OS
NVIC_SystemReset, the system hangs, typically in vPortRaiseBASEPRI after vTaskNotifyFromISR used by task-1. The error message indicates a hang in
vPortRaiseBASEPRI, causing the system to become unresponsive.Replacing the task notification with a flag in the interrupt allows the reset but is inefficient. Disabling interrupts with
portDISABLE_INTERRUPTS, suspending tasks with vTaskSuspendAll, and entering a critical section with taskENTER_CRITICAL didn't help. A workaround of disabling interrupts before reset works but is unsafe.How can I reliably perform a software reset without these issues?
Here's my code guys:
How can I modify this to ensure a reliable software reset?
@Middleware & OS
Solution
Well, I believe you can start by modifying the system reset procedure in task-2 to ensure a safe and reliable reset. Before calling
Check out this @Sterling it will help you to achieve a reliable software reset.
NVIC_SystemReset, disable all interrupts to prevent any pending ISR from causing the system to hang.Check out this @Sterling it will help you to achieve a reliable software reset.