This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

stack overflow when first thread is started

Hi

I have just ported my code that was working without a RTOS to CMSIS RTOS and its loaded onto my cortex m3 arm and my code gets through by board initialization but as I get a stack overflow when the RTOS tries to start the first task.

I have configured 0x8200 bytes for my stack, 7 tasks, 2000 bytes for the default thread and 800 bytes for the other 6 threads. The thread viewer shows two additional threads, timer and idle.
My stack is located in the esram and is using all available bytes there.

I really do not have any idea what I have done wrong in allocating memory for the stack or in configuring the RTOS. I feel I missed something in the setup.

I was thinking about backing off the 7 threads and just try to start 1 and see if that overflows.

Is it possible to relocate my stack to my DDR memory space at 0xA0000000 so I can make the available stack size bigger? I don't know if throwing more memory at it will really solve this problem.

Does anyone have any ideas about what might be wrong or how I might go about debugging this overflow issue?

Parents Reply Children
  • Good thought but I think that is not a problem. It appears this "stack memory pool" that is created by rt_init_mem from the kernelInitialize() call allocates it at memory address (os_stack_mem) is at 0xA0048b48

    Nothing else is running during initialization so there cannot be any other thread of anything to step on the stack memory.

    os_stack_mem 0xa0049b48 Data 3736 size rtx_conf_cm.o(.bss)

    If you have any other ideas, please let me know