转载自迅为论坛:http://www.topeetboard.com
参考平台:迅为iTOP-4412开发板
问题如下:在自制的底板上,当SD卡插在板子上开机时,会自动进入Updating模式,如果SD卡有sdupdate文件夹并且有系统/uboot/kernel/ramdisk存在,会自动更新系统。如果不存在这些文件,也会强行向eMMC写入数据,破坏原有系统,导致不能启动。
搜索”SYSTEM ENTER”,发现自动更新这个功能由recovery.c实现。
定位到92行,发现判决条件为GPX1DAT寄存器的第二位的值,也就是GPX1_1这个管脚的电平啦。当GPX1_1为低电平时,执行”sdfuse flashall”命令。我开始怀疑是管脚没加上拉引起故障了。
搜索原理图,GPX1_1对应UART_RING网络,继续找迅为底板原理图。
问题找到了,真的有上拉电阻。当home键按下时上电会进入刷机模式,有点像手机。
我的项目不需要这个功能,而且GPX1_1被用作普通GPIO。我选择把这段代码注释掉,问题解决。