NORFLASH启动UBOOT

NORFLASH启动UBOOT

将uboot存储在norflash中启动,主要流程是硬件初始化,设置栈,完成重定位,赋值uboot到ddr中运行,初始化外设,最后进入main_loop循环或引导操作系统启动内核。

uboot启动流程:

第一阶段:

​ 从地址0x00000000处取出第一条指令。

​ 当运行C语言时,形参和局部变量需要入栈,栈顶设置SRAM的顶端,为C程序提供运行环境。

​ 完成对gd_t*gd_ptr赋值(存储着uboot镜像的长度,重定位地址等信息)。

第二阶段:

​ 将uboot镜像赋值到SDRAM中控功能(重定位地址由gd_t*gd_ptr提供),根据重定位偏移量得到新的PC指针值,在DDR中继续运行uboot。

第三阶段:

​ 在DDR中继续运行的uboot完成对ARM处理器以及各外围硬件的初始化(例如:SPI、I2C、网卡等)。

​ 最终uboot进入main_loop,阻塞等待串口中断输入命令或者去启动内核。

总结:uboot的作用就是通过Flash和Sram初始化时钟和DDR(arm最小系统),最终是要在ddr中运行裸机调试或者引导操作系统启动内核。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值