STM8S EEPROM问题

[复制链接]
9829|16
手机看帖
扫描二维码
随时随地手机跟帖
crazybee|  楼主 | 2011-9-4 12:37 | 显示全部楼层 |阅读模式
香版主:
我有STVP里烧写STM8S105K4.出现如下警告,会是什么原因的?芯片BUG?

4004 我看是EEPROM地址。


Error : < DATA MEMORY verifying failed.
Error : < Operation aborted.
> Programming  PROGRAM MEMORY area...
< PROGRAM MEMORY programming completed.
> Verifying PROGRAM MEMORY area...
< PROGRAM MEMORY successfully verified.
> Programming  DATA MEMORY area...
< DATA MEMORY programming completed.
> Verifying DATA MEMORY area...
Error : Verify failed at address 0x4004  ///////////////这里
Error : < DATA MEMORY verifying failed.
Error : < Operation aborted.
crazybee|  楼主 | 2011-9-4 13:16 | 显示全部楼层
:) 找到原因了。。。。。

使用特权

评论回复
yinyangdianzi| | 2011-9-5 10:36 | 显示全部楼层
marking...

使用特权

评论回复
sujianli| | 2012-8-17 14:07 | 显示全部楼层
我也碰到了这个问题,楼主说说是怎么解决的啊

使用特权

评论回复
206022219002| | 2012-8-17 22:54 | 显示全部楼层
?没有下文啦?

使用特权

评论回复
chenbb8| | 2012-12-10 18:30 | 显示全部楼层
本帖最后由 chenbb8 于 2012-12-10 18:36 编辑
sujianli 发表于 2012-8-17 14:07
我也碰到了这个问题,楼主说说是怎么解决的啊

我上个月也出现了这样的问题,对出现问题的的工程进行分析。
发现,在main函数中直接解除EEPROM的锁定,然后对特定的EEPROM地址进行赋值,只要赋的值不是0,就会报错,
直接插入CLR或者LD指令操作EEPROM地址,发现CLR指令不会报错,LD的会报错。也就是说,清零没问题,赋值会有问题


今天,使用STVP下载的时候再次出现这样的问题,对多处修改进行分析。发现原来是我用的配置初始化函数中ConfigInit(),
有类似这样的语句*EEP_Config = ROM_Config(两个都是结构体,其中前面一个指向EEP,后一个在定义的时候带有const)。

今天早上之前都没有这个错误的,经查出现错误的原因是:以前我是在菜单状态机的第一个状态,在启动后一秒钟调用ConfigInit(),
而今天早上我是将ConfigInit()函数放到了第一个状态的入口动作上,也就是说在菜单状态机被初始化的时候,ConfigInit()函数就会被调用。
同时我是将初始化菜单状态机的函数,直接放在main函数中的,即上电后马上调用ConfigInit()!
将ConfigInit()函数延后执行后,程序下载恢复正常。

我才猜测是这样的:启动后的一段时间内不能对EEPROM进行赋值,要不然就会被报错。
结合在STVP下载的时候,能看到LCD狂闪,推论如下:
STVP在下载的时候,程序是可以断断续续的运行的,而在期间如果执行了赋值EEPROM的动作,那么STVP在随后对EEPROM的
检测的时候,发现并非全是0,就会将不是0的那个地址用下面的语句报错:
Verify failed at address 0xXXXX


希望能帮到以后遇到这个问题的人~~
另外LZ给帖子起名字的水平太烂了,要不是我用百度的site:21ic.com Verify failed at address 这个语法来搜索,还真找不到呢

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
hoverxx + 1 我也遇到这个问题了,初始化时钟后加个延时.
uet_cache| | 2012-12-10 18:50 | 显示全部楼层
EEPROM以前做过,没遇到过什么问题。

使用特权

评论回复
chenbb8| | 2012-12-10 19:24 | 显示全部楼层
uet_cache 发表于 2012-12-10 18:50
EEPROM以前做过,没遇到过什么问题。

其实就算是有Verify failed at address 0xXXXX这个报错也没问题的,程序能正常运行。并且直接使用STVD的仿真功能下载程序是不会有这样的报错的。
不知道应该是说STVP程序本身设置的有问题,还是因为我的ST-LINK是盗版货导致的呢……

使用特权

评论回复
uet_cache| | 2012-12-10 20:50 | 显示全部楼层
能仿真的话,STLINK一般是没问题的。

使用特权

评论回复
figo20042005| | 2012-12-10 21:10 | 显示全部楼层
说说原因了,看看以后怎么注意

使用特权

评论回复
funv| | 2013-9-16 13:59 | 显示全部楼层
我的出错在 0x4001

使用特权

评论回复
xxiao6130| | 2013-9-16 14:09 | 显示全部楼层
我是用C语言编写的,没有遇到过啊

使用特权

评论回复
hoverxx| | 2014-4-2 11:41 | 显示全部楼层
chenbb8 发表于 2012-12-10 18:30
我上个月也出现了这样的问题,对出现问题的的工程进行分析。
发现,在main函数中直接解除EEPROM的锁定,然 ...

我也遇到这个问题了,初始化时钟后加个延时.果然没再报错

使用特权

评论回复
FAQ| | 2014-4-2 13:03 | 显示全部楼层

使用特权

评论回复
3h5h| | 2014-6-9 13:43 | 显示全部楼层
耶!我也加延时解决这个问题了耶.

使用特权

评论回复
hugo0chen| | 2014-6-10 15:50 | 显示全部楼层
我的也是增加了延时解决的问题,

使用特权

评论回复
mini_rootfs| | 2016-4-22 09:22 | 显示全部楼层
感谢楼主发出这个问题,初始化始时钟后,不稳定,所以要延时一下,我用的是stm8L101,所以延时大概20ms才行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:MSN: ihuangwh@foxmail.com

149

主题

800

帖子

5

粉丝