I only tried to capture an assert. What is included in the assert test in free RTOS?
I did not define configCHECK_FOR_STACK_OVERFLOW.
If I define this to 2, do I have to call this function? Where and how do I call it?
void vApplicationStackOverflowHook( TaskHandle_t xTask,
signed char *pcTaskName );
As far as the main stack, from the map file
0x00040000 __top_MFlash_256 = 0x40000 (max flash size in Stellaris)
0x20018000 __top_RAM_96 = 0x20018000 (stack top).
RAM location is 0x20000000, size 0x18000.
It seems like the max available stack is there for the application. I don’t know to tell if its otherwise, can you?
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30000 ) )
.bss.ucHeap 0x2000055c 0x7530 ./FreeRTOS_MemMang/heap_4.o
I can use a JTAG debugger with the TivaC MCU and try capturing this error. This won’t have RTOS capability in the IDE. Segger/ozone will take longer to setup if I am able to get the RTOS plugin to work.
I will change my vAssertCalled to exactly what I found on this website. Please review this. I will put a breakpoint at ulSetToNonZeroInDebuggerToContinue = 1 and see where it takes me.
With a debugger connected, the error will likely take longer to occur.
void vAssertCalled( unsigned long ulLine, const char * const pcFileName )
{
static portBASE_TYPE xPrinted = pdFALSE;
volatile uint32_t ulSetToNonZeroInDebuggerToContinue = 0;
/* Parameters are not used. */
( void ) ulLine;
( void ) pcFileName;
taskENTER_CRITICAL();
{
/* You can step out of this function to debug the assertion by using
the debugger to set ulSetToNonZeroInDebuggerToContinue to a non-zero
value. */
while( ulSetToNonZeroInDebuggerToContinue == 0 )
{
ulSetToNonZeroInDebuggerToContinue = 1;
}
}
taskEXIT_CRITICAL();
}
Thanks
Priya