




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFreescale 单片机原理及应用单片机原理及应用 Freescale HCS08单片机单片机FLASH编程应用编程应用Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Hua
2、zhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaSlide 1Slide 1Freescale HCS08单片机单片机FLASH编程应用编程应用: 理解HCS08的FLASH模块原理 FLASH的特性 FLASH的块保护 加密 向量重定位 学会FLASH模块设计 FLASH的在系统编程 在系统擦除 在系统写入 进一步认识“对MCU外部管脚/内部模块的控制正是通过Regs的控制来实现”Copyright Yang Ming. 2011.Electronics and Information Engi
3、neering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaS08系列单片机内部的的擦除和写入工作不需要外部特殊高电压,支持两种编程功能:在电路编程(ICP,In-circuit programming)在应用编程(IAP,In-application programming)对FLASH的擦除操作都是以页(512B)为单位的,而写入操作则以字节为单位,且支持标准和突发两种模式。擦除操作是将存储单元的0变成1,而写入操作恰好相反,是将存储单元的1变成0。Sli
4、de 212.1 概述概述Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. China在高页寄存器空间,共有6个和FLASH模块功能相关的8位寄存器: FLASH保护寄存器(FPROT,FLASH Protection Register) FLASH选项寄存器(FOPT, FLASH Options Register) FLASH时钟分频寄存器(
5、FCDIV,FLASH Clock Divider Register) FLASH配置寄存器(FCNFG,FLASH Configuration Register) FLASH命令寄存器(FCMD,FLASH Command Register) FLASH状态寄存器(FSTAT,FLASH Status Register)Slide 312.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Scienc
6、e and TechnologyWuhan, Hubei 430074, P.R. China块保护: FLASH 块保护功能使得FLASH 可以按页(512字节)被保护,被保护的页不会被误擦除或者误编程。 通过寄存器FPROT控制 复位期间,地址为$FFBD的非易失性保护寄存器NVPROT中的内容被自动复制到FLASH保护寄存器FPROT中Slide 412.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University
7、 of Science and TechnologyWuhan, Hubei 430074, P.R. China块保护: 当允许块保护时,块保护区域从任意一个512字节边界到FLASH的最末地址处$FFFF。 FPS位用来设定未保护区域最末地址的高位地址,此最末地址值由FPS7:FPS1后接9位1构成把NVPROT设置为%11101110,保护FLASH的$F000$FFFF区域的汇编代码如下:ORG$FFBD ; NVPROT寄存器地址DC.B $EE; FLASH的$F000$FFFF空间设为保护区域Slide 512.2 FLASH功能及寄存器功能及寄存器Copyright Yang
8、Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. China加密: S08系列MCU内部含有加密电路,用于防止对Flash和RAM存储空间未经授权的非法访问。 在保密的存储器内执行的程序能够正常访问任何MCU存储器空间和资源。通过非加密存储空间或背景调试接口执行的程序去访问加密存储空间,都会被阻止(写操作被忽略,读操作返回全0)。 通过寄存器FOPT控制 复位期间,地址为$F
9、FBF的非易失性保护寄存器NVOPT中的内容被自动复制到FLASH选项寄存器FOPT中Slide 612.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. China加密: 通过寄存器FOPT控制 复位期间,地址为$FFBF的非易失性保护寄存器NVOPT中的内容被自动复制到FLASH选项寄存器FOPT中Sli
10、de 712.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. China向量重定位: 通过寄存器FOPT控制 可以通过编程FOPT寄存器中的FNORED位为0来允许向量重定位功能Slide 812.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronic
11、s and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 擦除和写入时间 在对FLASH进行任何擦除或编程之前,必须写FLASH时钟分频寄存器FCDIV,使得FLASH模块的内部时钟FCLK的频率(fFCLK)范围落在200KHz150KHz范围。fFCLK = fBUS (8PRDIV8(DIV5:0 + 1)Slide 912.2 FLASH功能及寄存器功能及寄存器Copyright Yang
12、 Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 擦除和写入时间 在对FLASH进行任何擦除或编程之前,必须写FLASH时钟分频寄存器FCDIV,使得FLASH模块的内部时钟FCLK的频率(fFCLK)范围落在200KHz150KHz范围。fFCLK = fBUS (8PRDIV8(DIV5:0 + 1)Slide 1012.2 FLASH功能及
13、寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 擦除和编程命令 FLASH 存储器的编程和擦除操作都由内建的算法逻辑完成,用户程序只要向FLASH命令寄存器写入相应的命令即可调用这些算法逻辑。 和FLASH擦除、写入相关的寄存器有FLASH配置寄存器FCNFG、FLASH命令寄存器FCMD和FLAS
14、H状态寄存器FSTAT。Slide 1112.2 FLASH功能及寄存器功能及寄存器当KEYACC位设为0时,向地址$FFB0$FFB7(NVBACKKEY)的写操作被认作编程或擦除命令的开始。当KEYACC位设为1时,向地址NVBACKKEY 的写操作被认作写比较密钥。Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写
15、 擦除和编程命令 在普通用户模式下,仅有5种FLASH命令。这5种命令通过设定FLASH命令寄存器FCMD来产生。Slide 1212.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 擦除和编程命令 5种FLASH命令的产生还需要结合FLASH模块当前的工作状态来产生。Slide
16、 1312.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 擦除和编程命令 5种FLASH命令的产生还需要结合FLASH模块当前的工作状态来产生。Slide 1412.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics
17、 and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaFLASH的擦写 流程Slide 1512.2 FLASH功能及寄存器功能及寄存器Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 43
18、0074, P.R. ChinaFLASH的擦写 流程Slide 1612.2 FLASH功能及寄存器功能及寄存器突发编程用于编程连续的FLASH字节Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. China若MC9S08AW60的总线时钟为4 MHz。写出对Flash模块时钟FCLK进行初始化的子程序。分析: Flash时钟频率必须落在200
19、150kHz。根据表14-5可知,总线频率为4 MHz时,PRDIV8=0,DIV5:0=19=010011B,能够满足FCLK时钟要求。另外,FCDIV寄存器属于在MCU复位后只能写一次的寄存器。Slide 1712.3 FLASH编程举例编程举例INCLUDE MC9S08AW60.inc; 包含头文件initFCDIVEQU%00010011; PRDIV8=0, DIV5:0=19 ORG $1860FCLK_Init:; FLASH时钟初始化子程序LDAinitFCDIVSTAFCDIV RTSCopyright Yang Ming. 2011.Electronics and Inf
20、ormation Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。 参考代码:Slide 1812.3 FLASH编程举例编程举例INCLUDE MC9S08AW60.inc; 包含头文件initFCDIVEQU%00010011; PRDIV8=0, DIV5:0=19,针
21、对4MHz总线的取值 ORG$0070Rx_DataDS4; 接收数据变量区Rx_CntDS1; 接收个数 ORG $8000FCLK_Init:; FLASH时钟初始化子程序LDAinitFCDIVSTAFCDIV RTS FLASHErase1:; 擦除一页(512 字节)子程序; 代码略,参见例14.2RTS Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430
22、074, P.R. ChinaMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。 参考代码:Slide 1912.3 FLASH编程举例编程举例FLASHProg1:; 字节编程子程序; 代码略,参见例14.3RTS DoOnStack:; 把FLASH代码复制到堆栈并执行的子程序; 代码略,参见例14.2RTS SpSub:; 堆栈中执行的代码函数; 代码略,参见例14.2SpSubEnd: RTSSpSubSize:EQU(*-SpSub) SCI1_Init:; SCI1
23、模块初始化子程序,参见例14.2MOV#$00, SCI1BDH; 先写高8位,再写低8位MOV#$1A, SCI1BDL ; 4MHz总线时钟产生9600baudCopyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存
24、入起始地址为$6000的FLASH空间保存。 参考代码:Slide 2012.3 FLASH编程举例编程举例SCI1_Init:; SCI1模块初始化子程序,参见例14.2MOV#$00, SCI1BDH; 先写高8位,再写低8位MOV#$1A, SCI1BDL ; 4MHz总线时钟产生9600baudMOV#$00, SCI1C1; 禁止环路模式,8位数据MOV#$2C, SCI1C2; 允许发送和接收,允许接收中断MOV#$00, SCI1C3; 禁止所有SCI错误中断,Tx输出不取反CLI; 开总中断RTS SCI1_ISR:; SCI1接收中断服务子程序LDASCI1S1; 先读SCI
25、1S1再读SC1D,以清零RDRFLDASCI1D; 读SC1DCLRHLDXRx_CntSTARx_Data, X; 保持数据INCRx_Cnt; 接收字符个数加1RTICopyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就
26、把它们存入起始地址为$6000的FLASH空间保存。 参考代码:Slide 2112.3 FLASH编程举例编程举例Main:LDHX#RAMEnd+1; H:X指RAM末TXS; 初始化堆栈指针,SP指到RAM末CLRHCLRXCLRASTASOPT; 禁止看门狗JSRFCLK_Init; FCLK初始化JSRSCI1_Init; 初始化SCI1,8位数据格式,9600baudAgain:MOV#$00, Rx_Cnt; 接收个数清零Rec_Next: LDARx_CntCMP#$4; 所有字符是否接收完BNERec_Next; 未收完继续接收下一个字符LDHX#$6000JSRFLASHE
27、rase1; 擦除地址为$6000的一个页BNEAgain; 擦除不成功则不进行FLASH操作 LDHX#$6000Copyright Yang Ming. 2011.Electronics and Information Engineering Department of Huazhong University of Science and TechnologyWuhan, Hubei 430074, P.R. ChinaMC9S08AW60通过SCI从PC的COM口接收4Byte数据并存储到内部RAM空间,一旦4Byte数据接收完毕就把它们存入起始地址为$6000的FLASH空间保存。 参考代码:Slide 2212.3 FLASH编程举例编程举例BNEAgain; 擦除不成功则不进行FLASH操作 LDHX#$6000LDA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县供电公司应急管理制度
- 临时危化品仓库管理制度
- 中国石化分公司管理制度
- 办公楼施工安全管理制度
- 大学报告厅使用管理制度
- 公司筹资与投资管理制度
- 徐汇区批发书架管理制度
- 县文广旅局项目管理制度
- 劳务驻外办事处管理制度
- 城市公司设计部管理制度
- 食品供应商协议合同模板
- 扬州市仪征市2024-2025学年三下数学期末质量检测试题含解析
- 口服给药安全警示教育
- 黄金饰品购销合同(2025版)
- 2025年广西南宁市中考一模地理试题(含答案)
- 广东省深圳市31校2025年中考物理一模试卷(含答案)
- 2025年河北雄安友信能源技术服务有限公司招聘笔试参考题库含答案解析
- 工信委选调试题及答案
- 云南开放大学水利工程材料与检测作业1-3
- 中药标准化建设进展与未来挑战
- 2024年检验科质量与安全管理计划
评论
0/150
提交评论