发新帖我要提问
12
返回列表
打印
[STM8]

STM8S的EEPROM块操作成功了吗,神一般的COSMIC。

[复制链接]
楼主: gtw
手机看帖
扫描二维码
随时随地手机跟帖
21
yzhou_2011 发表于 2014-6-7 16:56
若按字节写的话,写EEPROM每个字节耗时约6ms。块操作的方式将一个基本页(64字节)写入的理论时间也是6ms。 ...

还请各位多指点!!谢谢!

使用特权

评论回复
22
CAI168| | 2014-6-18 21:29 | 只看该作者

使用特权

评论回复
23
zsyzww| | 2015-12-25 17:01 | 只看该作者
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)
        {
        
        }
}

使用特权

评论回复
24
ttier| | 2017-4-27 15:27 | 只看该作者

使用特权

评论回复
25
HAO123456025F| | 2017-8-8 09:18 | 只看该作者
楼主解决问题了吗?

使用特权

评论回复
26
gtw|  楼主 | 2018-10-17 18:27 | 只看该作者
关键点在这里
    // Write '0x00 00 00 00' to any word inside the block to be erased using a "LOAD" instruction.!!!!
    // so, must to prevent the compiler generator the clr instruction!
    //count = 0;
    //*(pDst + 0) = *(&count);
    //*(pDst + 1) = *(&count);
    //*(pDst + 2) = *(&count);
    //*(pDst + 3) = *(&count);
    *((uint32 *)pDst) = 0x00000000;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则