Flash單片機(jī)自編程技術(shù)的探討_第1頁
免費(fèi)預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、flash單片機(jī)自編程技術(shù)的探討flash的可自編程性(self-programmability)是指,用flash存儲(chǔ)器中的駐留軟件或程序?qū)lash存儲(chǔ)器舉行擦除/編程,但是,要求運(yùn)行程序代碼的存儲(chǔ)區(qū)與待編程的存儲(chǔ)區(qū)不在同一模塊中。因此,惟獨(dú)一個(gè)片上flash存儲(chǔ)器模塊的微處理器,是不能在舉行擦除/編程flash操作的同時(shí)執(zhí)行程序的。目前,有兩種途徑可以解決:在擦除/編程flash的過程中,將cpu置于空閑狀態(tài);將擦除/編程flash的命令復(fù)制到ram,再由cpu來執(zhí)行。ti公司的系列flash型內(nèi)部集成有flash控制器,可以采納外部編程器舉行燒寫,也可以利用自己的程序修改flash的內(nèi)

2、容,且不用外加編程。在舉行系統(tǒng)設(shè)計(jì)時(shí),可以利用片內(nèi)的flash保存一些運(yùn)行數(shù)據(jù),實(shí)現(xiàn)掉電庇護(hù);還可以修改flash中的囫圇程序或局部程序,實(shí)現(xiàn)在系統(tǒng)升級(jí)。本文以ti公司的msp430系列flash型芯片為例,對如何舉行flash的自編程操作做進(jìn)一步的探討。1 msp430芯片flash存儲(chǔ)器的結(jié)構(gòu)flash存儲(chǔ)器模塊是一個(gè)可自立操作的物理存儲(chǔ)器單元。所有模塊支配在同一個(gè)線性地址空間中,一個(gè)模塊又可以分為多個(gè)段。當(dāng)對flash存儲(chǔ)器段中的某一位編程時(shí),就必需對囫圇段擦除,因此,flash存儲(chǔ)器必需分為較小的段,以便利地實(shí)現(xiàn)擦除和編程。圖1是msp430芯片上flash存儲(chǔ)器模塊的結(jié)構(gòu)框圖。該fl

3、ash存儲(chǔ)器模塊包含如下部分:控制規(guī)律控制flash擦除和編程時(shí)的機(jī)器狀態(tài)和時(shí)序發(fā)生器;flash庇護(hù)規(guī)律避開意外的flash擦除和編程操作;編程電壓發(fā)生器提供flash擦除和編程所需所有電壓的集成電荷泵;3個(gè)16位控制寄存器fctl1、fctl2、fctl3控制flash模塊的所有操作;存儲(chǔ)器本身。2 flash存儲(chǔ)器的擦除和編程操作通常cpu拜訪flash是為了讀取數(shù)據(jù)或者是執(zhí)行程序,這時(shí)數(shù)據(jù)、地址鎖存器是透亮的,時(shí)序發(fā)生器和電壓發(fā)生器關(guān)閉。然而,我們有時(shí)候需要在程序執(zhí)行的過程中對flash的內(nèi)容舉行修改,這時(shí)就需要對控制寄存器fctlx舉行適當(dāng)?shù)脑O(shè)置,以保證擦除/編程操作的正確執(zhí)行。當(dāng)舉

4、行擦除/編程操作時(shí),flash模塊中的時(shí)序發(fā)生器將產(chǎn)生所有內(nèi)部控制信號(hào),控制所有執(zhí)行過程。這時(shí)cpu是不能拜訪flash的,因此所要執(zhí)行的程序命令必需從別的地方調(diào)用,如ram,或者將cpu置于空閑狀態(tài)。當(dāng)flash的編程結(jié)束后,cpu才干重新獲得對flash的控制權(quán)。 msp430系列芯片中只集成了一個(gè)flash模塊用作程序和數(shù)據(jù)存儲(chǔ)器。這就意味著在對flash舉行編程時(shí),中斷向量是不起作用的,任何中斷哀求都得不到響應(yīng)。全部可能的中斷源(包括)在對flash舉行擦除/編程操作前,都應(yīng)當(dāng)被屏蔽掉,如程序1所示。程序1:禁止全部中斷和watchdogdint ;禁止全部可屏蔽中斷clr.b &am

5、p;ie1 ;禁止nmi、accv和of中斷mov 5a80h, &wdtctl ;關(guān)閉片內(nèi)看門狗2.1 挺直舉行的flash自編程msp430獨(dú)有的一個(gè)特點(diǎn)就是,其flash模塊可以不用把程序代碼拷貝到其它的存儲(chǔ)器就可實(shí)現(xiàn)自編程。在flash自編程過程中,當(dāng)cpu從flash中取命令時(shí),flash會(huì)返回值 3fffh(jmp $)給cpu,使cpu處于無限循環(huán)直到flash自編程的結(jié)束,才會(huì)將下一條命令返回,從而使程序繼續(xù)執(zhí)行下去。下面給出的程序2,對msp430芯片的flash舉行自編程是十分簡單實(shí)現(xiàn)的。不過這種辦法也存在一個(gè)缺點(diǎn):在flash舉行自編程的過程中,cpu處于空閑狀態(tài)

6、,所以這時(shí)既不能執(zhí)行程序,也不能響應(yīng)中斷,而且這種flash自編程辦法只可用于字或字節(jié)編程模式,而不適用于速度更快的段寫模式。程序2:用同一模塊軟件將一個(gè)字寫入flash存儲(chǔ)器fxkey .set 03300hfwkey .set 0a500h ;禁止全部中斷mov (fwkey + wrt), &fctl1 ;允許對flash編程mov 123h, &0fe1eh ;編程一個(gè)字mov fwkey, &fctl1 ;編程位復(fù)位xor (fxkey + lock), &fctl3 ;lock位置位 ;允許中斷2.2 通過ram程序調(diào)用實(shí)現(xiàn)flash自編程在flas

7、h舉行擦除和編程期間,cpu只能拜訪存于片上ram的程序命令。將flash中的程序復(fù)制進(jìn)堆棧中,如程序3所示。當(dāng)對flash舉行擦寫時(shí),cpu就可以從ram中執(zhí)行程序。flash的擦寫操作完成后,flash就可以重新被拜訪,程序指針pc就會(huì)再次指向flash存儲(chǔ)器,堆棧指針sp也會(huì)復(fù)原。從ram中執(zhí)行程序,可以使cpu在flash被改寫時(shí)依舊保持運(yùn)行。因此,msp430系列芯片在flash編程期間仍然可以通過uart模塊接收數(shù)據(jù)。不過,在這種模式下是否接收到數(shù)據(jù),只能通過查詢uart的接收標(biāo)記位來舉行推斷。程序3:將flash中的程序命令拷貝進(jìn)堆棧的程序flash_wwdint ;禁止全部中斷

8、clr.b &ie1 ;禁止nmi、accv和op中斷mov 5a80h, &wdtctl ;關(guān)閉watchdogmov flash_ww_end, r13 ;定義拷貝進(jìn)ram程序的;結(jié)束地址和長度mov flash_ww_length, r15mov 0a500h, &fctl3 ;清除lock位copypush r13 ;將程序拷貝進(jìn)ramdecd r13dec r15jnz copymov sp, r15mov 0a54oh, &fctl1 ;wrt 1call r15 ;調(diào)用ram中的flash寫程序mov 0a500h, &fctl1 ;wrt 0mov 0a510h, &fctl3 ;lock 1add 2*flash_ww_length, spretflash_ww_startmov r14, 0(r12) ;向flash寫1字節(jié)wait_bfbit 1, &fctl3 ;檢測busy位jnz wait_bfflash_ww_endretflash_ww_length equ(flash_ww_end ?flash_ww_start + 2)/2endmod結(jié) 語本文提出的兩種flash自編程辦法各有利弊。當(dāng)cpu必需對大事作出迅速反應(yīng)時(shí),如通過uart舉行的數(shù)據(jù)通信,采納

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論