Thread 中讨论的其他器件:UNIFLASH
工具/软件:
1. MCU 如何知道闪存中的软件被损坏?
2.检测后,它会做什么?
如何使用 CAN 基础引导加载程序恢复正常?
4.从连接到加载完成、我需要 JTAG/调试器刷写流程
如果微控制器卡在引导模式中、如何在不连接 JTAG 的情况下将其恢复?
6、 JTAG 闪存和 Brom CAN 闪存的主要/次要区别是什么?
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.
工具/软件:
1. MCU 如何知道闪存中的软件被损坏?
2.检测后,它会做什么?
如何使用 CAN 基础引导加载程序恢复正常?
4.从连接到加载完成、我需要 JTAG/调试器刷写流程
如果微控制器卡在引导模式中、如何在不连接 JTAG 的情况下将其恢复?
6、 JTAG 闪存和 Brom CAN 闪存的主要/次要区别是什么?
2.检测后它会做什么?
如果错误不可纠正、它将激活 NMI;在该 ISR 中、您可以让 NMI WD 超时(在这种情况下将发生复位)、或者您可以为 NMIWD 提供服务、然后以编程方式决定要执行的操作。 您可以选择查看导致不可纠正错误的地址、以查看是否存在、或者是否是已解决的软错误。 然后、您可以决定是否需要引导至引导加载程序以再次下载固件;或者如果没有可用的引导选项、只需阻止器件运行。
3.如何使用 CAN 基础引导加载程序将其恢复正常?
因此、在 NMIWD 内部、您可以决定直接在 ROM 内部调用 CAN 引导加载程序、或者如果您如此配置了引导引脚、则可以让器件复位并引导至 CAN 引导加载程序。 可能引导引脚位于闪存引导中、因此您可以手动调用 CAN 引导加载程序。
4.i 需要 JTAG/调试器从连接到加载完成的刷写流程
我不确定我是否理解这个问题;您是指使用 CCS 还是 Uniflash? 这两种方法都将闪存 API 下载到 RAM 的一部分、然后开始通过 JTAG 传递数据并相应地对闪存进行编程。 您是否希望在没有 IDE 的情况下主动使用 JTAG 下载代码?
5.如果微控制器卡在引导模式下、如何在不连接 JTAG 的情况下将其恢复?
只有当引导过程出现可检测到的问题时、设备才会“卡住“在 Brom 中。 在这种情况下、这会意味着 ROM 或 TI OTP 损坏;在这种情况下、器件在系统中将不可靠。 就等待引导本身而言、当 XRSn 被释放时由 GPIO 的特定状态进入该状态。 只要 GPIO 未处于该状态、就不会激活等待引导。
[quote userid=“603203" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1567111/tms320f280049-software-corruption-issue JTAG 闪存和 BROM CAN 闪存之间的主要/次要区别是什么?BROM CAN 闪存是一种本机引导加载程序、可通过 CAN 端口下载数据;通常您会传递闪存内核、然后接管该内核来调用闪存 API 来对代码进行编程。
JTAG 加载程序来自 CCS 闪存插件或 Uniflash、不是由引导模式驱动的事件、而是由 IDE 控制 C28x CPU 并使用本地存储器执行闪存 API、直到代码编程。
此致、
Matthew
它将触发不可纠正的错误并进入 NMI ISR。 然后、您可以查看 NMI 原因寄存器以确定导致故障的原因、如果 MCU 也会记录故障地址。 然后、代码可以决定接下来要采取的操作、即重新启动、或仅通过驱动器引脚向外部系统指示错误等
[quote userid=“603203" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1567111/tms320f280049-software-corruption-issue/6040568 如何在不连接 JTAG 的情况下修复 MCU 软件损坏?如果错误位于 RAM 中、那么您可以选择将闪存重新复制到 RAM(假设它是损坏的代码)、或者如果是数据、那么您可以根据您的系统是否需要该数据做出一些决策。 如果错误出现在闪存中(可能性微乎其微)、如果您有外部引导加载程序/外部存储器、则可以强制重新启动以再次下载固件、否则系统会卡住、
[quote userid=“603203" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1567111/tms320f280049-software-corruption-issue/6040568 软件损坏的原因是什么?对于 RAM、它可能是编程的、即您自己的代码未正确分区、存在一些溢出等 其他原因是软错误、这可能是由于环境因素(例如辐射冲击)导致的、可能是超出 DS 规格的电源平面不良等 我建议查看安全手册、了解抵消/检测这些问题的方法 :https://www.ti.com/lit/fs/spruid8d/spruid8d.pdf
系统中可能会出现一些软错误、但它们应该很少见。 所有器件在出厂前均经过 TI 的全面测试、以确认符合 DS 规格。
此致、
Matthew