# 使用HiTool烧录代码
针对Hi3516DV300开发板,除了DevEco Device Tool外,还可以使用HiTool进行烧录。
## 前提条件
- 开发板相关源码已编译完成,已形成烧录文件。
- 客户端(操作平台,例如Windows系统)已下载并安装[HiTool工具](http://www.hihope.org/download/download.aspx)。
- 客户端(操作平台,例如Windows系统)已安装USB驱动,可参考[Hi3516DV300/Hi3518EV300开发板USB驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)。
- 客户端已安装串口终端工具(例如IPOP)。
- 使用USB线缆、串口线缆连接客户端与开发板。
## 操作步骤
1. 准备烧录相关文件。
1. 在客户端新建用于保存烧录文件的文件夹,例如D:\liteos或D:\linux。
2. 将烧录所需烧写配置文件和启动引导文件保存到新建的文件夹中。
- 其小型系统(LiteOS)烧写配置文件为L1_3516_liteos.xml,其启动引导文件为“[u-boot-hi3516dv300.bin](https://gitee.com/openharmony/device_board_hisilicon/tree/master/hispark_taurus/uboot/out/boot)”。
其中L1_3516_liteos.xml文件需要开发者自行准备,模板如下:
```
```
- 其小型系统(Linux)烧写配置文件为L1_3516_linux.xml,其启动引导文件为“[u-boot-hi3516dv300.bin](https://gitee.com/openharmony/device_board_hisilicon/tree/master/hispark_taurus/uboot/out/boot)”。
其中L1_3516_linux.xml文件需要开发者自行准备,模板如下:
```
```
3. 将编译完成的源码包下载至客户端并解压,将烧录相关文件拷贝至步骤1中新建的文件夹。
针对Hi3516开发板(小型系统使用LiteOS内核或Linux内核根据业务实际需要选择):
- 其小型系统(LiteOS)烧写所需文件为:OHOS_Image.bin、rootfs_vfat.img、userfs_vfat.img
- 其小型系统(Linux)烧写所需文件为:uImage_hi3516dv300_smp、rootfs_ext4.img、userfs_ext4.img、userdata_ext4.img
2. 使用HiTool烧录。
1. 打开HiTool。
2. 设置HiTool参数。
传输方式选择USB口,烧写方式选择烧写eMMC(单板的存储介质为eMMC)。
3. 单击浏览在步骤1创建的文件夹中选择烧写配置文件(例如L1_3516_linux.xml)。
![image](figures/zh-cn_image_0000001249937195.png)
4. 单击烧写后,按住开发板上串口旁的按钮(Update键),并拔插USB线(上下电)。
烧录开始后,可以在HiTool工具下方的控制台区域观察到烧录过程中的打印信息。
烧录完成后,HiTool弹出提示框显示烧写成功。
5. 单击确定。
3. 导入启动参数。
1. 使用终端工具打开串口。
2. 拔插开发板电源使其重启,3s内在串口终端输入回车。
终端界面中出现hisilicon \#表示已连接开发板串口。
3. 在串口终端拷贝如下启动参数后,按回车完成配置。
- 其小型系统(LiteOS)对应的启动参数为:
```
setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800;go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=50M rw";
saveenv
reset
```
- 其小型系统(Linux)对应的启动参数为:
```
setenv bootargs "mem=128M console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),9M(kernel),50M(rootfs),50M(userfs),1024M(userdata)"
setenv bootcmd "mmc read 0x0 0x82000000 0x800 0x4800; mw 0x10FF0044 0x0600;mw 0x120D2010 0x00000000;mw 0x120D2400 0x000000ff;mw 0x120D2010 0x00000000; bootm 0x82000000"
saveenv;
reset
```