Hi3516开发板USB口烧录方法总结 原创 精华

liangkz_梁开祝
发布于 2021-6-17 13:31
浏览
5收藏

Hi3516开发板USB口烧录方法总结

liangkz 2021.06.17

前文《Hi3516开发板烧录总结》提到:

3. USB烧录还没成功

官网上说只需要连接USB线(包含了供电)和串口线即可,按照官方文档操作,中间需要给平台“重启开发板(下电再上电)”,这总不能拔掉USB线再插上吧,开发板串口线座子边上倒是有一个SW3按键(原理图上是UPDATE_MODE),但目前实际按下去是没有反应的,估计是还需要先做一些配置。

这几天烧录标准系统,速度实在是太慢了,完整烧录一次需要8分钟以上~~所以想尝试一下USB烧录。

向华为官方咨询了一下,上面说到的需要给平台“重启开发板(下电再上电)”的操作,原来就是拔插一下USB数据线,简单粗暴有效我居然一开始就想当然地把这个操作否定掉了,实在是不应该!

 

我尝试了一下各种烧录方法,结果如下表:

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

下面就对上表红框内的两种烧录方法做个对比:

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

首先需要在Windows主机安装好USB烧录的驱动程序“HiUSBBurnDriver”,以及USB转串口的驱动程序。(请按官方指导文档去下载和安装)

 

USB口烧录,只需要连接两根线:USB线数据线(包含了供电)连接开发板背后的USB口和主机USB口;USB转串口线连接开发板串口到主机另一个USB口。

USB转串口线,默认是直接接到windows主机上的,需要切换连接到Linux虚拟机里去,如下图,选择“连接(与主机断开连接)”,这时候windows的串口设备就会切换到Linux虚拟机里的USB0。

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

 

Linux虚拟机里,在DevEco 打开 Hi3516工程的配置页面,点击“hi3516dv300”标签,找到“Upload Options”,“upload_port”设置为“/dev/tty/USB0”,“upload_protocol”设置为“hiburn-usb”,“upload_partitions”默认的四个可烧录的分区都列出来了,保持默认配置(跟华为官方确认了,USB烧录方法必须要擦除fastboot,然后一次性烧录4个分区),所以这里的“upload_partitions”不要改动。“Partition Configuration”里面的四个烧录分区的相关信息,也保持默认配置即可,点击“Save”保存配置。

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

在DevEco的“Project Tasks”界面展开“hi3516dv300”,再展开“hi3516dv300_fastboot”,点击“Erase”,开始擦除fastboot,这一步是必须要做的

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

右下角的终端界面会提示:

SerialPort has been connented, Please power off, then power on the device.

If it doesn't work, please try to repower on.

这时候就需要手动拔插一次USB数据线(注意不是USB转串口线),这就是“power off”再“power on”开发板了。

 

开发板重新上电,擦除fastboot分区成功,会有下图的log,同时会有一个新的“Huawei USB Serial”设备尝试连接进来,选择将其连接进虚拟机里。

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

确定后,再点击“Project Tasks”界面上的“Upload”按键,这时候平台会自动重启,

Open USB Success

################################################# ---- 10%

########## .....

################################################# ---- 100%

Boot download completed!

Open USB Success

start download process.

Boot started successfully!

接下来是自动执行一组“Send command:”开始烧录,20s左右就完成烧录了,速度可比网口烧录快多了!

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

烧录完成后,平台自动重启,会停留在

Hit any key to stop autoboot:  0 

## Error: "distro_bootcmd" not defined

hisilicon # 

这一步,这是因为烧录了fastboot分区的缘故。

 

这里,需要你重新写入引导内核启动的指令和参数,可以直接点击“hi3516dv300”中的“Configure bootloader(Boot OS)”按钮,根据终端的提示,重新拔插一下USB数据线,就可以自动执行命令配置fastboot的指令和参数,并且自动重启了。

Hi3516开发板USB口烧录方法总结-鸿蒙开发者社区

也可以在你清楚地知道自己在做什么的前提下,在终端手动写入下面四条指令完成同样的工作:

setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";

setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";

saveenv

reset

前两条指令的参数一定要与上面“Partition Configuration”配置的参数匹配,否则会出现无法正确引导内核启动的异常。

 

系统自动重启,就大功告成了。

 

 

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2021-6-17 14:21:45修改
9
收藏 5
回复
举报
13条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

方法简单粗暴,但确实有效.

回复
2021-6-17 13:59:49
jerckNing
jerckNing

小型系统烧录串口烧录成功,但是开机不亮屏,进入Monitor 无法进入命令行模式 输入参数

回复
2021-7-8 14:11:44
liangkz_梁开祝
liangkz_梁开祝 回复了 jerckNing
小型系统烧录串口烧录成功,但是开机不亮屏,进入Monitor 无法进入命令行模式 输入参数

小型系统你用串口烧录,烧录时间会非常长,确定烧录成功了吗?

可以把平台上电后打印的log发出来看一下,看看uboot启动是否正常。

 

推荐上面的USB烧录方法,极速烧录。

也可以尝试一下网口烧录。

回复
2021-7-8 14:33:57
jerckNing
jerckNing 回复了 liangkz_梁开祝
小型系统你用串口烧录,烧录时间会非常长,确定烧录成功了吗? 可以把平台上电后打印的log发出来看一下,看看uboot启动是否正常。 推荐上面的USB烧录方法,极速烧录。 也可以尝试一下网口烧录。

我看你总结windows上usb没有烧录成功,上午烧录了快两个小时才烧录好,我用ide看不到启动日志,用Hitool可以看到日志吗?

我按官网的操作,一次性烧录了四个文件fastboot、kernel、rootfs和userfs,

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/%E8%BF%90%E8%A1%8CHello-OHOS.md 官网说还要进行下面的操作,但是我进入不了命令行模式,所以现在屏幕没有点亮

(单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。

  须知: U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisilicon",通过reset命令可再次启动系统。

回复
2021-7-8 14:46:15
haloki
haloki

请问一下,我代码编译成功,在进行文件烧录。目前虚拟机已经识别了串口USB0,我未作修改,按默认配置保存,点击upload后出现了报错,不知道因为什么原因,求助大佬们。

回复
2021-12-6 15:50:07
liangkz_梁开祝
liangkz_梁开祝 回复了 haloki
请问一下,我代码编译成功,在进行文件烧录。目前虚拟机已经识别了串口USB0,我未作修改,按默认配置保存,点击upload后出现了报错,不知道因为什么原因,求助大佬们。

这个情况我没遇到过,不清楚原因。

建议直接用HiTool工具在Windows下通过网络或者USB方式烧录,会快不少。

1
回复
2021-12-6 18:30:14
jerckNing
jerckNing 回复了 liangkz_梁开祝
这个情况我没遇到过,不清楚原因。 建议直接用HiTool工具在Windows下通过网络或者USB方式烧录,会快不少。

一直用不了usb烧录不知道为什么?驱动也装了

回复
2021-12-6 18:47:06
liangkz_梁开祝
liangkz_梁开祝 回复了 jerckNing
一直用不了usb烧录不知道为什么?驱动也装了

本地PC配置的串口选正确,再按上面配置好烧录信息,确认无误之后,点击“烧写”,出现提示框后,拔掉USB数据线(先拔掉USB数据线再点击“烧写”也可以),按住开发板上串口数据线座子旁边的reset按键,再插入USB数据线,最后松开reset按键就会开始烧录流程了。

回复
2021-12-6 20:48:41
jerckNing
jerckNing 回复了 liangkz_梁开祝
本地PC配置的串口选正确,再按上面配置好烧录信息,确认无误之后,点击“烧写”,出现提示框后,拔掉USB数据线(先拔掉USB数据线再点击“烧写”也可以),按住开发板上串口数据线座子旁边的reset按键,再插入USB数据线,最后松开reset按键,就会开始烧录流程了。

明天试一下,以前没有按个reset键,以前vscode和hitool usb都没有成功,vscode网络和串口可以,hitool目前就串口可以,usb和网络都报错

回复
2021-12-6 22:39:58
haloki
haloki 回复了 liangkz_梁开祝
这个情况我没遇到过,不清楚原因。 建议直接用HiTool工具在Windows下通过网络或者USB方式烧录,会快不少。

好的,谢谢,我找了一下问题,现在发现我的电脑里没有fastboot.bin所在的目录,这个可能是导致烧写不成功的原因,我先用hitool烧写方法先做,这个问题后面我再去探索一下。

回复
2021-12-7 11:15:23
liangkz_梁开祝
liangkz_梁开祝 回复了 haloki
好的,谢谢,我找了一下问题,现在发现我的电脑里没有fastboot.bin所在的目录,这个可能是导致烧写不成功的原因,我先用hitool烧写方法先做,这个问题后面我再去探索一下。

小型系统(liteos_a/linux)的fastboot在:

//device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/u-boot-hi3516dv300.bin

你在IDE的烧录分区表中配置一下应该就可以了。

回复
2021-12-7 11:35:06
haloki
haloki 回复了 liangkz_梁开祝
小型系统你用串口烧录,烧录时间会非常长,确定烧录成功了吗? 可以把平台上电后打印的log发出来看一下,看看uboot启动是否正常。 推荐上面的USB烧录方法,极速烧录。 也可以尝试一下网口烧录。

我现在使用hitool网口烧写的方式成功烧写,按照官方文档配置保存,但是无法重启,log如下:

hisilicon # reset
resetting ...
System startup

Uncompress Ok!

U-Boot 2020.01 (Mar 10 2021 - 15:44:50 +0000)hi3516dv300

DRAM:  MMC:   
EMMC/MMC/SD controller initialization.
scan edges:2 p2f:6 f2p:1
mix set temp-phase 3
scan elemnts: startp:3 endp:119
Tuning SampleClock. mix set phase:[03/07] ele:[13d/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

EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
mmc_init failed! err:-95
No SD device found !
himci: 0 (eMMC), himci: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Unable to use mmc for fat
Net:   eth0
Error: eth0 address not set.

Hit any key to stop autoboot:  0 

MMC read: dev # 0, block # 2048, count 18432 ... 18432 blocks read: OK
45.24 MB/s
Wrong Image Format for bootm command
ERROR: can't get kernel image!

 

采用网口+emmc方式烧写,目前个人分析可能是因为配置文件xml不对,请问xml文件的来源在哪里呢?我一个烧写成功的朋友说在编译生成的目录out下有xml,但是我没有找到,我现在是在linux虚拟机下用Deveco编译的,请问这个问题如何解决呢?

已于2021-12-8 20:12:12修改
回复
2021-12-8 20:11:27
liangkz_梁开祝
liangkz_梁开祝

Hit any key to stop autoboot:  2

数秒的时候,按任意键中断引导,参考《3516开发板window上HiTool工具USB烧录三种固件总结》这篇文章的步骤,重新写入uBoot的启动参数设置4条命令,再试试看。

 

回复
2021-12-8 21:03:59
回复
    相关推荐