uboot编译及移植

一、 获取官方uboot源码并解压

二、 打开源码中的"README"文件,找到编译配置命令"make xxxx_config"

三、对Makefile进行配置

  1. 解压交叉编译工具
  2. 添加新的环境变量PATH(交叉编译工具所在目录)到 .bashrc 文件中,并用source命令对其进行重新载入。
  3. 对Makefile中的CROSS_COMPILE进行配置
ifeq (arm,arm)
CROSS_CMPILE ?= arm-none-linux-gnueabi-
endif
  1. make 命令
    make help
    make clean
    make distclean

四、移植到SD卡中

  1. 通过ubuntu系统烧写ubootpak.bin到SD卡中
    使用工具:sdtool;
    ① 将sdtool拷贝的ubuntu并解压
    ② 将SD卡用读卡器插到PC上,并让ubuntu识别。

     要求:需要在Windows中最SD卡进行格式化
     ubuntu识别SD卡步骤:
     虚拟机-》可移动设备-》读卡器的名字-》连接
     
     读卡器或者电脑是USB3.0的接口:
     虚拟机-》设置-》USB控制器-》USB兼容性:--》USB3.0
    

    ③ 进入到sdtool目录下,替换目录下的ubootpak.bin文件

     s5p6818-sdmmc.sh:烧写ubootpak.bin到SD卡中的脚本文件
     ubootpak.bin:自己编译生成的u-boot的镜像 
    

    ④ 烧写ubootpak.bin文件到SD卡中

     在ubuntu的终端中执行以下命令 
     sudo ./s5p6818-sdmmc.sh /dev/sdb ubootpak.bin 
     
     注:/dev/sdb : SD卡在dev目录下的设备文件
     
     执行以上命令出现以下内容,表示制作成功:
     669+1 records in
     670+0 records out
     343040 bytes (343 kB) copied, 0.00605781 s, 56.6 MB/s
     ^_^ The image is fused successfully
    

    ⑤ SD卡启动测试

  2. 通过windows系统烧写xwn_ubootpak.bin到SD卡中
    需要工具:Win32DiskImager.exe

    ① 首先得到windows版本的ubootpak.bin

     具体操作:
     	在ubuntu版本的ubootpak.bin文件前边添加512字节的占位,
     跳过SD的前边512字节的分区表。
     
     shell命令:
     	dd if=/dev/zero of=512B bs=512 count=1
     	chmod 777 512B 
     	cat 512B ubootpak.bin > win_ubootpak.bin
    

    ② 利用Win32DiskImager.exe拷贝到SD卡中

     拷贝win_ubootpak.bin到windows文件夹中
     打开Win32DiskImager.exe,选择SD卡的盘符,选择要写到SD卡中的win_ubootpak.bin文件,单击write,就可以写入到SD卡中
    

    ③ SD卡启动测试

  3. 烧写ubootpak.bin到EMMC(flash)中

    前提:SD卡启动盘必须制作好,前边已经完成。通过SD卡的方式启动uboot,并进入uboot的交互界面。

    ① 通过SD卡的方式启动uboot,并进入uboot的交互界面。
    ②使用tftp命令将ubootpak.bin文件烧写到内存中。

    ubuntu中:
    先将ubootpak.bin拷贝到tftpboot目录下
    cp ubootpak.bin ~/tftpboot/
    
    串口工具中:
    tftp 0x41000000 ubootpak.bin 
    将ubootpak.bin烧写到内存的0x41000000地址中
    

    ③ 将内存中的ubootpak.bin使用update_mmc命令烧写到EMMC中。

    update_mmc <dev no> <type> <mem> <addr> <length>
    	- type :  2ndboot | boot | raw | part  //类型
    	<dev no>:设备号  EMMC设备号为:2
    	<type>:类型 2ndboot 
    	<mem>:从内存的哪个地址开始进行数据搬移
    	<addr>:搬移到EMMC的起始地址,以字节为单位
    	<length>:搬移数据的长度,以字节为单位 
    			具体长度要看ubootpak.bin大小
    	
    	pri打印环境变量有以下信息:
    	flash=mmc,2:ubootpak:2nd:0x200,0x78000;
    	flash=mmc,2:2ndboot:2nd:0x200,0x4000;
    	
    	update_mmc 2 2ndboot 0x41000000 0x200 0x78000
    

    ④测试

六、uboot环境变量

  1. uboot支持的命令
    setenv
    saveenv
    ping
    tftp
    printenv/pri/print

  2. uboot中的环境变量
    bootcmd : 自启动命令
    bootargs : 自启动参数
    bootdelay :启动延时,不能为0
    serverip :ubuntu IP
    gatewayip :网关
    ipaddr :开发板 IP
    netmask :子网掩码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值