借鉴flash例程
来源:互联网 发布:java中get(class) 编辑:程序博客网 时间:2024/06/05 08:34
MSP430F149内部的memory结构,60K Flash+2KRAM。Flash分为主存储区和信息存储区,操作都一样,只是主存储区每个段512字节,而信息存储区为128字节,方便擦写。
当我们有数据要保存到Flash存储器时,要先对目标段进行整段擦除操作,擦除操作使的对应段FLASH存储器变成全“1”。应当注意的是,此flash的操作频率为257kHz 到 476kHz,时钟源可选择,因此我们做时钟分频时应当保证频率在这之间,以下为我编写的参考程序。
void Flash_erase(uint addr)
{//段擦除,512bytes一段
uchar s;
s=__get_interrupt_state();//保存当前中断状态
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+ERASE;
*(uchar*)addr=0;
while(FCTL3&BUSY);
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);//恢复中断状态
}
void Flash_write(uint addr,uchar dat)
{//单字节写入
uchar s;
s=__get_interrupt_state();
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+WRT;
*(uchar*)addr=dat;
while(FCTL3&BUSY);
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);
}
void Flash_read(uint addr,uint len)
{//读取到数组,此处堆栈应改大
uint i;
for(i=0;i<len;i++)
*(R+i)=*(uchar*)(addr+i);
}
当我们有数据要保存到Flash存储器时,要先对目标段进行整段擦除操作,擦除操作使的对应段FLASH存储器变成全“1”。应当注意的是,此flash的操作频率为257kHz 到 476kHz,时钟源可选择,因此我们做时钟分频时应当保证频率在这之间,以下为我编写的参考程序。
void Flash_erase(uint addr)
{//段擦除,512bytes一段
uchar s;
s=__get_interrupt_state();//保存当前中断状态
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+ERASE;
*(uchar*)addr=0;
while(FCTL3&BUSY);
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);//恢复中断状态
}
void Flash_write(uint addr,uchar dat)
{//单字节写入
uchar s;
s=__get_interrupt_state();
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+WRT;
*(uchar*)addr=dat;
while(FCTL3&BUSY);
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);
}
void Flash_read(uint addr,uint len)
{//读取到数组,此处堆栈应改大
uint i;
for(i=0;i<len;i++)
*(R+i)=*(uchar*)(addr+i);
}
0 0
- 借鉴flash例程
- atmega8 例程:FLASH版5110
- 借鉴
- 借鉴
- 借鉴
- 借鉴
- 借鉴
- STM32使用fsmc控制NOR flash 例程
- STM32使用FSMC控制NAND flash 例程
- 借鉴借鉴!
- 例程
- 【连载】【STM32神舟III号实验例程】Nor Flash访问试验(实验十三)
- 【连载】【STM32神舟III号实验例程】Nand Flash读写试验(实验十四)
- 【连载】【STM32神舟III号实验例程】SPI FLASH(W25X16)读写访问实验(10)
- 借鉴网站
- 借鉴(1)
- 书籍借鉴
- 可以借鉴
- error: No resource identifier found for attribute 'cardCornerRadius' in package 'com.example.test'
- 常见的css兼容性问题---持续更新!!
- Log4j常用配置
- API接口测试中需要测试的几个方面
- redis中redis.conf配置文件解析
- 借鉴flash例程
- hdu2096 小明A+B
- JNI中参数的传递与操作
- js判断pc还是mobile访问
- [UVa 1601] The Morning after Halloween (双向广搜)
- Linux mtd system
- svn 更新代码和上传代码
- servlet单例多线程一
- xamarin.iOS 设置Label指定文字的颜色