S0814Freescale HCS08單片機FLASH編程應用 (2)課件_第1頁
S0814Freescale HCS08單片機FLASH編程應用 (2)課件_第2頁
S0814Freescale HCS08單片機FLASH編程應用 (2)課件_第3頁
S0814Freescale HCS08單片機FLASH編程應用 (2)課件_第4頁
S0814Freescale HCS08單片機FLASH編程應用 (2)課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Freescale

單片機原理及應用FreescaleHCS08FLASH編程應用Slide1Slide1FreescaleHCS08單片機FLASH編程應用ContentsandObjectives:理解HCS08的FLASH模塊原理FLASH的特性FLASH的塊保護加密向量重定位學會FLASH模塊設計FLASH的在系統(tǒng)編程在系統(tǒng)擦除在系統(tǒng)寫入進一步認識“對MCU外部管腳/內部模塊的控制正是通過Regs的控制來實現(xiàn)”S08系列單片機內部的的擦除和寫入工作不需要外部特殊高電壓,支持兩種編程功能:——在電路編程(ICP,In-circuitprogramming)——在應用編程(IAP,In-applicationprogramming)對FLASH的擦除操作都是以頁(512B)為單位的,而寫入操作則以字節(jié)為單位,且支持標準和突發(fā)兩種模式。擦除操作是將存儲單元的0變成1,而寫入操作恰好相反,是將存儲單元的1變成0。Slide212.1概述塊保護:FLASH塊保護功能使得FLASH可以按頁(512字節(jié))被保護,被保護的頁不會被誤擦除或者誤編程。通過寄存器FPROT控制復位期間,地址為$FFBD的非易失性保護寄存器NVPROT中的內容被自動復制到FLASH保護寄存器FPROT中Slide412.2FLASH功能及寄存器塊保護:當允許塊保護時,塊保護區(qū)域從任意一個512字節(jié)邊界到FLASH的最末地址處$FFFF。FPS位用來設定未保護區(qū)域最末地址的高位地址,此最末地址值由FPS7:FPS1后接9位1構成把NVPROT設置為%11101110,保護FLASH的$F000~$FFFF區(qū)域的匯編代碼如下: ORG $FFBD ;NVPROT寄存器地址 DC.B $EE ;FLASH的$F000~$FFFF空間設為保護區(qū)域Slide512.2FLASH功能及寄存器加密:S08系列MCU內部含有加密電路,用于防止對Flash和RAM存儲空間未經授權的非法訪問。在保密的存儲器內執(zhí)行的程序能夠正常訪問任何MCU存儲器空間和資源。通過非加密存儲空間或背景調試接口執(zhí)行的程序去訪問加密存儲空間,都會被阻止(寫操作被忽略,讀操作返回全0)。通過寄存器FOPT控制復位期間,地址為$FFBF的非易失性保護寄存器NVOPT中的內容被自動復制到FLASH選項寄存器FOPT中Slide612.2FLASH功能及寄存器向量重定位:通過寄存器FOPT控制可以通過編程FOPT寄存器中的FNORED位為0來允許向量重定位功能Slide812.2FLASH功能及寄存器FLASH的擦寫擦除和寫入時間在對FLASH進行任何擦除或編程之前,必須寫FLASH時鐘分頻寄存器FCDIV,使得FLASH模塊的內部時鐘FCLK的頻率(fFCLK)范圍落在200KHz~150KHz范圍。 fFCLK=fBUS

÷(8PRDIV8×(DIV[5:0]+1))Slide912.2FLASH功能及寄存器FLASH的擦寫擦除和寫入時間在對FLASH進行任何擦除或編程之前,必須寫FLASH時鐘分頻寄存器FCDIV,使得FLASH模塊的內部時鐘FCLK的頻率(fFCLK)范圍落在200KHz~150KHz范圍。 fFCLK=fBUS

÷(8PRDIV8×(DIV[5:0]+1))Slide1012.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令在普通用戶模式下,僅有5種FLASH命令。這5種命令通過設定FLASH命令寄存器FCMD來產生。Slide1212.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令5種FLASH命令的產生還需要結合FLASH模塊當前的工作狀態(tài)來產生。Slide1312.2FLASH功能及寄存器FLASH的擦寫擦除和編程命令5種FLASH命令的產生還需要結合FLASH模塊當前的工作狀態(tài)來產生。Slide1412.2FLASH功能及寄存器FLASH的擦寫流程Slide1612.2FLASH功能及寄存器突發(fā)編程用于編程連續(xù)的FLASH字節(jié)若MC9S08AW60的總線時鐘為4MHz。寫出對Flash模塊時鐘FCLK進行初始化的子程序。分析:Flash時鐘頻率必須落在200~150?kHz。根據表14-5可知,總線頻率為4MHz時,PRDIV8=0,DIV[5:0]=19=010011B,能夠滿足FCLK時鐘要求。另外,F(xiàn)CDIV寄存器屬于在MCU復位后只能寫一次的寄存器。

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ù)據并存儲到內部RAM空間,一旦4Byte數(shù)據接收完畢就把它們存入起始地址為$6000的FLASH空間保存。

參考代碼:

Slide1812.3FLASH編程舉例 INCLUDE MC9S08AW60.inc ;包含頭文件initFCDIV EQU %00010011 ;PRDIV8=0,DIV[5:0]=19,針對4MHz總線的取值

ORG $0070Rx_Data DS 4 ;接收數(shù)據變量區(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ù)據并存儲到內部RAM空間,一旦4Byte數(shù)據接收完畢就把它們存入起始地址為$6000的FLASH空間保存。

參考代碼:

Slide2012.3FLASH編程舉例SCI1_Init: ;SCI1模塊初始化子程序,參見例14.2 MOV #$00,SCI1BDH ;先寫高8位,再寫低8位 MOV #$1A,SCI1BDL ;4MHz總線時鐘產生9600baud MOV #$00,SCI1C1 ;禁止環(huán)路模式,8位數(shù)據 MOV #$2C,SCI1C2 ;允許發(fā)送和接收,允許接收中斷 MOV #$00,SCI1C3 ;禁止所有SCI錯誤中斷,Tx輸出不取反 CLI ;開總中斷 RTS

SCI1_ISR: ;SCI1接收中斷服務子程序 LDA SCI1S1 ;先讀SCI1S1再讀SC1D,以清零RDRF LDA SCI1D ;讀SC1D CLRH LDX Rx_Cnt STA Rx_Data,X ;保持數(shù)據 INC Rx_Cnt ;接收字符個數(shù)加1 RTIMC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據并存儲到內部RAM空間,一旦4Byte數(shù)據接收完畢就把它們存入起始地址為$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ù)據格式,9600baudAgain: MOV #$00,Rx_Cnt ;接收個數(shù)清零Rec_Next: LDA Rx_Cnt CMP #$4 ;所有字符是否接收完 BNE Rec_Next ;未收完繼續(xù)接收下一個字符

LDHX #$6000 JSR FLASHErase1 ;擦除地址為$6000的一個頁 BNE Again ;擦除不成功則不進行FLASH操作

LDHX #$6000MC9S08AW60通過SCI從PC的COM口接收4Byte數(shù)據并存儲到內部RAM空間,一旦4Byte數(shù)據接收完畢就把它們存入起始地址為$6000的FLASH空間保存。

參考代碼:

Slide2212.3FLASH編程舉例

BNE Again ;擦除不成功則不進行FLASH操作

LDHX #$6000 LDA Rx_Data JSR FLASHProg1 ;寫A中數(shù)據到$6000地址

LDHX #$6001 LDA Rx_Data

溫馨提示

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

評論

0/150

提交評論