主题中讨论的其他器件:C2000WARE
工具/软件:TI C/C++编译器
你(们)好
我正在为 f280049C 开发电机控制器应用、并使用基于 ROM 的 FAST 估算器进行无传感器控制。 我的代码基于 C2000Ware_MotorControl_SDK_2_00_00_00/solutions 下的 C 示例 is07_speed_control 实验室示例。
此示例针对闪存和 RAM 进行编译、优化级别设置为 off 或级别2。
我已将此代码移植到我的应用、并开发了一个基于 C++的项目、该项目覆盖了 C++类中的许多所需 C 库(Clarke/Park/iPark 等)。 如果编译器优化级别设置为-O2、则此代码会成功编译、链接并从闪存运行。 这很好、但会使调试变得困难、因为许多代码无法单步执行、或者由于编译器优化、变量不可见。
如果我将编译器优化级别设置为“关闭”,则会出现以下链接器错误....
错误#10056:重新定义符号"_exit":首先在"../src/src_lib/f28004x_fast_rom_symbols_fpu32.lib 中定义 ";在"/ti/ccs910/ccs/tools/compiler/ti-cgt-c2000_18.12.2.LTS/lib/rts2800_fpu32.lib 中重新定义 "
如果我删除这些库中的任何一个、我会得到一个或另一个库中存在的项目的未定义符号的链接器错误、这正是您所期望的。
我似乎无法通过这一步、因为我需要两者、但它们似乎都定义了"退出"。
此项目的 make 文件由 Code Composer 自动生成。
是否有其他人遇到过这种情况、或者在 C++环境中使用 FAST 估算器库是否存在问题、因此是否是工具问题?
请提供任何帮助。
谢谢
Phil