I bumped into stack overflow in one of my threads. I increase the WORKING_AREA to 256 and it complained about another thread (I have two of them currently). I increased that one as well and now I get:
Code: Select all
#0 port_halt () at ChibiOS/os/ports/GCC/ARMCMx/chcore.c:43
#1 0x08000742 in chDbgPanic (msg=0x8003c34 "stack overflow") at ChibiOS/os/kernel/src/chdebug.c:267
#2 0x08000bcc in chSchDoReschedule () at ChibiOS/os/kernel/src/chschd.c:302
#3 0x08000404 in _port_switch_from_isr () at ChibiOS/os/ports/GCC/ARMCMx/chcore_v7m.c:225
Backtrace stopped: frame did not save the PC
I'm using f205 and -fno-omit-frame-pointer as I've understood -fomit-frame-pointer is bad on ARM for getting proper back traces.
So, what should I now increase? __main_stack_size__ and/or __process_stack_size__? If I touch those should I also change something else or is everything calculated accordingly automatically?