MSP430flash的块擦除

[复制链接]
590|10
手机看帖
扫描二维码
随时随地手机跟帖
jiaxw|  楼主 | 2018-2-12 15:08 | 显示全部楼层 |阅读模式
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段擦除的时候,调用这个函数是只擦除一个字节?

相关帖子

jiaxw|  楼主 | 2018-2-12 15:13 | 显示全部楼层

要进行整段擦除的时候是用for语句调这个函数128次。
还是调用一次这个函数把128个字节一起擦除。

使用特权

评论回复
lizye| | 2018-2-12 15:15 | 显示全部楼层

falsh擦除一般是一块擦除 不会一个字节一个字节的擦除

使用特权

评论回复
zhenykun| | 2018-2-12 15:21 | 显示全部楼层

这是FLASH,几乎所有的FLASH都是按页来管理的,一擦就是一页。

使用特权

评论回复
yszong| | 2018-2-12 15:25 | 显示全部楼层

LZ知道怎么把一个在FLASH的程序拷贝到RAM中在RAM中运行此程序?

使用特权

评论回复
heweibig| | 2018-2-12 15:28 | 显示全部楼层

flash都是按块擦除的,不可以一个字节一个字节的擦除

使用特权

评论回复
spark周| | 2018-2-12 15:30 | 显示全部楼层
flash的最小擦除单位是段(块只是段里面又分出来的一小块,每小块在64字节左右),要不就是整个flash,

使用特权

评论回复
spark周| | 2018-2-12 15:33 | 显示全部楼层

flash中擦除的最小单位就是段,不可能一个字节一个字节的擦出

使用特权

评论回复
jiajs| | 2018-2-12 15:38 | 显示全部楼层
请问擦除段是写首地址,还是这个段的任意一个地址?

使用特权

评论回复
wyjie| | 2018-2-12 15:40 | 显示全部楼层

这个段擦除的话不可能一次只擦出一个字节的。

使用特权

评论回复
jiaxw|  楼主 | 2018-2-12 15:45 | 显示全部楼层
哦,明白了,多谢

使用特权

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

本版积分规则

825

主题

9762

帖子

4

粉丝