ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
C/C++ 编译器使用堆栈来:
运行时堆栈从高位地址增长到低位地址。编译器使用 R13 寄存器来管理此堆栈。R13 是指向堆栈下一个未使用位置的堆栈指针 (SP)。
链接器设置堆栈大小,创建全局符号 __TI_STACK_SIZE,并为其分配一个等于堆栈大小的值(以字节为单位)。默认的堆栈大小为 2048 字节。可以在链接时使用链接器命令中的 --stack_size 选项来更改堆栈大小。更多有关 --stack_size 选项的信息,请参阅《ARM 汇编语言工具用户指南》中的链接器描述章节。
在系统初始化时,SP 被设置为堆栈顶部的指定地址。此地址是 .stack 段末尾之后的第一个位置。由于堆栈的位置取决于 .stack 段的分配位置,因此堆栈的实际地址是在链接时确定的。
C/C++ 环境在函数输入时自动递减 SP,以保留执行该函数所需的所有空间。堆栈指针在函数出口处递增,以将堆栈恢复到函数输入之前的状态。如果将汇编语言例程连接到 C/C++ 程序,请确保将堆栈指针恢复到函数输入之前的相同状态。
更多有关使用堆栈指针的信息,请参阅节 6.3;更多有关堆栈的信息,请参阅节 6.4。