我已经编写了一个最小的裸机 Raspberry Pi-3B 程序(ARM64-CortexA53)以从 EL2(异常级别 2)切换到 EL1。 U-Boot 用作引导加载程序。使用“tftpboot”命令将代码加载到 RAM。 “go”命令用于开始执行我的程序。我不希望将控制权还给 U-Boot。
当代码使用“ERET”指令切换到 EL1 时,RAM(跳转位置)包含随机数据。当我在 ERET 之前检查(使用 JTAG)RAM(再次是跳转位置)时,我可以在那里看到有效的程序。
程序在没有 U-Boot 的情况下按预期工作。使用U-Boot,它在EL1中执行随机数据。
我可以知道这种行为的原因吗?有没有比“go”命令更好的选择?
非常感谢, 小