[STM8] 关于STM8S系列单片块写,块擦除的解决方案

[复制链接]
2335|2
 楼主| zsyzww 发表于 2015-12-25 17:06 | 显示全部楼层 |阅读模式
RAM中运行程序
1、可使用COMSIC中的函数_fctcpy将FLASH中的代码拷贝到RAM中,并运行。
2、需要在程序中应用int_fctcpy(charname);(无需加头文件,只需声明下函数就可以了) (char _fctcpy(charname);)
3、定义函数代码如下
#pragmasection(CODE_IN_RAM)//将下面定义的未初始化变量定义到段CODE_IN_RAM中
voidDelayUs(uchart)
{
        while(t--);
}
#pragmasection()//返回到正常的section.

“CODE_IN_RAM”为自己的取的一个名字可以是其他名字之后在菜单栏选择Project->Settings弹出下面菜单选项
之后选择Linker选项,在Linker选项下
Category中选择Input此项后


在Ram中参建一个“.CODE_IN_RAM”段。并在Option中填入“-ic”下面是一份完整的代码
#include<iostm8s103.h>//stm8s系列的头文件#defineucharunsignedcharint_fctcpy(charname);

#pragmasection(CODE_IN_RAM)//将下面定义的未初始化变量定义到.namesection中
voidDelayUs(uchart)
{
        while(t--);
}
#pragmasection()//返回到正常的section.@tinyunsignedchartemp_C;

main()
{
        _fctcpy('C');//将pragmasection(CODE_IN_RAM)中的函数赋值到RAM中//参数‘C’是CODE_IN_RAM的第一个字母
        DelayUs(20);
        while(1)
        {
        
        }
}
yiyigirl2014 发表于 2015-12-25 23:20 | 显示全部楼层
#pragmasection(CODE_IN_RAM)//将下面定义的未初始化变量定义到段CODE_IN_RAM中
好抽象啊,没看懂。
 楼主| zsyzww 发表于 2015-12-26 10:09 | 显示全部楼层
yiyigirl2014 发表于 2015-12-25 23:20
#pragmasection(CODE_IN_RAM)//将下面定义的未初始化变量定义到段CODE_IN_RAM中
好抽象啊,没看懂。 ...

还抽象啊~已经解释的够明白了~至于 #pragma section()  这个函数你可以百度一下~就知道了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

17

帖子

0

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