一、 获取官方uboot源码并解压
二、 打开源码中的"README"文件,找到编译配置命令"make xxxx_config"
三、对Makefile进行配置
- 解压交叉编译工具
- 添加新的环境变量PATH(交叉编译工具所在目录)到 .bashrc 文件中,并用source命令对其进行重新载入。
- 对Makefile中的CROSS_COMPILE进行配置
ifeq (arm,arm)
CROSS_CMPILE ?= arm-none-linux-gnueabi-
endif
- make 命令
make help
make clean
make distclean
四、移植到SD卡中
-
通过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卡启动测试
-
通过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卡启动测试
-
烧写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环境变量
-
uboot支持的命令
setenv
saveenv
ping
tftp
printenv/pri/print -
uboot中的环境变量
bootcmd : 自启动命令
bootargs : 自启动参数
bootdelay :启动延时,不能为0
serverip :ubuntu IP
gatewayip :网关
ipaddr :开发板 IP
netmask :子网掩码