第十一章 Flash存储器的在线编程 主要内容 Flash存储器概述与编程模式 MC68HC908GP32单片机Flash存储器编程方法

Slides:



Advertisements
Similar presentations
高中新课程思想政治(必 修 1 、 2 )的教学体会 北京师大二附中 李文燕 2008 年西城新课程教师培训的讲稿.
Advertisements

国家税务总局关于修改企业所得税年度纳税申报表( A 类, 2014 年版) 部分申报表的公告(国家税务总局公告 2016 年第 3 号) 一、对《企业基础信息表》( A )及填报说明修改如下: (一) “107 从事国家非限制和禁止行业 ” 修改为 “107 从事国家限制或禁止行业 ”
公文处理常见问题分析 2015 年 9 月. Page  2 目 录 公文的定义 1 公文格式和行文规则中常见问题 2 常用文种的注意事项 3 公文写作的步骤方法 4.
《饲料分析与质量检测技术》 说课 主讲教师:管建慧. 课程名称: 《饲料分析与饲料质量检测技术 》 课程编码:
2014 年 12 月 企业所得税年度纳税申报表 (A 类, 2014 版 ) 辅导材料(二) A 企业基础信息 A 主表.
融合遗传: 两个亲本杂交后,子代 会表现出介于双亲之间 的性状。 生物体的形态结构和 生理特征叫做性状。 同一种生物的同一种性状的 不同表现类型 。 相对性状:
2009/12/211 商務科技管理系 實 務 專 題 報 告 辦桌非難事 學生: 施雅雯 ( ) 張敬芝 ( ) 葉明臻 ( ) 黃怡琅 ( )
九年级物理一轮复习 第一章 声现象 知识要点. 1. 声音的产生和传播  ( 1 )声音的产生:声音是由于物体的振动产生的。  凡是发声的物体都在振动。振动停止,发声也停止。  ( 2 )声源:正在发声的物体叫声源。固体、液体、气体 都可以作为声源,有声音一定有声源。  ( 3 )声音的传播:声音的传播必须有介质,声音可以在.
嵌入式系统与单片机 北京科技大学电子信息系.
景观水池渗漏的研究 年级专业:12级土木工程 指导教师: ××× 教 学 点: ××××教学点 新疆工程学院继续教育学院 20 年 月 日
成语乐园 成语乐园 执教老师:李道梅.
上 班 族 身心健康操 陽明大學 運動健康科學 研究中心 編著.
詹天佑.
工程定额与计价方法 教材名称:工程建设定额原理与实务
北师大版义务教育课程标准实验教科书 七年级上册讲义 第17课 先进的科学技术.
建设工程施工管理 模拟卷 一、单项选择题 1.下列选项中,除( )以外都属于施工机械使用费。 A.购置费 B.安拆费及场外运费 C.折旧费 D.修理费.
阳光工程引导性培训 宁夏自治区盐池县农广校
《毛泽东思想和中国特色社会主义体系概论》 第一章马克思主义中国化两大理论成果
第5章 多级结构的存储系统 5.1 三级结构存储系统概述 主存储器 虚拟存储器 CPU 高速缓存 三级结构的存储系统.
2010年春季开学学校食堂食品安全知识培训 徐汇区食品药品监督所
进出口食品检验监管 基础讲课内容 我国进出口食品安全管理体系介绍 法律法规 进口食品的检验检疫 出口食品的检验检疫.
立體四子棋 研究成員:謝旻諺、 鄭家鈞 指導老師:林屏森老師.
授课班级 安全技术管理0605班 第 5 次 课 授课时间 2008年3月10日 星期一 授课地点 科技楼401多媒体教室 课题内容:
“三步式”网络学习法 《探究与发现》数学网络学习平台介绍
2015版《中国地震动参数区划图》 对我市城乡建设的影响
初中思想品德 规范的教学设计与案例分析.
總務處營繕組簡報 1.業務職掌 2.九十四年度工作績效 3.工程一覽 4.歷年工作成果 5.未來展望 6.困難及建議.
第三节 渐开线圆柱齿轮精度等级及应用.
2014年企业所得税汇算清缴相关税收政策 新华区地方税务局 卿继红
三創產業學程 學群主持人:袁國榮召集人.
北京市科普项目社会征集指南及 项目建议方案解读
第十章 季节施工 ——冬期施工准备.
危险废物环境管理情况 河南省固体废物管理中心  韩晓晗 2007年6月6日.
最新計算機概論 第3章 計算機組織.
第4章 主存储器 4.1 主存储器概述 4.2 读/写存储器 4.3 非易失性存储器 4.4 DRAM的研制与发展
食品添加剂生产许可审查通则起草说明.
概述 检索图书的检索工具 检索期刊的检索工具 检索特种文献的检索工具
餐饮服务从业人员 食品安全知识培训 孔莉 朔州市食品药品监督管理局.
首次数据采集填报说明 内蒙古自治区校车信息管理系统 靳 丽 内蒙古自治区教育信息中心 2013年5月
防空地下室审批要点 主讲人:陈玉亭.
治超新政相关文件解读 厅执法局 江涛 二零一六年九月.
《体育与健康》说课稿 课题:新兴体育舞蹈 —踢踏舞教学 北师大泉州附中 陈玉慈.
徐志摩与 四大美女.
大学计算机应用基础 信息学院信息技术教学部.
題目:LED電子數位時鐘 第 二組 組員: 陳柏霖 李育昇.
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
PIC16F1827介紹 以微控器為基礎之電路設計實務-微處理器實驗室.
Timer & KEYPAD 11/24.
第六章 存贮器 6.1 存储器概述 6.2 随机存取存储器(RAM) 6.3 只读存储器(ROM) 6.4 CPU与存储器的连接.
Game Boy Architecture 计算机体系结构课程报告 --刘继元.
微处理器设计2 刘鹏 College of ISEE Zhejiang University
摩擦力.
空中英語教室 影音典藏學習系統.
第二部分 微机原理 第5章 存储器 主讲教师:喻红.
小太陽兒童人文藝術學院兒童畫展 地點:住院大樓9F、11F外走道( )
第6章 半导体存储器和可编程逻辑器件 6.1 概述 6.2 ROM(只读存储器) 6.3 RAM (随机存取存储器)
5-6 串列埠模式0輸出埠擴充實習.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
空中英語教室 影音典藏學習系統.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
團體衛生教育護理創意競賽 報告者:護理科 計畫主持人邱馨誼講師
空中英語教室 影音典藏學習系統.
第七章 半导体存储器.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
6-1 燃油系統工作原理 6-2 汽油濾清器更換 6-3 汽油泵檢查與更換
2.4 让声音为人类服务.
FPPA 程式設計 這一章開始正式進入FPPA程式設計的世界,我會從一個簡單的程式開始解說,一邊介紹專案開發時最常應用的技巧還有程式控制的手段,一邊把系統規畫的概念導入給大家,讓大家對專案的規畫能有一個初步的概念。
暗房技術實驗 顯影 停影 定影 授課教授:莊東漢 林招松 教授 助教:朱峰民 實驗目的 暗房技術 實驗設備與材料 實驗結果 實驗原理
指數、對數函數 數101乙 周文翔 朱哲明 張良聿.
李商隐诗两首 锦 瑟 马 嵬 夕阳无限好,只是尽黄昏。.
Presentation transcript:

第十一章 Flash存储器的在线编程 主要内容 Flash存储器概述与编程模式 MC68HC908GP32单片机Flash存储器编程方法 《嵌入式应用技术基础教程》课件 第十一章 Flash存储器的在线编程 主要内容 Flash存储器概述与编程模式 MC68HC908GP32单片机Flash存储器编程方法 GP32单片机Flash在线编程汇编语言实例 GP32单片机Flash在线编程C语言实例 HCS08系列单片机Flash编程方法

11.1 Flash 存储器概述与编程模式 11.1.1 Flash存储器的基本特点与编程模式 (1)Flash存储器的基本特点 《嵌入式应用技术基础教程》课件 11.1 Flash 存储器概述与编程模式 11.1.1 Flash存储器的基本特点与编程模式 (1)Flash存储器的基本特点 ① 固有不挥发性 ② 易更新性 ③ 成本低、密度高、可靠性好 (2)Flash存储器的两种编程模式 ①监控模式(Monitor Mode)或写入器模式 ②用户模式(User Mode)或在线编程模式 11.1 Flash存储器概述与编程模式

11.1.2 M68HC08系列单片机Flash存储器的特点 与编程模式 《嵌入式应用技术基础教程》课件 11.1.2 M68HC08系列单片机Flash存储器的特点 与编程模式 (1)M68HC08系列单片机Flash存储器的特点 第一,编程速度快及可靠性高。 第二,单一电源电压供电。 第三,支持在线编程。 11.1 Flash存储器概述与编程模式

(2)M68HC08系列单片机Flash存储器的编程模式 《嵌入式应用技术基础教程》课件 (2)M68HC08系列单片机Flash存储器的编程模式 M68HC908系列单片机中绝大多数型号在其内部带有监控ROM,其地址和大小取决于芯片型号。 Flash存储器工作于监控模式的条件是: ① 复位向量($FFFE~$FFFF)内容为“空”($FFFF)。 ② 单片机复位时在IRQ引脚上加上高电压(1.4~2Vdd),并给某些I/O脚置适当值(与芯片型号有关,设计时,参考芯片手册)。 M68HC908系列单片机的Flash存储器工作于用户模式不需要特别的条件,在单片机正常工作的过程中,程序可以随时转入对Flash存储器进行编程操作。这种情况下对Flash存储器的擦除与写入,不需要用户提供其它外部硬件条件。 返回 11.1 Flash存储器概述与编程模式

11.2 MC68HC908GP32单片机Flash存储器编程方法 《嵌入式应用技术基础教程》课件 11.2 MC68HC908GP32单片机Flash存储器编程方法 11.2.1 Flash存储器编程的基本概念 (1)对Flash编程的两种基本操作:擦除(Erase)和写入(Program) 擦除操作的含义是将存储单元的内容由二进制的0变成1, 写入操作的含义是将存储单元的内容由二进制的1变成0。 擦除及写入操作都是通过设置或清除Flash存储器的控制寄存器(FLCR)中的某个或某些位来完成的。 11.2 GP32 Flash存储器编程方法

(2)Flash片内单位:页(Page)和行(Row) 《嵌入式应用技术基础教程》课件 (2)Flash片内单位:页(Page)和行(Row) 页和行的大小(字节数)随整个Flash存储器的大小变化而变化,但页的大小始终为行的两倍。例如MC68HC908GP32内含32K的Flash存储器(地址为$8000~$FDFF),每页的大小为128字节,每行的大小为64字节;而MC68HC908JL3片内Flash存储器仅有4K,每页和每行的大小也分别变为64字节和32字节。 (3)Flash的整体擦除和页擦除 对于GP32单片机来说,对Flash存储器的擦除操作可以进行整体擦除也可以仅擦除某一起始地址开始的一页(128字节)。也就是说,不能仅擦除某一字节或一次擦除小于128字节。注意这一特点,在数据安排时尤为重要。GP32单片机的写入操作以行(64字节)为基础,一次连续写入数据个数只能在一行之内。当然,不经过擦除的区域,不能进行写入,这一点需特别注意。 11.2 GP32 Flash存储器编程方法

11.2.2 Flash存储器的编程寄存器 (1)Flash控制寄存器(Flash Control Register — FLCR) 《嵌入式应用技术基础教程》课件 11.2.2 Flash存储器的编程寄存器 (1)Flash控制寄存器(Flash Control Register — FLCR) FLCR的地址:$FE08,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 HVEN MASS ERASE PGM 复位 0 0 0 0 0 0 0 0 D7~D4位:未定义。 D3 — HVEN位:高压允许位(High-Voltage Enable Bit)。 D2 — MASS位:整体擦除控制位(Mass Erase Control Bit)。 D1 — ERASE位:擦除控制位(Erase Control Bit)。 D0 — PGM位:编程(写入)控制位(Program Control Bit)。 11.2 GP32 Flash存储器编程方法

(2)Flash块保护寄存器(Flash Block Protect Register — FLBPR) 《嵌入式应用技术基础教程》课件 (2)Flash块保护寄存器(Flash Block Protect Register — FLBPR) FLBPR的地址:$FF7E,它的内容为Flash保护区域的起始地址的14~7位,保护区域的起始地址的最高位始终为1,而保护区域的起始地址的低7位(位6~0)始终为0。对FLBPR写入,可以设定被保护的Flash区域,它本身也是一个Flash字节。当Flash处于保护状态时,擦除和写入操作都是受限制的,HVEN将无法被正常置起。Flash块保护寄存器设定的只是保护区域的起始地址,保护区域的结束地址始终为Flash存储区的结束地址($FFFF)。例如,设定FLBPR的值为$02(%0000 0010),则保护区域为$8100~$FFFF(%1000 0001 0000 0000 ~ %1111 1111 1111 1111)。 特别情况是:FLBPR的存储内容为$00,整个Flash存储区都受到保护;如果FLBPR的存储内容为$FF,则整个Flash存储区都可以被擦除或写入。 注:只有当单片机处于运行用户程序时,对FLBPR本身和Flash保护区域的擦写操作保护才是有效的。复位不影响FLBPR。 11.2 GP32 Flash存储器编程方法

GP32与JL3芯片Flash块保护寄存器设置比较 《嵌入式应用技术基础教程》课件 GP32与JL3芯片Flash块保护寄存器设置比较 GP32 JL3 FLBPR内容 受保护的Flash区域 $00(%0000 0000) $8000 ~ $FFFF $00 ~ $60 $EC00 ~ $FFFF $01(%0000 0001) $8080 ~ $FFFF $62(%0110 0010) $EC40 ~ $FFFF $02(%0000 0010) $8100 ~ $FFFF $64(%0110 0100) $EC80 ~ $FFFF …… $68(%0110 1000) $ECC0 ~ $FFFF $FE(%1111 1110) $FF00 ~ $FFFF $FF(%1111 1111) Flash区不被保护 $FFC0 ~ $FFFF 注:对MC68HC908GP32而言的,FLBPR设定的是16位起始地址的第14~7位(第15位恒为1);而对MC68HC908JL3而言,它们设定的是16位起始地址的第12~5位(第15~13位恒为1) 。 11.2 GP32 Flash存储器编程方法

11.2.3 Flash存储器的编程过程 (1)页擦除操作 《嵌入式应用技术基础教程》课件 MC68HC908GP32的Flash编程的基本操作: (1)页擦除操作 下面过程可以擦除GP32的Flash存储器的一页(128字节): $2→FLCR(1→ERASE位,0→MASS位):进行页面擦除; 读Flash块保护寄存器FLBPR; 向被擦除的Flash页内任意一个地址写入任意值,一般向待擦除页 首地址写入0; ①延时tnvs(>10μs); ②$A→FLCR(1→HVEN位); ③ 延时terase(>1ms); ④ $8→FLCR(0→ERASE位); ⑤ 延时tnvh(>5μs); ⑥ $0→FLCR(0→HVEN位); ⑦ 延时trcv(>1μs),完成一页的擦除操作。 11.2 GP32 Flash存储器编程方法

(2)整体擦除操作 《嵌入式应用技术基础教程》课件 下面过程擦除GP32的整个Flash区域,以便把新的程序装入Flash存储器: ① $6→FLCR(1→ERASE位,1→MASS位):进行整体擦除; ② 读Flash块保护寄存器FLBPR; ③  向被擦除的Flash任意一个地址写入任意值,为方便起见,一般向首地址写入0; ④ 延时tnvs(>10μs); ⑤ $E→FLCR(1→HVEN位、MASS位、ERASE位); ⑥  延时tMerase(>4ms); ⑦  $C→FLCR(0→ERASE位); ⑧  延时tnvhl(>100μs); ⑨ $0→FLCR(0→HVEN位、MASS位); ⑩延时trcv(>1μs),完成整体擦除操作。 11.2 GP32 Flash存储器编程方法

(3)编程操作 《嵌入式应用技术基础教程》课件 MC68HC908GP32的Flash编程操作以行(64字节)为单位进行的。写入过程如下: ⑴ $1→FLCR(1→PGM位); ⑵ 读Flash块保护寄存器FLBPR; ⑶ 向将要写入的Flash行内任意一个地址写入任意值,为方便起见,一般向行首地址写入0,这一步选定了所要编程的行,以下的目标地址必需在这一行中; ⑷ 延时tnvs(>10μs); ⑸ $9→FLCR(1→HVEN位); ⑹ 延时tpgs(>5μs); ⑺ 待写数据写入对应的Flash地址; ⑻ 延时tprog(>30μs),完成一个字节的写入(编程)工作; ⑼ 重复⑺、⑻,直至同一行内各字节写入完毕; ⑽ $8→FLCR(0→PGM位); ⑾ 延时tnvh(>5μs); ⑿ $0→FLCR(0→HVEN位); ⒀ 延时trcv(>1μs)以后,完成本行写入工作,可以读出校验。 11.2 GP32 Flash存储器编程方法

Flash从设置PGM或ERASE位到HVEN建立时间 MC68HC908GP32的Flash编程参数 参数 符号 最小值 最大值 单位 Flash行大小 - 64 字节 Flash页大小 128 Flash读写周期 tread 32K 8.4M Hz Flash页擦除时间 terase 1 ms Flash整体擦除时间 tmerase 4 Flash从设置PGM或ERASE位到HVEN建立时间 tnvs 10 μs Flash高电平维持时间(页擦除时) 5 Flash高电平维持时间(整体擦除时) tnvhl 100 Flash写入编程维持时间 tpgs ns Flash写入编程时间 tprog 30 40 Flash返回只读状态时间 trcv Flash累积高电平时间 thv 25 Flash行擦除次数 10K 次数 Flash行写入次数 Flash数据保持时间 年 返回 11.2 GP32 Flash存储器编程方法

11.3 GP32单片机Flash在线编程汇编语言实例 《嵌入式应用技术基础教程》课件 11.3 GP32单片机Flash在线编程汇编语言实例 11.3.1 Flash存储器的擦除及写入汇编子程序 (1)擦除子程序 (2)写入子程序 (3)擦除与写入子程序编程要点说明 ① RAM中要留有足够的缓冲区,以便存放复制到RAM中的子程序,具体值是取擦除与写入子程序中的大者即可。 ② 擦除及写入子程序中要调用的延时子程序均随其后,以便同时复制到RAM中,最后一个标号是为复制方便而加入. ③ 擦除及写入子程序中对延时子程序的调用必需使用“BSR 子程序名”,而不能使用 “JSR 子程序名”,因为这里的子程序是复制到RAM中执行,程序地址已经发生了变化,只能用相对调用。 11.3 GP32 Flash在线编程汇编语言实例

④ 擦除子程序与写入子程序及其中的延时子程序,若含有跳转语句,不能使用“JMP 地址”,只能使用“BRA 地址”。原因同上。 ⑤ 使用不同型号芯片时,上述子程序中延时时间应根据芯片手册予以变动。延时子程序也应根据不同的总线频率加以变化,确保时间满足时序要求。 ⑥ 一次擦除后未被写入过的区域可以再次调用写入子程序写入,但写入过的区域,未经擦除不能重写。 ⑦ 由于擦除是每次擦除一页(128字节),所以数据应合理安排,避免误擦。 ⑧ 页首地址的定义须遵照保护寄存器FLBPR定义的规则,即对GP32来说,页地址的低6位为0。 ⑨ 在线编程时使用的Flash存储区域应在程序Flash存储区域之前,因为Flash保护区为FLBPR决定的地址至末尾。 11.3 GP32 Flash在线编程汇编语言实例

11.3.2 Flash存储器在线编程汇编主程序及PC方程序 《嵌入式应用技术基础教程》课件 11.3.2 Flash存储器在线编程汇编主程序及PC方程序 (1)单片机方程序流程图 单片机方程序的主要功能是: ①不断地向PC机发出握手信号,并监测PC机返回的握手信号。可以看到串行通信指示灯闪烁,表明MCU在向PC机发送握手信号。 ②若收到握手信号,表明PC机可以发送数据,设要写入数据的个数为N,则单片机首先将接收数据个数N放入内存(接收的数据在一行之内,N小于等于64),随后接收N个数据,放入内存缓冲区。 ③擦除指定Flash区域,将收到的N个数据写入Flash区。 ④读出该Flash区的数据,并发送到PC机。 11.3 GP32 Flash在线编程汇编语言实例

给擦除子程序EraseSub的入口赋值,调用EraseSub,擦除Flash区$8000开始的一页 《嵌入式应用技术基础教程》课件 进行通信握手,发握手信号 接收N(<=64)→内存 接收N个数据放入内存缓冲区 给擦除子程序EraseSub的入口赋值,调用EraseSub,擦除Flash区$8000开始的一页 给写入子程序WriteSub的入口赋值,调用WriteSub, 将N个数据写入$8000开始的Flash区 从地址$8000开始的Flash区读取N个数据,同时从串行口发送出去 N Y HX赋初值$00 HX+1 =设定数? A中是约定的握手信号吗? 串行口有 数据吗? 接收一个数据→A 主循环开始处 单片机方程序流程图 11.3 GP32 Flash在线编程汇编语言实例

《嵌入式应用技术基础教程》课件 (2)单片机方主程序 (3)PC机方程序及界面 返回 11.3 GP32 Flash在线编程汇编语言实例

11.4 GP32单片机Flash在线编程C语言实例 Flash存储器的擦除及写入C语言子程序 Flash存储器在线编程C语言主函数 《嵌入式应用技术基础教程》课件 11.4 GP32单片机Flash在线编程C语言实例 Flash存储器的擦除及写入C语言子程序 Flash存储器在线编程C语言主函数 返回 11.4 GP32 Flash在线编程C语言实例

11.5 HCS08系列单片机Flash编程方法 11.5.1 Flash存储器的编程寄存器 《嵌入式应用技术基础教程》课件 在MC9S08GB60单片机中,与Flash编程有关的寄存器有6个,它们是Flash时钟分频寄存器(FCDIV)、Flash选项寄存器(FOPT和NVOPT)、Flash配置寄存器(FCNFG)、Flash保护寄存器(FPROT和NVPROT)、Flash状态寄存器(FSTAT)和Flash命令寄存器(FCMD),对应的地址分别为$1820、$1821、$1823、$1824、$1825和$1826。下面分别阐述这些寄存器的功能及用法。 11.5 HC08系列单片机 Flash编程方法

(1)Flash时钟分频寄存器(FLash Clock Divider Register — FLCR) 《嵌入式应用技术基础教程》课件 (1)Flash时钟分频寄存器(FLash Clock Divider Register — FLCR) FLCR的地址:$1820,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 DIVLD PRDIV8 DIV5 DIV4 DIV3 DIV2 DIV1 DIV0 复位 0 0 0 0 0 0 0 0 D7 — DIVLD位:分频设置状态标志位(Divisor Loaded Status Flag),只读位。 D6 — PRDIV8位:Flash预分频设置位(Prescale Flash Clock by 8)。 D5 ~ D0 位:DIV5~DIV0位,Flash时钟分频器的分频因子。Flash的内部工作时钟fFCLK的计算方法如下: 如果PRDIV8=0,fFCLK=fbus÷([DIV5:DIV0]+1) 如果PRDIV8=1,fFCLK=fbus÷(8×[DIV5:DIV0]+1) 11.5 HC08系列单片机 Flash编程方法

(2)Flash选项寄存器(Flash Options Register — FOPT和NVOPT) 《嵌入式应用技术基础教程》课件 (2)Flash选项寄存器(Flash Options Register — FOPT和NVOPT) FOPT的地址:$1821,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 KEYEN FNORED - - - - SEC01 SEC00 复位 将NVOPT中的内容装载到该寄存器中 D7—KEYEN位:后门锁机构允许位(Backdoor Key Mechanism Enable)。KEYEN=0,表示不能用后门锁机构来解除存储器的保密性;KEYEN=1,如果用户使用固件,写入8个字节的值,并且和后门钥匙NVBACKKEY~NVBACKKEY+7相匹配,在MCU复位前,存储器的保密性会暂时解除。 D6—FNORED位:矢量重定向禁止位(Vector Redirection Disable)。FNORED=1,矢量重定向禁止;反之允许。 D5~D2位:未定义。 D1~D0位 — SEC01~SEC00位:安全状态码。 11.5 HC08系列单片机 Flash编程方法

(3)Flash配置寄存器(Flash Configure Register — FCNFG) 《嵌入式应用技术基础教程》课件 (3)Flash配置寄存器(Flash Configure Register — FCNFG) FOPT的地址:$1823,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 KEYACC 复位 0 0 0 0 0 0 0 0 D7~D6位、 D4~D0位:未定义。 D5 — KEYACC位:写访问钥匙允许位(Enable Writing of Access Key)。 KEYACC=1,表示写BVBACKKEY($FFB0-$FFB7)被认为是进行密码比较;KEYACC=0,表示写BVBACKKEY($FFB0-$FFB7)被解释为Flash擦写命令的开始。 11.5 HC08系列单片机 Flash编程方法

(4)Flash保护寄存器(Flash Protect Register — FPORT和NVPROT) 《嵌入式应用技术基础教程》课件 (4)Flash保护寄存器(Flash Protect Register — FPORT和NVPROT) FPROT的地址:$1824,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 FPOPEN FPDIS FPS2 FPS1 FPS0 复位 将NVOPT中的内容装载到该寄存器中 D7 — FPOPEN位:打开Flash中的非保护区域位(Open Unprotected Flash for Program/Ease),打开的这些区域可以进行擦写。FPOPEN=1,Flash中非保护区域可以进行擦写操作;FPOPEN=0,整个Flash区域都不可进行擦写操作。 D6 — FPDIS位:Flash保护设置位(Flash Protection Disable)。FPDIS=1,Flash不进行保护;FPDIS=0,Flash保护FPS2:FPS0所设置的区域。 D5~D3 — FPS2~FPS0位:Flash保护区域设置。FPDIS=0时,这3位决定了保护区域的大小。 D2~D0位:未定义。 11.5 HC08系列单片机 Flash编程方法

(5)Flash状态寄存器(Flash Status Register — FSTAT) 《嵌入式应用技术基础教程》课件 (5)Flash状态寄存器(Flash Status Register — FSTAT) FSTAT的地址:$1825,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 FCBEF FCCF FPVIOL FACCER FBLANK 复位 1 1 0 0 0 0 0 0 D7— FCBEF位:Flash命令缓冲区空标志位(Flash Command Buffer Empty Flag)。 D6 — FCCF位:Flash命令完成标志位(Flash Command Complete Flag)。 D5 — FPVIO位:侵害保护标志位(Protection Violation Flag)。 D4 — FACCER位:访问出错标志位(Access Error Flag)。 D2 — FBLANK位:Flash空白标志位(Flash Verified All Blank Flag)。 D3,D1~D0位:未定义。 11.5 HC08系列单片机 Flash编程方法

(6)Flash命令寄存器(Flash Command Register — FCMD) 《嵌入式应用技术基础教程》课件 (6)Flash命令寄存器(Flash Command Register — FCMD) FCMD的地址:$1826,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 FCMD7 FCMD6 FCMD5 FCMD4 FCMD3 FCMD2 FCMD1 FCMD0 复位 0 0 0 0 0 0 0 0 D7~D0位:对Flash进行访问的命令字节。 Flash访问命令表 命令 命令字节 空白检测 $05 写一个字节 $20 写一个字节(批量模式) $25 页擦除 $40 整体擦除 $41 11.5 HC08系列单片机 Flash编程方法

11.5.2 Flash存储器的编程过程 《嵌入式应用技术基础教程》课件 (1)Flash命令的执行步骤 ① 向Flash地址中写入一个数据。地址和数据信息都会被锁定到Flash接口中。对于空白检测和擦除命令,数据信息是一个任意值;对于页擦除命令,地址信息是擦除页(512字节)地址中的任意一个地址;对于空白检测和整体擦除命令,地址信息是Flash中的任意一个地址。 ② 向Flash命令寄存器FCMD中写入需要执行的命令。 ③ 执行命令。将Flash状态寄存器FSTAT的FCBEF位置1,同时开始执行命令寄存器中的命令。 11.5 HC08系列单片机 Flash编程方法

(2)Flash命令的执行流程 GB60 Flash 编 程 例 图 开始 FACCERR? 清错误标志 设置FCDIV[1] 开始 FACCERR? 清错误标志 设置FCDIV[1] 向FLASH地址中写入数据 向FCMD中写入命令字 FCBEF位置1,开始执行命令 FPVIO 或 FACCEER? 出错 退出 FCCF? 1 结束 GB60 Flash 编 程 例 图 11.5 HC08系列单片机 Flash编程方法

GB60 Flash批量写入流程图 开始 FACCERR? 清错误标志 设置FCDIV[1] 向FLASH地址中写入数据 设置FCDIV[1] 向FLASH地址中写入数据 向FCMD中写入命令字 FCBEF位置1,开始执行命令[2] FPVIO 或 FACCEER? 出错 退出 FCCF? 结束 新的批量写入指令吗? GB60 Flash批量写入流程图 11.5 HC08系列单片机 Flash编程方法

(3)Flash命令出错情况 《嵌入式应用技术基础教程》课件 在执行以下操作时,会导致出错,FACCERR自动置1: ① 在向Flash地址写入信息前没有进行FCDIV寄存器设置; ② 在向Flash地址写入信息前FCBEF没有置1; ③ 在执行命令前,执行两次向Flash地址写入信息操作; ④ 在向Flash地址写入信息后,设置除FCMD外的其他Flash控制寄存器; ⑤ 向FCMD中写入表11-6以外的命令字; ⑥ 向FCMD中写入命令字后,试图读写除FSTAT外的寄存器; ⑦ 在执行命令时,MCU进入STOP模式; ⑧ MCU处于保密状态时,使用背景调试接口进行页擦除或写Flash操作(MCU处于保密状态时,使用背景调试接口只能进行空白测试或整体擦除); ⑨ 向FCBEF位写0取消一个命令的执行。 11.5 HC08系列单片机 Flash编程方法

11.5.3 Flash存储器的安全性 《嵌入式应用技术基础教程》课件 HCS08系列MCU使用硬件电路机制来防止非法用户试图访问Flash和RAM存储器的数据。当设置保密性后,Flash和RAM都被看作保密资源,直接页寄存器、高端页寄存器、背景调试模块被认为是非保密资源。执行过程中,可以访问任何位置的内存数据,但通过背景调试接口或不安全的方式来访问保密资源是不允许的。 保密性设置依赖于FOPT中非易失性的数据位SEC01:SEC00来实现。 返回 11.5 HC08系列单片机 Flash编程方法

《嵌入式应用技术基础教程》课件 本章小结 本章主要以HC08系列中的GP32为例阐述Flash存储器的在线编程方法,也简要阐述了HCS08系列中GB60的在线编程方法。本章首先概述了Flash存储器的基本特点,并介绍其编程模式,随后给出M68HC908GP32的Flash存储器编程的基本操作及汇编语言和C语言的在线编程实例。最后讨论MC9S08GB60的Flash存储器编程方法。 返回