瑞芯微RK3568:烧录系统

news/2024/7/6 1:27:01 标签: 嵌入式, arm开发, linux, RK3568, 驱动开发

烧录系统


文章目录

  • 烧录系统
  • 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 烧写到开发板对应分区。烧录完之后会自动复位开发板。
除了之外,还可单独烧录某个指定镜像,如下表所示:


http://www.niftyadmin.cn/n/5032642.html

相关文章

Linux关于memory cgroup的几个要点

概述 本文讲述memory cgroup比较容易误解的一些逻辑&#xff0c;如果不太经常使用和解决问题的话&#xff0c;对于memory cgroup的认知会比较浅显&#xff1a;cgroup memory用来限制进程的内存使用&#xff0c;但是我们进一步想如下的问题&#xff1a; 进程的内存可以分很多类…

Java8实战-总结29

Java8实战-总结29 并行数据处理与性能并行流将顺序流转换为并行流测量流性能 并行数据处理与性能 到目前为止&#xff0c;Stream接口最重要的好处是可以对这些集合执行操作流水线&#xff0c;能够自动利用计算机上的多个内核。 例如&#xff0c;在Java 7之前&#xff0c;并行…

Java - LambdaQueryWrapper 的常用方法

1、查看项目中是否导入mybatisPlus的jar包 2、servie 层和实现类要集成mybatisPlus service 继承IService<> 实现类中要继承IService的实现类ServiceImpl<mapper,实体类> 3、如果想要mapper中的一些方法&#xff0c;mapper 要继承BaseMapper<实体类> 4、在实…

uniapp中git忽略node_modules,unpackage文件

首先在当前项目的命令行新建.gitignore文件&#xff1a; touch .gitignore再在编辑器中打开该文件&#xff0c;并在该文件中加入需要忽略的文件名&#xff1a; node_modules/ .project unpackage/ .DS_Store 提示&#xff1a;如果以前提交过unpackage文件的话&#xff0c;需…

docker中已创建容器的修改方法

环境信息以CentOS8为例 停止容器 #docker stop 容器名或id docker stop mysql停止docker服务 systemctl stop docker修改docker配置文件 配置文件在&#xff1a; /var/lib/docker/containers/{容器id} 如&#xff1a;/var/lib/docker/containers/92acfba87567bcca981ad17c0e…

Java IO 之 BIO、NIO 和 AIO

一、IO IO 是 Input 和 Output 二词的缩写&#xff0c;意为输入和输出&#xff0c;直接来说&#xff0c;实现一般的 I/O 是没有什么难度的&#xff0c;但涉及到多线程时&#xff0c;要解决 I/O 的问题就不是一个简单的事情了&#xff0c;会涉及到同步和异步的问题&#xff0c;…

使用stelnet进行安全的远程管理

1. telnet有哪些不足&#xff1f; 2.ssh如何保证数据传输安全&#xff1f; 需求&#xff1a;远程telnet管理设备 用户定义需要在AAA模式下&#xff1a; 开启远程登录的服务&#xff1a;定义vty接口 然后从R2登录&#xff1a;是可以登录的 同理R3登录&#xff1a; 在R1也可以查…

多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出

多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出 目录 多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出…