《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 如何利用好MSP430芯片內(nèi)的information memory 作為掉電數(shù)據(jù)保存(EEPROM)
如何利用好MSP430芯片內(nèi)的information memory 作為掉電數(shù)據(jù)保存(EEPROM)
摘要: 我們用的MSP430時, 內(nèi)部有幾十個字節(jié)information memory 可以當(dāng)EEPROM來用, 無需再外擴(kuò)EEPROM芯片, 用量保存一下系數(shù)的掉電保存的數(shù)據(jù). 我一直用這個, 很好用.
關(guān)鍵詞: 軟件 MSP430
Abstract:
Key words :

我們用的MSP430時,  內(nèi)部有幾十個字節(jié)information memory 可以當(dāng)EEPROM來用, 無需再外擴(kuò)EEPROM芯片,  用量保存一下系數(shù)的掉電保存的數(shù)據(jù). 我一直用這個, 很好用.      

     特別說明:

     1.說明我用的是IAR編譯器,  在IAR上一定能通過 

    2. 利用information memory 作為EEPROM 掉電保存數(shù)據(jù),這是這段程序第一個亮點(diǎn);

    3. 寫information memory 必須在RAM中運(yùn)行程序.  將程序從flash 跑到RAM中運(yùn)行, 很有意思. 這是第二個亮點(diǎn).

    4. 源文件,下載 7824.flash.h2555.flash.c

 

 

#include "MSP430x16x.h"
#include "string.h"
#include"stdlib.h"
#include"flash.h"


/************************************************************************************
** 函數(shù)名稱: flashWrite
** 功能描述: 在MSP430flash中寫數(shù)據(jù)
**
** 輸  入: td:寫入地址, sd:源數(shù)據(jù)指針, size:寫入字節(jié)數(shù)
** 輸  出: 無
** 返 回 值: 返回需要發(fā)送給其他任務(wù)處理的數(shù)據(jù)塊的指針。
** 全局變量:
** 調(diào)用模塊:
** 作  者: 陳文浩
** 日  期: 2010年07月12日
************************************************************************************/
void flashWrite(unsigned char * td, unsigned char *sd, unsigned char size)
{
typedef void(*funp)(unsigned char*,unsigned char *, unsigned char); //定義函數(shù)指針類型
funp FLASHBLK;
char ramcode[100]; //ram內(nèi)程序及數(shù)組地址指針
_DINT();
//ramcode=(char *)malloc(sizeof(char)*100); //為放入內(nèi)存的子程分配空間(需先將heap值設(shè)為180)
FLASHBLK = flashWriteBlock; //函數(shù)指針賦值
memcpy(ramcode,(char *)FLASHBLK,100); //將塊寫子程放入ram中已分配空間
FLASHBLK=*(funp)ramcode; //將函數(shù)指針指向ram中的塊寫子程
flashErase(td); //段擦
(FLASHBLK)(td,sd, size); //塊寫(調(diào)用的是ram中的塊寫子程)
//free(ramcode); //釋放空間
_EINT(); //開放中斷
}


void flashWriteBlock(unsigned char * td,unsigned char *sd, unsigned char size)
{
int i;

while((FCTL3&BUSY)!=0x00); //檢測busy位
FCTL2=FWKEY+FSSEL_1+20; //flash模塊時鐘源為MCLK 分頻2
FCTL3=FWKEY; //解鎖
FCTL1=FWKEY+BLKWRT+WRT; //塊寫
for(i=0;i{
*td++=*sd++; //寫入
while((FCTL3&WAIT)==0); //檢測wait位 是否寫入該字
}
FCTL1=FWKEY; //BLKWRT WRT位復(fù)位
while((FCTL3&BUSY)!=0x00); //檢測BUSY位
FCTL3=FWKEY+LOCK; //鎖定

}
/*******************************************************************************/
/* 段擦除子程序 */
/*******************************************************************************/
void flashErase(unsigned char *td)
{
FCTL2=FWKEY+FSSEL_1+10; //flash模塊時鐘源位MCLK 分頻2
FCTL3=FWKEY; //解鎖
FCTL1=FWKEY+ERASE; //段擦除
*td=0; //在欲進(jìn)行操作的段中空寫,啟動擦除操作
FCTL3=FWKEY+LOCK; //鎖定
}

//功能:FLASH操作 BYTE數(shù)據(jù)寫入
//編程時鐘:257KHZ~476KHZ
void flashWriteByte(unsigned char * pdata, unsigned char data)
{
//WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗
_DINT(); //關(guān)閉總中斷
FCTL2 = FWKEY+FSSEL1+12; //3686400/300K=12
FCTL3 = FWKEY; //LOCK=0;
FCTL1=FWKEY+WRT; //WRT=1;
*pdata = data;
FCTL3 = FWKEY+LOCK; //
//開通看門狗
_EINT(); //開放中斷
}

void flashWriteWord(unsigned short * pdata, unsigned short data)
{
//WDTCTL = WDTPW + WDTHOLD; //關(guān)閉看門狗
_DINT(); //關(guān)閉總中斷
FCTL2 = FWKEY+FSSEL1+12;
FCTL3 = FWKEY; //LOCK=0;
FCTL1=FWKEY+WRT; //WRT=1;
*pdata = data;
FCTL3 = FWKEY+LOCK; //
//開通看門狗
_EINT(); //開放中斷
}

補(bǔ)充一點(diǎn),部分MSP430中A區(qū)中存有部分芯片調(diào)校數(shù)據(jù),如果需要利用A區(qū),需要仔細(xì)看一下DATASHEET. 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国语自产精品视频在线看一大j8| 亚洲第一区在线观看| 久久久久久久久久久久久女国产乱 | 国产精品v欧美精品v日韩| 欧美大片91| 久久综合九色九九| 久久激情视频免费观看| 午夜在线a亚洲v天堂网2018| 亚洲视频日本| 一区二区三区 在线观看视| 亚洲激情小视频| 亚洲国产精品第一区二区 | 午夜精品久久久久影视 | 另类人畜视频在线| 久久久久久自在自线| 久久国产精彩视频| 久久国产加勒比精品无码| 欧美影视一区| 欧美在线观看视频一区二区| 欧美一级久久| 欧美中文在线观看| 久久精品夜夜夜夜久久| 欧美在线综合视频| 久久久蜜桃一区二区人| 久久久久一区| 久久在线91| 欧美a级在线| 欧美激情中文字幕在线| 欧美日韩国产a| 欧美日韩伊人| 国产精品国产自产拍高清av| 国产精品美女久久福利网站| 国产精品社区| 国产一区二区精品久久99| 黄色在线一区| 亚洲国内精品在线| 99视频有精品| 亚洲免费视频一区二区| 欧美一区二区视频在线观看| 亚洲第一狼人社区| 日韩天天综合| 亚洲在线黄色| 久久久蜜桃一区二区人| 欧美高清在线播放| 欧美午夜寂寞影院| 国产日产亚洲精品| 在线观看91精品国产入口| 亚洲精品影院| 亚洲欧美日韩第一区| 久久精品国产第一区二区三区| 亚洲激情网址| 亚洲综合国产激情另类一区| 久久激情视频| 欧美激情一区二区久久久| 欧美午夜不卡影院在线观看完整版免费| 国产精品欧美激情| 一区二区自拍| 一区二区免费在线观看| 欧美一区二区视频免费观看| 亚洲美女诱惑| 欧美一级久久| 欧美激情国产日韩| 国产欧美短视频| 亚洲国产精品久久| 亚洲欧美卡通另类91av | 免费日韩精品中文字幕视频在线| 欧美日韩成人一区二区三区| 国产乱码精品一区二区三区不卡| 樱桃国产成人精品视频| 在线亚洲自拍| 亚洲国产精品一区制服丝袜| 亚洲一二三级电影| 久久中文久久字幕| 欧美色大人视频| 黄色成人免费观看| 一区二区三区日韩精品视频| 久久精品一二三区| 亚洲一区在线免费观看| 另类酷文…触手系列精品集v1小说| 欧美日韩一二三四五区| 黄色成人免费网站| 亚洲一区二区三区激情| 亚洲国产成人久久综合一区| 亚洲欧美怡红院| 欧美高清视频在线播放| 国产一区二区三区久久 | 久久久久久69| 国产精品a久久久久| 亚洲电影免费观看高清| 亚洲欧美综合一区| 在线亚洲成人| 免费观看国产成人| 国产日韩欧美综合精品| 99国产精品| 亚洲日本在线观看| 久久久久这里只有精品| 国产精品私房写真福利视频| 亚洲精品欧美日韩| 亚洲高清中文字幕| 欧美在线播放视频| 国产精品久久久久久久免费软件| 亚洲人成毛片在线播放女女| 久久精品30| 欧美综合二区| 国产毛片精品视频| 亚洲午夜精品久久| 国产精品99久久久久久久vr| 欧美福利电影网| 怡红院精品视频在线观看极品| 欧美一级片一区| 午夜精品久久| 欧美视频你懂的| 亚洲精品美女在线| 亚洲精品日产精品乱码不卡| 久久综合狠狠综合久久综合88| 国产日韩在线播放| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲日本理论电影| 欧美成人亚洲成人日韩成人| 狠狠色丁香婷综合久久| 欧美在现视频| 久久久久国产成人精品亚洲午夜| 国产精品自拍网站| 亚洲与欧洲av电影| 欧美一区二区视频在线观看2020| 国产精品久久久久久久9999| 中文av一区二区| 亚洲综合国产| 国产精品一区二区视频| 亚洲曰本av电影| 午夜亚洲性色视频| 国产亚洲一区二区在线观看| 欧美一区二区精美| 久久久91精品国产一区二区精品| 国产亚洲精品美女| 久久av最新网址| 久久一区二区三区av| 一区免费观看视频| 亚洲欧洲精品成人久久奇米网 | 99精品久久久| 亚洲一区二区三区中文字幕在线| 欧美日韩亚洲一区三区| 一本色道久久综合| 亚洲综合三区| 国产精品日韩欧美一区二区| 亚洲欧美国产不卡| 久久精品九九| 在线精品一区| 99国产精品久久久久久久久久| 欧美国产亚洲另类动漫| 亚洲精品视频二区| 亚洲免费在线视频一区 二区| 国产麻豆成人精品| 久久精品99国产精品日本| 欧美成年人视频网站欧美| 亚洲免费高清| 亚洲综合视频在线| 国产日韩精品在线播放| 亚洲国产欧美不卡在线观看| 欧美国产视频在线| 亚洲一区二区三区精品在线| 久久国产免费看| 亚洲国产成人精品女人久久久 | 国产精品久久久久三级| 欧美一区二区啪啪| 欧美不卡一区| 99国产精品私拍| 欧美专区第一页| 亚洲黄色在线视频| 亚洲主播在线观看| 韩日欧美一区二区| aⅴ色国产欧美| 国产免费成人在线视频| 亚洲黄一区二区三区| 欧美日韩在线播放三区| 香港久久久电影| 欧美欧美午夜aⅴ在线观看| 亚洲欧美视频一区| 欧美国产日韩一区二区| 亚洲女与黑人做爰| 欧美高清不卡在线| 亚洲欧美综合国产精品一区| 欧美高清在线| 亚洲欧美日韩天堂| 欧美激情日韩| 亚洲免费在线精品一区| 欧美成人免费全部观看天天性色| 亚洲午夜精品在线| 欧美国产在线电影| 亚洲欧美日韩精品一区二区| 欧美黄色视屏| 午夜久久久久久久久久一区二区| 欧美激情视频在线播放| 香蕉成人久久| 欧美日韩精品一区| 久久国产欧美精品| 国产精品高清网站| 亚洲精选在线| 国产深夜精品| 亚洲午夜在线观看视频在线|