烧录系统
文章目录
- 烧录系统
- windows
- Linux
- upgrade_tool 工具烧写
- 烧写 update.img
- 擦除操作
- 使用 rkflash.sh 脚本烧写
编译Linux_SDK后得到多个镜像文件
windows
Windows 下通过瑞芯微开发工具(RKDevTool) 来烧写镜像。
Loader
parameter
uboot 0x00004000
misc 0x00006000
boot 0x00008000
recovery 0x00028000
rootfs 0x00058000
oem 0x00C58000
userdata 0x00C98000
Linux
upgrade_tool 工具烧写
upgrade_tool 工具支持很多指令,不同指令可以执行不同的操作,譬如 CD、LD、SD、UF、DI、DB、TD、RD 等等(大小写都行),有些指令需要带参数、而有些指令则不需要带参数,使用UL 指令烧写MiniLoaderAll.bin 镜像,使用DI 指令烧写其它镜像(uboot.img、boot.img、oem.img、userdata.img、rootfs.img、misc.img 等)以及分区表文件parameter.txt。
先烧写 MiniLoaderAll.bin 镜像,使用 UL 指令烧写 MiniLoaderAll.bin(执行 upgrade_tool命令时需要加入 sudo 获取到 root 用户权限,否则操作会失败!):
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool UL MiniLoaderAll.bin -noreset
pgrade_tool 命令后面携带了 3 个参数, 第一个参数表示需要执行的指令, UL 指令用于烧写 MiniLoaderAll.bin;第二个参数用于指定 MiniLoaderAll.bin 所在路径;第三个参数-noreset 表示烧写完 MiniLoaderAll.bin 之后不要复位开发板(不要复位设备)。
烧写完 MiniLoaderAll.bin 之后,接下来需要通过 DI 指令下载 parameter.txt 分区表:
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -p parameter.txt
接下来烧录其它镜像:
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -uboot uboot.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -misc misc.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -boot boot.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -recovery recovery.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -oem oem.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -rootfs rootfs.img
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool DI -userdata userdata.img
“DI -<partition_name>”中的 partition_name 便是分区名,譬如-boot 就是 boot 分区、 -oem就是 oem 分区; 使用 upgrade_tool 工具烧写镜像无需用户指定烧写地址, parameter.txt 文件已经定义了各分区的起始位置, 也就是镜像的烧录地址。
如果执行命令出错,可以尝试复位、重启开发板,再次操作。
最后,当所有镜像全部烧录完成后,我们可以执行下面这条命令复位开发板、 重新启动系统:
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool RD
烧写 update.img
开发板处于 Maskrom 或 Loader 模式下, 执行如下命令烧录 update.img 固件(使用 UF 指令烧录 update.img):
sudo …/tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool UF update.img
烧录完后会自动复位开发板。
擦除操作
开发板处于 Maskrom 或 Loader 模式下, 执行如下命令可以擦除 Flash 中的所有数据(使用EF 指令):
sudo ../tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool/upgrade_tool EF MiniLoaderAll.bin
当然,也可以按地址进行扇区擦除,由用户指定擦除的起始位置和大小(使用 EL 指令)。
使用 rkflash.sh 脚本烧写
/rkflash.sh 是 RK 提供的烧录脚本,我们可以直接使用这个 rkflash.sh 脚本进行烧录;当然,这个脚本也是调用了 upgrade_tool 工具执行烧录操作。
用法也非常简单,首先让开发板处于 Maskrom 或 Loader 模式下,直接运行 rkflash.sh 脚本即可将/rockdev目录下的镜像烧录到开发板(同样也需要加入 sudo,否则操作会失败!):
sudo ./rkflash.sh
执行上述命令会将 rockdev 目录下的 boot.img、 MiniLoaderAll.bin、 misc.img、 oem.img、recovery.img、 rootfs.img、 uboot.img、 userdata.img 烧写到开发板对应分区。烧录完之后会自动复位开发板。
除了之外,还可单独烧录某个指定镜像,如下表所示: