當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]Flash存儲(chǔ)器技術(shù)趨于成熟,應(yīng)用廣泛,它結(jié)合了OTP存儲(chǔ)器的成本優(yōu)勢(shì)和EEPROM的可再編程性能,是目前比較理想的存儲(chǔ)器。Flash存儲(chǔ)器具有電可擦除、無(wú)需后備電源來(lái)保護(hù)數(shù)據(jù)、可

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

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

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

下面我們來(lái)詳細(xì)講解下Flash儲(chǔ)存器在線編程模式

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

Flash命令的執(zhí)行流程

 


GP32單片機(jī)Flash存儲(chǔ)器在線編程匯編語(yǔ)言實(shí)例

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

1 Flash存儲(chǔ)器的擦除及寫(xiě)入?yún)R編子程序

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

 


 


 

 

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

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

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

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

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

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

⑤使用不同型號(hào)芯片時(shí),上述子程序中延時(shí)時(shí)間應(yīng)根據(jù)芯片手冊(cè)予以變動(dòng)。延時(shí)子程序也應(yīng)根據(jù)不同的總線頻率加以變化,確保時(shí)間滿足時(shí)序要求。

⑥一次擦除后未被寫(xiě)入過(guò)的區(qū)域可以再次調(diào)用寫(xiě)入子程序?qū)懭?,但?xiě)入過(guò)的區(qū)域,未經(jīng)擦除不能重寫(xiě)。

⑦由于擦除是每次擦除一頁(yè)(128字節(jié)),所以數(shù)據(jù)應(yīng)合理安排,避免誤擦。

⑧頁(yè)首地址的定義須遵照保護(hù)寄存器FLBPR定義的規(guī)則,即對(duì)GP32來(lái)說(shuō),頁(yè)地址的低7位為0。

⑨在線編程時(shí)使用的Flash存儲(chǔ)區(qū)域應(yīng)在程序Flash存儲(chǔ)區(qū)域之前,因?yàn)镕lash保護(hù)區(qū)為FLBPR決定的地址至末尾。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉