我正在尝试为 U-Boot 运行一个独立的应用程序。
Target 是一块 LEGO EV3 积木 - 它有一个 TI OMAP (ARM9) CPU。
U-Boot挂机前的输出为:
U-Boot > fatload mmc 0:1 c0007FC0 uimage
reading uimage
384 bytes read
U-Boot > bootm
## Booting kernel from Legacy Image at c0007fc0 ...
Image Name: ITK EV3 sample OS
Image Type: ARM Linux Standalone Program (uncompressed)
Data Size: 320 Bytes = 0.3 kB
Load Address: c0008000
Entry Point: c0008000
Loading Standalone Program ... OK
OK
我尝试了以下命令,使其位于“uimage”中的地址 0xC0008000:
mov pc, lr (ARM code)
bx lr (ARM code)
bx lr (Thumb code)
这些命令应该简单地返回(取决于激活的 ARM 或 Thumb 模式)。然而,所有三个命令都会导致 U-Boot 挂起,因此在最后一个“OK”之后不再进行输出。
为什么 U-Boot 会挂起?