• 121.50 KB
  • 2022-04-22 11:24:41 发布

《嵌入式技术基础与实践》习题参考答案.doc

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'嵌入式技术基础与实践(第二版)习题参考答案目录嵌入式技术基础与实践(第二版)1习题参考答案1第1章概述习题参考答案2第2章FreescaleS08微控制器习题参考答案3第3章第一个样例程序及工程组织习题参考答案4第5章串行通信接口SCI习题参考答案6第6章GPIO的应用实例—键盘、LED与LCD习题参考答案9第7章定时器模块习题参考答案10第8章串行外设接口SPI习题参考答案11第9章Flash存储器在线编程习题参考答案13 第1章概述习题参考答案1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统?答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。2.简述嵌入式系统的特点以及应用领域。答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。4.比较MCU与CPU的区别与联系。答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。 第2章FreescaleS08微控制器习题参考答案1.给出AW60存储器映像的简要说明。答:所谓存储器映像,是指地址$0000~$FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash、I/O映像寄存器各使用$0000~$FFFF这个64KB空间中的哪些地址。简单地说,就是$0000~$FFFF这个64KB空间是如何分配的。2.AW60的引脚主要分为哪几类?简要说明主要引脚的功能。答:(1)电源类信号引脚(2)复位信号引脚(3)主要功能模块引脚。比如定时器,IRQ中断等。(4)其他,比如背景调试BKGD引脚主要引脚:AW60最小系统连接的I/O口,以及各具体功能I/O口。3.嵌入式系统中RAM和Flash作用分别是什么?答:一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash要用于存储程序、常数、中断向量等。4.给出AW60的硬件最小系统。答:AW60芯片的硬件最小系统包括电源及其滤波电路、复位电路、晶振电路及PLL滤波电路、写入器接口电路。 第3章第一个样例程序及工程组织习题参考答案1.什么叫通用I/O口?答:所谓通用I/O,也记为GPIO(GeneralPurposeI/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。2.什么叫上拉电阻与下拉电阻?它们的作用是什么?如何选择上拉电阻与下拉电阻的阻值?哪些情况下使用上拉电阻?哪些情况下使用下拉电阻?答:通俗地说,若MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”;他们使得悬空的芯片引脚被上拉电阻或下拉电阻初始化为高电平或低电平;根据实际情况,上拉电阻与下拉电阻可以取值在1KΩ~10KΩ之间,其阻值大小与静态电流及系统功耗相关;当某个引脚需要初始化成高电平时可以通过上拉电阻接电源,当某个引脚要初始化低电平时可以通过下拉电阻接地。3.什么是OC输出?为什么OC输出的I/O口一定要上拉?答:OC输出,即开漏输出,即集电极开路。只有接了上拉电阻,才能输出高低电平,否则只能输出低电平了。4.为什么在无操作系统的嵌入式系统软件主程序中使用无限循环?答:由于程序都是顺序执行的。如果不使用无限循环,程序执行一遍代码,就不能在接受其他的任务操作了。在嵌入式系统中,这是致命的,如果一个嵌入式产品每次只能使用一次或只接受一次任务,那是无法想象的。但是使用了无限循环,就可以不停地监听任务,并执行。5.找出样例子工程的机器码文件,解释S19文件的含义。答:源文件经编译、连接后可获得目标码文件(.S19文件),它是FreescaleMCU的机器码文件,通过写入程序可将机器码下载到目标MCU内的Flash存储器,也可以通过光盘中苏州大学嵌入式系统研发中心开发的独立写入软件SD-Programmer-S08读出写入到Flash的S19的内容,观察实际写入到Flash的内容是否和S19的内容相同。该程序也可以擦写Flash。目标代码文件是以S记录格式表示的机器码文件。S记录格式是Freescale公司的十六进制目标代码文件,它将目标程序和数据以ASCII码格式表示,可直接显示和打印。目标文件由若干行S记录构成,每行S记录可以用CR/LF/NUL结尾。一行S记录由五部分组成,具体细节请参考书中3.4.4。 6.举例给出CW环境C语言工程文件的组织结构图。答:以下是控制小灯闪烁的CW环境C语言工程文件的组织结构图。7.分析Project.prm文件的功能。答:Project.prm文件主要实现了芯片的RAM和ROM的定义,初始化RAM中的变量。初始化堆栈的大小。定义复位向量,即应用程序的默认入口。还包含了启动代码,是硬件复位后的函数入口。 第5章串行通信接口SCI习题参考答案1.简要阐述异步串行通信涉及的主要基本概念。答:串行通信至少涉及到以下几个基本概念:第一,每个字节之间是如何区分开的?第二,发送一位的持续时间是多少?第三,怎样知道传输是正确的?第四,可以传输多远?这些问题属于串行通信的基本概念。2.表征串行通信速度的物理量是什么?串行通信的传输速度有限制吗?答:位长(BitLength),也称为位的持续时间(BitDuration)。其倒数就是单位时间内传送的位数。人们把每秒内传送的位数叫做波特率(BaudRate)。波特率的单位是:位/秒,记为bps。bps是英文bitpersecond的缩写,习惯上这个缩写不用大写,而用小写。通常情况下,波特率的单位可以省略。通常使用的波特率有600、900、1200、1800、2400、4800、9600、19200、38400、57600、115200、128000等。有限制。因为随着波特率的提高,位长变小,以至于很容易受到电磁源的干扰,通信就不可靠了。当然,还有通信距离问题,距离小,可以适当提高波特率,但这样毕竟提高的幅度非常有限,达不到大幅度提高的目的。3.MCU与PC进行通信为什么要进行电平转换?如何进行电平转换?答:在MCU中,若用RS-232总线进行串行通信,则需外接电路实现电平转换。在发送端,需要用驱动电路将TTL电平转换成RS-232电平;在接收端,需要用接收电路将RS-232电平转换为TTL电平。电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。目前广泛使用MAX232芯片较多,该芯片使用单一+5V电源供电实现电平转换。4.给出SCI编程的通用模型。答:SCI具有初始化、接收和发送三种基本操作。按照构件的思想,可将它们封装成三个独立的功能函数,初始化函数完成对SCI模块的工作属性的设定,接收和发送功能函数则完成实际的通信任务。以SCI的初始化、接收和发送三种基本操作为例,来说明实现构件化的全过程。(1)SCI模块是最底层的构件,它主要向上提供三种服务,分别是SCI模块的初始化、接收单个字节和发送单个字节,向下则直接访问模块寄存器,实现对硬件的直接操作。另外,从现实使用角度出发,它还需要封装接收N个字节和发送N个字节的子功能函数。(2)SCI模块在软件上对应1个SCI.c程序源代码文件和1个SCI.h头文件,当需要对它进行移植时,大多数情况下只需简单拷贝这两个文件即可,无需对源代码文件和头文件进行修改,只有当实施不同芯片之间的移植时,才需要修改头文件中与硬件相关的宏定义。(3)上层构件或软件在使用该构件时,严格禁止通过全局变量来传递参数,所有的数据传递都直接通过函数的形式参数来接收。这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。5.简述中断的作用与处理过程。答: 中断是MCU实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。中断的处理过程一般为:关中断(在此中断处理完成前,不处理其它中断)、保护现场、执行中断服务程序、恢复现场、开中断等。6.S08系列MCU都有哪些中断源?答:S08系列MCU有26个中断源,按优先级从高到低的顺序分别是:复位中断(1个)、SWI指令中断(1个)、引脚中断(1个)、低电压检测中断(1个)、ICG中断(1个)、定时器中断(10个)、SPI中断(1个)、SCI中断(6个)、键盘输入中断(1个)、ADC转换完成中断(1个)、IIC中断(1个)和实时中断(1个)。26个中断源只有18个中断向量,有的是几个中断源使用同一个中断向量。7.S08系列MCU的中断执行过程分为哪几个步骤?答:CPU每执行完一条指令,若程序有开放某些中断及总中断(使用CLI指令),则CPU按照优先级次序查询所有中断标志位,若某个中断已发生,则响应该中断请求。中断响应过程是:(1)CPU内的寄存器PCL、PCH、X、A、CCR依次进栈(注意H未被保护,这是为了与HC05系列MCU兼容,所以必要时,H应由用户中断服务程序保护);(2)自动关总中断(即相当于自动执行SEI指令),防止其他中断进入;(3)从相应的中断向量地址取出中断向量(即中断服务程序的入口地址)送给PC;(4)执行中断服务程序,直到执行中断返回指令RTI。RTI指令从堆栈中依次弹出CCR、A、X、PCH、PCL,使CPU返回原来中断处继续执行;(5)若中断过程也允许响应新的中断,可在中断服务程序中用CLI指令开放中断。一般不建议这样做,可用其他编程技巧处理相关问题。8.给出AW60中断编程框架与基本步骤。答:在CW环境下使用AW60芯片中断步骤是:在main.c中,依照“关总中断→开模块中断→开总中断”的顺序打开模块中断;在isr.c文件中,编写中断服务程序,修改中断向量表;按照这种思路,编程的基本步骤可以概括为3步:(1)新建(或者复制)一个isr.c文件,并加入工程中。(2)定义中断向量表(复制isr.c的应修改中断向量表)。(3)定义ISR并在中断向量表中填入相应ISR的名称。如中断处理函数文件(isr.c)之中的函数interruptvoidSCI1_Recv(void)的定义。9.用一种高级语言实现PC方串行数据收发的通用程序(要求:从PC方发送数据A到MCU,MCU收到后,判断是否是A,若是,回发给PC机,在PC机显示“串行口正常”,若不是,则在PC机显示“通信有误”。)参见随书光盘的习题参考解答程序。10.在上一题测试的基础上编写通信程序,实现如下功能: 通过PC机发送一个命令以控制接在PTA0~PTA7口的8个小灯亮暗状态,各个小灯初始状态都为暗,首先进行通信测试,PC机发送“A”(65),若MCU接收到则8个小灯全亮,并回送字符“A”(65),虽然MCU接收到但有问题,不是“A”(65),说明有误码,则4个小灯全亮,并回送字符“0”(48),否则8个小灯全暗无反应,通信测试成功后进入控制状态,PC机发送字符串“11”,PTA0口灯亮;发送“10”,PTA0口灯暗;发送“21”,PTA1口灯亮;发送“20”,PTA1口灯暗;依此类推,当给PTA口发送“01”,8个小灯全亮,发送“00”,全暗。 第6章GPIO的应用实例—键盘、LED与LCD习题参考答案1.为了实现对键盘的编程,至少应该考虑哪几个方面的问题?分别如何解决?答:第一,如何识别键盘上的按键?第二,如何区分按键是否真正地被按下,还是抖动?第三,如何处理重键问题?1)键的识别如何知道键盘上哪个键被按下就是键的识别问题。若键盘上闭合键的识别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。在这里主要讨论未编码键盘的接口技术和键盘输入程序的设计。识别是否有键被按下,主要有查询法、定时扫描法与中断法等。而要识别键盘上哪个键被按下主要有行扫描法与行反转法。2)抖动问题当键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。抖动持续的时间因操作者而异,一般为5~10ms之间,稳定闭合时间一般为十分之几秒~几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。3)重键问题所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。2.编程:对于键盘程序,样例中使用的是中断法。请用查询法实现键盘功能。答:略。3.简述扫描法LED显示编程原理。答:略。具体参见本章6.2.1。4.简述字符型液晶显示控制器HD44780的编程结构。答:从编程角度看,HD44780内部主要由指令寄存器(IR)、数据寄存器(DR)、忙标志(BF)、地址计数器(AC)、显示数据寄存器(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)及时序发生电路构成。5.编程:在LCD上同步显示PC时间。答:略。6.编程:PC机发送一个字节数(0-255),在4连排LED上显示出来。答:略。读者可以自己尝试。 第7章定时器模块习题参考答案1.实现计数与定时的基本方法有哪些?比较它们的优缺点。答:实现计数与定时的基本方法有三种:完全硬件方式、完全软件方式和可编程计数器/定时器方法。其中完全硬件方式速度快,但通用性和灵活性差;完全软件方式的优点是节省硬件。主要缺点是执行延时程序期间,CPU一直被占用,所以降低了CPU的使用效率,也不容易提供多作业环境;可编程计数器/定时器方法的最突出的优点是计数时不占用CPU的时间。2.简述AW60定时器模块的定时功能是如何实现的。答:在AW60定时器的内部有状态和控制寄存器,通过对它某些位的设置,就可以确定多少时间计数器加1,即定时间隔。通过对状态和控制寄存器的某位进行设置,可以决定在计数器溢出时,是否允许中断。利用这样的中断,可以编写中断例程,实现预设的功能。在定时器内部还有个预置寄存器,当计数器的值等于预置寄存器的值时,称为计数器溢出,当计数器溢出时,计数器的值被赋0,同时将计数器溢出标志等状态置于状态和控制寄存器中。使用预置计数功能可以得到精确的溢出时间,可以在任何时候暂停或清除计数器的计数(溢出功能是定时器的最基本的功能)。3.定时器模块的核心是什么,为什么?答:定时器模块的核心是计数器。计数器装载预置的初始计数值之后,启动会以预设的频率进行加一或者减一的运作,当其值变化到0(溢出到0或者减到0)时,即完成了定时的功能,其定时的时长取决于预置的初始计数值和预设的频率。4.设计并编程:仿照本章给出的定时器1通道0输入捕捉中断里程,捕捉两路输入信号,分别用相应的指示灯指示。请参考随书光盘内的习题解答程序。5.比较AW60定时器模块实现输出比较功能与PWM功能的异同点。答:PWM产生一个在高电平和低电平之间重复交替的输出信号,这个信号被称为PWM信号,也叫脉宽调制波。通过指定所需的时钟周期和占空比来控制高电平和低电平的持续时间。通常定义占空比为信号处于高电平的时间(或时钟周期数)占整个信号周期的百分比,方波的占空比是50%。脉冲宽度是指脉冲处于高电平的时间。PWM的另一个常见用途是控制输入到某个设备的平均电流或电压。PWM的常见应用是为其他设备产生类似于时钟的信号。因为S08是8位MCUs系列,定时器通道寄存器的设置被缓存起来,以确保连续16位数据更新,并避免出现意外的PWM脉冲宽度。写TPMxCnVH或TPMxCnVL中的任意一个寄存器,也就是写缓冲寄存器。在边沿对齐模式下,只有在一个16位寄存器的两个8位字节都被写入后,且TPMxCNTH:TPMxCNTL计数器中的值为0x0000,计数值被转移至相应的定时器通道寄存器(直到下一个整周期新的占空比才有效)。6.综合设计:利用输入捕捉功能,只用定时器的一个通道,测量一路输入,将输入信号的电平(只区分高低)随时间变化的情况以图形方式显示在PC屏幕上。请参考随书光盘内的习题解答程序。 第8章串行外设接口SPI习题参考答案1.简述SPI工作原理。答:可以从SPI工作时序,主机从机,以及如何传输数据等几个方面展开描述,具体参加本章第一节内容。2.为什么在SPI通信时序图中会有四种情况?答:先来解释一下SPI通信时所涉及的一时钟相位与时钟极性。时钟相位,表示时钟信号在空闲时是高电平还是低电平。时钟极性,决定数据是在SPSCK的上升沿还是在SPSCK时钟的下降沿采样。从上面的分析我们可以看出来,通讯双方确定SPI通信时选择时序时,一种有四种时序可以选择,使得双方的时钟相位与时钟极性保持一致。3SPI通信时时钟以那个设备的时钟为基准?为什么?答:SPI主设备的时钟极性和时钟相位是以从设备的时钟极性和时钟相位为基准的,因此在配置SPI接口时,必须先了解从设备的时钟要求。从设备何时接收数据,是在时钟的上升沿还是下降沿?何时输出数据,是在时钟的下降沿还是上升沿?由于主设备的接收引脚与从设备的发送引脚相连,主设备的发送引脚与从设备的接收引脚相连接,即从设备接收的数据时主设备的发送引脚发出的,因此主设备接收数据的极性跟从设备接收数据的极性相反,跟从设备发送数据的极性相同。4.SPI与SCI同样都是串行数据传输,为什么SPI协议通信双方多了一个时钟线SPSCK答:正因为SPI数据是一位一位传输的,所以在传输的时候要有SPSCK提供时钟脉冲完成数据的传输,数据通过MOSI,MISO线在始终上升沿或者下降沿时改变,在紧接着的下降沿或上升沿被读取,完成一位数据的读取,输入也使用同样的原理。这样,在至少8次时钟信号的改版(上沿和下沿为一次),就可以完成8为数据传输。5.同步通信与异步通信的区别与联系。答:异步通讯在发送字符之前,发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接受下来。在每次传输的数据之前要加上起始位跟停止位(结束位),异步传输的好处是通讯设备简单、发送端可以随时发送数据。缺点就是在每次传输时传输的,开始位和停止位的传输给通讯双方带来了额外的传输。同步通信的通信双方必须先建立同步,即双方的时候要调整到一个频率。收发双方不停地发送和接收持续的同步比特流。因此通讯双方必须保持相同的时钟频率,很显然这也是同步通信的缺点所在,而且双发在通信之前必须确定好传输时的时序图,时钟相位、时钟极性都必须保持一致。好处就是不用传输额外的标志比特。6.简述SPI与IIC的区别。(放在IIC章节)答:SPI协议没有定义寻址机制,需通过外部SS信号线选择设备,当出现多slave应用时,需要多根SS信号线,实施起来较I2C要复杂。此外,SPI总线不支持总线控制权仲裁,故只能用在单Master的场合;而I2C可以支持多Master的应用。 SPI协议相对I2C要简单,没有握手机制,数据传输效率高,速率也更快,通常应用中可达几Mbps;此外SPI是全双工通信,可同时发送和接收数据,因此,SPI比较适合用于数据传输的场合。比如需要较大批量数据传输的场合(比如MMC/SD卡的数据传输就支持SPI模式),或者无需寻址传输的场合。而I2C协议功能较丰富,但也相对复杂,多用在传输一些控制命令字等有意义数据的场合。。SPI接口属于一种非常基本的外设接口,但是应用却很广泛。Motorola还推出了扩展功能的QSPI(QueuedSPI)接口,应用更为广泛。编程训练题7.阅读网络光盘中关于AT45DB041D芯片的介绍,在本书给出的参考程序的基础上,完善块擦除,扇区擦除灯驱动函数,并测试。 第9章Flash存储器在线编程习题参考答案1.简述Flash存储器的特点。Flash存储器是一种高密度、真正不挥发的高性能读写存储器,兼有功耗低、可靠性高等优点。与传统的固态存储器相比,Flash存储器的主要特点如下。①固有不挥发性:这一特点与磁存储器相似,Flash存储器不需要后备电源来保持数据。所以,它具有与磁存储器一样无需电能保持数据的优点。②易更新性:Flash存储器具有电可擦除的特点。相对于EPROM(电可编程只读存储器)的紫外线擦除方式,Flash存储器的电擦除功能为开发者节省了大量时间,也为最终用户更新存储器内容提供了方便条件。③成本低、密度高、可靠性好:与EEPROM(电可擦除可编程只读存储器)相比较,Flash存储器的成本更低、密度更高、可靠性更好。2.AW60的Flash存储器有什么特点?①编程速度快且可靠性高。S08系列MCU的片内Flash存储器的整体擦除时间可以控制在5ms以内,对单字节的编程(写入)时间也在40ns以内。片内Flash存储器的存储数据可以保持10年以上,可擦写次数均在1万次以上。②单一电源电压供电。一般的Flash存储器,在正常的只读情况下,只需要用户为其提供普通的工作电压即可,而要对其编程(写入)时还需要同时提供高于正常工作电压的编程电压。正因为Flash的读写电压要求不同,一些公司的内置Flash存储器便放弃了在线擦除写入功能,而仅有通过编程器的写入功能。但是,S08系列MCU通过在片内集成的电荷泵,可由单一工作电压在片内产生出编程电压,这样就实现了单一电源供电的在线编程电压,而不需要为Flash的编程增加额外的编程电压模块,同时也使S08系列MCU兼具了两种编程模式。③支持在线编程。S08系列MCU的片内Flash存储器支持在线编程,允许MCU内部运行的程序去改写Flash存储器的内容,这样就可以代替外部电可擦除存储芯片,从而减少了外围部件,增加了嵌入式系统开发的方便性。3.AW60的Flash存储器有哪两种编程模式?两种模式有什么区别?从Flash存储器的基本特点可以看出,在MCU中可以利用Flash存储器来固化程序,一般情况下通过编程器来完成这种操作,Flash存储器工作于这种情况称为监控模式(MonitorMode)或写入器模式,这与一般的EPROM、OTP、EEPROM装入程序的方式十分相似。另一方面,由于Flash存储器具有电可擦除的特点,因此在程序运行过程中有可能对Flash存储区的数据或程序进行更新,Flash存储器工作于这种情况叫做用户模式(UserMode)或在线编程模式(In-CircuitProgram)。但是,并不是所有类型的MCU的内部Flash存储器都具有在线编程功能。目前有的公司出品的MCU还不支持Flash存储器在线编程模式。Freescale的S08系列MCU的片内Flash均支持这两种编程模式。一般来说,两种模式对Flash存储器的编程操作的程序是一致的,差别在于调用这些程序的方式和环境的不同。4.AW60的Flash存储器编程时涉及哪些寄存器,其各自地址是什么? 在AW60中,与Flash编程有关的寄存器有6个,它们分别是Flash时钟分频寄存器(FCDIV)、Flash选项寄存器(FOPT和NVOPT)、Flash配置寄存器(FCNFG)、Flash保护寄存器(FPROT和NVPROT)、Flash状态寄存器(FSTAT)和Flash命令寄存器(FCMD),其对应的地址分别为$1820、$1821、$1823、$1824、$1825和$1826。5.AW60的Flash存储器的编程命令一般执行哪些步骤?①向Flash地址中写入一个数据。地址和数据信息都会被锁定到Flash接口中。对于空白检测和擦除命令,数据信息是一个任意值;对于页擦除命令,地址信息是擦除页(512字节)地址中的任意一个地址;对于空白检测和整体擦除命令,地址信息是Flash中的任意一个地址。②向Flash命令寄存器FCMD中写入需要执行的命令。③执行命令。将Flash状态寄存器FSTAT的FCBEF位置1,同时开始执行命令寄存器中的命令。6.AW60的Flash存储器的编程命令的执行流程是怎样的?在进行Flash擦写编程时,也需要遵循严格的时序流程。批量模式写一个字节命令和其他命令的执行过程有很大差别。批量模式意味着有很多连续数据需要写入Flash,每执行一次写入命令后,向Flash中加入的写入高电压并不撤销,这样就加快了数据写入速度;而对于其他的命令,在命令执行的时候,加高电压,命令执行结束的时候立即撤销高电压。7.擦除与写入子程序编程要点都有哪些?使用Flash在线编程技术可以省去外接EEPROM,不仅简化了电路设计,也提高了系统稳定性。我们将Flash的执行程序编译后存放到Flash中,当需要使用时则将这段代码复制到RAM中,同时需要修改一下执行指令,正是由于这个特殊的过程,根据实际编程调试与项目开发过程中积累的经验,提出以下注意点,供读者参考:①RAM中要留有足够的缓冲区,以便存放复制到RAM中的子程序,具体值是取擦除与写入子程序中的大者即可。它们的大小可在编译后的.LST文件中查得。②一次擦除后未被写入过的区域可以再次调用写入子程序写入,但写入过的区域,未经擦除不能重写。③由于擦除是每次擦除一页(512字节),所以数据应合理安排,避免误擦。④页首地址的定义须遵照保护寄存器FLBPR定义的规则。⑤在线编程时使用的Flash存储区域应在程序Flash存储区域之前,因为Flash保护区为FLBPR决定的地址至末尾。'