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.

[参考译文] MSPM0L1306与 MSP TI 微控制器中栈的内存分配相关

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1392938/mspm0l1306-related-to-the-memory-allocation-of-stack-in-msp-ti-micro-controller

器件型号:MSPM0L1306

工具与软件:

您好!

我尝试使用散点文件和启动代码来为 MSPM0L1306微控制器分配堆栈存储器

下面我将更新修改后的代码以用于散点和启动、请检查并告知我是否需要进行任何更改。

散点文件:

RW_IRAM2 0x20000000 0x00000D00{;RW DATA
. 任意(+RW +Zi)
. 任意(.ramfunc)
}
ARM_LIB_STACK 0x20000D00 0x300;堆栈区域向下增长
{*(stack)}
}


启动文件:

TOST_SIZE EQU 0x00000300

区域堆栈、NOINIT、READWRITE、ALIGN=3
Stack_Mem 空间 Stack_Size
___initial_sp


上述实施是否正确?

因为内存锁定在我的微控制器中。 刷写后


谢谢!
Govardhan Perla。

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

    您好 Govardhan、

    为什么您希望 自己分配栈内存、因为编译器将自动进行内存分配、所以我没有执行相同的操作。  

    此致、

    Janz Bai

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

    尊敬的 Janz Bai:

    是的、正确的编译器将在编译时本身期间分配栈内存。
    但我需要计算堆栈是否发生溢出、因此我需要一个常量堆栈内存来监视堆栈内存以避免堆栈溢出。

    为了分配常量堆栈存储器、我更新了上述散点文件。
    我的怀疑、我修改散点文件的方式是否正确

    谢谢!  
    Govardhan Perla

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

    您好 Govardhan、

    感谢您的确认、我知道您的意思。 您使用的 IDE 似乎是 Keil、您希望使用散点文件来分配代码、数据和堆栈的位置和大小。 我认为您可能需要寻找 Keil 的用户指南以检查您的代码编写是否 符合编写标准。 有关闪存区域(大小和地址)以及有关 M0 L 系列的特定信息、请参阅 TRM 中的"NVM (闪存)"一章、您可以从 TI.com 下载该章。

    MSPM0 L 系列32MHz 微控制器技术参考手册(修订版 D)(TI.com)

    此致、

    Janz Bai