<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > flash存儲器在線(xiàn)編程詳解

flash存儲器在線(xiàn)編程詳解

作者: 時(shí)間:2018-07-25 來(lái)源:網(wǎng)絡(luò ) 收藏

技術(shù)趨于成熟,應用廣泛,它結合了OTP存儲器的成本優(yōu)勢和EEPROM的可再編程性能,是目前比較理想的存儲器。具有電可擦除、無(wú)需后備電源來(lái)保護數據、可、存儲密度高、低功耗、成本較低等特點(diǎn)。一般我們都認為Flash儲存器具備固有不揮發(fā)性、易更新性,可靠性好的基本特性。

本文引用地址:http://dyxdggzs.com/article/201807/383765.htm

從 Flash儲存器的基本特點(diǎn)可以看出,在單片機中,可以利用F1ash存儲器固化程序,一般情況下通過(guò)程器來(lái)究成F1ash存儲器工作于這種情況,叫監控模式( Monitor mode)或寫(xiě)入器棋式,這與一般的 EPROM、0TP、 EEPROM裝入程序的含義相似。另一方面,由于 具有電可擦除功能,因此,在程序運行過(guò)程中,有可能對F1ash存儲區的教據或程序進(jìn)行更新, Flash存儲器工作于這種情況,叫用戶(hù)模式式( User mode)或模式。

Flash儲存器的兩種程模式:1、監控模式或寫(xiě)入器模式 2、用戶(hù)模式或模式,兩種模式各有優(yōu)缺點(diǎn):監控模式需要外部硬件支持,但不需要單片機內部程序的存在,所以適合對新出廠(chǎng)芯片進(jìn)行編程寫(xiě)入,或是對芯片進(jìn)行整體擦除與寫(xiě)入;用戶(hù)模式可以在單片機正常工作時(shí)進(jìn)入,所以常用在程序運行過(guò)程中對部分Flash存儲器的一些單元內容進(jìn)行修改,特別適合于目標系統的動(dòng)態(tài)程序更新和運行數據的存儲。一般來(lái)說(shuō),兩種模式對Flash存儲器的編程操作的程序是一致的,差別在于調用這些程序的方式和環(huán)境。

下面我們來(lái)詳細講解下Flash儲存器在線(xiàn)編程模式

對Flash編程的基本操作有兩種:擦除(Erase)和寫(xiě)入(Program)。擦除操作的含義是將存儲單元的內容由二進(jìn)制的0變成1,而寫(xiě)入操作的含義,是將存儲單元的內容由二進(jìn)制的1變成0。擦除及寫(xiě)入操作都是通過(guò)設置或清除Flash存儲器的控制寄存器(FLCR)中的某個(gè)或某些位來(lái)完成的。

Flash命令的執行流程


GP32單片機Flash存儲器在線(xiàn)編程匯編語(yǔ)言實(shí)例

首先給出GP32單片機的Flash編程子程序,隨后給出在用戶(hù)模式下進(jìn)行Flash在線(xiàn)編程的實(shí)例,并通過(guò)與PC機串行通信方式進(jìn)行驗證,PC方采用VB語(yǔ)言編程。

1 Flash存儲器的擦除及寫(xiě)入匯編子程序

由于GP32單片機內部的監控ROM中沒(méi)有固化Flash編程子程序,要在運行中能對Flash進(jìn)行在線(xiàn)編程,初始裝入的用戶(hù)程序,必須包含對Flash的擦除及寫(xiě)入子程序。由于程序駐留Flash區,在運行擦除及寫(xiě)入子程序時(shí),整個(gè)Flash區會(huì )被加上高于普通工作電壓的編程電壓,致使對Flash區讀取不穩定,可能導致程序不能正常執行。為了使擦除、寫(xiě)入程序正常執行,需將擦除、寫(xiě)入子程序移入RAM中并轉入RAM區執行。為此,需在RAM區開(kāi)辟一個(gè)緩沖區,供程序移入使用。下圖給出了Flash在線(xiàn)編程的匯編工程的文件組織情況。



2 擦除與寫(xiě)入子程序編程要點(diǎn)說(shuō)明

使用Flash在線(xiàn)編程技術(shù)可以省去外接EEPROM,不僅簡(jiǎn)化了電路設計,也提高了系統穩定性。但是Flash在線(xiàn)編程的技術(shù)文獻資料比較少,特別是實(shí)用程序目前還較少見(jiàn)到,涉及Flash在線(xiàn)編程的技術(shù)細節應仔細斟酌。由于擦除與寫(xiě)入子程序是復制到RAM中執行,我們給出的兩個(gè)子程序已經(jīng)包含了復制并轉入RAM執行的程序過(guò)程,正是由于這個(gè)特殊的過(guò)程,根據實(shí)際編程調試與項目開(kāi)發(fā)過(guò)程中積累的經(jīng)驗,提出以下注意點(diǎn),供讀者參考:

①RAM中要留有足夠的緩沖區,以便存放復制到RAM中的子程序,具體值是取擦除與寫(xiě)入子程序中的大者即可。它們的大小可在編譯后的.LST文件中查得。

②擦除及寫(xiě)入子程序中要調用的延時(shí)子程序均隨其后,以便同時(shí)復制到RAM中,最后一個(gè)標號是為復制方便而加入,否則復制時(shí)要用其它方法得到結束地址,編程變得不規范。

③擦除及寫(xiě)入子程序中對延時(shí)子程序的調用必須使用“BSR 子程序名”,而不能使用 “JSR 子程序名”,因為這里的子程序是復制到RAM中執行的,程序地址已經(jīng)發(fā)生了變化,所以只能用相對調用。

④擦除子程序與寫(xiě)入子程序及其中的延時(shí)子程序,若含有跳轉語(yǔ)句,不能使用“JMP 地址”,只能使用“BRA 地址”。原因同上。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 在線(xiàn)編程 Flash存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>