1、从bootloader作用看写bootloader需要的内容
(1)目的:启动内核
(2)过程
(2.1)从flash上把内核读入内存
能读flash
初始化内存
初始化时钟(2440一上电时运行频率是12M,所以要让它能运行更快点)
其他
(2.2)启动(启动内核前,uboot要给内核传参数,是放在约定的地方的,因为uboot启动内核后就退出执行了)
设置参数(传给内核,告诉内核内存有多大,你应该去哪里找根文件系统)
跳转执行(调到内核地址)
2、最简单的bootloader的编写步骤
1. 初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND FLASH(因为nor flash比较小)
//对2440来说,看门狗一上电是打开的,不关掉过3秒会复位整个开发板。
2. 如果bootloader比较大,要把它重定位到SDRAM
3. 把内核从NAND FLASH读到SDRAM
4. 设置"要传给内核的参数"
5. 跳转执行内核