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

[复制链接]
 楼主| jiajs 发表于 2014-8-23 17:17 | 显示全部楼层 |阅读模式
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段擦除的时候,调用这个函数是只擦除一个字节?
 楼主| jiajs 发表于 2014-8-23 17:17 | 显示全部楼层
要进行整段擦除的时候是用for语句调这个函数128次。
还是调用一次这个函数把128个字节一起擦除。
zhanghqi 发表于 2014-8-23 17:19 | 显示全部楼层
falsh擦除一般是一块擦除 不会一个字节一个字节的擦除
zhenykun 发表于 2014-8-23 17:20 | 显示全部楼层
LZ知道怎么把一个在FLASH的程序拷贝到RAM中在RAM中运行此程序?
wuhany 发表于 2014-8-23 17:21 | 显示全部楼层
flash中擦除的最小单位就是段,不可能一个字节一个字节的擦出
 楼主| jiajs 发表于 2014-8-23 17:22 | 显示全部楼层
哦,我知道了,多谢啊
 楼主| jiajs 发表于 2014-8-23 17:22 | 显示全部楼层
那结贴了啊
comeon201208 发表于 2014-8-23 22:50 | 显示全部楼层
这个是整个sector擦除的吧,当然不会只擦写一个字节的了。。
firstblood 发表于 2014-8-25 22:49 | 显示全部楼层
这个至少是按照sector擦除的吧,针对写的话是需要多注意的。
zh113214 发表于 2014-8-25 23:16 | 显示全部楼层
很早之前用过430,现在基本上不用了啊。。不过430确实还是很好用的。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

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

940

主题

11975

帖子

6

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