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.

[参考译文] TMS320F280039C:COFF 至 EABI

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1437910/tms320f280039c-coff-to-eabi

器件型号:TMS320F280039C

工具与软件:

我阅读了有关将 COFF 更改为 EABI 的文档。

在 EABI 链接器命令文件中、有".data"用于放置已初始化的数据。

但在 COFF 中、此段不适用、为何要将初始化数据放入 COFF 中?

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

    您好!

    请参阅以下链接: https://downloads.ti.com/docs/esd/SPRU513/introduction-to-sections-stdz0691509.html#:~:text=.ebss%20section%20(for%20COFF)&text=1.,for%20how%20sections%20are%20handled。

    [报价 userid="624304" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1437910/tms320f280039c-coff-to-eabi "]

    但在 COFF 中、此段不适用、为何要将初始化数据放入 COFF 中?

    [报价]

    此致!

    Ryan Ma

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

    Ryan、您好!

    正如我在这张图片中标记的、 我认为描述是不一致的。

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

    您好!

    我认为对于 COFF 和 EABI、它们都应使用.data 来放入已初始化的数据。

    我已在此表中提交一个待更新的 TT。

    https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html

    此致!

    Ryan Ma

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

    我认为这种区别是被忽视的。 务必单独考虑这些问题。  编译器如何使用命名的段 .data ?  汇编语言编程器如何使用命名的段 .data ?  第一篇文章中的表格仅回答第一个问题。  它没有提到第二个。   

    编译器如何使用命名的段 .data ?  在 COFF ABI 中、段名 .data 是不使用的。  在 EABI 中、 .data 用于包含已初始化的读写变量。  从汇编器出来的时候、这些段会被初始化。  链接器处理的内容 .data 初始化段 .cinit 、然后更改 .data 更改为未初始化。   

    汇编语言程序员如何使用 .data ?  在 COFF ABI 中、通常从不使用它。  但有时用于包含初始化数据。  在 EABI 中 .data 该部分按上一段所述进行处理。  汇编程序员需要知道链接器的行为。

    谢谢。此致、

    -George.

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

    谢谢!

    我对这个问题有基本的了解。

    对于 COFF ABI 中的编译器、哪个段用于包含已初始化的读写变量?  

    He Chen 说:
    .data 是不使用的。  在 EABI 中、 .data 用于包含已初始化的读写变量。  [报价]

    2、我也不是很明白这一点。

    链接器处理的内容 .data 初始化段 .cinit 、然后更改 .data 更改为未初始化。   [报价]

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 COFF ABI 中、哪一部分用于包含已初始化的读写变量?  [报价]

    .ebss .  此段包含未初始化和已初始化的全局变量和静态变量。

    [报价 userid="624304" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1437910/tms320f280039c-coff-to-eabi/5518163 #5518163"]

    我不太明白这一点。

    链接器处理的内容 .data 初始化段 .cinit 、然后更改 .data 更改为未初始化。   
    [报价]

    有关更详细的说明、请在 C28x 嵌入式应用程序二进制接口 中搜索标题为" 变量初始化"的子章节。

    谢谢。此致、

    -George.

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

    谢谢!

    我稍后将阅读该文档。