Other Parts Discussed in Thread: C2000WARE, C2000WARE-MOTORCONTROL-SDK
器件型号: TMS320F280049C
Thread 中讨论的其他器件: C2000WARE、 C2000WARE-MOTORCONTROL-SDK
大家好:
我想问是否有人在 F280049C 上运行纯软件版本的 FAST 观测器(不使用 ROM 中嵌入的 FAST 库)的经验。
我已采取以下步骤来实现这一目标:
1.添加了文件搜索路径: 将基于软件的电机控制 SDK 库包含在“C2000 链接器设置: (C:/ti/c2000/C2000Ware_MotorControl_SDK_5_03_00_00/libraries/observers/est_lib/lib)
2.修改了链接器命令.cmd() 文件 :将 FAST 函数分配给特定的闪存和 RAM 地址:
fast_funcs_run_ram :
{
// Explicitly specifying the EABI version of the library
-l fast_full_lib_eabi.lib<*.obj>(.text)
}
LOAD = FLASHB0_SA,
RUN = RAMGS1_3,
LOAD_START(fastLoadStart),
LOAD_END(fastLoadEnd),
RUN_START(fastRunStart),
ALIGN(4)
3.在中添加了 copy-to-RAM 操作 main():
memcpy(&fastRunStart, &fastLoadStart, (size_t)&fastLoadEnd - (size_t)&fastLoadStart);
4.排除 ROM 符号库: f28004x_fast_rom_symbols_fpu32.lib 从构建中排除。
完成这些设置后、我重建了工程、并可以清楚地看到内存 FLASHB0_SA RAMGS1_3 映射中和的内存使用量显著增加。 基于此、我相信我已经成功分配了纯软件电机控制 SDK 库并将其移至闪存/RAM 中进行执行。
问题: 但是、当我运行代码时、我无法从观察到任何正确的输出 EST_run(estHandle, &estInputData, &estOutputData);。 结果就像 FAST 模块完全不工作一样、输出值保持完全静态、没有任何变化。
FPUmathTables在从 49C 上的 ROM 解耦时、是否有任何缺失的配置(如特定数学表(如)或硬件依赖项)需要解决?
任何见解或建议都将非常感谢。 谢谢!