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.

[参考译文] TMS320F28388D:初始化 COPY_TABLE 和 CLEAR_TABLE 操作

Guru**** 2606375 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1479890/tms320f28388d-operations-of-the-initialization-copy_table-and-clear_table

器件型号:TMS320F28388D

工具与软件:

尊敬的专家:

想提出以下问题:

目前、我正在尝试找出在 TI MCU 初始化期间实现 COPY_TABLE 和 CLEAR_TABLE 的位置。 到目前为止、我已在示例工程的映射文件中找到以下内容。

此处、根据相关解释、我认为 TI MCU 的初始化是在 cinit 初始化表中实现的。 根据官方手册、cinit 初始化表中的内容包含相应变量的长度、地址和数据信息。 也就是说、应该在(.cinit……数据.load)和(.cinit……bss.load)中实现它。 但是、当我搜索编译生成的十六进制文件中的特定内容时、我没有在相应地址找到预期的数据。

我的问题是:
初始化 copy_table 和 clear_table 的操作(即.data 和.bss 的初始化处理)是否在 cinit 执行?
2. cinit 中的具体内容是什么? 根据手册规定、应按数据长度、数据地址和特定数据的顺序排列。 但实际十六进制文件中 cinit 相应地址处的数据显然与此不同。

如下图所示:

谢谢你。

此致、
阿奇·A·.

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

    器件型号:TMS320F28388D

    工具与软件:

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

    应用程序二进制接口(ABI)指定了在构建和链接单独编译的目标文件和库时必须观察的许多详细信息。  C28x 编译器工具链支持两种不同的 ABI。  较旧的名为 COFF ABI。  较新的文件名为 EABI。  ABI 指定的细节中包括全局变量和静态变量的初始化方式。  COFF ABI 和 EABI 对变量初始化的处理方式非常不同。   C28x 编译器手册中有多页 针对两种 ABI 进行了介绍。  通读时、请跟踪正在描述哪个 ABI。  

    我可以从链接器映射文件屏幕截图中看出您使用的是 EABI。  因此、 请忽略标题为  COFF 变量的自动初始化的子章节及其所有子部分。  请密切关注标题为  EABI 变量的自动初始化的子章节及其所有子部分。  如需更多背景和详细信息、请搜索 《TMS320C28x 嵌入式应用二进制接口(EABI)应用报告》 、阅读标题为 复制表和变量初始化的章节。

    谢谢。此致、

    -George.