RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FLASH操作程序設(shè)計與存儲器結(jié)構(gòu)

2oON_changxuemc ? 來源:未知 ? 作者:李倩 ? 2018-03-30 16:02 ? 次閱讀

1,F(xiàn)LASH操作程序設(shè)計

下面我們來學(xué)習(xí)編程的內(nèi)容。在學(xué)習(xí)編程前,我們要先了解一下FLASH存儲模塊的控制寄存器。

FLASH存儲模塊的所有操作都通過控制相關(guān)的控制寄存器來實現(xiàn)的。包括FCTL1、FCTL2、FCTL3三個控制寄存器,其中FCTL1主要包含對FLASH的編程和擦除操作的控制位;FCTL2主要定義進(jìn)入時序發(fā)生器前的時鐘源和分頻系數(shù);FCTL3保存FLASH存儲模塊的一些標(biāo)志位。

2, FCTL1控制寄存器

FWKEY:FLASH存儲模塊的安全鍵值。共8位,對FLASH操作時應(yīng)該向其中寫入對應(yīng)的安全鍵值,否則會引起PUC信號以及KEYV信號。0x96:讀取時的安全鍵值;0x5A:寫入時的安全鍵值。

BLKWRT:段編程控制位。當(dāng)需要對某一個段或者幾個段連續(xù)編程時,使用段編程方式可以加快編程的速度。1:使用段編程方式;0:不適用段編程方式。

WRT:編程控制位。當(dāng)需要對FLASH編程時,必須對該位置位,否則會導(dǎo)致ACCVIFG(非法訪問中斷標(biāo)志位)置位。1:允許對FLASH編程;0:禁止對FLASH編程。

MERAS:多段擦除控制位,當(dāng)需要擦除多段時,對改為置位。1:擦除多段;0:不擦除。

ERASE:但段擦除控制位,當(dāng)需要擦除一個段時,對該位進(jìn)行置位。1:擦除一個段;0:不擦除。

3,F(xiàn)CTL2控制寄存器

FWKEY:FLASH存儲模塊的安全鍵值。共8位,對FLASH操作時應(yīng)該向其中寫入對應(yīng)的安全鍵值,否則會引起PUC信號以及KEYV信號。0x96:讀取時的安全鍵值;0x5A:寫入時的安全鍵值。

FSSEL1~0:選擇FLASH存儲模塊的時序發(fā)生器的時鐘源。3:選擇SMCLK;2:選擇SMCLK;1:選擇CMLK;0:選擇ACLK。

FN5-0:為時序發(fā)生器的時鐘源選擇分頻系數(shù),最終的分頻比為32*FN5+16*FN4+8*FN3+4*FN2+2*FN1+FN0+1.

4, FCTL3控制寄存器

FWKEY為安全鍵值,和前兩個一樣,我們不在贅述。

EMEX:緊急退出位。對該位置位能夠緊急停止對FLASH的操作。1:緊急停止FLASH操作;0:不操作。

LOCK:FLASH鎖定位。如果在該位置位時對FLASH進(jìn)行擦除和寫入操作會導(dǎo)致非法訪問,對應(yīng)的標(biāo)志位ACCVIFGF置位。1:鎖定FLASH存儲模塊,鎖定時可讀,但不可擦除和寫入;0:不鎖定FLASH存儲模塊,可讀可寫可擦除。

WAIT:等待標(biāo)志位,用戶通過讀取該位的狀態(tài)已獲得FLASH存儲器和段編程狀態(tài)。1:段編程有效;0:段編程操作正在進(jìn)行。

ACCVIFG:非法訪問標(biāo)志位。1:非法訪問;0:沒有非法訪問。

KEYV:非法安全鍵值標(biāo)志位。1:錯誤安全鍵值;0:正確的安全鍵值。

BUSY:FLASH存儲模塊忙標(biāo)志位。1:當(dāng)前FLASH存儲模塊忙;0:當(dāng)前FLASH存儲模塊空閑。

5,單字節(jié)寫入操作

程序時對單字節(jié)寫入的操作,向Seg_A中的地址0x1090寫入數(shù)據(jù)0xAA。從這個程序段,我們可以看出向FLASH寫入的數(shù)據(jù)的基本流程,大部分與擦除還是很相似的。需要特別注意的是,在這段程序中我們省略了檢測BUSY狀態(tài)位的環(huán)節(jié),并且在實際情況下,只要用戶程序不是頻繁的、交叉的操作FLASH存儲模塊,一般是需要檢測BUSY位的。

對于多字節(jié)的寫入操作,其基本操作方式單字節(jié)類似,只需要每次修改FLASH地址指針,并寫入對應(yīng)的數(shù)據(jù)即可。

6,段擦除操作

MSP430系列MCU盡管可以向FLASH存儲模塊的任意地址寫入數(shù)據(jù),但是擦除操作只能以段位基本單位操作,即最少只能擦除Seg_A和Seg_B段。從示例的程序中,可以看出段擦除的基本流程:除了啟動擦除操作之前的基本設(shè)置,擦除之后的基本設(shè)置之外,還需特別注意的是:向要擦除的段(程序中位Seg_A)任意一個地址中寫入任意數(shù)據(jù)以啟動擦除操作。同樣,這是一個簡化的程序段,也沒有檢測BUSY等標(biāo)志位。

這是一個非常經(jīng)典的TI的關(guān)于FLASH存儲模塊的程序,在幾乎所有的關(guān)于MSP430的書籍等資料上都可以看見他的身影。這段程序包含了擦除,段寫入、段復(fù)制等操作,是一個非常好的例子。

需要特別注意的是:前面的程序僅僅是一個示例,當(dāng)你在很復(fù)雜的程序中操作FLASH前,一定要先禁止所有的中斷并禁用看門狗,切記切記。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634631
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1633

    瀏覽量

    147939
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7484

    瀏覽量

    163762

原文標(biāo)題:MSP430單片機(jī)的FLASH與存儲器結(jié)構(gòu)(3)

文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    求助 數(shù)據(jù)存儲器 FLASH程序存儲器 FLASH數(shù)據(jù)存儲器的區(qū)別

    數(shù)據(jù)存儲器 FLASH程序存儲器 FLASH數(shù)據(jù)存儲器 片內(nèi)RAM數(shù)據(jù)
    發(fā)表于 11-29 09:50

    stm32存儲結(jié)構(gòu)& 存儲器映射

    。RM0008文檔中可以看出,STM32采用的是Cortex-M3內(nèi)核,因此,有必要了解Cortex-M3的存儲器結(jié)構(gòu)。圖中還可以看出,Cortex-M3是通過各個總線和Flash、SROM相連接的。2
    發(fā)表于 08-14 09:22

    Flash存儲器的相關(guān)資料推薦

    最近工作上需要對英飛凌XC886這款單片機(jī)的Flash進(jìn)行讀寫,以下為簡要的幾點總結(jié):一、Flash存儲器結(jié)構(gòu):XC886共有32KFlash,地址映射如下圖所示:共三塊P-
    發(fā)表于 01-26 06:46

    Flash存儲器概述

      Flash 存儲器的簡介   在眾多的單片機(jī)中都集成了 Flash 存儲器系統(tǒng),該存儲器系統(tǒng)可用作代碼和數(shù)據(jù)
    發(fā)表于 11-11 18:25 ?4971次閱讀
    <b class='flag-5'>Flash</b><b class='flag-5'>存儲器</b>概述

    ARM基礎(chǔ)應(yīng)用實驗_Flash存儲器

    ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計實例精講--ARM基礎(chǔ)應(yīng)用實驗05Flash存儲器
    發(fā)表于 07-08 11:08 ?0次下載

    flash存儲器在線編程

    高、低功耗、成本較低等特點。一般我們都認(rèn)為Flash儲存器具備固有不揮發(fā)性、易更新性,可靠性好的基本特性。 從 Flash儲存的基本特點可以看出,在單片機(jī)中,可以利用F1ash存儲器
    發(fā)表于 10-11 18:57 ?4069次閱讀
    <b class='flag-5'>flash</b><b class='flag-5'>存儲器</b>在線編程

    flash存儲器的讀寫原理及次數(shù)

    程序)、PDA(個人數(shù)字助理)、數(shù)碼相機(jī)中保存資料等。本文將探討FLASH存儲器的讀寫原理及次數(shù)。 FLASH存儲器的讀寫原理
    發(fā)表于 10-13 16:34 ?2.2w次閱讀

    FLASH的特點和結(jié)構(gòu)與基于FLASH介質(zhì)嵌入式存儲的設(shè)計

    FLASH(閃速存儲器)作為一種安全、快速的存儲體,具有體積小、容量大、成本低、掉電數(shù)據(jù)不丟失等一系列優(yōu)點,已成為嵌入式系統(tǒng)中數(shù)據(jù)和程序最主要的載體。由于
    發(fā)表于 10-15 10:15 ?6次下載
    <b class='flag-5'>FLASH</b>的特點和<b class='flag-5'>結(jié)構(gòu)</b>與基于<b class='flag-5'>FLASH</b>介質(zhì)嵌入式<b class='flag-5'>存儲</b>的設(shè)計

    閃存存儲器的功能概述和程序中文資料概述

    Flash控制提供了一個友好的用戶接口,使得Flash存儲器可以在應(yīng)用程序的控制下進(jìn)行擦除、編程等
    發(fā)表于 05-09 10:28 ?7次下載
    閃存<b class='flag-5'>存儲器</b>的功能概述和<b class='flag-5'>程序</b>中文資料概述

    24C02讀寫操作程序設(shè)計實例,24C02 read / write process

    24C02讀寫操作程序設(shè)計實例,24C02 read / write process 關(guān)鍵字:24C02讀寫操作程序設(shè)計實例 24C02
    的頭像 發(fā)表于 09-20 19:41 ?1528次閱讀

    如何區(qū)分各種存儲器(ROM、RAM、FLASH

    相信有很多人都對計算機(jī)里的各種存儲器(ROM、RAM、FLASH 等等)傻傻分不清,就會存在,內(nèi)存條是 dram 還是 nand?nand flash 和 nor flash 的區(qū)別又
    的頭像 發(fā)表于 12-17 14:56 ?1.2w次閱讀

    【轉(zhuǎn)】PIC單片機(jī)的 程序存儲器,數(shù)據(jù)存儲器,EEPROM區(qū)別

    PIC的程序存儲器FLASH存儲器,主要存儲程序代碼,掉電不丟失。 數(shù)據(jù)
    發(fā)表于 11-16 13:06 ?13次下載
    【轉(zhuǎn)】PIC單片機(jī)的 <b class='flag-5'>程序</b><b class='flag-5'>存儲器</b>,數(shù)據(jù)<b class='flag-5'>存儲器</b>,EEPROM區(qū)別

    51匯編(一):存儲器結(jié)構(gòu)

    文章目錄內(nèi)存結(jié)構(gòu)程序存儲器數(shù)據(jù)存儲器通用寄存區(qū)位尋址區(qū)一般RAM區(qū)特殊功能寄存區(qū)內(nèi)存
    發(fā)表于 11-23 09:36 ?13次下載
    51匯編(一):<b class='flag-5'>存儲器</b><b class='flag-5'>結(jié)構(gòu)</b>

    Flash存儲器的工作原理和基本結(jié)構(gòu)

      Flash存儲器是一種非易失性存儲器,即使在供電電源關(guān)閉后仍能保持片內(nèi)信息。
    發(fā)表于 09-09 16:22 ?5752次閱讀

    EEPROM與Flash存儲器的區(qū)別

    可編程只讀存儲器)和Flash存儲器是兩種常見的非易失性存儲器,它們具有各自的特點和應(yīng)用場景。本文將深入分析和比較EEPROM與Flash
    的頭像 發(fā)表于 05-23 16:35 ?5915次閱讀
    RM新时代网站-首页