This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS0714:TMS570堆栈问题。

Guru**** 2473270 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/685030/tms570ls0714-tms570-stack-question

器件型号:TMS570LS0714

您好、香榭丽舍

TMS570具有如下所 示的许多类型的堆栈、我是否可以知道每个堆栈的详细方法以及如何分配每个堆栈大小? 根据不同的应用、应该具有较大的尺寸

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    Cortex-Rx 架构具有一个专用寄存器、针对每个模式(R13_USER、R13_FIQ、R13_IRQ 等)调用堆栈指针(SP 或 R13)。 其用途是当程序调用函数时、函数参数和返回地址被压入栈、并在函数终止并返回给调用方时弹出。 压入堆栈意味着写入堆栈指针给出的地址并相应地递减堆栈指针。 弹出表示递增栈指针;返回地址从栈指针给出的地址读取。

    第2列中的堆栈长度定义了每种模式的堆栈大小。 堆栈用于将局部变量的值存储在函数内部、离开这些函数时返回的程序地址以及 CPU 通用寄存器等

    估算方法是分配更大的堆栈空间、使用 Sentinel 值填充堆栈、然后监视执行期间实际使用的数量。