w453509596 发表于 2015-6-9 08:18:39

STM8S的EEPROM块擦除问题

我最近在用STM8S103k3做东西,用到了里面的EEPROM。我想字节编程,字编程,我都用着好好的,但是最近我需要用到块编程。发现一用块编程,程序就死在块编程的函数上面,我搞了好久都没有解决问题。官方提供的库函数我也试了,也不行。论坛里面有没有用过块编程的朋友。指导就弟一下

ts2000 发表于 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

大神,问题解决了没呀?给大家传授下经验呗:loveliness:

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

正常的函数voideepromWriteBlock();
想在RAM中运行,定义成这样__ramfuncvoideepromWriteBlock();

负西弱 发表于 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.
页: [1] 2
查看完整版本: STM8S的EEPROM块擦除问题