今天阅读了友善之臂的u-boot启动代码。
启动流程主要概括如下:
1,中断向量表
2,中断函数表
3,禁止FIQ/IRQ中断,进入特权模式
4,取消缓冲和,禁止MMU
5,硬件初始化
6,根据启动设置,把代码拷贝到内存中。
比如NAND FLASH启动,把NAND FLASH开始的240KB的程序拷贝到DRAM的0x57e0 0000中。
7,拷贝后处理
通用端口的一个管脚输出底电平。
8,启动MMU
9,设置堆栈
10,初始化数据段
11,调用ARM启动程序,启动菜单。