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……