目录
- 为什么写这个文档
- 海思SOC刷机原理
- 1.串口缓冲区关闭
- 2.IP地址自动更改导致无法烧录
- 3.烧录完成后找不到根文件系统
- 4.由于电源设计不合理导致无法烧录
为什么写这个文档
海思SOC刷机时,偶然会遇到奇奇怪怪的问题,会刷机不上.现在总结一下.
海思SOC刷机原理
如果没有任何程序,SOC内部ROM会在串口0一直打印空格,这种状态下刷机没有任何问题.
如果启动存储介质中有uboot,kernel,busybox等镜像,SOC启动后,ROM会有很短的时间检查是否有烧录命令,如果处理不当,就无法升级.
在升级过程中会先启动uboot程序,在uboot程序运行期间进行烧录,这也会引起烧录异常.
1.串口缓冲区关闭
有些电脑因为串口缓冲导致rom等待烧录命令超时.
2.IP地址自动更改导致无法烧录
等待烧录过程中,设备已经启动把IP地址修改成和PC机不在同一网段,导致无法烧录.
开机一直按任意键,进入uboot命令行状态,设置IP地址.烧录软件更新地址和设备地址在同一网段并连接.
setenv ipaddr 192.168.1.22
save
然后重新上电烧写.
3.烧录完成后找不到根文件系统
bootargs不对,进入uboot界面查看当前分区情况,比对和实际烧写镜像分区是否一致.
printenv
如果不一致,可以进行如下操作
- 重新设置bootargs
- 删除bootargs分区, 使用uboot内部的bootargs参数
- 以上不会操作,可以直接擦除全器件
4.由于电源设计不合理导致无法烧录
由于电源设计不合理,导致断电重启后,电源没有放电完全,bootROM程序运行不正常,导致上位机烧录程序和SOC通信不正常提示错误.无法升级.
解决办法:断电等待一段时间,重新上电升级,注意不要等待太久,太久会发生超时,太短可能放电不完全.这是硬件设计问题,操作上注意可以避开问题,最终还是硬件优化设计为好.