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.
我想问一个与此主题相关的问题、该主题以 Gael 开头: https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/591548?tisearch=e2e-sitesearch&keymatch=tms570%2525252525252520activate%2525252525252520static%2525252525252520ram%2525252525252520ecc
Gael 问的是有关具有 Cortex-R5F ARM 内核的 TMS570LC4357的问题、 Chuck Devenport 在他的回答(已解决)中表示、这个新内核在处理上一代 Hercules MCU 时有某种不同、在这种情况下、由于报告错误检测的延迟、上下文可能会丢失。
很抱歉、我最初的回答没有说明 TMS570LC43x 与我们早期的 Hercules 器件之间的架构差异。 在这个特定器件中、RAM 和闪存驻留在 L2总线上、这会在它们被访问时引起一些延迟、从而导致报告不可纠正的错误条件时出现延迟。 由于这种延迟、我们依靠 R5F 内的事件总线机制来标记不可纠正的错误并通过 EPC 将其发出。 这一点的回退是、我们松开了不可纠正的错误的上下文、该错误是在闪存还是 RAM 中、并且能够锁存发生错误的地址。 简而言之、我们无法识别 SRAM 或闪存中是否存在不可纠正的错误。
我的问题是"以前的 Hercules MCU"是否包含 TMS570LS3137 MCU (Cortex-R4F 内核)、因为在我的情况下、每次上电 RAM ECC 发生时、对源的跟踪总是在变化、因此无法知道导致 ESM 组3 RAM ECC 错误的指令。
谢谢!
是的、TMS570LS3137将闪存和 RAM 接口作为紧密耦合的存储器接口实现。 如果 CPU 从具有双位 ECC 错误的闪存或紧密耦合 SRAM 位置读取数据、CPU 将进入预取/数据中止异常状态、并且有关错误原因和地址的相关信息将保存在 CPU 寄存器中、以在中止处理程序中进行处理。
谢谢 Sunil、
这回答了我的问题。
但是、我的潜在问题仍然与我上次私下联系您寻求帮助时的问题相同、这一点非常相同:
无论 ARM 内核辅助控制寄存器 ACTLR 位 B0TCM 和/或位 B1TCM ECC 校验被启用(偶数或奇数 SRAM 存储区)、在 main ()之前的 C 启动代码(汇编器代码)中、 或者在进入 main()并完成全局存储器硬件初始化之后,冷启动将进入 Abort()异常处理程序来中止执行。
如果在挂起时通过调试器执行具有相同代码的新下载、则正常执行将恢复。
我缺少什么吗?
你好、Chuck、
我记得您上次发布的问题。 中止模式状态和地址寄存器可被用来识别错误的实际原因。 HALCoGen 生成的数据中止处理程序标识了通过识别导致错误的地址而特意生成的中止。
由于无法直接看到问题、也不熟悉您的应用软件、我只能建议从中止状态和地址寄存器的内容开始进行调试的方法。