你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8S的EEPROM块擦除问题

[复制链接]
w453509596 提问时间:2015-6-9 08:18 /
我最近在用STM8S103k3做东西,用到了里面的EEPROM。我想字节编程,字编程,我都用着好好的,但是最近我需要用到块编程。发现一用块编程,程序就死在块编程的函数上面,我搞了好久都没有解决问题。官方提供的库函数我也试了,也不行。论坛里面有没有用过块编程的朋友。指导就弟一下
收藏 1 评论15 发布时间:2015-6-9 08:18

举报

15个回答
小小超 回答时间:2015-6-9 10:19:51
直接用字编程就行了。干嘛还用块?
w453509596 回答时间:2015-6-11 12:20:29
ts2000 发表于 2015-6-9 10:19
直接用字编程就行了。干嘛还用块?

字编程慢啊,它的字节编程、字编程、块编程的时间都是一样的。反正这芯片RAM也够了,还不如直接块编程了
为什么是EEFOCUS小白 回答时间:2015-6-15 16:47:18
不懂帮顶
alvin_ 回答时间:2015-6-16 12:03:49
同问同问……大神
alvin_ 回答时间:2015-7-28 08:46:15
大神,问题解决了没呀?给大家传授下经验呗
w453509596 回答时间:2015-8-22 13:29:13
alvin_ 发表于 2015-7-28 08:46
大神,问题解决了没呀?给大家传授下经验呗

好了,块编程需要在RAM中运行,IAR编译器默认把在RAM中编程的那一项关闭了。在函数前面加上关键字就可以了
alvin_ 回答时间:2015-8-22 13:47:53
w453509596 发表于 2015-8-22 13:29
好了,块编程需要在RAM中运行,IAR编译器默认把在RAM中编程的那一项关闭了。在函数前面加上关键字就可以 ...

什么关键字?求指点~
w453509596 回答时间:2015-8-28 12:11:33
加上关键字 __ramfunc

正常的函数  void  eepromWriteBlock();
想在RAM中运行,定义成这样  __ramfunc  void  eepromWriteBlock();
负西弱 回答时间:2015-9-2 23:19:55
之前用库函数也是发现使用块编程程序就死在那里了,后来发现原来库文件已经说明要怎么用了,没注意到

- For IAR Compiler:
    1- Use the __ramfunc keyword in the function declaration to specify that it
    can be executed from RAM.
    This is done within the stm8s_flash.c file, and it's conditioned by
    RAM_EXECUTION definition.
    2- Uncomment the "#define RAM_EXECUTION  (1)" line in the stm8s.h file, or
   define it in IAR compiler preprocessor to enable the access for the
   __ramfunc functions.
kdd 回答时间:2015-9-4 16:04:43
anny 回答时间:2015-9-5 14:01:36
w453509596 发表于 2015-8-22 13:29
好了,块编程需要在RAM中运行,IAR编译器默认把在RAM中编程的那一项关闭了。在函数前面加上关键字就可以 ...

又学到东西了
anny 回答时间:2015-9-5 14:02:33
w453509596 发表于 2015-8-28 12:11
加上关键字 __ramfunc

正常的函数  void  eepromWriteBlock();

楼主写编日志,好让后面的人学习到
林月天 回答时间:2015-9-9 09:54:01
手册上有讲说要在内存上 才能用块写
32F 回答时间:2015-12-4 10:03:27
学习了
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版