ZHCUB85 August 2023 TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
过去,F2837x 应用程序始终支持通用目标文件格式 (COFF) 二进制可执行文件输出。COFF 具有多项限制,其中一项便是符号调试信息不支持 C/C++。除此之外,对段的最大数量、段名的长度和源文件也存在限制。COFF 也不是业界通用的。由于这些原因,C2000 现在正在迁移到嵌入式应用程序二进制接口 (EABI) 格式。EABI 与 COFF 不兼容,因此,两种格式之间无法相互转换。这部分对 COFF 和 EABI 之间的差异进行了总结,并提供了一些有用的链接,这些链接提供了关于将应用程序从 COFF 迁移至 EABI 的指南。
表 5-1 对 COFF 和 EABI 的段名进行了总结。以下各段由编译器生成。
说明 | COFF | EABI |
---|---|---|
只读段 | ||
常量数据 | .econst | .const |
22 位以上的常量数据 | .farconst | .farconst |
代码 | .text | .text |
预主构造函数 | .pinit | .init_array |
异常处理 | 不适用 | .c28xabi.exidx/.c28xabi.extab |
读写段 | ||
未初始化数据 | .ebss | .bss |
初始化数据 | 不适用 | .data |
22 位以上的未初始化数据 | .farbss | .farbss |
22 位以上的初始化数据 | 不适用 | .fardata |
堆 | .esysmem | .sysmem |
栈 | .stack | .stack |
CIO 缓冲器 | .cio | .bss:cio |