My ARM7 software is using the RT environment of RL-ARM.
After adding a new tiny task Task8 to the previous 7 tasks, "os_stk_overflow" is called with the "task_id" pointing to Task8.
- Reducing the amount of code in Task 8 does not fix it (I reduced it to a simple for{;;} - loop)
- Increasing the task stack size in "RTX_conf.c" does not fix it.
- Changing the creation order of the tasks, i.e. calling os_tsk_create(task8) before os_tsk_create(task7), does fix it ("os_stk_overflow" is not called anymore)
So what are the other reasons beside a stack issue that is calling the "os_stk_overflow"?
Most likely one of the other 7 tasks is over writing a section of memory that includes the signature portion of task8’s stack. Changing the order of creation is changing the location that is being over written.