icf file so that the base address for each stack is 8-byte-aligned. A misaligned base address for a stack in the.An assembler routine that calls a C function.So the reason for the problems can be either: The IAR C/C++ Compiler for ARM will always make a proper 8-byte alignment. The IAR Embedded Workbench for ARM tools do not detect if your application is not correct (8-byte aligned stack) in this respect. If the application makes the stack pointer to be 4-byte aligned then the application will not work as intended. The AEABI standard specifies that the stack pointer must be 8-byte aligned at function entry. IAR Embedded Workbench for ARM version 5.x (and newer) is AEABI compliant. These kind of issues can range from just a function not working as intended to the whole application malfunctioning. ![]() ![]() There are of course many reasons for not functioning, but at least this aspect can be removed for the list of topics to troubleshoot. This specific case is most often seen after migrating from IAR Embedded Workbench for ARM version 4.x or older to IAR Embedded Workbench for ARM version 5.x or newer. This Technical Note covers ONE specific reason for the application not to function as expected at run-time.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |