I’m trying to port FreeRTOS onto an EnergyMicro board using the CMSIS 3 API. It is technically working but there is a little problem I’m running into that needs to be fixed. The function prvCheckTasksWaitingTermination() is called in the idle task and I understand why, but when I have it in there, my board will throw a Hard Fault Exception with an odd trace. If I comment it out (I’m running a simple application right now that doesn’t delete tasks), it runs perfectly fine. The odd thing is that it doesn’t run the code in the if statement that is in that function because I never delete any tasks. Therefor, when that function is called, all it does is compaire and return. I’ve tried checking for stack overflow, but I can’t find any indication of that (except for the odd trace). Does anyone have any idea what is going on or any method I could use to try to figure out this problem. I’ll post the trace below, but it just looks like garabage to me.
1<symbol is not available> 0x20000f2c
2<symbol is not available> 0x2001ffb0
3 <signal handler called>() 0xfffffffd
4 HardFault_Handler() port.c:300 0x00006f24
Any help or thoughts would be appreciated.