打印
[STM8]

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

[复制链接]
2136|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

粉丝