打印

调用这个函数是只擦除一个字节?

[复制链接]
418|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiajs|  楼主 | 2017-2-25 22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Seg_Erase(void){
     _DINT();
     WDTCTL = WDTPW + WDTHOLD;
     char *flase_erase;
     flase_erase = (char *)0x8000;                  //指向要檫写的段地址
     while(FCTL3&BUSY);
     FCTL3 = FWKEY;                                 //清除LOCK
     FCTL1 = FWKEY +ERASE;                         //段檫除
     *flase_erase = 0;                              //空写将0写为1
     FCTL3 = FWKEY + LOCK;                          //LOCK置1
     _EINT();
}
请问在进行FLASH段擦除的时候,调用这个函数是只擦除一个字节?

相关帖子

沙发
wuhany| | 2017-2-25 22:02 | 只看该作者
什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
板凳
jiajs|  楼主 | 2017-2-25 22:04 | 只看该作者
要进行整段擦除的时候是用for语句调这个函数128次。
还是调用一次这个函数把128个字节一起擦除。

使用特权

评论回复
地板
zhanghqi| | 2017-2-25 22:04 | 只看该作者
falsh擦除一般是一块擦除 不会一个字节一个字节的擦除

使用特权

评论回复
5
zhenykun| | 2017-2-25 22:05 | 只看该作者
LZ知道怎么把一个在FLASH的程序拷贝到RAM中在RAM中运行此程序?

使用特权

评论回复
6
wuhany| | 2017-2-25 22:06 | 只看该作者
flash中擦除的最小单位就是段,不可能一个字节一个字节的擦出

使用特权

评论回复
7
huangchui| | 2017-2-25 22:07 | 只看该作者
这个是整个sector擦除的吧,当然不会只擦写一个字节的了。。

使用特权

评论回复
8
jiajs|  楼主 | 2017-2-25 22:08 | 只看该作者
嗯,那我按大家的说法挨个排查一下,先结贴啦,谢谢哈

使用特权

评论回复
9
zhenykun| | 2017-2-25 22:08 | 只看该作者
可以,因为可以接受 5V电源, 所以才弃 stm32,就 stm8s.
看看手册就知道。

使用特权

评论回复
10
Garen2| | 2017-2-26 16:18 | 只看该作者
flash中擦除的最小单位就是段

使用特权

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

本版积分规则

940

主题

11975

帖子

6

粉丝