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.

[参考译文] CCS/MSP430FR5969:将数据和代码保存在特定内存中。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/601090/ccs-msp430fr5969-saving-data-and-code-in-a-specific-memory

部件号:MSP430FR5969

工具/软件:Code Composer Studio

我有一些关于将数据保存到特定内存的问题。

我知道如何将数据保存在整个程序所需的位置。

如果我为程序更改lnk_msp430fr5969链接器命令文件,我可以选择保存位置  

但我想将每个函数保存在其他空间。  

例如,如果我的程序中有func1, func2, func3, func4,  

每个函数都有.bss,.data,.stack空间。  

当我更改下面的lnk_msp430fr5969文件时,  

.bss :{}> RAM/*全局和静态vars */
数据:{}> RAM/*全局和静态vars */
.TI.noinit :{}> RAM /*用于#pragma noinit */
堆栈:{}> RAM (高)/*软件系统堆栈*/

所有功能的.bss将保存在SRAM中。

但是,如果我想将func1的.bss和func2的.bss保存到SRAM,将func3的.bss保存到fram的.bss,将func4的.bss保存到fram,该怎么办?

如何为每个功能设置数据位置?  

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

    请参阅文章 将函数置于RAM中。

    谢谢,此致,

    -George

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

    感谢您的回复。

    使用
    __attribute___((ramfunc)
    void f (void){...}
    我可以在SRAM中保存功能

    但是,如果我要将特定数据保存在SRAM或FRAM中,该怎么办?
    我认为.data保存在SRAM默认值中,但如果我想将其移至FRAM,该怎么办?

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

    Mirae Kim 说:
    如果我要将特定数据保存在SRAM或FRAM中该怎么办?[/QUOT]

    使用#pragma data_section,将一个或多个数据对象放入所选的输入部分名称中。  然后修改链接器命令文件,将这些输入部分收集在一起,并根据需要分配它们。  阅读 MSP430编译器手册中有关data_sectionpragma的更多信息。  有关更改链接器命令文件的详细信息,请参阅文章 链接器命令文件入门

    谢谢,此致,

    -George