器件型号: AM2434
您好、
在迁移到 SDK V12 的过程中、我一直在努力迁移到 MCELF 格式。 我们有四个独立的程序,每个程序都在自己的内核上运行 — 从 SDK v8 到 V11、此程序是稳定的。
但是、我现在在从闪存加载时遇到目标崩溃(CPU 异常)问题。 从调试器运行时(也不使用 V11 SBL 以 RPRC 格式引导相同的二进制文件)、我根本看不到这一点。
我首先使用与调试 SBL 相同的方法来调试目标(等待循环)、然后逐步执行。 这一切都正常。
在单步执行代码时,我看到了存储器对齐异常 — 这就是系统不引导的原因。 然而,事实证明这是一个完整的红鲱鱼,但花费了我很多时间:
我最终注意到、从闪存引导或从调试探针引导之间存在很大差异(在一些区域中)。 崩溃周围区域中的散列指令是随机的 — 很明显程序存储器已损坏并且显然会导致崩溃。
为了证明存储器损坏、我从内核 0 (0x70080000、长度 0x70000 — 根据 linker.cmd) 下载了原始程序存储器、当时我使用调试探针运行与从闪存引导。 这证实了将会崩溃的地区的差异。
我双重双重检查了所有 linker.cmd 文件 — 所有程序和数据存储器都已正确分区。 此外,我从来没有这个问题与 pre-mcelf, v8 - V11 SDK。
因此、我有点无法继续执行下一步操作、除非现在恢复到 SDK V11。
有什么建议吗?
谢谢、Steve