欢迎来到天天文库
浏览记录
ID:32896990
大小:56.50 KB
页数:4页
时间:2019-02-17
《苏州大学实验报告-flash在线编程实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、苏州大学实验报告院、系 年级专业 姓名 学号 课程名称 成绩 指导教师 同组实验者 实验日期 实验名称: Flash在线编程实验 一.实验目的 通过该实验,进一步熟悉MT-IDE嵌入式开发系统环境、汇编和C语言以及调试方式;进一步学习串口的相关内容;掌握Flash存储器在线编程的基本概念;熟悉GP32芯片Flash存储器在线编程擦除和写入的步骤;理解课本中的程序代码。二.实验内容 通过PC机的串口发送数据到MCU方,然后将接受到的数据写入到fla
2、sh中以0x8000地址开始的一页中。最后将写入的数据读出发送到PC端校验。 三.实验过程(一)基本过程(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位);⑧
3、延时tnvh(>5μs);⑨$0→FLCR(0→HVEN位);⑩延时trcv(>1μs),完成一页的擦除操作。(2)整体擦除操作下面过程擦除GP32的整个Flash区域,以便把新的程序装入Flash存储器,这是应用系统研制过程中开发工具对GP32编程的准备工作。①6→FLCR(1→ERASE位,1→MASS位):进行整体擦除;②Flash块保护寄存器FLBPR;③向被擦除的Flash任意一个地址写入任意值,为方便起见,一般向首地址写入0;④延时tnvs(>10μs);⑤$E→FLCR(1→HVEN位、MASS位、ERASE位);⑥延时tMerase(>4ms);⑦$C→FLCR(
4、0→ERASE位);⑧延时tnvhl(>100μs);⑨$0→FLCR(0→HVEN位、MASS位);⑩延时trcv(>1μs),完成整体擦除操作。(3)编程操作第4页MC68HC908GP32的Flash编程操作以行(64字节)为单位进行的。当然,一次写入可以小于一行,但不能大于一行。对于已经写过的部分未经擦除不能重新写入变更其数据,否则将引起数据出错。写入过程如下:a.$1→FLCR(1→PGM位);b.读Flash块保护寄存器FLBPR;c.向将要写入的Flash行内任意一个地址写入任意值,为方便起见,一般向行首地址写入0,这一步选定了所要编程的行,以下的目标地址必需在这一
5、行中;d.延时tnvs(>10μs);e.$9→FLCR(1→HVEN位);f.延时tpgs(>5μs);g.待写数据写入对应的Flash地址;h.延时tprog(>30μs),完成一个字节的写入(编程)工作;i.重复g、h,直至同一行内各字节写入完毕;j.$8→FLCR(0→PGM位);k.延时tnvh(>5μs);l.$0→FLCR(0→HVEN位);m.延时trcv(>1μs)以后,完成本行写入工作,可以读出校验。四.编程(一)流程图开始头文件和声明MCU、SCI初始化复位1?结束图1Flash存储器流程图(二)所用寄存器名称及其所用的位Flas控制寄存器(FlashCon
6、trolRegister,FLCR)数据位D7D6D5D4D3D2D1D0定义xxxxHVENMASSERASEPGM复位00100000Flash块保护寄存器(FlashBlockProtectRegister,FLBPR)第4页Flash块保护寄存器设定的只是保护区域的起始地址,保护区域的结束地址始终为Flash存储区的结束地址($FFFF)。对MC68HC908GP32而言,FLBPR设定的是16位起始地址的第14~7位(第15位恒为1)。(三)主要代码段1.汇编方式:主程序部分代码……MainInit:://复位后程序从此开始执行//[系统初始化]SEILDHX#$023
7、F//堆栈初始化TXSJSRMCUInit//调系统初始化子程序GP32Init//[串行口初始化]JSRSCIInit//[程序总循环入口]MainLoop://[发送1个握手信号86]LDA#86//发送握手信号86JSRSCISend1//[等待接收1的握手信号56]JSRSCIRe1CMP#56//是否是56?BNEMainLoop//否,继续握手//[等待接收1个字节=要写入的字符个数(<=64)并存到N中]JSRSCIRe1STAN//[等待接收N个字节并存到以DAT
此文档下载收益归作者所有