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.

[参考译文] TMS320F28069M:通过引导代码清除 WDFLAG

Guru**** 2595780 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/886688/tms320f28069m-wdflag-is-cleared-by-boot-code

器件型号:TMS320F28069M
主题中讨论的其他器件:C2000WARE

我正在将 CPU 看门狗整合到 F28069M 项目中。 我能够按预期触发看门狗复位、但我发现在启动期间、WDFLAG 会被一些库代码清除。 我在 WDCR 寄存器上使用了一个硬件观察点来确认这一点--当达到观察点时 WDFLAG 被置位,并且在我单步执行几条指令后被清零。 当程序计数器的值约为0x3FF74E 时、就会发生这种情况。 根据器件存储器映射、这似乎在引导 ROM 中、这使我无法确定如何更改行为。

我发现 这篇文章 https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/419598 描述了相同(或类似)的问题,但我不清楚解决方案--我不能识别解决方案中显示的配置菜单。  

下面是项目中包含的库的屏幕截图。 为了在引导期间保留 WDFLAG、需要更改这些库中的哪些(如果有)、如何进行这些更改?

image.png

谢谢

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

    Oliver、

    您能否重新发送未显示的库列表图像。 您是否可以使用附加为图像功能。 此外、 您还了解了 C2000WARE 封装中使用的器件的看门狗示例吗?

    此致、

    Ozino

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

    您好、Ozino、

    感谢您的回复。 我这次将图像作为附件包含在了一起。

    我已经查看了 C2000WARE 封装中 F2806的看门狗示例。 它将看门狗配置为生成中断而不是复位、并且没有用于检查 WDFLAG 的任何示例代码。 在任何情况下、我认为我通过调试器发现的结果表明、WDFLAG 已按预期设置、但会通过引导 ROM 中的某个内容清除。  

    谢谢、

    Oliver

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

    您好、Oliver、

    感谢您提供更新后的图像。 我已将此问题转发给 bootROM 专家、以评论其是否清除 WDFLAG。 在此期间、您可能需要查看 F2806x TRM 中的 WD 一章。

    此致、

    Ozino

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

    您好、Ozino、

    是否有与引导 ROM 相关的更新?

    谢谢、

    Oliver

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

    您好、Oliver、  

    我们正在调查您报告的问题。  您提到了以下内容:

    >>我无法识别解决方案中显示的配置菜单。  

    我们假设这是因为您没有使用 SYS BIOS 或任何类型的 BIOS。 请确认吗?

    如果是、您是否具有文件的等效实现:  F2806x_CodeStartBranch.asm (您可以在我们的几个示例中看到源代码)

    如果是、是否可以在某些地方清除 WDFLAG?

    另外、请告诉我们、在软件中、您看到该位设置后清零的第一个位置是什么?

    在启动代码中、您能否在_c_int00设置 BP、然后在您希望设置 WDFLAG 位时检查其状态?   

    谢谢!  

    Krishna

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

    您好、Krishna、

    非常感谢您的回复。 正确的是、我们没有使用任何类型的 BIOS。  

    我查看了 CodeStartBranch.asm、发现那里没有清除 WDFLAG。 然而,在调查这一情况时,我发现了真正的原因,我在早些时候曾忽略了这一点:

    我们的应用使用 DRV 库(来自 Instaspin FOC)。 我们有一个也使用 DRV 库的自定义引导加载程序。 我发现在我们的引导加载程序内、WDOG_DISABLE   函 数正在清除 WDFLAG、该函数从 DRV_init 调用。  我`修改 WDOG_DISABLE、使其始终向 WDCR 的位7 (WDFLAG 位)写入`0 μ s 来解决此问题。 看门狗现在按预期工作。

    再次感谢、

    Oliver