在
cpu/arm920t/start.S中添加中断向量表,中断处理函数的实现。
在u-boot源码cpu/arm920t/start.S
a,设置svc32模式。
b,关看门狗。
c,屏蔽中断。
d,初始化SDRAM。
e,设置栈。
f,初始化时钟。
g,代码 flash搬到SDRAM。
h,清bss段
i,调用start_armboot ----- 调用第二阶段
----------------------------------------------------------------------------------------------------------------------------------------
a,设置svc32模式
![](/attachment/201401/31/29181887_13911636165kw5.png)
b,关看门狗。
![](/attachment/201401/31/29181887_1391163685LFC1.png)
c,屏蔽中断。
![](/attachment/201401/31/29181887_13911637703oco.png)
d,CPU初始化,主要是对SDRAM的初始化,因为要把flash的代码搬移到SDRAM上,所以要先初始化才行。
![](/attachment/201401/31/29181887_1391164147P7xG.png)
此处对cpu的初始化调用cpu_init_crit
![](/attachment/201401/31/29181887_1391164147zr2y.png)
在cpu_init_crit中调用lowlevel_init
在U-boot源码目录的board/samsung/fsc100/lowlevel_init.S如下
![](/attachment/201401/31/29181887_13911641474O4p.png)
主要是对setting SRAM。其他的都是些中断源,IRQ,系统时钟,DMA通道的初始化,nand的初始化。
![](/attachment/201401/31/29181887_1391164147kKeT.png)
![](/attachment/201401/31/29181887_1391164147L7z2.png)
e,设置栈。
![](/attachment/201401/31/29181887_1391164490799V.png)
f,初始化时钟。
![](/attachment/201401/31/29181887_1391163814dh25.png)
g,代码 flash搬到SDRAM。
![](/attachment/201401/31/29181887_13911646452wLB.png)
h,清bss段
![](/attachment/201401/31/29181887_1391164579jiMZ.png)
i,调用start_armboot ----- 调用第二阶段一般用C 语言编写
![](/attachment/201401/31/29181887_1391164521FEAM.png)
u-boot第一阶段如上分析流程,不同的开发板可能会有所差别,但是大同小异。
阅读(1180) | 评论(0) | 转发(0) |