请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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
这似乎是正确的。
您能告诉我导致复位的原因是什么吗? 在闪存擦除或闪存写入之后、我需要使缓存无效。