工具与软件:
当客户对象使用与示例代码相同的符号时、示例项目 UMCSDK v5.03很难编译。 类型定义指针 MotorVars_M1或 userParams_M1等类型定义 C 模块中的类型定义指针。 但是、尽管 UMCSDK v4.02缺少用户速度快、而 eSMO Clarity 需要混合代码函数、但 UMCSDK v4.02在完全相同的定制 C 模块中不会出现此类符号编译问题。
话虽如此、反向跟踪 MCSDK v4.0相同的自定义模块 lab_is07。 速度模式无法将估算器电机 ID ROM 调用运行函数(.scratchpad 页1)放入从0x00009000开始的 SRAM 存储器位置。 奇怪的是、CCS 调试存储器浏览器地址:0x00009000长度(0xE)全部为0x0 256k 页/秒、ROM 符号破坏调用复制到 SRAM 永远不会发生在调试地址(0x003EC9EE、0x003ECF60、0x003ECF6B、0x003EBF39、0x003EB581)。 但存储器映射表示正在占用的 LSRAM 符号调用运行 ROM 函数、如下所示。
因此、电机 ID 和 EST 过程断言、但绝对不会因(pwmData.Vabc_pu)保持不变(0.0)或锁定(0.0、0.0、-0.0)而增加轨迹。 电机 ID 停止无法将任何可用数据返回到任何估算器调用的内部或外部。 似乎任何添加了 ROM 符号库的 MCSDK v4.0示例项目都应该能够在合理分级后实现电机 ID 过程、如在 lab_is05中那样?
为什么 CMD 文件中列出的 ROM 调用函数没有加载到 SRAM 中才是更大的问题? 订购之前的 lab_is07速度代码运行 ID 电机(用户参数高达预期的轨迹速度)。 请查看随附的存储器映射和 CMD 文件、其中稍后添加的 COF 构建(.scratchpad page 1 0x00009000)完全没有区别。 虽然 eabi 库工程构建不需要地址补丁、但即使链接器被明确告知要在 LSRAM 中从0x00009000开始从哪里加载补丁、ROM 调用运行代码也绝不会复制。 lab_is07速度模式如何从 ROM 调用 EST 函数? 然而、添加到 Lab_is07的电机 ID 代码无法错误地做到这一点?
在有人将 hal.h 电机#defines 移动到 hal.obj 后、我们花了数天尝试让 UMCSDK v5.03进行编译、更改了 UMCSDK v4.02的结构。 当客户代码引用 userParams_M1或 motorVars_M1新 typedef 结构时、对先前编译的示例而言、没有符号错误、这是一个巨大变化。 将用户电机#defines 从 hal.h 移动到 hal.obj 会导致永久性104符号缺失错误。 CCS v12.0索引拒绝放弃先前的 UMCSDK v4.02 #defines、仍在同一项目树中列出(hal.h)。 当当前工程(UMCSDK v5.03)似乎仍在同一工程树中时、索引不会更新或重新编译、(UMCSDK v4.02)看起来是相同的。 直到正确构建更新的 TI 示例代码并按预期工作之后、我们才会从 CCS 工程树中删除任何工作工程。


e2e.ti.com/.../is07_5F00_memory-map-.zipe2e.ti.com/.../f28004x_5F00_flash_5F00_cpu_5F00_is_5F00_eabi.zip
patch_EST_Angle_run_patchable_address:origin = 0x009000、length = 0x00000e
patch_EST_Dir_run_patchable_address:origin = 0x00900e、length = 0x00000e
PATCH_EST_EAB_RUN_PATCHABLE_ADDRESS:origin = 0x00901c、length = 0x00000e
Patch_EST_Flux_AB_estFluxDot_patchable_address:origin = 0x00902a、length = 0x00000e
patch_EST_Flux_DQ_run_patchable_address:origin = 0x009038、length = 0x00000e
patch_EST_Flux_run_patchable_address:origin = 0x009046、length = 0x00000e
patch_EST_Freq_run_patchable_address:origin = 0x009054、length = 0x00000e
PATCH_EST_IAB_RUN_PATCHABLE_ADDRESS:origin = 0x009062、length = 0x00000e
patch_EST_idq_run_patchable_address:origin = 0x009070、length = 0x00000e
PATCH_EST_LS_RUN_PATCHABLE_ADDRESS:origin = 0x00907e、length = 0x00000e
patch_EST_OneOverDcBus_run_patchable_address:origin = 0x00908c、length = 0x00000e
PATCH_EST_RR_RUN_PATCHABLE_ADDRESS:origin = 0x00909a、length = 0x00000e
PATCH_EST_RsOnLine_run_patchable_address:origin = 0x0090a8、length = 0x00000e
patch_EST_Rs_run_patchable_address:origin = 0x0090b6、length = 0x00000e
PATCH_EST_VAB_RUN_PATCHABLE_ADDRESS:origin = 0x0090c4、length = 0x00000e
PATCH_EST_Vdq_run_patchable_address:origin = 0x0090d2、length = 0x00000e
patch_EST_runEst_patchable_address:origin = 0x0090e0、length = 0x00000e






