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页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Freescale

单片机原理及应用FreescaleHCS08FLASH编程应用Slide1Slide1FreescaleHCS08单片机FLASH编程应用ContentsandObjectives:理解HCS08的FLASH模块原理FLASH的特性FLASH的块保护加密向量重定位学会FLASH模块设计FLASH的在系统编程在系统擦除在系统写入进一步认识“对MCU外部管脚/内部模块的控制正是通过Regs的控制来实现”S08系列单片机内部的的擦除和写入工作不需要外部特殊高电压,支持两种编程功能:——在电路编程(ICP,In-circuitprogramming)——在应用编程(IAP,In-applicationprogramming)对FLASH的擦除操作都是以页(512B)为单位的,而写入操作则以字节为单位,且支持标准和突发两种模式。擦除操作是将存储单元的0变成1,而写入操作恰好相反,是将存储单元的1变成0。Slide212.1概述块保护:FLASH块保护功能使得FLASH可以按页(512字节)被保护,被保护的页不会被误擦除或者误编程。通过寄存器FPROT控制复位期间,地址为$FFBD的非易失性保护寄存器NVPROT中的内容被自动复制到FLASH保护寄存器FPROT中Slide412.2FLASH功能及寄存器块保护:当允许块保护时,块保护区域从任意一个512字节边界到FLASH的最末地址处$FFFF。FPS位用来设定未保护区域最末地址的高位地址,此最末地址值由FPS7:FPS1后接9位1构成把NVPROT设置为%11101110,保护FLASH的$F000~$FFFF区域的汇编代码如下: ORG $FFBD ;NVPROT寄存器地址 DC.B $EE ;FLASH的$F000~$FFFF空间设为保护区域Slide512.2FLASH功能及寄存器加密:S08系列MCU内部含有加密电路,用于防止对Flash和RAM存储空间未经授权的非法访问。在保密的存储器内执行的程序能够正常访问任何MCU存储器空间和资源。通过非加密存储空间或背景调试接口执行的程序去访问加密存储空间,都会被阻止(写操作被忽略,读操作返回全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模块当前的工作状态来产生。Slide1312.2FLASH功能及寄存器FLASH的擦写擦除和编程命令5种FLASH命令的产生还需要结合FLASH模块当前的工作状态来产生。Slide1412.2FLASH功能及寄存器FLASH的擦写流程Slide1612.2FLASH功能及寄存器突发编程用于编程连续的FLASH字节若MC9S08AW60的总线时钟为4MHz。写出对Flash模块时钟FCLK进行初始化的子程序。分析:Flash时钟频率必须落在200~150 kHz。根据表14-5可知,总线频率为4MHz时,PRDIV8=0,DIV[5:0]=19=010011B,能够满足FCLK时钟要求。另外,FCDIV寄存器属于在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数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。

参考代码:

Slide1812.3FLASH编程举例 INCLUDE MC9S08AW60.inc ;包含头文件initFCDIV EQU %00010011 ;PRDIV8=0,DIV[5:0]=19,针对4MHz总线的取值

ORG $0070Rx_Data DS 4 ;接收数据变量区Rx_Cnt DS 1 ;接收个数

ORG $8000FCLK_Init: ;FLASH时钟初始化子程序 LDA initFCDIV STA FCDIV RTS

FLASHErase1: ;擦除一页(512字节)子程序 … ;代码略,参见例14.2 RTS

MC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。

参考代码:

Slide2012.3FLASH编程举例SCI1_Init: ;SCI1模块初始化子程序,参见例14.2 MOV #$00,SCI1BDH ;先写高8位,再写低8位 MOV #$1A,SCI1BDL ;4MHz总线时钟产生9600baud MOV #$00,SCI1C1 ;禁止环路模式,8位数据 MOV #$2C,SCI1C2 ;允许发送和接收,允许接收中断 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 ;保持数据 INC Rx_Cnt ;接收字符个数加1 RTIMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$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位数据格式,9600baudAgain: MOV #$00,Rx_Cnt ;接收个数清零Rec_Next: LDA Rx_Cnt CMP #$4 ;所有字符是否接收完 BNE Rec_Next ;未收完继续接收下一个字符

LDHX #$6000 JSR FLASHErase1 ;擦除地址为$6000的一个页 BNE Again ;擦除不成功则不进行FLASH操作

LDHX #$6000MC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。

参考代码:

Slide2212.3FLASH编程举例

BNE Again ;擦除不成功则不进行FLASH操作

LDHX #$6000 LDA Rx_Data JSR FLASHProg1 ;写A中数据到$6000地址

LDHX #$6001 LDA Rx_Data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论