bootloader简介:
bootloader是引导os启动的一段小程序,它被放在地址为0x00000000的flash处,当硬件加电后启动时就会去执行这段程序,完成硬件的初始化工作,并建立内存空间的映射图,从而为os启动做准备工作。
bootloader流程:
分单阶段和多阶段:
通常是多阶段:
多阶段:
stage1:完成初始化硬件,为stage2准备内存空间,并把stage2需要运行的代码复制到内存中,接着设置堆栈,然后就跳转到stage2.
stage2:初始化硬件,指的是外围硬件,eg:网卡。。。,接着将内核映像和根文件系统映像从flash中拷贝到内存ram中,最后就是调用内核了。
bootloader的工作模式:
1.启动模式:自动启动系统,无需任务操作。
2.下载模式:目标机上的bootloader将通过串口或网络等通信手段从主机下载文件,然后控制启动流程。
bootloader的内存布局:
u-boot的下载地址为:
smdk6400_config : unconfig
@$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6400 samsung s3c6400
smdk6410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410
mini6410_nand_config-ram128 : unconfig
@$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 NAND ram128
mini6410_sd_config-ram128 : unconfig
@$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 SD ram128
mini6410_nand_config-ram256 : unconfig
@$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 NAND ram256
然后我们就执行 make命令就行了,最后会生成u-boot.bin文件,把这个烧入开发板就行了