资料介绍
ARM Bootloader详解 ArmLinux BOOTLOADER 全程详解
网上关于 Linux 的 BOOTLOADER 文章不少了,但是大都是 vivi,blob 等比较庞大的程序,读起
来不太方便,编译出的文件也比较大,而且更多的是面向开发用的引导代码,做成产品时还要
裁 减 , 这 一定 程度 影响 了开 发 速度 , 对 初学 者学 习开 销 也比 较大 , 在 此分 析一 种简 单的
BOOTLOADER,是在三星公司提供的 2410 BOOTLOADER 上稍微修改后的结果,编译出来
的文件大小不超过 4k,希望对大家有所帮助.
1.几个重要的概念
COMPRESSED KERNEL and DECOMPRESSED KERNEL
压缩后的 KERNEL,按照文档资料,现在不提倡使用 DECOMPRESSED KERNEL,而要使用
COMPRESSED KERNEL,它包括了解压器.因此要在 ram 分配时给压缩和解压的 KERNEL 提
供足够空间,这样它们不会相互覆盖.当执行指令跳转到 COMPRESSED KERNEL 后,解压器
就开始工作,如果解压器探测到解压的代码会覆盖掉 COMPRESSED KERNEL,那它会直接跳
到 COMPRESSED KERNEL 后存放数据,并且重新定位 KERNEL,所以如果没有足够空间,就
会出错.
Jffs2 File System
可以使 armlinux 应用中产生的数据保存在 FLASH 上,我的板子还没用到这个.
RAMDISK
使用 RAMDISK 可以使 ROOT FILE SYSTEM 在没有其他设备的情况下启动.一般有两种加
载方式,我就介绍最常用的吧,把 COMPRESSED RAMDISK IMAGE 放到指定地址,然后由
BOOTLOADER 把这个地址通过启动参数的方式 ATAG_INI