Skip to content
Snippets Groups Projects
Commit 12d442e8 authored by David Sidrane's avatar David Sidrane Committed by Daniel Agar
Browse files

px4_fmuv5:Stack Check build Increase to 2624

   The cause of the stack detection fault is because of the
   level of nesting in the start up script. We need to
   determine the worst case configuration and set the
   bar there.

   This fault occurred some 42 calls deep due to script
   calling script (repeat).

   The HW stack check requires as a margin of 204 bytes. That is
   ISR HW stacking of CPU(8) FPU(18) registers and SW stacking of
   CPU(11) and FPU(16) registers. Total CPU(19) registers is
   68 bytes and the total FPU(34) registers is 136 bytes.  On
   a system with a separate ISR stack This only needs to be 104
   so there is 100 bytes of headroom. But as coded the detection
   will give a false positive detection and fault. This does not
   mean that the stack will be corrupted.

   Adjustments to that stack can have no effect due to rounding.
   A stack size of 2608 and 2616 can yield the exact same size stack.
   So even when the failure is due to a 4 byte overflow, it can take
   greater than a 16 bytes increase to fix it. Because the final
   stack size is calculated with an 8 byte alignment after a 4 byte
   decrease. So 2624 becomes 2620 at runtime and will boot
   with SYS_AUTOSTART=4001.
parent e2bf4b18
No related branches found
No related tags found
No related merge requests found
......@@ -735,7 +735,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1800
# Stack and heap information
#
CONFIG_IDLETHREAD_STACKSIZE=750
CONFIG_USERMAIN_STACKSIZE=2500
CONFIG_USERMAIN_STACKSIZE=2624
CONFIG_PTHREAD_STACK_MIN=512
CONFIG_PTHREAD_STACK_DEFAULT=2048
# CONFIG_LIB_SYSCALL is not set
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment