先备份固件
hitool加tftp上传,备件整个镜像。
uboot分析
查看emmc和内存大小,参考https://whycan.com/t_4145.html
破解linux登录密码
参考https://blog.csdn.net/coderwuqiang/article/details/50354270
分析启动过程和固件内容
跑sample程序
报错,更新内核,由于有双分区,这里先更新B分区,A分区作为保险措施,搞挂了从A分区恢复,自己编译个内核和拷贝对应的ko文件到板子上,用原来的加载脚本进行加载。640M,不合法。
重启问题
没跑应用时,总是会隔一段时间重启一次,然而lsmod查看,却没发现有加载看门狗,而且奇怪的时,在uboot命令上也会重启,说明可能用了外部硬件看门狗,或是外接了MCU进行保活复位之类的。
考虑到这个板子软硬件水平确实一般,还是先排除掉外部看门狗。
先统计重启间隔,发现很有规律,总是5分钟重启一次,不管是uboot下还是正常运行,reboot复位一次,重启时间不累加,会重新开始5分钟计时,从这里可以排除掉外部硬件看门狗。
于是猜测是祼写了看门狗寄存器,查看Hi3516DV300芯片手册,找到看门狗寄存器描述,用挂载的himd.l查看0x12050000和0x12051000这两段寄存器,发现寄存器果然是有值的,这就清楚了,是uboot的应用程序直接操作的看门狗寄存器。怪不得板子上有个himm应用程序,但是却没有himd,估计应用也是直接调的himm来操作寄存器吧。
总结: