其实bootloader现在用的比较多的还是U-boot,还是很有必要看一遍源代码,至少可以加强对ARM9的体系架构的理解,我印象最深的就是,起先一直没弄明白在执行U-boot之前ARM应该还需要一段程序把U-boot加载到SDRAM中运行,认真看完step1后发现,原来S3C2440是不带片内ROM的,上电后直接调用NAND FLASH(0x40000000或者0x00000000,居然应该看硬件连接是Nor启动还是NAND启动)中前4KB的输入放入SDRAM中运行,这4KB的代码作用就是初始化ARM的系统时钟、关闭看门狗、将4KB之后的程序复制到SDRAM中运行。所以为什么ARM9的最小系统必须还包括外置的SDRAM和Flash |