【HarmonyOS HiSpark AI Camera】映像烧录
HiSpark AI Camera开发板的鸿蒙系统有4个映像:
u-boot-hi3516dv300.bin、OHOS_Image.bin、rootfs.img和useRFs.img。
目前支持串口、USB、网口三种方式进行映像烧录。
在映像烧录前,需要确认每个映像在EMMC中的存储起始地址和存储空间大小即映像分区表。
HiSpark AI Camera开发板分区表如下:
(文件路径部分请用户根据自己的镜像目录进行修改!!!)
镜像名称 | 起始地址 | 长度 |
u-boot-hi3516dv300.bin | 0x0 | 0x100000 |
OHOS_Image.bin | 0x100000 | 0x900000 |
rootfs.img | 0xa00000 | 0xf00000 |
userfs.img | 0x1900000 | 0x3200000 |
在烧录映像前,需要通过串口线、网线连接PC和单板,同时连接单板的电源线,保证单板可正常上电和通信。
HiTool工具烧写
HiTool是海思芯片的映像烧录工具,在映像烧录前,先选择对应的芯片,见下图:
映像烧录方法见下图:
1、PC与板端配置
本地PC配置:串口:设置单板和PC之间连接的串口号;服务器IP:设置PC的IP地址。
板端配置:IP地址:设置单板的IP地址 ;网关和子网掩码正常配置即可。
传输方式:选择网口,下载速度比较快。
2、烧写eMMMC
使用“浏览”选择分区表,选择需要烧录的映像,点击”烧写“。
3、上电
按照提示给单板重新上电。
注:在下载映像时,其它串口工具不能占用HiTool下载使用的串口。
IDE工具烧录
IDE工具烧录映像方法:
https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_first_example-0000001051610926
其中“镜像烧写”详细介绍了烧录过程。
U-boot命令烧录
在U-boot命令行模式下,可以使用tftpboot进行映像文件下载,使用mmc write命令将映像保存到EMMC中。
由于tftpboot使用网络通信,需要先在PC端打开tftp工具,配置映像路径;然后在U-boot命令行模式下配置环境变量:ethaddr、ipaddr和serverip。
环境变量配置可参考“HiSpark AI Camera U-boot环境变量”。
U-boot映像下载:
tftpboot命令参数:
第一个参数0x80000000是下载U-boot映像的内存起始地址;第二个参数u-boot-hi3516dv300.bin是U-boot映像名。其他映像下载方法类似。
mmc write命令参数:
第一个参数0是mmc设备号;
第二个参数0x80000000是tftpboot下载U-boot映像的内存起始地址。
第三个参数0是U-boot映像保存在EMMC的起始地址/512;
第四个参数0x1d0是U-boot映像文件大小/512。
U-boot映像文件大小:建议在PC端右键U-boot映像,选择“属性”,使用“占用空间”大小。
注:如果没有Hitool工具,不建议更新U-boot映像,否则一旦出错,后果不堪设想。
内核映像下载:
在调试内核时,也可以不用写入到EMMC,直接使用go命令,进行内核映像加载(系统重启后,需要重新下载内核映像),命令如下:
rootfs.img和userfs.img下载方式类似,不再介绍。
U-boot启动信息
在空EMMC中烧录鸿蒙系统映像后,U-boot启动log如下:
从上面log看出,U-boot直接进入命令行模式(出现hisilicon#提示),无法正常引导内核和文件系统。因此,需要重新配置U-boot环境变量bootargs和bootcmd。
注:出厂的单板已经配置过环境变量bootargs和bootcmd,系统可以正常启动,不会出现上面情况。
原创作者:田曙亮
👍👍👍
感谢大神,想请教下,如果这样子烧,就需要很长的时间,如果我只是添加application的一个小功能,可以只烧一个模块吗?