别人都下班了,我还在调试板子,头晕..很简单的flash擦除都

[复制链接]
 楼主| 明空 发表于 2007-8-27 20:19 | 显示全部楼层 |阅读模式
看看6205擦除39vf040的程序,有什么问题<br />#define&nbsp;BOOTFLASH&nbsp;0x1400000<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay();<br /><br />居然擦除不掉,怎么回事?
acecao 发表于 2007-8-27 21:38 | 显示全部楼层

是时序没有满足要求吧<br />*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x10;<br />语句之间应该在加一句读端口的语句。<br />
 楼主| 明空 发表于 2007-8-28 07:47 | 显示全部楼层

读?

最后是要有一个读,那个不是判断擦除结束的标志么,我加一个长的延时不就可以了
acecao 发表于 2007-8-28 08:21 | 显示全部楼层

.

&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x10;<br />&nbsp;&nbsp;&nbsp;&nbsp;a=*(Uint8&nbsp;*)((BOOTFLASH+1)&nbsp;+&nbsp;0x5555);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay();<br />a为任意定义的变量,只是用来产生一个读端口的逻辑。<br />你试一试这样行不行。<br />
 楼主| 明空 发表于 2007-8-28 08:58 | 显示全部楼层

还是不可以

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x2AAA)&nbsp;=&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;*(Uint8&nbsp;*)((BOOTFLASH)&nbsp;+&nbsp;0x5555)&nbsp;=&nbsp;0x10;<br /><br />最后一组应该是0x5555,这样也不可以
alleluia 发表于 2007-12-16 14:25 | 显示全部楼层

为什么要产生一个读端口的逻辑

To:acecao<br /><br />为什么要产生一个读端口的逻辑呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

357

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

34

主题

357

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部