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/TMS320F280049C:如何为 ROM 和 RAM 存储器创建不同的段

Guru**** 2595805 points
Other Parts Discussed in Thread: TMS320F280049C

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/965741/ccs-tms320f280049c-how-to-create-different-sections-for-rom-and-ram-memories

器件型号:TMS320F280049C

工具/软件:Code Composer Studio

您好!

 我们对 TMS320F280049C MC 有要求

我们必须创建不同的 RAM 和 RAM 存储器部分

例如:

RAM 存储器部分

  • 在一个特定 RAM 位置的所有全局布尔变量。
  • 同样、对于所有 uint8、uint16和 uint32、以及用户在 一个特定 RAM 位置指定的结构

2. ROM 存储器部分

  • 所有初始化函数位于一个特定的 ROM 位置。
  •  特定 ROM 位置的其他接口类似。
  •    和常数变量。

请告诉我们、此要求是否可行?

如果是

请让我们了解实施过程。

如果不是

请让我们了解可能的实施部分和过程。

提前感谢

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

    这些是异常要求。  这些工具没有使代码和数据的组织变得简单和方便的功能。  但可以做到。  

    首先了解一些一般背景。  请阅读文章 链接器命令文件入门的前半部分。  在 C28x 编译器手册中搜索 pragma CODE_SECTION DATA_SECTION。  阅读您 可以理解的文章 pragma

    我将讨论两种实施方法...

    [引用 user="Siva Sankar Chandika"]在一个特定 RAM 位置的所有全局布尔变量

    这两种方法同样适用于其余要求。

    一种方法... 将所有布尔变量的定义放入一个 C 文件中。  假设它被称为 boole_variables.c  然后在链接器命令文件的 SECTIONS 指令中写入类似的内容...

    BOOLEOLED_variables_output_section
    {
    BOOLED_variables.obj
    }> BOOLEOLEOLED_variables_memory_range 

    这将创建一个名为 boole_variables_output_section 的输出段。  它由目标文件 boole_variables.obj 中的所有输入段组成。  它被分配到布尔变量_memory_range 中的地址。  如果需要、可以使用硬编码地址(如0xA000)替换 BOOLEOLED_variables_memory_range。

    另一种方法... 在定义布尔变量的每个源文件所包含的头文件中,具有与以下内容类似的行...

    #define pragma (x)_Pragma (#x)
    #define define 布尔值(var) \
    pragma (DATA_SECTION (var、"boole_variables_section")))\
    bool var 

    要定义布尔变量写入...

    define 布尔值(variable _name); 

    在链接器命令文件的 SECTIONS 指令中,写入...

    Boolean 变量_section > Boole_variables_memory_range 

    这将创建一个名为 boole_variables_section 的输出段。  它由所有也称为 boole_variables_section 的输入段组成。  它被分配到布尔变量_memory_range 中的地址。  如果需要、可以使用硬编码地址(如0xA000)替换 BOOLEOLED_variables_memory_range。

    谢谢、此致、

    乔治