我正试图按照 @AldoG 在这里发布的说明: i.MX93 Cortex-M33 DDR 示例 ,用远程进程运行 DDR 中的代码,但要做一些更改,以便启动代码在 DDR 中。
我遇到了一个问题,当系统从 0x8F000000 启动时,系统会崩溃(我已经验证了 REG_SRC_GLOBAL_GPR9 在启动 M33 时被更新到了这个地址)。我更改了 ATF 和设备树,但不确定还需要更改哪些地方才能让 M33 从 DDR 开始执行。
我看到在i.MX93 M33 代码内存使用情况汇总表中,可以使用 uboot 在 DDR 中启动代码,但我不知道为什么在远程进程中无法运行。
另外,我想知道为什么设备树是
动态随机存取存储器(DRAM): 动态随机存取存储器(DRAM)@20480000 {
reg = <0 0x8f000000 0 0x20000>;
no-map;
};
而不是
动态随机存取存储器(DRAM): 动态随机存取存储器(DRAM)@8F000000 {
reg = <0 0x8f000000 0 0x20000>;
no-map;
};
你好
,你可能已经注意到两个线程都运行来自 TCM 的代码,然后在某个时候切换到动态随机存取存储器(DRAM),理论上可以从 Uboot 在 DDR 中运行,但现在我们没有可用的示例。
关于我的帖子,那里的设备树节点在 OCRAM 创建了一个部分,我在其中定义了在 DDR 中运行的代码的位置,仅此而已,就是 2048_0000。
另外,请注意,在我使用的链接器文件中,它没有经过优化,无法在 uboot 上使用,因为二进制文件会创建 0 来填补正在使用的 TCM 和 DDR 之间的空白,这就是我使用 RPROC 代替精灵文件的原因。
致以最崇高的敬意/问候,
Aldo。