移植全新的linux-3.5.0到Super4412(2)

将编译后的zImage烧写到开发板,串口打印done, booting the kernel.后没有其他反应了。

bl decompress_kernel
bl cache_clean_flush
bl cache_off
mov r0, #0@ must be zero
mov r1, r7@ restore architecture number
mov r2, r8@ restore atags pointer

 ARM( mov pc, r4 ) @ call kernel
 THUMB( bx r4 ) @ entry point is always ARM

根据查看汇编代码后发现在经过解压缩后,跳转到0x40008000地址去执行真正的linux代码。


从0x40008000读取0x100大小的数据通过串口打印输出后。

解压arch\arm\boot\compressed\piggy.gzip,获得piggy。对比串口输出的属于发现与piggy前0x100自己相同,可以判断解压成功。


在arch\arm\kernel\head.S的入口处ENTRY(stext)加入点灯的汇编代码后,发现LED亮,由此判断已经跳转到真正的linux镜像文件种执行了,接下来继续判断程序卡在哪里。

猜你喜欢

转载自blog.csdn.net/ma111000522/article/details/72853177