系列文章目录
前言
一、什么是BootLoader?
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行,是嵌入式系统开发过程中不可逾越的一步。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由Boo Loader来完成。 uboot就是bootloader的一种,全称Universal Boot Loader。
第一阶段使用汇编来实现,它完成初始化的CPU体系结构,并调用第二阶段的代码;
第二阶段则通常使用C语言实现,这样可以实现更复杂的功能,而且代码会有更好的可读性和可移植性
Make menuconfig图形化界面配置内核,把编译后的uboot烧写到SD卡,插到板子上,和主机交互。只有BL2是可以改变的,我们写的裸机代码放到BL2这部分.
二、BL0的作用
芯片上电后肯定会从0x0这个地址开始跑
M3芯片它开始跑程序的时候是直接从 main开始跑吗?先跑的启动文件(start.s)
exynos芯片的0地址对应的IROM64KB IROM是掉电不丢失的存储介质 这里面的这个存储空间是用户不能访问的空间
这个64KB的空间存储的有一定的程序
三星提供了IROM里面的代码(不开源你看不到的)
这段代码干嘛用的呢?
1:判

最低0.47元/天 解锁文章
1433

被折叠的 条评论
为什么被折叠?



