[STM8] st-link 仿真stm8 存储数据丢失

[复制链接]
2842|12
 楼主| king_5116 发表于 2012-9-25 11:22 | 显示全部楼层 |阅读模式
st-link 仿真stm8 103F3 里面的EEPRom 存储的数据丢失,不知道哪里设置的有问题。
IJK 发表于 2012-9-25 13:34 | 显示全部楼层
问题说得不清楚,在什么情况下 stm8f103F3 里面的EEPRom 存储的数据会丢失 ?
figo20042005 发表于 2012-9-25 13:37 | 显示全部楼层
你有进中断写EEPROM?然后没写完所有数据就把中断关了,所以会丢失吧
 楼主| king_5116 发表于 2012-9-25 14:21 | 显示全部楼层
是这样,把程序下到单片机里面,单片机运行正常,里面存的参数断电也不丢失。用st-link 重新写程序也不丢失,但用st-link  仿真运行后,再取消仿真,用485通讯,读单片机里面的参数,就都成0了,
 楼主| king_5116 发表于 2012-9-25 14:23 | 显示全部楼层
感觉像是仿真时,把里面的eeprom区给擦除了,
IJK 发表于 2012-9-25 15:40 | 显示全部楼层
是这样,把程序下到单片机里面,单片机运行正常,里面存的参数断电也不丢失。用st-link 重新写程序也不丢失,但用st-link  仿真运行后,再取消仿真,用485通讯,读单片机里面的参数,就都成0了, ...
king_5116 发表于 2012-9-25 14:21


需要明确:参数写到stm8s103F3的哪个区域?
代码区[0x8000开始]还是数据区[0x4000开始] ?

参数写到代码区[0x8000开始],发生意外时,感觉存在丢失的可能性大点。

另外,可以直接用ST提供的STVP软件来读stm8里面的代码/参数, 包括代码区[0x8000开始]和数据区[0x4000开始]
 楼主| king_5116 发表于 2012-9-25 17:02 | 显示全部楼层
参数写到0x4010开始的,在数据区呀
 楼主| king_5116 发表于 2012-9-25 17:04 | 显示全部楼层
调的 void E2_WriteMem(u8 addr, u8 val)写的程序
 楼主| king_5116 发表于 2012-9-25 17:05 | 显示全部楼层
调的 void E2_WriteMem(u8 addr, u8 val)写的参数,读用的u8 E2_ReadMem(u8 addr),不知道跟库函数有没有关系,我感觉没太多关系,
fzy_666 发表于 2012-9-26 09:18 | 显示全部楼层
我好像没有出现过这样的问题,不过我是自己写的函数,没有用库函数
 楼主| king_5116 发表于 2012-9-27 08:39 | 显示全部楼层
好像看的人比较多,回答的比较少呀,我感觉跟仿真器有关呀,你用的是st-link仿真器吗?
IJK 发表于 2012-9-27 09:47 | 显示全部楼层
好像看的人比较多,回答的比较少呀,我感觉跟仿真器有关呀,你用的是st-link仿真器吗?
king_5116 发表于 2012-9-27 08:39


跟仿真器应该没关系,因为STM8通常只能用st-link仿真器调试。
 楼主| king_5116 发表于 2012-9-27 10:47 | 显示全部楼层
不行自己写一下读写函数看看吧,唉,老长时间了,这问题,一直没解决,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

0

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