flash固件 升级失败?
发布网友
发布时间:2022-05-02 04:01
我来回答
共1个回答
热心网友
时间:2022-06-28 00:27
现在网络上一直在流传短路Flash修复刷错固件的MPN,这种方法也被很多人看成是修复MPN的杀手锏,到底这种方法是否真的有效呢?
我现在接触过的MPN也不多也就是ATJ和RK两种方案,所以,以下就此二种方案进行讨论:
先看ATJ。
我看过许多ATJ由于固件刷错或其他原因引起的差电脑不识别的问题。在ATJ方案中,MPN向电脑提供了2种通讯协议:
一个是Store Device 也就是一般插上电脑识别出来的U盘设备。
另一个是AdfuUd Device 也就是当我们短路Flash是电脑识别出来的东西。
重点就在这个 AdfuUd Device 从某个角度上说,这个协议就是炬力公司留下的应急接口,当固件刷错时,可以使用这种设备恢复固件!
那当什么时候才会另ATJ20xx进入 AdfuUd状态呢? 这个问题很简单,只要挂在ATJ20XX上的Flash访问失败是,就会进入这种状态。我曾把一台2075方案Mp3的弄下来(固件没问题),插上电脑识别出来的就是 AdfuUd Device。
我们都知道,MCU对Flash的访问就是MCU和Flash的交互,那么,当MCU对Flash进行初始化(访问)时,Flash就会给MCU返回一段数据,包括初始化成功消息、Flash容量大小等信息。那么当Flash返回了错误的信息,MCU就认为访问Flash失败。
那么,当ATJ20XX认为Flash访问错误时,自然就不会以Store Device(U盘)的方式与电脑交互,所以就会选择AdfuUd Device。
以此看来,我们短路Flash的数据脚,就是要破坏Flash返回给MCU的信息,欺骗MCU Flash访问失败,这样就可以强使ATJ20XX进入AdfuUd Device模式。可见,用短路Flash的方法解决ATJ20XX软件问题是可行的!
好,再来看RK方案。
RK在设计时,就把固件升级和一般的访问分开了。而且不允许任何程序通过USB连接访问固件Flash
一般RK机器插上电脑会识别出一个Store Device(U盘设备),有可能还有一个SD/MMC Reader/Writer(读卡器)
当需要刷固件时,脱机状态下 按住MODE(有些是Vol+或者其他键)联机,电脑会识别出 Rockusb Device(本讨论仅限电脑能识别出设备的情况)
升级程序就通过这种设备把要升级的程序刷进去。
依此看来,短路Flash的方法对于RK系列是行不通的。
OK,现在再说说当RK系列刷错固件后再刷时出现的“.........Flash坏块过多....”和正常联机后访问Flash出现“请将磁盘插入驱动器.....”的问题。
其实这两个侍舛加幸桓龉餐�脑赐罚�饣挂�覴K芯片的Flash说起。
RK芯片不止支持一块Flash,所以,才会有支持读卡器等设备的机器出现,不过很可惜,为了提高扩展性,RK芯片的Flash访问通道是由固件来决定的,即:
假设某块RK芯片有4个存储设备通道S0~S3(除固件Flash)。
现在在此RK芯片上挂1个Flash和1个SD:
S0 --- Main Flash (Flash)
S1 --- NULL (空)
S2 --- SD Mounter (SD)
S3 --- NULL (空)
这个是硬件的配置,那么在软件的配置上,固件里指定的存储设备挂载点和硬件相符合,没什么好怀疑的,这是正常的固件,一切正常,也不会出现上面提出的两种问题。则,如果刷入了错误的固件,其中指定存储设备挂载点如下:
S0 --- NULL
S1 --- NULL
S2 --- Main Flash
S3 --- SD Mounter
这样硬件访问自然会出错,因为有可在存储设备通道中挂有Flash也有可能挂有读卡器等,而读卡器中很有可能没有插卡,所以,RK不会因为存储设备访问出错而做什么特别的事,所以插上电脑我们仍然可以看到那几个驱动器......
这个也就是为什么刷错固件后,正常联机后访问Flash会出现“请将磁盘插入驱动器.....”的原因。
至于第一个问题——刷错固件后再刷时出现的“.........Flash坏块过多....”
刚开始我们说过,RK不允许程序通过USB直接访问固件Flash,所以,升级程序要先通过Rockusb Device把要写入的固件写到挂在RK上的存储器的剩余空间里,然后通知RK,RK效验固件程序后,再把固件刷到固件Flash中。
(我个人认为这种设计真的很棒!)
那么根据上面所说的存储设备挂载错误,自然程序无法访问已挂载的存储器,就说Flash坏块过多啦~~~
至于这个问题,我暂时还没有找到比较好的解决方法。
请大家一起来研究,找到一个完善的解决方法。
郑重声明:以上内容均为个人理解,仅供参考。