打印
[疑难问答]

flash的块擦除问题

[复制链接]
1372|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhouhuanの|  楼主 | 2016-3-15 21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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段擦除的时候,调用这个函数是只擦除一个字节?
沙发
zhouhuanの|  楼主 | 2016-3-15 21:18 | 只看该作者
这是FLASH,几乎所有的FLASH都是按页来管理的,一擦就是一页!!!

使用特权

评论回复
板凳
handleMessage| | 2016-3-15 21:21 | 只看该作者
LZ知道怎么把一个在FLASH的程序拷贝到RAM中在RAM中运行此程序?

使用特权

评论回复
地板
bbapple| | 2016-3-15 21:31 | 只看该作者
flash的最小擦除单位是段,要不就是整个flash了。。。

使用特权

评论回复
5
sourceInsight| | 2016-3-15 21:32 | 只看该作者
是的,flash中擦除的最小单位就是段,不可能一个字节一个字节的擦出。

使用特权

评论回复
6
zhouhuanの|  楼主 | 2016-3-15 21:43 | 只看该作者
明好像白了,多谢了。

使用特权

评论回复
7
CallReceiver| | 2016-3-15 21:48 | 只看该作者
擦除段是写首地址,还是这个段的任意一个地址?

使用特权

评论回复
8
309030106| | 2016-3-28 21:10 | 只看该作者
flash中擦除的最小单位就是段

使用特权

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

本版积分规则

68

主题

1557

帖子

2

粉丝