版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Freescale
單片機(jī)原理及應(yīng)用FreescaleHCS08FLASH編程應(yīng)用Slide1Slide1FreescaleHCS08單片機(jī)FLASH編程應(yīng)用ContentsandObjectives:理解HCS08的FLASH模塊原理FLASH的特性FLASH的塊保護(hù)加密向量重定位學(xué)會FLASH模塊設(shè)計(jì)FLASH的在系統(tǒng)編程在系統(tǒng)擦除在系統(tǒng)寫入進(jìn)一步認(rèn)識“對MCU外部管腳/內(nèi)部模塊的控制正是通過Regs的控制來實(shí)現(xiàn)”S08系列單片機(jī)內(nèi)部的的擦除和寫入工作不需要外部特殊高電壓,支持兩種編程功能:——在電路編程(ICP,In-circuitprogramming)——在應(yīng)用編程(IAP,In-applicationprogramming)對FLASH的擦除操作都是以頁(512B)為單位的,而寫入操作則以字節(jié)為單位,且支持標(biāo)準(zhǔn)和突發(fā)兩種模式。擦除操作是將存儲單元的0變成1,而寫入操作恰好相反,是將存儲單元的1變成0。Slide212.1概述塊保護(hù):FLASH塊保護(hù)功能使得FLASH可以按頁(512字節(jié))被保護(hù),被保護(hù)的頁不會被誤擦除或者誤編程。通過寄存器FPROT控制復(fù)位期間,地址為$FFBD的非易失性保護(hù)寄存器NVPROT中的內(nèi)容被自動復(fù)制到FLASH保護(hù)寄存器FPROT中Slide412.2FLASH功能及寄存器塊保護(hù):當(dāng)允許塊保護(hù)時,塊保護(hù)區(qū)域從任意一個512字節(jié)邊界到FLASH的最末地址處$FFFF。FPS位用來設(shè)定未保護(hù)區(qū)域最末地址的高位地址,此最末地址值由FPS7:FPS1后接9位1構(gòu)成把NVPROT設(shè)置為%11101110,保護(hù)FLASH的$F000~$FFFF區(qū)域的匯編代碼如下: ORG $FFBD ;NVPROT寄存器地址 DC.B $EE ;FLASH的$F000~$FFFF空間設(shè)為保護(hù)區(qū)域Slide512.2FLASH功能及寄存器加密:S08系列MCU內(nèi)部含有加密電路,用于防止對Flash和RAM存儲空間未經(jīng)授權(quán)的非法訪問。在保密的存儲器內(nèi)執(zhí)行的程序能夠正常訪問任何MCU存儲器空間和資源。通過非加密存儲空間或背景調(diào)試接口執(zhí)行的程序去訪問加密存儲空間,都會被阻止(寫操作被忽略,讀操作返回全0)。通過寄存器FOPT控制復(fù)位期間,地址為$FFBF的非易失性保護(hù)寄存器NVOPT中的內(nèi)容被自動復(fù)制到FLASH選項(xiàng)寄存器FOPT中Slide612.2FLASH功能及寄存器向量重定位:通過寄存器FOPT控制可以通過編程FOPT寄存器中的FNORED位為0來允許向量重定位功能Slide812.2FLASH功能及寄存器FLASH的擦寫擦除和寫入時間在對FLASH進(jìn)行任何擦除或編程之前,必須寫FLASH時鐘分頻寄存器FCDIV,使得FLASH模塊的內(nèi)部時鐘FCLK的頻率(fFCLK)范圍落在200KHz~150KHz范圍。 fFCLK=fBUS
÷(8PRDIV8×(DIV[5:0]+1))Slide912.2FLASH功能及寄存器FLASH的擦寫擦除和寫入時間在對FLASH進(jìn)行任何擦除或編程之前,必須寫FLASH時鐘分頻寄存器FCDIV,使得FLASH模塊的內(nèi)部時鐘FCLK的頻率(fFCLK)范圍落在200KHz~150KHz范圍。 fFCLK=fBUS
÷(8PRDIV8×(DIV[5:0]+1))Slide1012.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令在普通用戶模式下,僅有5種FLASH命令。這5種命令通過設(shè)定FLASH命令寄存器FCMD來產(chǎn)生。Slide1212.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令5種FLASH命令的產(chǎn)生還需要結(jié)合FLASH模塊當(dāng)前的工作狀態(tài)來產(chǎn)生。Slide1312.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令5種FLASH命令的產(chǎn)生還需要結(jié)合FLASH模塊當(dāng)前的工作狀態(tài)來產(chǎn)生。Slide1412.2FLASH功能及寄存器FLASH的擦寫流程Slide1612.2FLASH功能及寄存器突發(fā)編程用于編程連續(xù)的FLASH字節(jié)若MC9S08AW60的總線時鐘為4MHz。寫出對Flash模塊時鐘FCLK進(jìn)行初始化的子程序。分析:Flash時鐘頻率必須落在200~150?kHz。根據(jù)表14-5可知,總線頻率為4MHz時,PRDIV8=0,DIV[5:0]=19=010011B,能夠滿足FCLK時鐘要求。另外,F(xiàn)CDIV寄存器屬于在MCU復(fù)位后只能寫一次的寄存器。
Slide1712.3FLASH編程舉例 INCLUDE MC9S08AW60.inc ;包含頭文件initFCDIV EQU %00010011 ;PRDIV8=0,DIV[5:0]=19
ORG $1860FCLK_Init: ;FLASH時鐘初始化子程序 LDA initFCDIV STA FCDIV RTSMC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據(jù)并存儲到內(nèi)部RAM空間,一旦4Byte數(shù)據(jù)接收完畢就把它們存入起始地址為$6000的FLASH空間保存。
參考代碼:
Slide1812.3FLASH編程舉例 INCLUDE MC9S08AW60.inc ;包含頭文件initFCDIV EQU %00010011 ;PRDIV8=0,DIV[5:0]=19,針對4MHz總線的取值
ORG $0070Rx_Data DS 4 ;接收數(shù)據(jù)變量區(qū)Rx_Cnt DS 1 ;接收個數(shù)
ORG $8000FCLK_Init: ;FLASH時鐘初始化子程序 LDA initFCDIV STA FCDIV RTS
FLASHErase1: ;擦除一頁(512字節(jié))子程序 … ;代碼略,參見例14.2 RTS
MC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據(jù)并存儲到內(nèi)部RAM空間,一旦4Byte數(shù)據(jù)接收完畢就把它們存入起始地址為$6000的FLASH空間保存。
參考代碼:
Slide2012.3FLASH編程舉例SCI1_Init: ;SCI1模塊初始化子程序,參見例14.2 MOV #$00,SCI1BDH ;先寫高8位,再寫低8位 MOV #$1A,SCI1BDL ;4MHz總線時鐘產(chǎn)生9600baud MOV #$00,SCI1C1 ;禁止環(huán)路模式,8位數(shù)據(jù) MOV #$2C,SCI1C2 ;允許發(fā)送和接收,允許接收中斷 MOV #$00,SCI1C3 ;禁止所有SCI錯誤中斷,Tx輸出不取反 CLI ;開總中斷 RTS
SCI1_ISR: ;SCI1接收中斷服務(wù)子程序 LDA SCI1S1 ;先讀SCI1S1再讀SC1D,以清零RDRF LDA SCI1D ;讀SC1D CLRH LDX Rx_Cnt STA Rx_Data,X ;保持?jǐn)?shù)據(jù) INC Rx_Cnt ;接收字符個數(shù)加1 RTIMC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據(jù)并存儲到內(nèi)部RAM空間,一旦4Byte數(shù)據(jù)接收完畢就把它們存入起始地址為$6000的FLASH空間保存。
參考代碼:
Slide2112.3FLASH編程舉例Main: LDHX #RAMEnd+1 ;H:X指RAM末 TXS ;初始化堆棧指針,SP指到RAM末 CLRH CLRX CLRA STA SOPT ;禁止看門狗 JSR FCLK_Init ;FCLK初始化 JSR SCI1_Init ;初始化SCI1,8位數(shù)據(jù)格式,9600baudAgain: MOV #$00,Rx_Cnt ;接收個數(shù)清零Rec_Next: LDA Rx_Cnt CMP #$4 ;所有字符是否接收完 BNE Rec_Next ;未收完繼續(xù)接收下一個字符
LDHX #$6000 JSR FLASHErase1 ;擦除地址為$6000的一個頁 BNE Again ;擦除不成功則不進(jìn)行FLASH操作
LDHX #$6000MC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據(jù)并存儲到內(nèi)部RAM空間,一旦4Byte數(shù)據(jù)接收完畢就把它們存入起始地址為$6000的FLASH空間保存。
參考代碼:
Slide2212.3FLASH編程舉例
BNE Again ;擦除不成功則不進(jìn)行FLASH操作
LDHX #$6000 LDA Rx_Data JSR FLASHProg1 ;寫A中數(shù)據(jù)到$6000地址
LDHX #$6001 LDA Rx_Data
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《修船專題講座》課件
- 甲狀腺功能異常的臨床護(hù)理
- 迪格奧爾格綜合征的臨床護(hù)理
- 長短腿矯正的臨床護(hù)理
- 《討論會建造流程V》課件
- 宮頸癌前病變的健康宣教
- 孕期低血糖的健康宣教
- 表皮囊腫的臨床護(hù)理
- 《機(jī)械設(shè)計(jì)基礎(chǔ) 》課件-項(xiàng)目一 機(jī)械基礎(chǔ)知識
- 《設(shè)備科安全培訓(xùn)》課件
- 《文明禮儀概述培訓(xùn)》課件
- 人教版(2024年新教材)七年級上冊英語各單元語法知識點(diǎn)復(fù)習(xí)提綱
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 跨文化溝通心理學(xué)智慧樹知到期末考試答案2024年
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(含答案)
- 復(fù)變函數(shù)論與運(yùn)算微積智慧樹知到課后章節(jié)答案2023年下哈爾濱工業(yè)大學(xué)(威海)
- 機(jī)械工程測試與控制技術(shù)項(xiàng)目設(shè)計(jì)
- 干式變壓器檢修維護(hù)手冊.
- 傳染病漏報(bào)檢查、責(zé)任追究制度
- 電梯維保初級理論試題庫(含答案)
- 木材缺陷--種類圖片講解
評論
0/150
提交評論