You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The stack should be aligned on an 8-byte boundary, according to the ARM procedure calling standard (AAPCS). A 4-byte boundary might work, but the interrupt controller expects an 8-byte-boundary, and compilers will also expect this.
Right now _estack is on a 4-byte, but not an 8-byte boundary, due to the introduction of _bootloader_dbl_tap. This appears to have caused issue #521, which was fixed by PR #548, which avoids using alloca() in mp_import_from(). My guess is that gcc assumes an 8-byte boundary for alloca().
The fix is to adjust all the linker maps in ports/atmel-samd/boards/*.ld.Change:
This appears to have caused a problem only on M4, not M0. But the NVIC supposedly expects an 8-byte boundary, so perhaps this should be backported to 2.x as well.
The text was updated successfully, but these errors were encountered:
The stack should be aligned on an 8-byte boundary, according to the ARM procedure calling standard (AAPCS). A 4-byte boundary might work, but the interrupt controller expects an 8-byte-boundary, and compilers will also expect this.
Good discussion of several related points: https://community.arm.com/processors/f/discussions/6344/what-is-the-meaning-of-a-64-bit-aligned-stack-pointer-address
Right now
_estack
is on a 4-byte, but not an 8-byte boundary, due to the introduction of_bootloader_dbl_tap
. This appears to have caused issue #521, which was fixed by PR #548, which avoids usingalloca()
inmp_import_from()
. My guess is that gcc assumes an 8-byte boundary foralloca()
.The fix is to adjust all the linker maps in
ports/atmel-samd/boards/*.ld
.Change:to
The #548 changes should also be undone.
This appears to have caused a problem only on M4, not M0. But the NVIC supposedly expects an 8-byte boundary, so perhaps this should be backported to 2.x as well.
The text was updated successfully, but these errors were encountered: