?? msp430_for_flash.txt
字號(hào):
對msp430內(nèi)部的flash進(jìn)行在線編程,可以用于對系統(tǒng)的一些重要信息進(jìn)行掉電保存。
對flash的寫入操作分為字寫入(Byte/word write)和段寫入(Block write),這里只討論字寫入,段寫入可以參照ti的例程。
flash編程的子程序
//擦除一段flash
void FlashErase(uint *addr){
_DINT();
FCTL3 = FWKEY;
FCTL1 = FWKEY+ERASE; //Erase
*addr = 10;
_EINT();
}
//向Flash寫一個(gè)uint
void FlashWriteInt(uint *addr, uint data){
_DINT();
FCTL1 = FWKEY+WRT;
*addr = data;
_EINT();
}
//向Flash寫一個(gè)uchar
void FlashWriteUchar(uchar *addr, uchar data){
_DINT();
FCTL1 = FWKEY+WRT;
*addr = data;
_EINT();
}
//向Flash寫一個(gè)float
void FlashWriteFloat(uint *addr,float data){
uint *pdata;
pdata = (uint*)&data;
FlashWriteInt(addr,*pdata);
pdata++;
addr++;
FlashWriteInt(addr,*pdata);
}
定義及調(diào)用(以info-flash為例)
//在info-flash中定義三個(gè)數(shù)據(jù)(初始化)
#pragma memory=constseg(INFO)
uchar a=1;
uint b=2;
float c=3;
#pragma memory=default
//在程序中調(diào)用上面的子程序改變這三個(gè)數(shù)據(jù)
WDTCTL = WDTPW + WDTHOLD;//為安全起見,對flash進(jìn)行編程期間,應(yīng)禁止看門狗;
FlashErase((uint*)&a);
FlashWriteUchar((uchar*)&a,6);
FlashWriteInt((uint*)&b,7);
FlashWriteFloat((uint*)&c,5.6);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -