S0814FreescaleHCS08单片机FLASH编程应用.ppt

上传人:san****019 文档编号:17223183 上传时间:2020-11-15 格式:PPT 页数:25 大小:3.12MB
收藏 版权申诉 举报 下载
S0814FreescaleHCS08单片机FLASH编程应用.ppt_第1页
第1页 / 共25页
S0814FreescaleHCS08单片机FLASH编程应用.ppt_第2页
第2页 / 共25页
S0814FreescaleHCS08单片机FLASH编程应用.ppt_第3页
第3页 / 共25页
资源描述:

《S0814FreescaleHCS08单片机FLASH编程应用.ppt》由会员分享,可在线阅读,更多相关《S0814FreescaleHCS08单片机FLASH编程应用.ppt(25页珍藏版)》请在装配图网上搜索。

1、Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China Freescale 单片机原理及应用 Freescale HCS08单片机 FLASH编程应用 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong Uni

2、versity of Science and Technology Wuhan, Hubei 430074, P.R. China Slide 1 Freescale HCS08单片机 FLASH编程应用 Contents and Objectives: 理解 HCS08的 FLASH模块原理 FLASH的特性 FLASH的块保护 加密 向量重定位 学会 FLASH模块设计 FLASH的在系统编程 在 系统擦除 在 系统写入 进一步认识“ 对 MCU外部管脚 /内部模块的控制 正是 通过 Regs的 控制 来实现” Copyright Yang Ming. 2011. Electronics

3、and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China S08系列单片机内部的 的擦除和写入工作 不需要外部 特殊高电压 ,支持 两种编程功能: 在电路 编程( ICP, In-circuit programming) 在应用 编程( IAP, In-application programming) 对 FLASH的 擦除操作 都是 以页 ( 512B) 为单位的,而 写入 操作则以 字节 为单位,且支持标准和突

4、发两种模式。 擦除操 作是将存储单元的 0变成 1,而写入操作恰好相反,是将存储 单元的 1变成 0。 Slide 2 12.1 概述 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China 在高页寄存器空间,共有 6个 和 FLASH模块功能相关的 8位寄存 器 : FLASH保护寄存器( FPROT, FLASH Protectio

5、n Register) FLASH选项寄存器( FOPT, FLASH Options Register) FLASH时钟分频寄存器( FCDIV, FLASH Clock Divider Register) FLASH配置寄存器( FCNFG, FLASH Configuration Register) FLASH命令寄存器( FCMD, FLASH Command Register) FLASH状态寄存器( FSTAT, FLASH Status Register) Slide 3 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronic

6、s and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China 块保护: FLASH 块保护功能使得 FLASH 可以按页( 512字节)被保护,被保护的 页不会被误擦除或者误编程。 通过 寄存器 FPROT控制 复位期间 ,地址为 $FFBD的非易失性保护寄存器 NVPROT中的内容被 自动复 制 到 FLASH保护寄存器 FPROT中 Slide 4 12.2 FLASH功能及寄存器 Copyright Yang

7、 Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China 块保护: 当允许块保护时,块保护区域 从任意一个 512字节边界到 FLASH的最末地 址处 $FFFF。 FPS位用来设定 未保护区域最末地址的高位地址 ,此最末地址值由 FPS7:FPS1后接 9位 1构成 把 NVPROT设置为 %11101110,保护 FLASH的 $F000 $FFFF区域的 汇编

8、代码如下: ORG $FFBD ; NVPROT寄存器地址 DC.B $EE ; FLASH的 $F000 $FFFF空间设为保护区域 Slide 5 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China 加密: S08系列 MCU内部含有加密电路,用于防止对 Flash和 RAM存储空间未经 授权的

9、非法访问。 在保密的存储器内执行的程序能够正常访问任何 MCU存储器空间和资源 。通过非加密存储空间或背景调试接口执行的程序去访问加密存储空间, 都会被阻止(写操作被忽略,读操作返回全 0)。 通过 寄存器 FOPT控制 复位期间 ,地址为 $FFBF的非易失性保护寄存器 NVOPT中的内容被 自动复制 到 FLASH选项 寄存器 FOPT中 Slide 6 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University o

10、f Science and Technology Wuhan, Hubei 430074, P.R. China 加密: 通过 寄存器 FOPT控制 复位期间 ,地址为 $FFBF的非易失性保护寄存器 NVOPT中的内容被 自动复制 到 FLASH选项 寄存器 FOPT中 Slide 7 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hube

11、i 430074, P.R. China 向量重定位: 通过 寄存器 FOPT控制 可以通过编程 FOPT寄存器中的 FNORED位为 0来允许向量重定位功能 Slide 8 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China FLASH的擦写 擦除和写入时间 在对 FLASH进行任何擦除或编程之前

12、,必须写 FLASH时钟 分频寄存器 FCDIV ,使得 FLASH模块的内部时钟 FCLK的频率( fFCLK)范围 落在 200KHz 150KHz范围 。 fFCLK = fBUS (8PRDIV8(DIV5:0 + 1) Slide 9 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China F

13、LASH的擦写 擦除和写入时间 在对 FLASH进行任何擦除或编程之前,必须写 FLASH时钟 分频寄存器 FCDIV ,使得 FLASH模块的内部时钟 FCLK的频率( fFCLK)范围 落在 200KHz 150KHz范围 。 fFCLK = fBUS (8PRDIV8(DIV5:0 + 1) Slide 10 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technolo

14、gy Wuhan, Hubei 430074, P.R. China FLASH的擦写 擦除和编程命令 FLASH 存储器的编程和擦除操作都由 内建的算法逻辑 完成,用户程序只要向 FLASH命令寄存器 写入相应的命令即可调用这些算法逻辑 。 和 FLASH擦除、写入相关的寄存器有 FLASH配置寄存器 FCNFG、 FLASH命 令寄存器 FCMD和 FLASH状态寄存器 FSTAT。 Slide 11 12.2 FLASH功能及寄存器 当 KEYACC位设为 0时,向地址 $FFB0 $FFB7( NVBACKKEY)的写操作 被认作编程或擦除命令的开始。 当 KEYACC位设为 1时,向

15、地址 NVBACKKEY 的写操作被认作写比较密钥。 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China FLASH的擦写 擦除和编程命令 在普通用户模式下,仅有 5种 FLASH命令。这 5种命令通过 设定 FLASH命令寄 存器 FCMD来产生。 Slide 12 12.2 FLASH功能及寄存器 Copyright Yang

16、Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China FLASH的擦写 擦除和编程命令 5种 FLASH命令的产生还需要结合 FLASH模块当前的 工作状态 来产生。 Slide 13 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Depart

17、ment of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China FLASH的擦写 擦除和编程命令 5种 FLASH命令的产生还需要结合 FLASH模块当前的 工作状态 来产生。 Slide 14 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuha

18、n, Hubei 430074, P.R. China FLASH的擦写 流程 Slide 15 12.2 FLASH功能及寄存器 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China FLASH的擦写 流程 Slide 16 12.2 FLASH功能及寄存器 突发编 程用于 编程连 续的 FLASH 字节 Copyright Yan

19、g Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China 若 MC9S08AW60的总线时钟为 4 MHz。写出对 Flash模块时钟 FCLK进行初 始化的子程序 。 分析: Flash时钟频率必须落在 200 150kHz。根据表 14-5可知,总线频 率为 4 MHz时, PRDIV8=0, DIV5:0=19=010011B,能够满足 FCLK时钟 要求。

20、另外, FCDIV寄存器属于在 MCU复位后 只能写一次 的寄存器。 Slide 17 12.3 FLASH编程举例 INCLUDE MC9S08AW60.inc ; 包含头文件 initFCDIV EQU %00010011 ; PRDIV8=0, DIV5:0=19 ORG $1860 FCLK_Init: ; FLASH时钟初始化子程序 LDA initFCDIV STA FCDIV RTS Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong Universit

21、y of Science and Technology Wuhan, Hubei 430074, P.R. China MC9S08AW60通过 SCI从 PC的 COM口 接收 4Byte数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 18 12.3 FLASH编程举例 INCLUDE MC9S08AW60.inc ; 包含头文件 initFCDIV EQU %00010011 ; PRDIV8=0, DIV5:0=19,针对 4MHz总线的取值 ORG $0070 Rx_Data DS 4

22、; 接收数据变量区 Rx_Cnt DS 1 ; 接收个数 ORG $8000 FCLK_Init: ; FLASH时钟初始化子程序 LDA initFCDIV STA FCDIV RTS FLASHErase1: ; 擦除一页( 512 字节)子程序 ; 代码略,参见例 14.2 RTS Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. Ch

23、ina MC9S08AW60通过 SCI从 PC的 COM口 接收 4Byte数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 19 12.3 FLASH编程举例 FLASHProg1: ; 字节编程子程序 ; 代码略,参见例 14.3 RTS DoOnStack: ; 把 FLASH代码复制到堆栈并执行的子程序 ; 代码略,参见例 14.2 RTS SpSub: ; 堆栈中执行的代码函数 ; 代码略,参见例 14.2 SpSubEnd: RTS SpSubSize:EQU (*-SpSub) S

24、CI1_Init: ; SCI1模块初始化子程序,参见例 14.2 MOV #$00, SCI1BDH ; 先写高 8位,再写低 8位 MOV #$1A, SCI1BDL ; 4MHz总线时钟产生 9600baud Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China MC9S08AW60通过 SCI从 PC的 COM口 接收 4By

25、te数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 20 12.3 FLASH编程举例 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错误中断

26、, 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 RTI Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology

27、 Wuhan, Hubei 430074, P.R. China MC9S08AW60通过 SCI从 PC的 COM口 接收 4Byte数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 21 12.3 FLASH编程举例 Main: LDHX #RAMEnd+1 ; H:X指 RAM末 TXS ; 初始化堆栈指针, SP指到 RAM末 CLRH CLRX CLRA STA SOPT ; 禁止看门狗 JSR FCLK_Init ; FCLK初始化 JSR SCI1_Init ; 初始化 SCI1,

28、8位数据格式, 9600baud Again: MOV #$00, Rx_Cnt ; 接收个数清零 Rec_Next: LDA Rx_Cnt CMP #$4 ; 所有字符是否接收完 BNE Rec_Next ; 未收完继续接收下一个字符 LDHX #$6000 JSR FLASHErase1 ; 擦除地址为 $6000的一个页 BNE Again ; 擦除不成功则不进行 FLASH操作 LDHX #$6000 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong Uni

29、versity of Science and Technology Wuhan, Hubei 430074, P.R. China MC9S08AW60通过 SCI从 PC的 COM口 接收 4Byte数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 22 12.3 FLASH编程举例 BNE Again ; 擦除不成功则不进行 FLASH操作 LDHX #$6000 LDA Rx_Data JSR FLASHProg1 ; 写 A中数据到 $6000地址 LDHX #$6001 LDA Rx_D

30、ata+1 JSR FLASHProg1 ; 写 A中数据到 $6001地址 LDHX #$6002 LDA Rx_Data+2 JSR FLASHProg1 ; 写 A中数据到 $6002地址 LDHX #$6003 LDA Rx_Data+3 JSR FLASHProg1 ; 写 A中数据到 $6003地址 JMP Again Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan,

31、 Hubei 430074, P.R. China MC9S08AW60通过 SCI从 PC的 COM口 接收 4Byte数据并存储到内部 RAM空 间,一旦 4Byte数据接收完毕就把它们存入起始地址为 $6000的 FLASH空间 保存 。 参考代码: Slide 23 12.3 FLASH编程举例 ORG $FFBD ; 把 NVPROT设置为 %11111110, DC.B $7E ; 设定 FLASH的 $8000 $FFFF区域为保护区域 ORG $FFBF ; 把 NVOPT设置为 %01000010, DC.B $42 ; 设定 MCU为不加密 ORG $FFDC ; SCI1

32、接收中断矢量地址 DC.W SCI1_ISR ORG $FFFE ; 上电复位地址 DC.W Main 在对 FLASH 进行擦除和写入操作时,读取 FLASH存储器是不安全的,不能直接在 FLASH中 执行擦写代码 ,需要 把擦写代码复制到 RAM中执行 。 Copyright Yang Ming. 2011. Electronics and Information Engineering Department of Huazhong University of Science and Technology Wuhan, Hubei 430074, P.R. China Slide 24 Freescale HCS08单片机 FLASH编程应用

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!