|
Outcnt = 0x0030e7c8(3205064)
Final Inptr = 0x001414ad(1316013)
Original CRC = 0xcbd73adb
Computed CRC = 0xcbd73adb
|
做释放后的CRC检查:
Boot kernel at 0x90090000 with ROMFS at 0x46040000
|
kernel已经被从romfs中释放到内存地址0x90090000处,可以跳转到此处启动kernel了,这里是指定的kernel的起始地址
系统等待启动,后面把看到linux kernel的启动过程了。
第二部分 : linux内核初始化以及启动
第一节:start_kernel
Linux的源代码可以从www.kernel.org得到,或者你可以查看linux代码交叉引用网站:http://lxr.linux.no/ 进行在线的代码查看,这是一个很好的工具网站。
在start_kernel中把调用到大量的init函数,来完成内核的各种初始化。如:
page_address_init();
sched_init();
page_alloc_init();
init_IRQ();
softirq_init();
console_init();
calibrate_delay();
vfs_caches_init(num_physpages);
rest_init();
|
具体内容可以参考[http://lxr.linux.no/source/init/main.c]
Linux version 2.4.22-uc0 (root@local)
(gcc version 2.95.3 20010315 (release)) #33 .?1.. 20 12:09:106
|
上面的代码输出信息,是跟踪linux代码分析后得到的,进入init目录下的main.c的start_kernel启动函数.嵌入式linux使用的是linux内核版本为2.4.22,linux source code代码中start_kernel中输出的linux_banner信息。这个信息是每个linux kernel都会打印一下的信息,如果你没有把这句去掉的话:
Found bootloader memory map at 0x10000fc0.
|
bootloader经过内存映射后的地址为:0x10000fc0, 按上面的地址换算方法,1后面有7个0,那么虚拟地址256M左右处。
Processor: ARM pt110 revision 0
|
pT110是ARM微处理器arm核的一种,另一种为pT100。此处为显示ARM的类型。
共6页: 上一页 [1] [2] [3] 4 [5] [6] 下一页
|