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.
Please register or sign in to comment