LV09-02-uboot-01-烧写与加载
本文主要是uboot——烧写与加载的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows | windows11 |
Ubuntu | Ubuntu16.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
SecureCRT | Version 8.7.2 (x64 build 2214) - 正式版-2020年5月14日 |
Linux开发板 | 华清远见 底板: FS4412_DEV_V5 核心板: FS4412 V2 |
u-boot | 2013.01 |
点击查看本文参考资料
参考方向 | 参考原文 |
--- | --- |
点击查看相关文件下载
文件 | 下载链接 |
uboot_bin.rar | uboot原始镜像(不可以直接烧写)和LED灯闪烁测试程序 |
WIn32_disk_imager.rar | windows下向SD卡烧写uboot镜像的软件 |
example_uboot.rar | 可以直接烧写到SD卡的uboot镜像文件 |
一、uboot
的烧写
1. 生成镜像
我们这里先直接拿编译好的uboot
镜像来进行封装,使其可以烧写到SD
卡中。
- 下载解压相应文件
我在windows
下将文件下载下来后存放到共享目录中并解压,此时我们可以得到如下两个文件:
下边u-boot-fs4412.bin
就是未经封装的bin
文件,interface.bin
是一个led
灯闪烁的测试文件。解压完毕后,我们将文件放入Ubuntu
中,在终端执行以下命令:
1 | mkdir -p ~/3tftp/fs4412 # 创建一个存放相关文件的目录 |
- 制作一个
512
字节的空镜像
我们在终端执行以下命令,制作一个512Bytes
的空镜像:
1 | sudo dd if=/dev/zero of=zero.bin count=1 |
执行后我们会得到如下提示:
1 | 记录了1+0 的读入 |
然后在当前目录下会生成一个512
字节的zero.bin
文件。
- 将
uboot
追加到zero.bin
之后生成win-u-boot-fs4412.bin
我们在终端执行以下命令:
1 | cat zero.bin u-boot-fs4412.bin > win-u-boot-fs4412.bin |
然后我们便会得到一个名为win-u-boot-fs4412.bin
的bin
文件,这个文件将会被烧写到SD
卡中。
- 制作一个
1M
的空镜像
我们再制作一个1M
字节的空镜像用于擦除SD
卡中原有的数据:
1 | sudo dd if=/dev/zero of=clear.bin count=2048 |
然后我们在当前目录下会得到一个1M
字节的名为clear.bin
的bin
文件。
2. 制作SD
卡启动盘
其实这一步就是将我们上边生成的win-u-boot-fs4412.bin
文件烧写到SD
卡中去。
- 下载
win32_disk_imager.rar
文件并解压
解压后我们会得到一个程序烧写的软件,这个软件是免安装的,可以直接运行。
软件打开后如下图所示:
- 清除
SD
卡原有数据
其实就是将clear.bin
文件烧进SD
卡:
然后会有以下提醒,我们选择Yes
即可。
烧写成功会有成功的提醒:
因为clear.bin
为空镜像,所以写入后SD
卡中的前2048
个扇区中的数据被擦除。
- 烧写
uboot
镜像文件
首先选择win-u-boot-fs4412.bin
文件,然后点击写入:
后边弹窗也选择Yes
,看到如下提醒,便是写入成功了:
3. 启动uboot
烧写完成后,我们将SD
卡插入开发板卡槽,然后将开发板的拨码开关卡槽调整到TF/SD
卡启动的方式,在SecureCRT
终端中若打印以下信息,且LED2
被点亮,那么就说明我们已经烧写成功了:
二、eMMC
加载uboot
对于uboot
我们使用的是从SD
卡启动,我们也可以将uboot
安装到eMMC
中然后从eMMC
启动uboot
,这样就可以不使用SD
卡了。
1. 文件准备
我们前边将u-boot-fs4412.bin
已经存放到ubuntu
的/home/hk/3tftp/fs4412
目录下了,所以这里就暂时不需要其他文件了。
2. 镜像写入eMMC
- 通过
tftp
下载u-boot-fs4412.bin
我们在SecureCRT
中输入以下命令:
1 | tftp 0x41000000 /fs4412/u-boot-fs4412.bin |
下载成功后会有以下提示信息:
1 | dm9000 i/o: 0x5000000, id: 0x90000a46 |
- 将
u-boot-fs4412.bin
安装到eMMC
中指定的扇区
首先打开eMMC
设备:
1 | fs4412 # emmc open 0 |
然后将数据写入到eMMC
:
1 | fs4412 # mmc write 0 0x41000000 0x0 0x800 |
最后关闭eMMC
设备:
1 | fs4412 # emmc close 0 |
3. 调整开发板启动方式
这一步就是看开发板上的丝印,看一下拨码开关是怎样的状态对应eMMC
启动即可。
4. 重启开发板
拨码开关拨到相应位置的时候,拔掉SD
卡,然后重启开发板,观察是否可以成功启动即可。若有以下信息打印,则证明启动成功:
1 | U-Boot 2013.01 (Apr 11 2020 - 04:15:49) for fs4412 |