工具/软件:
我的客户使用 F28388D 器件、并观察到在 CCS 中进行调试时 SDFM 寄存器存在问题。
a.当他将 CCS 与 ICE (JTEG) 连接起来时、中的值 Sdfm1Regs.SDDATA1.bit.DATA32HI 和 Sdfm1Regs.SDDATA2.bit.DATA32HI 不会更新、但当他在未连接 ICE 的情况下运行代码时、这些值可以正常更新。
这是否与 CCS/JTAG 设置相关?
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.
工具/软件:
我的客户使用 F28388D 器件、并观察到在 CCS 中进行调试时 SDFM 寄存器存在问题。
a.当他将 CCS 与 ICE (JTEG) 连接起来时、中的值 Sdfm1Regs.SDDATA1.bit.DATA32HI 和 Sdfm1Regs.SDDATA2.bit.DATA32HI 不会更新、但当他在未连接 ICE 的情况下运行代码时、这些值可以正常更新。
这是否与 CCS/JTAG 设置相关?
您好、Clark、
这很可能是一个调试/可见性问题、而不是 SDFM 故障。 您能否确保启用“Real-time Mode + Continuous refresh“?
此外、请注意、许多外设(如 EPWM)具有可实现“挂起时自由运行“的空闲位、但 SDFM 不具有。 如果遇到断点或按“暂停“、SDFM 数据路径将停止更新、最后的值将出现在 SDDATAx 中、直到您恢复。 因此、在程序运行时观察 SDFM、而不是在断点处观察。
您还可以尝试 Watch 或 Memory Browser。 使用 Sdfm1Regs.SDDATA1.all(或.u32)、或读取具备 32 位访问权限的 Memory Browser 中的 32 位地址。 在实时更新过程中、仅查看.bit.DATA32HI 可能会造成误导。
请告诉我这样是否解决了问题。 如果您在以实时模式+持续刷新运行时仍然没有看到更新、请分享:CCS 版本、gel/ccxml 目标配置、以及一个显示如何配置 SDFM +从中读取 SDDATAx 的最小代码片段。
此致、
Masoud
嗨、Clark、
感谢您提供更多详细信息。 如果程序正在运行(无断点)且 Sdfm1Regs.SDDATAx 在 CCS 中仍然显示为静态、这通常指向可见性/时钟或读取方法问题、而不是 SDFM 硬件故障。 请尝试 读取完整的 32 位 SDDATA 寄存器(Sdfm1Regs.SDDATA1.all 或通过具有 32 位访问权限的内存浏览器)、而不是仅读取.bit.DATA32HI。 在实时更新期间读取一个半字可能会产生误导、看起来像是“卡住“。
此外,如果您从 ePWM 派生 SDx_C ,请确保 TBCLKSYNC 已启用,且使用的每个 ePWM 均设置为 FREE_SOFT = 2(暂停时为自由运行)。 否则、连接调试器或短暂停止可以停止时钟链、并且 SDFM 输出将冻结在最后一个值。
如果在上述内容之后仍然没有移动、请分享最小 CCS 版本和目标配置 (ccxml)、这样我们就可以重现并深入挖掘。
此致、
Masoud