uxTaskGetSystemState() configAsserts from vApplicationStackOverflowHook() and HardFaultHandler()

chuck-heller wrote on Tuesday, December 01, 2015:

I was hoping to call uxTaskGetSystemState() from my stack overflow and hard fault functions, but I get a configAssert().
Near the bottom of uxTaskGetSystemState(), there is a call to xTaskResumeAll(), and taskENTER_CRITICAL() calls vPortEnterCritical(), which asserts because we are in an interrupt context.

uxTaskGetSystemState() is a great function! I was hoping to use it for more troubleshooting information when I had a fault or bug.

Thanks for any help!

FreeRTOS 8.2.3
Atmel SAM4S from IAR.

-Chuck Heller

edwards3 wrote on Tuesday, December 01, 2015:

As you are using IAR you can get similar information from the FreeRTOS plugin that is included in the tool as standard. Look at the projects debug options to enable.

chuck-heller wrote on Tuesday, December 01, 2015:

Thanks, yes, we use those tools in IAR, but we also would like the information from any field units that are giving us trouble, and so IAR would not always be available.
-Chuck Heller

rtel wrote on Tuesday, December 01, 2015:

The assert is correct, it is not good to call that from an interrupt, but in your case it has crashed already (you are not trying to return from the fault handler, just print diagnostic information), so it would be ok to remove the assert, or ignore it.

Regards.

chuck-heller wrote on Tuesday, December 01, 2015:

OK, thanks.