一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

一文了解msp430單片機(jī)的存儲(chǔ)器組織

454398 ? 來(lái)源:博客園 ? 作者:給我一杯酒 ? 2020-11-06 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一般,在單片機(jī)中的Flash存儲(chǔ)器用于存放程序代碼,屬于只讀型存儲(chǔ)器。而在MSP430些列的單片機(jī)中,都可以通過(guò)內(nèi)置的Flash控制器擦除或改寫(xiě)任何一段的內(nèi)容。另外,msp430的單片機(jī)內(nèi)部還專(zhuān)門(mén)留有一段Flash區(qū)域(information memory),用于存放掉電后需要永久保存的數(shù)據(jù)。利用430內(nèi)部的Flash控制器,可以完成較大容量的數(shù)據(jù)記錄、用戶設(shè)置參數(shù)在掉電后的保存等功能。

硬件介紹:

要對(duì)Flash讀寫(xiě),首先要了解MSP430的存儲(chǔ)器組織。430單片機(jī)的存儲(chǔ)器組織結(jié)構(gòu)采用馮諾依曼結(jié)構(gòu),RAMROM統(tǒng)一編址在同一尋址空間中,沒(méi)有代碼空間和數(shù)據(jù)空間之分。

一般430的單片機(jī)都統(tǒng)一編址在0-64k地址范圍中,只有少數(shù)高端的型號(hào)才能突破64k(如:FG461x系列)。絕大多數(shù)的msp430單片機(jī)都編址在64kB范圍內(nèi)。地址的大概編碼方式如下:

這是msp430f425的存儲(chǔ)器分配圖,其他在64k范圍內(nèi)的存儲(chǔ)器的單片機(jī)編址方式與此類(lèi)似:低256B是寄存器區(qū),然后是RAM;空白;1000H到10FFH是信息Flash區(qū);大于1100H-0FFFFH是主存儲(chǔ)器區(qū)(從0FFFFH開(kāi)始往低地址有單片機(jī)的主Flash,多余的部分空白)。

MSP430F14x的Flash分布:

MSP430F16x的Flash分布:

主Flash部分和信息Flash部分如下(60kB Flash對(duì)應(yīng)的單片機(jī),如msp430f149、msp430f149):

主Flash分為以512B為段的單位,0段是單片機(jī)中斷向量等程序入口地址,使用時(shí)不要擦除此段或改寫(xiě)此段,若要擦除或是改寫(xiě),請(qǐng)先保存內(nèi)容到RAM或其他段;主Flash各段內(nèi)容均要避免寫(xiě)入或擦除,以免造成不可預(yù)料的后果。

信息Flash分為兩段:段A和段B,每段128B;可以保存用戶自己的內(nèi)容(主Flash也可以但是要避免與程序代碼區(qū)沖突);這里就把信息Flash的兩段稱(chēng)為InfoA(1080H-10FFh)和InfoB(1000H-10FFH)。

Flash的操作包括:字或字節(jié)寫(xiě)入;塊寫(xiě)入;段擦除;主Flash擦除;全部擦除。任何的Flash操作都可以從Flash或從RAM中運(yùn)行。

Flash操作時(shí)需要時(shí)序發(fā)生器,F(xiàn)lash控制器內(nèi)部含有時(shí)序發(fā)生器用以產(chǎn)生所需的Flash時(shí)鐘,F(xiàn)lash時(shí)鐘的范圍必須在257kHz到476kHz之間。時(shí)序發(fā)生器的框圖如下:

時(shí)序發(fā)生器可以選擇ACLK、MCLK、SMCLK作為時(shí)鐘源,通過(guò)分頻獲得所需的257kHz到476kHz之間的Flash操作時(shí)鐘。如果時(shí)鐘頻率不再這個(gè)范圍內(nèi),將會(huì)產(chǎn)生不可預(yù)料的結(jié)果。

擦除:擦除之后,存儲(chǔ)器中的bit都變?yōu)?;Flash中的每一位都可以通過(guò)編程寫(xiě)入有1到0,但是要想由0變?yōu)?,必須通過(guò)擦除周期。擦除的最小單位是段。有三種擦除模式:

MERAS   ERASE       Erase Mode
0       1           Segment erase
1       0           Mass erase (all main memory segments)
1       1           Erase all flash memory (main and information .segments)

可以通過(guò)MERAS、ERASE位來(lái)設(shè)置擦除的模式:段擦除,主Flash擦除,全部擦除。

對(duì)要擦除段內(nèi)的一個(gè)地址空寫(xiě)入啟動(dòng)擦出周期:空寫(xiě)入可以啟動(dòng)時(shí)序發(fā)生器和擦除操作??諏?xiě)入后BUSY位立即變高直到擦除周期結(jié)束,這一位變?yōu)榈?0)。BUSY, MERAS和 ERASE位在擦除周期結(jié)束后會(huì)自動(dòng)復(fù)位。擦除周期的時(shí)間和要擦出的Flash大小無(wú)關(guān),每次擦除的時(shí)間對(duì)于MSP430F1xx系系列單片機(jī)來(lái)說(shuō),所需時(shí)間是一樣的。擦除的時(shí)序如下:

當(dāng)空寫(xiě)入到的地址不在要擦除的段地址范圍內(nèi)的時(shí)候,空寫(xiě)入無(wú)效,直接被忽略。在擦除周期內(nèi),應(yīng)該關(guān)中斷,直到擦除完成,重新開(kāi)中斷,擦除期間的中斷已經(jīng)置標(biāo)志位,開(kāi)中斷后立即響應(yīng)。

從Flash中啟動(dòng)的擦除操作:擦除操作可以從Flash中啟動(dòng)或是從RAM中啟動(dòng)。當(dāng)操作是從Flash中啟動(dòng)的時(shí)候,F(xiàn)lash控制器控制了操作時(shí)序,CPU運(yùn)行被暫停直到擦除結(jié)束。擦除周期結(jié)束后,CPU繼續(xù)執(zhí)行,從空寫(xiě)入之后的指令開(kāi)始運(yùn)行。當(dāng)從Flash中啟動(dòng)擦除操作時(shí),可以擦除即將運(yùn)行的程序所在的段,如果擦除了即將運(yùn)行的程序所在的Flash段時(shí),擦除結(jié)束后,CPU的運(yùn)行不可預(yù)料。

從Flash啟動(dòng)時(shí)擦除周期如下:

用戶指南里面的示例匯編程序如下:

; Segment Erase from flash. 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL ; Disable WDT
DINT //; Disable interrupts
MOV #FWKEY+FSSEL1+FN0,&FCTL2 ; SMCLK/2
MOV #FWKEY,&FCTL3 ; Clear LOCK
MOV #FWKEY+ERASE,&FCTL1 ; Enable segment erase
CLR &0FC10h ; Dummy write, erase S1
MOV #FWKEY+LOCK,&FCTL3 ; Done, set LOCK
... ; Re-enable WDT?
EINT ; Enable interrupts

從RAM中啟動(dòng)擦除操作:任意擦除周期都可以從RAM啟動(dòng),這時(shí)CPU不再暫停而是繼續(xù)從RAM中運(yùn)行接下來(lái)的程序。CPU可以訪問(wèn)任何Flash地址之前,必須檢查BUSY位以確定擦除周期結(jié)束。如果BUSY = 1訪問(wèn)Flash,這是一個(gè)訪問(wèn)沖突,這時(shí)ACCVIFG將被設(shè)置,而擦除的結(jié)果將是不可預(yù)測(cè)的的。

從RAM中啟動(dòng)擦除操作時(shí),過(guò)程如下:

要在擦除之前確認(rèn)沒(méi)有訪問(wèn)Flash,然后擦除完成之前不允許訪問(wèn)Flash。

; Segment Erase from RAM. 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL  ; Disable WDT
DINT                        ; Disable interrupts
L1 BIT #BUSY,&FCTL3         ; Test BUSY
JNZ L1                      ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2; SMCLK/2
MOV #FWKEY,&FCTL3           ; Clear LOCK
MOV #FWKEY+ERASE,&FCTL1     ; Enable erase
CLR &0FC10h                 ; Dummy write, erase S1
L2 BIT #BUSY,&FCTL3         ; Test BUSY
JNZ L2                      ; Loop while busy
MOV #FWKEY+LOCK,&FCTL3      ; Done, set LOCK
...                         ; Re-enable WDT?
EINT                        ; Enable interrupts

寫(xiě)Flash操作:寫(xiě)入的模式由WRT和BLKWRT位來(lái)確定:

BLKWRT      WRT         Write Mode
0           1           Byte/word write
1           1           Block write

這兩種模式中塊寫(xiě)入大約是字或字節(jié)寫(xiě)操作時(shí)的兩倍快,因?yàn)樵趬K寫(xiě)入完成之前,變成電壓一直維持直到塊寫(xiě)入完成。同一個(gè)位置不能在擦除周期之前寫(xiě)入兩次或以上,否則將發(fā)生數(shù)據(jù)損壞。寫(xiě)操作時(shí),BUSY位被置1,寫(xiě)入完成后,BUSY被自動(dòng)清零。如果寫(xiě)操作是從RAM發(fā)起的,在BUSY=1時(shí),程序不能訪問(wèn)Flash,否則會(huì)發(fā)生訪問(wèn)沖突,置位ACCVIFG,F(xiàn)lash寫(xiě)入操作不可以預(yù)料。

字或字節(jié)寫(xiě)入:字或字節(jié)寫(xiě)入可以從Flash內(nèi)部發(fā)起,也可以從RAM中發(fā)起。如果是從Flash中啟動(dòng)的寫(xiě)操作,時(shí)序?qū)⒂蒄lash控制,在寫(xiě)入完成之前CPU運(yùn)行將被暫停。寫(xiě)入完成后CPU將繼續(xù)運(yùn)行。

操作時(shí)序如下:

若是從RAM中啟動(dòng)寫(xiě)Flash,程序?qū)⒗^續(xù)從RAM中運(yùn)行。CPU再次訪問(wèn)Flash之前必須確認(rèn)BUSY位已經(jīng)清零,否則會(huì)發(fā)生訪問(wèn)沖突,置位ACCVIFG,寫(xiě)入的結(jié)果將不可預(yù)料。

字或字節(jié)寫(xiě)入模式下,內(nèi)部產(chǎn)生的編程電壓時(shí)適用于完整的64個(gè)字節(jié)塊的寫(xiě)入
In byte/word mode, the internally-generated programming voltage is applied
to the complete 64-byte block, each time a byte or word is written, for 32 of the
35 fFTG cycles. With each byte or word write, the amount of time the block is
subjected to the programming voltage accumulates. The cumulative
programming time, tCPT, must not be exceeded for any block. If the cumulative
programming time is met, the block must be erased before performing any
further writes to any address within the block.

從Flash發(fā)起寫(xiě)字節(jié)或字時(shí):

; Byte/word write from flash. 514 kHz < SMCLK < 952 kHz
; Assumes 0FF1Eh is already erased
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT ; Disable interrupts
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+WRT,&FCTL1           ; Enable write
MOV #0123h,&0FF1Eh              ; 0123h ?> 0FF1Eh
MOV #FWKEY,&FCTL1               ; Done. Clear WRT
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT?
EINT                            ; Enable interrupts

從RAM中啟動(dòng)寫(xiě)入操作時(shí):

; Byte/word write from RAM. 514 kHz < SMCLK < 952 kHz
; Assumes 0FF1Eh is already erased
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT                            ; Disable interrupts
L1 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L1                          ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+WRT,&FCTL1           ; Enable write
MOV #0123h,&0FF1Eh              ; 0123h ?> 0FF1Eh
L2 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L2                          ; Loop while busy
MOV #FWKEY,&FCTL1               ; Clear WRT
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT?
EINT                            ; Enable interrupts

塊寫(xiě)入:當(dāng)需要寫(xiě)入連續(xù)的多個(gè)字或字節(jié)時(shí),塊寫(xiě)入能夠能夠提高Flash訪問(wèn)速度。塊寫(xiě)入時(shí),內(nèi)部產(chǎn)生的編程電壓一直存在在64個(gè)字節(jié)的塊寫(xiě)入期間。塊寫(xiě)入不能有Flash存儲(chǔ)器內(nèi)啟動(dòng),必須從RAM中發(fā)起塊寫(xiě)入操作。塊寫(xiě)入期間,BUSY位被置位。在寫(xiě)入每個(gè)字節(jié)或字時(shí)必須檢測(cè)WAIT位。下一個(gè)字或字節(jié)能夠被寫(xiě)入時(shí),WAIT位被置位。

塊寫(xiě)入的過(guò)程如下:

; Write one block starting at 0F000h.
; Must be executed from RAM, Assumes Flash is already erased.
; 514 kHz < SMCLK < 952 kHz
; Assumes ACCVIE = NMIIE = OFIE = 0.
MOV #32,R5                      ; Use as write counter
MOV #0F000h,R6                  ; Write pointer
MOV #WDTPW+WDTHOLD,&WDTCTL      ; Disable WDT
DINT                            ; Disable interrupts
L1 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L1 ; Loop while busy
MOV #FWKEY+FSSEL1+FN0,&FCTL2    ; SMCLK/2
MOV #FWKEY,&FCTL3               ; Clear LOCK
MOV #FWKEY+BLKWRT+WRT,&FCTL1    ; Enable block write
L2 MOV Write_Value,0(R6)        ; Write location
L3 BIT #WAIT,&FCTL3             ; Test WAIT
JZ L3                           ; Loop while WAIT=0
INCD R6                         ; Point to next word
DEC R5                          ; Decrement write counter
JNZ L2                          ; End of block?
MOV #FWKEY,&FCTL1               ; Clear WRT,BLKWRT
L4 BIT #BUSY,&FCTL3             ; Test BUSY
JNZ L4                          ; Loop while busy
MOV #FWKEY+LOCK,&FCTL3          ; Set LOCK
...                             ; Re-enable WDT if needed
EINT                            ; Enable interrupts

當(dāng)任何寫(xiě)或擦除操作是從RAM啟動(dòng),而B(niǎo)USY = 1,CPU不能讀取或?qū)懭牖驈娜魏蜦lash位置。否則,發(fā)生訪問(wèn)沖突,ACCVIFG設(shè)置,結(jié)果是不可預(yù)知的。此外,如果閃存寫(xiě)入讓W(xué)RT= 0,ACCVIFG中斷標(biāo)志設(shè)置,F(xiàn)lash不受影響。

如果寫(xiě)入或擦除操作時(shí)從Flash啟動(dòng)的,CPU訪問(wèn)下一條指令時(shí)(從Flash讀取指令),F(xiàn)lash控制器返回03FFFH給CPU;03FFFH是指令JMP PC,這讓CPU一直循環(huán)直到Flash操作完成。Flash寫(xiě)入或擦除操作完成后,允許CPU繼續(xù)訪問(wèn)接下來(lái)的指令。

當(dāng)BUSY=1時(shí),F(xiàn)lash訪問(wèn)時(shí):

在開(kāi)始Flash操作之前,需要停止所有的中斷源。如果在Flash操作期間有中斷響應(yīng),讀中斷服務(wù)程序的地址時(shí),將收到03FFFH作為中斷服務(wù)程序的地址。如果BUSY=1;CPU將一直執(zhí)行難IMP PC指令;Flash操作完成后,將從03FFFH執(zhí)行中斷服務(wù)程序而不是正確的中斷程序的地址。

停止寫(xiě)入或擦除:任何寫(xiě)入和擦除操作都可以在正常完成之前,通過(guò)設(shè)置緊急退出位EMEX退出操作。設(shè)置EMEX時(shí),立即停止當(dāng)前活動(dòng)的操作,停止Flash控制器;所有的Flash操作停止,F(xiàn)lash返回可讀模式,F(xiàn)CTL1的所有位復(fù)位;操作的結(jié)果不可預(yù)料。

設(shè)置和訪問(wèn)Flash控制器:FCTLx是16位的、密碼保護(hù)的、可讀寫(xiě)的寄存器。寫(xiě)入這些寄存器都必須在高位包含密碼0A5H,如果寫(xiě)入的不是0A5H,將會(huì)引起復(fù)位。讀寄存器時(shí)高位讀出的是96H。

在擦除或?qū)懭胱只蜃止?jié)時(shí)寫(xiě)FCTL1寄存器將會(huì)引起訪問(wèn)沖突,置位ACCVIFG.塊寫(xiě)入時(shí),WAIT=1時(shí)可以寫(xiě)FCTL1寄存器,當(dāng)WAIT=0時(shí)寫(xiě)FCTL1寄存器是訪問(wèn)沖突,置位ACCVIFG。BUSY=1時(shí),所有寫(xiě)入FCTL2寄存器都是訪問(wèn)沖突。BUSY=1時(shí),所有的FCTLx都可以讀操作,不會(huì)引起訪問(wèn)沖突。

Flash的中斷:Flash控制器有兩個(gè)中斷源:KEYV, 和ACCVIFG。ACCVIFG在訪問(wèn)沖突的時(shí)候被置位。當(dāng)ACCVIE在Flash操作完成后被重新使能后ACCVIFG會(huì)引起中斷請(qǐng)求。ACCIFG和NMI同樣的中斷向量,所以這個(gè)中斷不需要GIE位允許即可產(chǎn)生中斷請(qǐng)求。必須通過(guò)軟件檢測(cè)ACCVIFG位,以確定發(fā)生了訪問(wèn)沖突;ACCVIFG位必須軟件復(fù)位。KEYV是關(guān)鍵值錯(cuò)誤當(dāng)寫(xiě)Flash的寄存器時(shí)沒(méi)有寫(xiě)正確的高位密碼時(shí)被置位,這是會(huì)立刻引起PUC信號(hào)復(fù)位整個(gè)硬件。

編程Flash的硬件:編程430的Flash內(nèi)容有三種選擇,通過(guò)JTAG、通過(guò)BSL和用戶定制。用戶定制即是通過(guò)單片機(jī)的程序訪問(wèn)自己的Flash。

Flash的寄存器列表如下:

Register                            Short Form      Register Type   Address     Initial State
Flash memory control register 1     FCTL1           Read/write      0128h       09600h with PUC
Flash memory control register 2     FCTL2           Read/write      012Ah       09642h with PUC
Flash memory control register 3     FCTL3           Read/write      012Ch       09618h with PUC
Interrupt Enable 1                  IE1             Read/write      000h        Reset with PUC

Flash的硬件部分就介紹這么多了,有什么不大懂的地方請(qǐng)參考TI提供的用戶指南。

程序?qū)崿F(xiàn):

首先設(shè)置Flash的時(shí)鐘,初始化Flash控制器:

void FlashInit()
{
    FCTL2 = FWKEY + FSSEL_2 + FN1;          // 默認(rèn) SMCLK/3 =333KHz 
}

這個(gè)函數(shù)僅僅設(shè)置了時(shí)鐘。

擦除函數(shù):

void FlashErase(unsigned int Addr)  
{ 
    char *FlashPtr;
    FlashPtr = (char *)Addr;
    FCTL1 = FWKEY + ERASE;                      // Set Erase bit
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = 0;                              // Dummy write to erase Flash segment B
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Lock
    FCTL3 = FWKEY + LOCK;                       // Set Lock bit  
}

這個(gè)和上面給出的流程一樣,參數(shù)是要被擦除的段的首地址。WaitForEnable函數(shù)等等待BUSY標(biāo)志變回零即操作完成。

void WaitForEnable()
{
    while((FCTL3 & BUSY) == BUSY);      //Busy
}

寫(xiě)入字節(jié):

void FlashWriteChar(unsigned int addr,char Data)
{
    char *FlashPtr = (char *)addr;              // Segment A pointer
    FCTL1 = FWKEY + WRT;                        // Set WRT bit for write operation
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = Data;                           // Save Data
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                       // Set LOCK bit
}

寫(xiě)入字:

void FlashWriteWord(unsigned int addr,unsigned int Data)
{
    unsigned int *FlashPtr = (unsigned int *)addr;
    FCTL1 = FWKEY + WRT;                        // Set WRT bit for write operation
    FCTL3 = FWKEY;                              // Clear Lock bit
    DINT;
    *FlashPtr = Data;                           // Save Data
    WaitForEnable();                            //Busy
    EINT;
    FCTL1 = FWKEY;                              // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                       // Set LOCK bit
}  

寫(xiě)入字或字節(jié)兩個(gè)函數(shù)差別僅僅是指針類(lèi)型不同。

讀取字或字節(jié):

char FlashReadChar(unsigned int Addr)
{ 
    char Data;
    char *FlashPtr = (char *) Addr; 
    Data = *FlashPtr;
    return(Data);
}

unsigned int FlashReadWord(unsigned int Addr)
{ 
    unsigned int Data;
    unsigned int *FlashPtr = (unsigned int *)Addr; 
    Data = *FlashPtr;
    return(Data);
} 這兩個(gè)函數(shù)的差別也是僅僅指針類(lèi)型不同。

這些函數(shù)和前面硬件介紹部分的程序流程相同,這里不再詳細(xì)說(shuō)明。

使用示例:

使用方法和之前的一樣,工程中加入C文件,源代碼文件中文件包含H文件,即可使用,具體參考示例項(xiàng)目:

演示主要程序主要如下:

#include 
#include "Flash.h"

int a;
void main( void )
{
    // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    ClkInit();
    FlashInit();
    FlashWriteChar(InfoB,0x25);
    a=FlashReadChar (InfoB);        //InfoB在H文件中有宏定義
    FlashWriteWord(InfoB+2,0x5669);
    a = FlashReadWord(InfoB+2);
    FlashErase(InfoB);
    LPM0;
}這里向InfoB(1000h)首地址開(kāi)始寫(xiě)數(shù)據(jù),先寫(xiě)一個(gè)字節(jié) 再寫(xiě)入一個(gè)字(注意寫(xiě)入字時(shí),必須是偶數(shù)地址,奇數(shù)地址會(huì)寫(xiě)在這個(gè)地址所在的前一個(gè)偶數(shù)地址),讀出,然后擦除。這里的程序都是在Flash中運(yùn)行的,沒(méi)有演示RAM中運(yùn)行的程序。如果在RAM運(yùn)行程序,則需要先把程序從Flash中移到RAM中,然后跳轉(zhuǎn)到RAM中運(yùn)行。

調(diào)試截圖如下:

調(diào)試時(shí),view-Memory菜單,調(diào)出存儲(chǔ)器窗口;觀察Flash內(nèi)容。

這里寫(xiě)入的是Info Flash部分,觀察這部分的結(jié)果,和寫(xiě)入的結(jié)果同。

Flash程序控制器的程序就到這兒了。Flash可以用于存儲(chǔ)長(zhǎng)期保存的數(shù)據(jù)。
編輯:hfy

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

    關(guān)注

    6067

    文章

    44973

    瀏覽量

    650113
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1677

    瀏覽量

    151697
  • Flash控制器
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    8227
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)存儲(chǔ)器的那些事

    單片機(jī)存儲(chǔ)器的關(guān)系像什么?單片機(jī)里的存儲(chǔ)都是樣的嗎?為什么有的單片機(jī)既有EEPROM又有Fl
    的頭像 發(fā)表于 04-10 10:06 ?928次閱讀
    扒<b class='flag-5'>一</b>扒<b class='flag-5'>單片機(jī)</b>與<b class='flag-5'>存儲(chǔ)器</b>的那些事

    msp430單片機(jī)如何設(shè)計(jì)軟件濾波?

    ADS1110 16位 I2C接口AD 采樣前端傳感調(diào)理輸出信號(hào),ADS1110內(nèi)部參考電壓2.048V.傳感輸出信號(hào)0.050mV~3.0V,經(jīng)過(guò)調(diào)理單路后在0~2.033V之間?,F(xiàn)在發(fā)現(xiàn)ADS1110采樣值有20~50個(gè)跳動(dòng)。用
    發(fā)表于 02-10 08:43

    MSP430存儲(chǔ)器編程用戶指南

    電子發(fā)燒友網(wǎng)站提供《MSP430存儲(chǔ)器編程用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-19 15:34 ?0次下載
    <b class='flag-5'>MSP430</b><b class='flag-5'>存儲(chǔ)器</b>編程用戶指南

    請(qǐng)問(wèn)ADS112C04作為個(gè)模數(shù)轉(zhuǎn)化,怎么和msp430單片機(jī)相連,進(jìn)行編程呢?

    請(qǐng)問(wèn)ADS112C04作為個(gè)模數(shù)轉(zhuǎn)化,怎么和msp430單片機(jī)相連,進(jìn)行編程呢?以及為什么它只有個(gè)數(shù)據(jù)輸入和輸出共用的端口,而沒(méi)有其
    發(fā)表于 12-11 06:29

    MSP430?硬件工具

    電子發(fā)燒友網(wǎng)站提供《MSP430?硬件工具.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 09:10 ?0次下載
    <b class='flag-5'>MSP430</b>?硬件工具

    基于MSP430單片機(jī)的模糊邏輯電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《基于MSP430單片機(jī)的模糊邏輯電機(jī)控制.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 10:21 ?1次下載
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>單片機(jī)</b>的模糊邏輯電機(jī)控制

    了解MSP430閃存數(shù)據(jù)保留

    電子發(fā)燒友網(wǎng)站提供《了解MSP430閃存數(shù)據(jù)保留.pdf》資料免費(fèi)下載
    發(fā)表于 10-21 09:34 ?0次下載
    <b class='flag-5'>了解</b><b class='flag-5'>MSP430</b>閃存數(shù)據(jù)保留

    基于MSP430單片機(jī)的軟件玻璃液晶驅(qū)動(dòng)程序

    電子發(fā)燒友網(wǎng)站提供《基于MSP430單片機(jī)的軟件玻璃液晶驅(qū)動(dòng)程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:41 ?0次下載
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>單片機(jī)</b>的軟件玻璃液晶驅(qū)動(dòng)程序

    利用MSP430單片機(jī)控制步進(jìn)電機(jī)

    電子發(fā)燒友網(wǎng)站提供《利用MSP430單片機(jī)控制步進(jìn)電機(jī).pdf》資料免費(fèi)下載
    發(fā)表于 10-09 14:18 ?0次下載
    利用<b class='flag-5'>MSP430</b><b class='flag-5'>單片機(jī)</b>控制步進(jìn)電機(jī)

    使用低內(nèi)存MSP430? MCU的帶備份存儲(chǔ)器的外部RTC

    電子發(fā)燒友網(wǎng)站提供《使用低內(nèi)存MSP430? MCU的帶備份存儲(chǔ)器的外部RTC.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 11:43 ?0次下載
    使用低內(nèi)存<b class='flag-5'>MSP430</b>? MCU的帶備份<b class='flag-5'>存儲(chǔ)器</b>的外部RTC

    msp430單片機(jī)的優(yōu)缺點(diǎn)介紹

    自1996年面世以來(lái),MSP430系列單片機(jī)以其卓越的性能和獨(dú)特的優(yōu)勢(shì),在電子工程領(lǐng)域獨(dú)樹(shù)幟。這款16位超低功耗的混合信號(hào)處理,憑借其出色的低功耗特性、高效的處理速度以及靈活的編程
    的頭像 發(fā)表于 09-25 17:12 ?1637次閱讀

    MSP430FRBoot-適用于MSP430? FRAM大型存儲(chǔ)器型號(hào)器件的主存儲(chǔ)器引導(dǎo)加載程序和無(wú)線更新

    電子發(fā)燒友網(wǎng)站提供《MSP430FRBoot-適用于MSP430? FRAM大型存儲(chǔ)器型號(hào)器件的主存儲(chǔ)器引導(dǎo)加載程序和無(wú)線更新.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 09:16 ?0次下載
    <b class='flag-5'>MSP430</b>FRBoot-適用于<b class='flag-5'>MSP430</b>? FRAM大型<b class='flag-5'>存儲(chǔ)器</b>型號(hào)器件的主<b class='flag-5'>存儲(chǔ)器</b>引導(dǎo)加載程序和無(wú)線更新

    帶備份存儲(chǔ)器的獨(dú)立RTC,帶低成本MSP430 MCU應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《帶備份存儲(chǔ)器的獨(dú)立RTC,帶低成本MSP430 MCU應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 09:49 ?0次下載
    帶備份<b class='flag-5'>存儲(chǔ)器</b>的獨(dú)立RTC,帶低成本<b class='flag-5'>MSP430</b> MCU應(yīng)用說(shuō)明

    采用低成本MSP430單片機(jī)的外部可編程看門(mén)狗定時(shí)監(jiān)控系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《采用低成本MSP430單片機(jī)的外部可編程看門(mén)狗定時(shí)監(jiān)控系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:54 ?0次下載
    采用低成本<b class='flag-5'>MSP430</b><b class='flag-5'>單片機(jī)</b>的外部可編程看門(mén)狗定時(shí)<b class='flag-5'>器</b>監(jiān)控系統(tǒng)

    利用超低功耗單片機(jī) MSP430 作為系統(tǒng)伴隨芯片應(yīng)用報(bào)告

    電子發(fā)燒友網(wǎng)站提供《利用超低功耗單片機(jī) MSP430 作為系統(tǒng)伴隨芯片應(yīng)用報(bào)告.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 10:52 ?0次下載
    利用超低功耗<b class='flag-5'>單片機(jī)</b> <b class='flag-5'>MSP430</b> 作為系統(tǒng)伴隨芯片應(yīng)用報(bào)告