展讯智能机sp6825平台射频校准后无法“save to flash”问题解决

来源:互联网 发布:蚊子为什么要吸血知乎 编辑:程序博客网 时间:2024/06/05 16:20

下述文字写于2013年

 

 

硬件反映在裸板上校准射频后一直都无法“SAVE TO FLASH”,但拿我手上调试用的板子却又是OK的。提问题给展讯,展讯认为可能是TP兼容引起的问题,系统在UBOOT后进入KERNEL系统时的TP花费时间太长,从而造成校准软件在save to flash时失败。  

 

    但经调试验证,在android系统中把所有的TP设备均不加载,问题依然存在。

 

    把硬件的裸板拿来查看,发现开机后系统停留在电流约233ma处后不再有变化,系统且无法休眠。现象上看应该是系统开机后挂在那了,从而造成pc校准软件无法save to flash.把屏接上裸板,赫然发现此时系统可以正常开机了。

 

    此问题应该与屏有着必然的联系。

 

    怀疑可能是FMARK信号未到从而造成系统一直在while等待。测量该脚为低电平,短接将其拉高至1.8v,仍然无法正常开机。

 

     考虑到此项目为了兼容LCD,实行了读ID的操作。在uboot上修改直接返回正确的屏id,系统开机后仍然挂掉,电流停留在140-160ma不再变化。再做测试,在该软件版本上短接FMARK1.8v,系统可以正常开机,可以正常睡眠了。

 

 

 

经过一系列调试验证,得出个人下述结论:

 

1.   展讯6825/8825 android 4.03平台,使用mcu模式LCD时,如果由于要做兼容而使用了读LCD id的方式而又读取不到正确的LCD ID时,系统在uboot内会挂掉(死循环),开机后电流停留在约233ma.

 

2.   如果不读ID而是直接返回正确的ID,系统从uboot进入kernel,软件代码中如果开启了FMARK模式,则此时会由于等不到高电平的FMARK同步信号,系统挂掉,电流一直在约140-160ma不变。

 

3.   ubootID返回一个错误的ID,强制让其进入kernel。此时该id不是系统默认存在的,系统会在kernel中再执行一次读ID的操作。由于仍然读不到正确的ID,系统也会挂掉,电流保持在180-190ma.

 

 

 

找到原因所在后,进行如下处理:

1.当系统在uboot层读取不到所有兼容屏幕正确的ID时,则返回一个错误的固定错误ID(例如0xa5),通知kernel层;

2.kernel层若接收到Uboot层通知---未读取到任何正确有效屏幕的ID,则系统关闭屏幕FMARK模式,使得系统可以继续正常开机,以便支持校准功能。

 

问题顺利解决。

0 0