MSP430F5529falsh的讀寫
先上代碼
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 關閉看門狗
unsigned long * Flash_ptrD; // 定義指向信息存儲器D段的指針
unsigned long value;
OLED_Init();
Flash_ptrD = (unsigned long *) 0x1800; // 初始化指針
value = 0x00000678; // 初始化需寫入的長字
FCTL3 = FWKEY; // 清除Flash鎖定位
FCTL1 = FWKEY + ERASE; // 設置擦除控制位 #define ERASE (0x0002) #define FWKEY (0xA500)
_DINT(); // Flash操作期間不允許中斷,否則將導致不可預計的錯誤
*Flash_ptrD = 0; // 向段內地址寫0,即空寫入,啟動擦除操作
while(FCTL3 & BUSY); // 等待擦除操作完成
FCTL1 = FWKEY + BLKWRT; // 使能長字寫入操作
*Flash_ptrD = value; // 將長字寫入目的Flash段
while(FCTL3 & BUSY); // 等待寫入操作完成
_EINT(); // 啟動全局中斷
FCTL1 = FWKEY; // Flash退出寫模式
FCTL3 = FWKEY + LOCK; // 恢復Flash的鎖定位,保護數據
unsigned long * read_point;
unsigned long read_content = 0;
read_point = (unsigned long *) 0x1800;
read_content = *read_point;
OLED_Write_Num5(0,0,read_content);
while(1); // 主循環,可在此處設置斷點查看內存空間
}
1656為 0x00000678的十進制
有OLED會方便一點,沒有的話就把OLED有關代碼注釋了,然后debug看內存。
地址要在一定范圍之內,一般MSP430的地址0x1000-0x10FF
這是FCTL1寄存器的說明。
其中15-8bit是密碼 #define FWKEY (0xA500) 操作該寄存器的時候需要帶上密碼
這兩位共同決定了擦除模式,需要注意的是當擦除或者寫入操作完成時該兩位回自動置為0。 0-0不擦除,0-1 segment擦除,1-0 bank擦除,1-1全擦了(qwq)
這是FCTL3寄存器的說明。
其中BUSY表示flash現在是否在忙。
LOCK表示flash是否被鎖上(保護)
該位解鎖閃存進行寫入或擦除。在字節或字寫入或擦除操作期間,可以隨時設置鎖定位,并且操作正常完成。在塊寫入模式下,如果在BLKWRT=WAIT=1時設置了鎖位,BLKWRT和WAIT將復位,并且模式正常結束。0=解鎖1=鎖定。解鎖之后寫入數據,寫完了之后鎖定保護數據。
上一篇:CCS-msp430
下一篇:MSP430F5529火箭板 --->基于定時器A的LED燈閃爍實驗
推薦閱讀
史海拾趣
Electrocube Inc公司高度重視產品質量管理。公司建立了嚴格的質量管理體系,從原材料采購到生產流程控制,再到產品檢驗和售后服務,每一個環節都嚴格把關。這種對質量的執著追求,使得Electrocube Inc公司的產品具有極高的可靠性和穩定性,贏得了客戶的信賴和好評。
飛虹半導體自2002年建廠之初,便意識到大功率半導體產品市場幾乎被國外進口產品壟斷。為了改變國內電子廠家在價格與交貨期上的被動局面,飛虹半導體毅然踏上了大功率半導體國產化生產研發的道路。盡管面臨重重困難,但飛虹半導體堅持不懈,逐步在LED驅動、工業開關電源、新能源電動車等多個領域取得突破。其功率器件產品因性能優越,逐漸獲得市場認可,為國產半導體替代進口產品貢獻了重要力量。
C&T始終堅持品質至上的原則,從原材料的采購到產品的生產、測試,每一個環節都嚴格把控。這種對品質的執著追求,使得C&T的產品在市場上贏得了良好的口碑。許多知名電腦制造商都選擇與C&T合作,將其產品作為首選的半導體解決方案。
大家買車會買自主品牌的車子么? 從銷售來看,日系車子賣的比較好,周圍的同事也有打算買。 我本人很不喜歡日貨,但是勢單力薄阿! 如果沒有國人的支持,我覺得自主品牌的車子不會大紅。 為什么國家就不扶持一下呢?… 查看全部問答∨ |
|
FPGA內用main clock產生分頻時鐘clk_div2,clk_div4 分頻時鐘各自驅動數千個FF,故分頻后的net各自驅動一個bufg 兩者之間有交互的數據 PR之后發現clk_div2到clk_div4有hold time的violation 是由于兩個時鐘的max clock skew過大造成的 請教如 ...… 查看全部問答∨ |
平板電視技術進過07、08年的高速發展之后,09年將以什么樣的姿態呈現在我們面前呢?相信這也是很多一直關注平板電視動態的讀者的疑問。而從今年中國外資、國產品牌的新品發布動向來看,“LED背光”已經取代了1080P全高清和100Hz倍速驅動,成為當前 ...… 查看全部問答∨ |
現在要把一個dhcp的源碼,就是從網站上下載的源碼。用arm上的編譯器編譯成在arm linux下運行的dhcp client。 存在問題:下載了源碼,發現有configure makefile.am makefile.in configure.ac還有幾個目錄client server common doc等等。 看了make ...… 查看全部問答∨ |
我用的AT24C256 EEPROM,經常在寫入第二個字節的地址后,它就不返回ACK,導致讀取數據失敗。大部分時間返回正常,有時候不返回ACK,不產生IIC中斷。請問這是什么原因?… 查看全部問答∨ |
各位大俠:我是新手.自己寫了程序用MIKROC PRO2009 FOR PIC編好 ,用PICFLASH 燒進PIC18F2620,再實時仿真都成了. 可是想脫離PICFLASH和PC,用PIN1(MCLR)和VCC間加個10K電阻,再將PIN1到地瞬間短路,產生向下脈沖去RESET.可總也沒 成功.請教各位大俠,該 ...… 查看全部問答∨ |
請問在vxworks下如何往2個網口(或其中之一)發送UDP廣播 用MPC852T,VXWORKS5.5,將MPC852T的FEC口為配為100M網口,SCC口配為10M網口,編寫了發送UDP廣播代碼,通過在FEC和SCC的發送函數中加打印信息可以看到,發送的UDP廣播,發到FEC口去了,我想將UDP廣播發送到SCC口,不知如何實現?VXWORKS是如何區別兩 ...… 查看全部問答∨ |
AT88Ck490和DS28E15開發板對比 正面 反面 AT88CK490的外殼被拆掉了,感覺這個外殼不太好用,USB的蓋子太緊不好取,PCB和外殼有尺寸上的誤差造成開發板可以晃動,所以還不如不要了。 本來預備開始做一下測試對比,但是因為事情比較多,可能還 ...… 查看全部問答∨ |
JLinkARM_V4.02d程序連接不上OK6410開發板!新手求指導 j-linkv8顯示已經連接上,target 顯示Not connected,弄了好久,不知道什么原因,如圖所示: 希望高手能夠指點,不勝感激~!!!!!!不知道是jlink的問題,還是板子的問題?? 問題補充:用JLinkARM_V4.22g版本的能夠顯示連上開發板,但是 ...… 查看全部問答∨ |