1、PC与板端配置
本地PC配置:串口:设置单板和PC之间连接的串口号;服务器IP:设置PC的IP地址。
板端配置:IP地址:设置单板的IP地址 ;网关和子网掩码正常配置即可。
传输方式:选择网口,下载速度比较快。
2、烧写eMMMC
使用“浏览”选择分区表,选择需要烧录的映像,点击”烧写“。
3、上电
按照提示给单板重新上电。
注:在下载映像时,其它串口工具不能占用HiTool下载使用的串口。
IDE工具烧录其中“镜像烧写”详细介绍了烧录过程。
U-boot命令烧录在U-boot命令行模式下,可以使用tftpboot进行映像文件下载,使用mmc write命令将映像保存到EMMC中。
由于tftpboot使用网络通信,需要先在PC端打开tftp工具,配置映像路径;然后在U-boot命令行模式下配置环境变量:ethaddr、ipaddr和serverip。
环境变量配置可参考“HiSpark AI Camera U-boot环境变量”。
U-boot映像下载:
- hisilicon # tftpboot 0x80000000 u-boot-hi3516dv300.bin
- Hisilicon ETH net controler
- eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
- eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
- Using eth0 device
- TFTP from server 10.20.16.12; our IP address is 10.20.16.110
- Filename 'u-boot-hi3516dv300.bin'.
- Load address: 0x80000000
- Loading: #################
- 44.9 KiB/s
- done
- Bytes transferred = 237403 (39f5b hex)
- hisilicon #
- hisilicon # mmc write 0 0x80000000 0x0 0x1d0
-
- MMC write: dev # 0, block # 0, count 464 ... 464 blocks written: OK
- 28.74 MB/s
复制代码
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映像,否则一旦出错,后果不堪设想。
内核映像下载:
- hisilicon # tftpboot 0x80000000 OHOS_Image.bin
- Hisilicon ETH net controler
- eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
- eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
- Using eth0 device
- TFTP from server 10.20.16.12; our IP address is 10.20.16.110
- Filename 'OHOS_Image.bin'.
- Load address: 0x80000000
- Loading: #################################################################
- #################################################################
- #################################################################
- #################################################################
- #################################################################
- #############################
- 829.1 KiB/s
- done
- Bytes transferred = 5185276 (4f1efc hex)
- hisilicon # mmc write 0 0x80000000 0x800 0x2790
-
- MMC write: dev # 0, block # 2048, count 10128 ... 10128 blocks written: OK
- 37.65 MB/s
- hisilicon #
复制代码
在调试内核时,也可以不用写入到EMMC,直接使用go命令,进行内核映像加载(系统重启后,需要重新下载内核映像),命令如下:
- hisilicon # tftpboot 0x80000000 OHOS_Image.bin
- Hisilicon ETH net controler
- eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
- eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
- Using eth0 device
- TFTP from server 10.20.16.12; our IP address is 10.20.16.110
- Filename 'OHOS_Image.bin'.
- Load address: 0x80000000
- Loading: #################################################################
- #################################################################
- #################################################################
- #################################################################
- #################################################################
- #############################
- 838.9 KiB/s
- done
- Bytes transferred = 5185276 (4f1efc hex)
- hisilicon # go 0x80000000
-
- Starting application at 0x80000000 ...
-
- ******************Welcome******************
-
- Processor : Cortex-A7 * 2
- Run Mode : SMP
- GIC Rev : GICv2
- build time : Sep 21 2020 19:13:35
- Kernel : Huawei LiteOS 2.0.0.35/debug
复制代码
rootfs.img和userfs.img下载方式类似,不再介绍。
U-boot启动信息在空EMMC中烧录鸿蒙系统映像后,U-boot启动log如下:
- System startup
-
- Uncompress Ok!
-
- U-Boot 2020.01 (Sep 01 2020 - 09:25:23 +0800)hi3516dv300
-
- DRAM: MMC:
- EMMC/MMC/SD controller initialization.
- scan edges:2 p2f:6 f2p:1
- mix set temp-phase 3
- scan elemnts: startp:5 endp:123
- Tuning SampleClock. mix set phase:[04/07] ele:[2d/16]
- MMC/SD Card:
- MID: 0x15
- Read Block: 512 Bytes
- Write Block: 512 Bytes
- Chip Size: 7456M Bytes (High Capacity)
- Name: "8GTF4"
- Chip Type: MMC
- Version: 0.0
- Speed: 100000000Hz
- Bus Width: 4bit
- himci: 0 (eMMC)
- Loading Environment from MMC... *** Warning - bad CRC, using default environment
-
- In: serial
- Out: serial
- Err: serial
- Net: eth0
- Error: eth0 address not set.
-
- Hit any key to stop autoboot: 0
-
- Error: "distro_bootcmd" not defined
-
- hisilicon #
复制代码
从上面log看出,U-boot直接进入命令行模式(出现hisilicon#提示),无法正常引导内核和文件系统。因此,需要重新配置U-boot环境变量bootargs和bootcmd。
注:出厂的单板已经配置过环境变量bootargs和bootcmd,系统可以正常启动,不会出现上面情况。
原创作者:田曙亮