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.

[参考译文] TMS320F28335:F28335的 EABI Flash28335_API_V210-lib。

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1357077/tms320f28335-eabi-flash28335_api_v210-lib-for-f28335

器件型号:TMS320F28335

我们在使用 Flash28335_API_V210-lib 时遇到问题。 我们在当前项目中使用 EABI 库、现在我们需要从 MCU 擦除、编程和验证闪存扇区。 Flash28335_API_V210.lib 包含 COFF 对象。 TI 是否有 EABI 版本的 Flash28335_API_V210.lib? 如果没有、是否有权变措施可以对 MCU 闪存执行这些操作?

warning: library "../Flash28335_API_V210.lib" contains TI-COFF object files
   which are incompatible with the ELF output file.  Ensure you are using the
   proper library.
   
...

"../F28335.cmd", line 324: warning: no matching section
	-lFlash28335_API_V210.lib(.econst)
"../F28335.cmd", line 325: warning: no matching section
	-lFlash28335_API_V210.lib(.text)
 
 undefined        first referenced
  symbol              in file     
 ---------        ----------------
 Flash28335_Erase ./main.obj
 
 error: unresolved symbols remain

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

    Wilson、

    对于此器件、我们没有 EABI 支持的闪存 API 库。  这里没有其他选项、只能坚持为项目本身指定基于 coff 的对象。  

    我想更深入地了解这一点、您需要在 F28335上使用 EABI 吗?  该器件早于我们从 COFF 明显切换到 EABI 的日期、因此没有预期支持。

    您是否需要在 EABI 中有 COFF 不支持的功能?  我们可以查看基于 COFF 的工具中是否有替代工具。

    此外、我假设需要在您的项目中嵌入 API、可能是在现场擦除/编程中?  如果无需更新支持、则不必在编译中包含闪存 API。

    此致!

    马修

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

    Matthew 和

    感谢您的答复。 目前、我们在项目中使用了以下库:
    rts2800_fpu32_eabi.lib

    rts2800_fpu32_fast_补充_eabi.lib

    IQmath_fpu32_eabi.lib

    最后两个版本有其 COFF 版本、但不是第一个版本。 我还没有深入探讨 EABI 与 COFF 的优缺点。 我们主要关注的是临界代码的执行时间、因为我们在以50Hz 的频率运行 ISR。

    我们正在实施自定义引导加载程序(系统中的当前引导加载程序与其他 C2000器件)以现场更新我们的系统、因此我们需要能够擦除/编程 MCU。

    如果您有任何建议、我将不胜感激。

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

    Wilson、

    感谢更新、在我自己的安装上查看之后、我认为我们文件的命名约定导致了此处的问题。

    在我们添加 EABI 支持之前、COFF 是我们在 C2000中唯一使用的选项、因此这些文件的文件名中没有"COFF"标签。  rts2800_fpu32_eabi 文件存在此问题。  其对应的 COFF 就是 rts2800_fpu32.lib。  您应该可以在与上面引用的 EABI 版本相同的目录中看到此内容。

    有时我们似乎开始向一些库添加"_cof"文件标签( rts2800_fpu32_fast_补充_eabi.lib 是一个很好的示例)、但我有早于 EABI 的旧版本工具、即使对于该文件也没有_coff。

    我将看看我们为什么对某些文件这么做、而不是对主 rts2800_fpu32.lib 执行此操作、但与此同时、您应该能够使用它以及其他基于 coff 的.libs 来使闪存 API 正常工作。

    顺便说一下、我知道 coff 和 eabi 之间更大的变化之一是默认情况下 eabi 初始化 coff 不存在的所有变量。  我发现客户使用 eabi 的启动时间更长、直到他们将编译开关设置为禁用此功能(COFF 默认不执行此操作)。  根据您如何设置基于 eabi 的项目、您可能发现 COFF 在启动时间方面可能更好。

    此致!

    马修