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.

[参考译文] TMS570LC4357:使高速缓存失效会导致复位

Guru**** 2390735 points
Other Parts Discussed in Thread: LAUNCHXL2-570LC43
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450362/tms570lc4357-invalidate-cache-causes-reset

器件型号:TMS570LC4357
主题中讨论的其他器件:LAUNCHXL2-570LC43

工具与软件:

我正在使用开发板 LAUNCHXL2-570LC43。  我使用闪存 API、通过 CAN 和串行为引导加载程序编写了代码。 我使用的代码是由 HAL 代码生成器工具生成的。

 如果我禁用了高速缓存、一切都正常。  如果我启用高速缓存、当我调用函数 _dCacheInvalidate_()时、处理器将复位。 失效缓存代码由 HAL 工具生成:

_dCacheInvalidate_
MOV R0、#0
DSB
MCR P15、#0、R0、C15、C5、 #0
DSB
Bx LR
.endasmfunc

这似乎是正确的。

您能告诉我导致复位的原因是什么吗?  在闪存擦除或闪存写入之后、我需要使缓存无效。

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

    Christopher、您好!

    我从未测试过"_dCacheInvalidate_"、但它不应导致复位。

    您的应用中是否使用了看门狗? 我怀疑可能由于内核卡在"_dCacheInvalidate_"而发生了看门狗重置。

    ——
    谢谢、此致、
    Jagadish。