[STM8] STM8S EEPROM块操作的一种跑死原因--防微杜渐

[复制链接]
2069|8
 楼主| hufengweixx 发表于 2017-7-20 15:19 | 显示全部楼层 |阅读模式
本帖最后由 hufengweixx 于 2017-7-20 15:22 编辑

STM8S105S 芯片以及相似系列的单片机均具备EEPROM的读写功能,库函数中还提供了块操作函数FLASH_ProgamBlock(),有些人应该和我一样在新建工程后,调试此部分功能是会发现程序在这一函数中跑死;

查找原因后得解决方法:
1、STM8S_conf.h中将“stm8_flash.h”启用,把注释去掉;
2、修改stm8s.h的注射,让使Flash功能能够从RAM中运行:

#if !defined (RAM_EXECUTION)
    #define RAM_EXECUTION  (1)                             // 打开这里的注释才可启用块操作功能
#endif /* RAM_EXECUTION */

希望对刚用这个功能的兄弟有用!!!!
feelhyq 发表于 2017-7-20 16:01 | 显示全部楼层
希望能提出现情况的具体原因,以及具体解决方法,好让大家了解原理
mmuuss586 发表于 2017-7-20 18:12 | 显示全部楼层
调试的时候可以改成RAM运行,最后使用还是要改回来;
yiyigirl2014 发表于 2017-7-20 20:47 | 显示全部楼层
非常有用,参考学习。
 楼主| hufengweixx 发表于 2017-7-21 10:12 | 显示全部楼层
本帖最后由 hufengweixx 于 2017-7-21 10:47 编辑
mmuuss586 发表于 2017-7-20 18:12
调试的时候可以改成RAM运行,最后使用还是要改回来;

1、有点不知道为什么需要切换?意思是:调试试需要上面的修改为RAM中运行;正常使用时得改回去?请指点下  如果可以的话可以告知下原因,不胜感激。
2、据我所知,在需要有点块函数时,应该需要在RAM中运行,要是去掉了,应该就不可以调用块函数。


Brand2 发表于 2017-7-21 17:18 | 显示全部楼层
在哪设置的RAM运行,flash运行
 楼主| hufengweixx 发表于 2017-7-24 08:54 | 显示全部楼层
Brand2 发表于 2017-7-21 17:18
在哪设置的RAM运行,flash运行

在库函数中的配置里面可修改,详见文中
yfgww 发表于 2017-10-19 11:48 | 显示全部楼层
先收藏起来
stm32jy 发表于 2017-10-19 11:56 | 显示全部楼层
对了要设置成成RAM运行,可以试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

219

帖子

4

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