摘要:
arm-linux启动过程1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析stext函数前,先介绍此时内存的布局如下图所示在开发板tqs3c2440中,SDRAM连接到内存控制器的Bank6中,它的开始内存地址是0x30000000,大小为64M,即0x200 阅读全文
摘要:
内核的引导步骤如下:(1)用U-boot 的mkimage 工具处理内核映像zImage。(2)通过网络、串口、U 盘、SD 卡等方式将处理过的内核映像传输到SDRAM 的一定位置(一般使用0x30008000)(3)然后使用”bootm"等内核引导命令来启动内核。 为什么要用U-boot 的mkimage 工具处理内核映像zImage?因为在用bootm 命令引导内核的时候,bootm 需要读取一个64 字节的文件头,来获取这个内核映象所针对的CPU 体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm 才能为OS 设置好启动环境,并跳入内核映 阅读全文