We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
According to ARM Architecture Procedure Call Standard (AAPCS) on the ARMv6-M, and ARMv7-M architecture in it says:
"Although the processor hardware allows SP to be at any word aligned address at function boundaries, standard programming practice requires C program code to ensure that the SP is at a 64-bit (doubleword) aligned address."
What does it mean that the Stack pointer has to be at a 64 bit aligned address?
Yes. For processors with 64-bit interface (e.g. Cortex-M7), having such data alignment would be more efficient. It could also made debugging easier (e.g. when setting up data watchpoint).
It also avoids corner cases where a 64-bit access go across boundaries of different memory types, which can result in unpredictable behavior according the the architecture specification.
regards,
Joseph