问题定位

现在在下载过程中共分为四个阶段:准备阶段,第一阶段下载,第二阶段下载,以及最后的命令执行阶段,一般正常的流程如下

wait ROM request... please power on or restart the board...
---- bootx 命令开始执行 ----

Found serial: /dev/ttyUSB1 或 Found usbslave: /dev/skel1
---  准备阶段成功  ---

downloading [1/2] : 
[==========][100%]
---  第一阶段下载成功  ---

downloading [2/2] : 
[==========][100%]
data transmit ok.
---  第二阶段下载成功 ---

--- 开始执行命令 ----
Excute cmd : flash eraseall
[==========][100%]
done
---- 命令执行完毕 -----

准备阶段 失败时,会看不到任何打印,根据传输模式的不同来分析准备阶段失败的原因:

如果使用的是 s/su 传输模式,出错原因为打开串口设备失败,详细原因可能是如下中的某个或多个同时出现:
1.串口线未接
2.串口选择错误
3.串口设备坏掉
4.芯片坏掉
如果使用的是 u 传输模式,出错原因为未找到 usb slave 的设备节点,详细原因可能为如下中的某个或多个同时出现:
1.usb 数据线未接通
2.未从 usb slave 启动
3.usb slave 的设备驱动未加载
4.插在差一点的 hub 上时,可能需要设备重新插拔 usb 数据线
5.数据线坏掉
6.芯片坏掉

第一阶段下载 失败时,失败的根本原因是数据传输失败,根据传输模式进行区分

传输模式为 s/su 时,下载失败的原因可能是:
1.串口选择错误(误选别的串口有可能会通过准备阶段)
2.串口坏掉
3.芯片坏掉
传输模式为 u 时,下载失败的原因可能是:
1.数据线异常
2.驱动问题,由于驱动跟内核版本的匹配导致的问题

第二阶段下载 失败时,失败的根本原因是数据传输失败,根据传输模式进行区分

传输模式为 s 时,下载失败的原因可能是:
1.串口设备传输异常,可以重试或更换串口设备
传输模式为 u/su 时,下载失败的原因可能是:
1.usb slave 数据线未连
2.usb slave 驱动未加载
3.数据线异常

命令阶段 失败时,错误原因可能有:

1.命令用法不对
2.不支持的命令
3....

其他的错误打印

1.下载过程中打印出如下信息基本是.boot文件有问题或者串口传输数据有问题,首先确定.boot文件和板级是否对应,串口是否正常。

"BootROM error: wait for "GET",please check stb UART receive !"
"data transmit error, try agin ..."
"error, please try agin."
"Before exec the first command, failed to receive \"boot>\" from stb in 3s, will EXIT_FAILURE"

2.出现以下错误打印时,是 usb slave 的传输有问题了,极有可能是数据传输出错,重新来一次或换根 usb slave 的数据线再重试一次

“stage2 verification failed, buff[0] : ”
”stage1 verification failed“

使用可靠的bootx工具和.boot文件,minicom可以输入输出,但bootx工具不能下载,可能是电源供电问题:

 12V的板子使用了5V电源。
 12V的板子选用了12V但电流很小的电源。

bootx工具自动杀死sudo打开的串口终端可能导致相应的终端显示异常,建议修改串口权限,在使用minicom和bootx工具时无需sudo

方法一(只适用于USB转串口):
如何修改USB权限:在usb串口热拔插时自动修改/dev/ttyUSB0权限:sudo vi /lib/udev/rules.d/50-udev-default.rules ,修改tty设备的MODE字段为MODE="0777"
方法二:
1.串口所属的组为dialout,需要将当前用户添加到dialout组中,假设当前用户为GX
2.将GX用户添加到dialout组中   sudo gpasswd --add GX dialout
3.重启电脑即可

使用 bootx 工具进行 usb 下载时,可能会出现如下问题,这个是 usb 设备的权限问题,要么使用 sudo 进行下载,要么进行如下修改,之后就不用再 sudo

Please press BOOT button and power on or restart the board...
Error opening libusb: LIBUSB_ERROR_ACCESS
修改方法也是修改系统的 /lib/udev/rules.d/50-udev-default.rules 文件,在其中添加如下一条,之后再重启即可
SUBSYSTEMS=="usb", ATTRS{idVendor}=="a700", ATTRS{idProduct}=="0001", GROUP="users", MODE="0666"

results matching ""

    No results matching ""