bootloader的目标:启动内核。
①从Flash上把内核读入内存(SDRAM)
a.能读Flash
b.初始化/内存/时钟/其他
②启动
a.设置参数(告诉内核内存大小、应该去哪里找根文件系统)
b.跳转执行
最简单的bootloader的编写步骤:
1、初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化Nand Flash
(关看门狗:对于2440,一上电看门狗会打开着,必须把它关掉,如果不关掉,过3秒钟会复位这个开发板)
(设置时钟:对于2440,上电的时候,它运行的频率是12MHz,想要让它运行更快一点)
(设置SDRAM:SDRAM这款内存,先要初始化)
(初始化Nand Flash:因为从Nand Flash上把内核读进来,bootlorader应该对Nand Flash的操作,如果Nor Flash,就像对内存)
2、如果bootloader比较大,要把它重定位到SDRAM
3、把内核从Nand Flash读到SDRAM
4、设置“要传给内核的参数”
5、跳转执行内核