找回密码
 注册
搜索
查看: 1160|回复: 8

[讨论] 泪奔求助FLASH被意外改写的故障。

[复制链接]
发表于 2008-11-27 11:53:47 | 显示全部楼层 |阅读模式
众所周知,NOR FLASH可以从任何地方读,但是只能从BLOCK的头开始写。现在我们的手机老是遇到这样一个问题:手机在使用的过程当中,代码区老是有概率被意外改写,而且被改写的地方基本相同,但是这个被改写的地址不是BLOCK的首地址,而且每个地方也就一个字节有变化。请教各位GGJJDDMM,什么样的情况会发生这样的故障。[em13][em13][em13]
发表于 2008-11-28 16:13:42 | 显示全部楼层
NOR是可以单字节或单字编程的.
点评回复

使用道具 举报

 楼主| 发表于 2008-11-28 21:33:56 | 显示全部楼层
以下是引用nanjo在2008-11-28 16:13:42的发言:
NOR是可以单字节或单字编程的.


NOR flash在写操作的时候,bit只能从1变为0,所以要写一块FLASH的时候,要把一块FLASH 的BLOCK全部擦除(擦成全1),然后进行写操作。
[em07]
点评回复

使用道具 举报

发表于 2008-11-30 20:09:07 | 显示全部楼层
先确认norflash型号是否板子目前贴的型号.

能修改norflash情形很多,如每当修改nvram参数时候,程序会把修改值写会norflash.

这个还要看你是在什么情形下.

把具体的表现写出来.
点评回复

使用道具 举报

 楼主| 发表于 2008-11-30 21:22:06 | 显示全部楼层
FLASH的型号与手机里的软件版本都是没问题的,关键是代码区[/COLOR]被改写了,而不是NVRAM区。实际上按照正常操作,无论如何都不应该写那块区域的。[em11]
点评回复

使用道具 举报

发表于 2008-12-1 14:01:07 | 显示全部楼层
以下是引用xiaohaoxiao1在2008-11-28 21:33:56的发言:



NOR flash在写操作的时候,bit只能从1变为0,所以要写一块FLASH的时候,要把一块FLASH 的BLOCK全部擦除(擦成全1),然后进行写操作。
[em07]


写单个字节的时候,如果这个字节地址没有被写过,是可以写的.
我猜想是你所用平台封装了flash底层驱动,所以每次都会把一个block擦掉.

另外每次被修改的地方是否固定?
点评回复

使用道具 举报

 楼主| 发表于 2008-12-1 14:04:57 | 显示全部楼层
基本是固定的。
点评回复

使用道具 举报

发表于 2008-12-8 17:13:16 | 显示全部楼层
可以调整一下flash的时序看看
点评回复

使用道具 举报

发表于 2008-12-12 15:18:21 | 显示全部楼层
以下是引用xiaohaoxiao1在2008-12-1 14:04:57的发言:
基本是固定的。


既然是必然的 应该很容易定位啊
在操作这个地址的地方设置断点就行了啊
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-16 02:21 , Processed in 0.047792 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表