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.

[参考译文] TMS320F2.8027万:如何知道CCS调试模式下堆栈的实际大小

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/621279/tms320f28027-how-can-i-know-the-actual-size-of-the-stack-under-ccs-debug-mode

部件号:TMS320F2.8027万

您好,

在CMD文件中有以下代码:

第1页:/*数据存储器*/
/*内存(RAM/FLASE/OTP)块可以移动到PAGE0以进行程序分配*/
/*寄存器保留在Page1上*/

RAMM1:原点= 0x0.04万,长度= 0x0.04万 /*片上RAM块M1 */

/*分配未初始化的数据段:*/
.stack:> RAMM1,页= 1

在项目属性中,“设置C系统堆栈大小”为0x300。

1.那么堆栈大小的限制是0x300还是0x400?

 在SPRU430F中,据说“SP始终指向堆栈中的下一个空位置”,这是否意味着如果SP=0x408,则实际堆栈大小为0x008(0x408-0x400)?

但是当我在CCS中调试代码时,我可以看到如下内容:SP=0x404,但在内存浏览器*(0x404)=0x740D中,它不是空的。

2.通过CCS逐步执行代码时,如何知道实际堆栈大小?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    3.在SPRU430F中,据说“在重置时,SP已初始化,因此它指向地址0.04万”,我是否可以更改此地址? 如果不是,则无法为堆栈分配0x000-0x3FF中的内存,对吗?
    4.是否可以分配RAM以外的闪存来存储堆栈?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Howard:

    1.那么堆栈大小的限制是0x300还是0x400?
    [Kata]这是0x300。 CCS GUI中给出的值将覆盖链接程序cmd文件中给出的值。 您可以检入.map文件以获得用于分配的最终长度。

    谢谢!
    Katta