bootloader之U-boot

bootloader简介:

bootloader是引导os启动的一段小程序,它被放在地址为0x00000000的flash处,当硬件加电后启动时就会去执行这段程序,完成硬件的初始化工作,并建立内存空间的映射图,从而为os启动做准备工作。

bootloader流程:

分单阶段和多阶段:

通常是多阶段:

多阶段:

stage1:完成初始化硬件,为stage2准备内存空间,并把stage2需要运行的代码复制到内存中,接着设置堆栈,然后就跳转到stage2.

stage2:初始化硬件,指的是外围硬件,eg:网卡。。。,接着将内核映像和根文件系统映像从flash中拷贝到内存ram中,最后就是调用内核了。

bootloader的工作模式:

1.启动模式:自动启动系统,无需任务操作。

2.下载模式:目标机上的bootloader将通过串口或网络等通信手段从主机下载文件,然后控制启动流程。

 

bootloader的内存布局:

 

 

u-boot的下载地址为:

 
 
下载完后,解压之:
进入解压后的u-boot目录,make xxxxx
这个xxxx是我们根据自己的开发板情况进行选择的。我们可以查看u-boot目录下Makefile文件找到适合我们开发板的xxxx命令:
 

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

对应与我们开发板的xxxx就是mini6410_nand_config-ram256
 
所以第一步:make mini6410_nand_config-ram256
这时我们会看到这个话:Configuring for mini6410 board which boot from NAND ram256...
然后我们就执行 make命令就行了,最后会生成u-boot.bin文件,把这个烧入开发板就行了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值