




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、复习课复习课2友情提示在这里的肯定考,不在这里的不一定不考。特此提醒!3嵌入式系统定义以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。4嵌入式系统的三大要素和两大特征 三大要素: 嵌入性、专用性、计算机系统 两大特征: 实时性、专用的开发环境5嵌入式系统和单片机的区别和联系嵌入式系统 单片机系统l目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计l单片机系统多为4位、8位、16位机,不适合运行操作系统,难以进行复杂的运算及处理功能l嵌入式系统强调基于平台的设计、软硬件协同设
2、计,单片机大多采用软硬件流水设计l嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同6嵌入式设备和嵌入式系统的区别和联系宿主和模块的关系智能电饭煲(电脑控制板)7嵌入式处理器和嵌入式系统的区别和联系构成计算机系统,作嵌入式应用处理器+外围设备=系统8交叉编译嵌入式系统采用“宿主机/目标机”方式交叉编译。USB/RS232/以太网以太网宿主机:通用计算机(宿主机:通用计算机(PC),开发环境。),开发环境。目标机:嵌入式系统,运行环境。目标机:嵌入式系统,运行环境。内存小内存小存储空间有限存储空间有限计算能力有限计算能力有限9实时性高速 高实时性不同应用
3、系统,不同的实时要求10存储器系统-Flash*FLASH:闪存分类:NOR Flash 和 NAND Flash读速度: NOR Flash类似SDRM,数据/地址线独立,读更快, NAND Flash分页存储,存储量大,读一般写速度: NOR一次擦除64128K,5秒, NAND一次擦除832K,4ms NOR适合代码存储(读快)适合代码存储(读快)NAND适合数据存储(写快)适合数据存储(写快)11存储器系统存储器系统- -FlashFLASH:闪存最典型特点:分块操作,整块擦除,整块写入,按字节处理 FLASH内存内存FLASHFLASH12 中间层中间层学名:硬件抽象层HAL(Har
4、dware Abstract Layer)工程:板极支持包BSP(Board Supporting Pakeage)作用:它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。优点:移植 开发BSP具有以下两个特点:操作系统相关性 硬件相关性 l功能层功能层l软件层软件层l中间层中间层l硬件层硬件层13 嵌入式系统的架构嵌入式系统的架构14微处理器微处理器(MPU) (MPU) MPU嵌入式微处理器是由通用计算机中的CPU演变而来的。只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。Intel创新模式 :不是简单的删
5、除15片上系统SoC (System on Chip )。将功能做在一个芯片上,像是ARM RISC、DSP或是其他的微处理器核心,加上通信的接口单元,像通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。嵌入式片上系统嵌入式片上系统(System On Chip)16CISC和和RISC1、CISC:复杂指令集:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式,指令长度可变。具有大量的指令和寻址方式,指令长度可变。大多
6、数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。2、RISC:精简指令集:精简指令集(Reduced Instruction Set Computer) 只包含最有用的指令,指令长度固定确保数据通道快只包含最有用的指令,指令长度固定确保数据通道快速执行每一条指令使速执行每一条指令使CPU硬件结构设计变得更为简单。硬件结构设计变得更为简单。 ARM7系列是冯诺依曼结构,指令系统是RISC。 ARM9系列是哈佛结构,指令系统是RISC。 TI的DSP系列是哈佛结构,指令系统是CISC。 MCS-51是哈佛结构,指令系统是CISC。 PIC单片机是哈佛结构,指令系统是RISC
7、。辨析哈佛结构和冯哈佛结构和冯. .诺依曼结构主要是指存储诺依曼结构主要是指存储器结构,与指令系统没有严格的对应关系。器结构,与指令系统没有严格的对应关系。提醒注意:后面考察提醒注意:后面考察原理 预先取若干条指令 每条指令分解为多步,并让各步操作重叠(分成几步称为几级流水) 当前指令尚未执行完时,提前启动后续指令1.3 流水线技术译码译码取指取指执行执行add译码译码取指取指执行执行sub译码译码取指取指执行执行cmp时间时间加加Add减减Sub比较比较Cmp举例:汽车等工厂举例:汽车等工厂/ /列概念列概念5+3-70?5+3-70?工作原理工作原理设备设备1控制控制设备设备2控制控制设备
8、设备3控制控制设备设备4控制控制设备设备5控制控制设备设备6控制控制高阻高阻联通联通控制控制控制控制 系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器。 时钟 晶振:提供标准频率 频率综合器:产生各种频率 时钟电路 为嵌入式系统产生时序脉冲举例:广播体操举例:广播体操/ /列概念列概念 通用文件系统不适用于嵌入式系统。 Flash上实现文件系统,了解Flash的特点: 擦除-写入、块操作 Flash上文件系统: (1)数据管理:读取、修改、删除 (2)考虑擦写时间,协调数据吞吐量2.3.2 文件系统文件系统1.3 嵌入式软件都是无限循环嵌入式软件都是无限循环 嵌入式软件的结构上都是没有
9、出口的,程序不能退出,整个程序的基本结构是无限循环无限循环。配合中断构成整体。一、基本特征列概念列概念main() /* 超级循环超级循环 */ while(1) action1(); /* 常规循环操作常规循环操作 */ action2(); /* 中断中断1对应的服务程序对应的服务程序 */_interrupt ISR1() /* 中断服务工作中断服务工作 */ 后台后台1.4 中断中断前台前台中断工作原理中断工作原理 当某种内部或外部事件发生时,产生中断信号,嵌入式系统的中断系统将迫使CPU暂停正在执行的无限循环,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的无限循环处,继续执
10、行下去。 中断信号 中断后要干的事 循环的恢复 中断机制 中断服务程序 中断现场入栈1.4 中断中断列概念列概念/ /举例举例 “中断中断+无限循环无限循环”构成的构成的“前台前台/后台后台”软件结构是嵌入式软件的基本结构特征软件结构是嵌入式软件的基本结构特征 裸机程序就是直接实现的裸机程序就是直接实现的“前台前台/后台后台”软件软件 名词解释:前台名词解释:前台/后台后台 常规循环任务 = 后台 = 无限循环 设备中断任务 = 前台 = 中断。1.4 中断中断列概念列概念30 操作系统是一段核心程序1. 作为软硬件资源的控制中心软硬件资源的控制中心,它以尽量合理有效的方法组织多个用户共享共享
11、计算机的各种资源。2. 作为一台功能强大的虚拟机虚拟机,给用户一个方便、有效、安全的工作环境和开发环境,提供人机交互接口和API函数。 1.1 操作系统举例:上节课举例:上节课wordword和和excelexcel、打印机打印、打印机打印、UNIXUNIX多用户多用户 指拥有CPU资源(寄存器、堆栈)的正正在执行在执行的简单程序。 通用操作系统中的进程和线程。 实时系统中的大部分任务是周期的,编程上每个任务是一个典型的无限循环无限循环。 只有任务能够申请CPU资源。 任务的状态:就绪、运行、挂起就绪、运行、挂起。2.1 任务两大特点:第一是程序,第二有资源两大特点:第一是程序,第二有资源 2
12、.2 调度 内核的主要职责主要职责之一。 什么是调度?决定任务运行的次序。 调度的基本方式有可抢占式和非抢占式。 多数实时内核是基于优先级调度的多种方法的复合。 2.2 调度 先来先服务(FCFS) 最短周期优先(SBF) 优先级法(Priority) 轮转法(Round -Robin) 多级队列法(multi-level queues) 多级反馈队列(multi-level feedback queues)基本的调度算法基本的调度算法2.3 优先级 任务的轻重缓急指示 每个任务按其重要性被赋予一定的优先级。 静态静态优先级与动态动态优先级。(固定和可变) 基于优先级的系统会出现优先级倒置优先
13、级倒置的问题,一个好的实时内核应该提供解决倒置的方法。 已开发出多种算法用于实时任务的优先级分配。提问:被谁赋予?提问:被谁赋予?2.4 代码临界区 指一段不可分割的代码,一旦执行,不能被中断。 实现代码临界区的方法方法有:一是屏蔽中断,通常在代码执行前关闭中断,执行后打开中断,只能用于单处理机的情形;二是通过信号量信号量机制。 UC/OS里内核里得到充分体现提问:屏蔽中断会有何后果提问:屏蔽中断会有何后果举例:前面程序中的举例:前面程序中的a a2.5 信号量 多任务环境下使用的一种设施设施, 它负责协调各个任务, 以保证它们能够正确、合理的使用公共资源公共资源。 用以前查询信号量 信号量符
14、合要求,使用;否则,等待。 使用完要释放信号量。 完成代码临界区功能举例:停车场管理员举例:停车场管理员提问:为什么代码临界区可以使用信号量提问:为什么代码临界区可以使用信号量2.10 抢占 当起执行的任务可以被打断而由另外一个任务执行。 提高了相应外部中断的能力。 多数操作系统是抢占式调度。1 1、80518051单片机的基本组成单片机的基本组成1.中央处理器中央处理器CPU:8位,运算和控制功能位,运算和控制功能2.内部内部RAM:共共256个个RAM单元,用户使用前单元,用户使用前128个单元,个单元,用于存放可读写数据,后用于存放可读写数据,后128个单元被专用寄存器占用。个单元被专用
15、寄存器占用。3.内部内部ROM:4KB掩膜掩膜ROM,用于存放程序、原始数据和表,用于存放程序、原始数据和表格。格。4.定时定时/计数器:计数器:两个两个16位的定时位的定时/计数器,实现定时或计数功计数器,实现定时或计数功能。能。5.并行并行I/O口:口:4个个8位的位的I/O口口P0、P1、P2、P3。6.串行口:串行口:一个全双工串行口。一个全双工串行口。7.中断控制系统:中断控制系统:5个中断源(外中断个中断源(外中断2个,定时个,定时/计数中断计数中断2 个,串行中断个,串行中断1个)个)8.时钟电路:时钟电路:可产生时钟脉冲序列,允许晶振频率可产生时钟脉冲序列,允许晶振频率6MHZ
16、和和12MHZVCCVSSXTAL2XTAL1RSTP0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0ALEP3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7EAPSENRXD/TXD/INT0/ INT1/ T0/ T1/WR/ RD/12345678910111213141516171819204039383736353433323130292827262524242221803180
17、51 875189C51程序程序存储器存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位位0FFFH0FFEHEA=1 EA=0EA=1 EA=0程序程序存储器资源分布存储器资源分布中断入口地址0000HFFFFH(64K)内部外部数据数据存储器存储器00HFFH7FH80H(高128B)(低12
18、8B)RAM专用寄存器0000H H07H07H0808H H0FH0FH1010H H17H17H1818H H1FH1FH0区区R0R0R7R7R0R0R7R7R0R0R7R7R0R0R7R71区区2区区3区区工作寄存器区工作寄存器区可位寻址区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区数据缓冲区/堆栈区堆栈区内部内部RAMRAM存储器存储器 工作寄存器区工作寄存器区选择位选择位RS0RS0、RS1RS1PSW位地址 CY ACF0RS1RS0OVF1P4、并行输入/输出电路结构P0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7P1. 0P1.
19、1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7u4 4个个8 8位并行位并行I/OI/O口:口:P0P0,P1P1,P2P2,P3P3;u均可作为双向均可作为双向I/OI/O端口使用。端口使用。 P0 P0:访问片外扩展存储器时,访问片外扩展存储器时, 复用为低复用为低8 8位地址线和数据线位地址线和数据线 P2P2:高高8 8位地址线。位地址线。P1P1:双向双向I/OI/O端口端口 P3P3:第二功能第二功能1234567
20、891011121314151617181920403938373635343332313029282726252424222180318051 875189C51 地址总线地址总线(Address Bus,Address Bus,简写简写ABAB) 地址线地址线A0A0A15 A15 共共1616位,位,P2P2口提供高口提供高8 8位地址位地址A8A8A15A15,P0P0口经地址锁存器提口经地址锁存器提供低供低8 8位地址位地址A0A0A7 A7 。片外存储器可寻。片外存储器可寻址范围达址范围达64KB64KB(即(即=65536=65536个字节)。个字节)。 数据总线数据总线(Dat
21、a Bus(Data Bus,简写,简写DB)DB) 地址线地址线D0-D7D0-D7共共8 8位,由位,由P0P0口提供,分口提供,分时输送低时输送低8 8位地址(通过地址锁存器锁存位地址(通过地址锁存器锁存)和)和8 8位数据信息。位数据信息。 控制总线控制总线(Control Bus(Control Bus,简写,简写CB)CB) 控制总线由控制总线由P3P3口的第二功能口的第二功能 (P3.6P3.6)、)、 (P3.7)(P3.7)和和3 3根独立的控制根独立的控制线线 、ALEALE和和 组成。组成。WRRDEAPSEN 所谓总线所谓总线, ,就是连接单片机与系统中各部件的一组公共
22、的信号线。就是连接单片机与系统中各部件的一组公共的信号线。寄存器寻址寄存器寻址直接寻址直接寻址立即数寻址立即数寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址 计算机中的中断概念计算机中的中断概念中断中断是指由于某种随机事件的发生,是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序处理完毕后又自动返回原来的程序继续运行。继续运行。将能引起中断的事件称为将能引起中断的事件称为中断源中断源。CPU现行运行的程序称为现行运行的程序称为主程序主
23、程序。处理随机事件的程序称为处理随机事件的程序称为中断服务中断服务子程序子程序。 MCS-51 MCS-51的中断系统结构图的中断系统结构图IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级自然优先级矢量矢量地址地址高级中断请求高级中断请求自然优先级自然优先级矢量矢量地址地址低级中断请求低级中断请求PX0PT0PX1PT1PSIEIP中断标中断标志位志位中断源中断源允许允许总允许总允许中断优中断优先级先级TMODTMOD各位定义及具体的意义各位定义及具体的意义操作模式控
24、制位M0、M1M1 M0 工 作 方 式 功 能 说 明0 0方 式 013位计数器0 1方 式 116位计数器1 0方 式 2自动再装入8位计数器1 1方 式 3定时器0:分成两个8位计数器定时器1:停止计数TCON各位定义及具体的意义各位定义及具体的意义定时器初始化过程定时器初始化过程1、确定并设定定时器工作模式、确定并设定定时器工作模式 TMOD 2、设置定时、设置定时/计数器初值计数器初值 TH0、TL0 或或TH1、TL13、开启定时器中断开启定时器中断 IE: ET0(ET1)和)和 EA4、启动定时器、启动定时器 TCON: TR0 (TR1)注:如果采用查询方式控制定时器还需要
25、判断注:如果采用查询方式控制定时器还需要判断TF0(TF1)在在80803131单片机上扩展单片机上扩展8KB EPROM8KB EPROMP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7PSENOECEAA0127648031ALEG OEDDDDDDDD01234567QQQQQQQQ01234567EA74LS138P2.0P2.1P2.2P2.3P2.4P2.5P2.7P2.6AAAAAAAAAAA23456789101112Y0O0O1O2O3O4O5O6O774LS373(8K*8)VppVGM+5V在8031单片机上扩展多片EPROM(片选法)在8031单片机上扩
26、展多片EPROM(译码法)P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7WRRDOEWECE1AA0162648051ALEG OEDDDDDDDD01234567QQQQQQQQ01234567EA74LS138P2.0P2.1P2.2P2.3P2.4P2.5P2.7P2.6AAAAAAAAAAA23456789101112Y1CE2+5VI/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7在8031单片机上扩展内存RAM矩矩阵阵式式按按键键关键:如何关键:如何判断键号?判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-
27、51P1.7P1.6P1.5P1.2P1.1接口电路:按键识别扫描法 流程: 当第当第0 0列处于低电平时,列处于低电平时,逐行逐行查找是否有行线变低,查找是否有行线变低,若有,则若有,则第第0 0列与该行的交叉点列与该行的交叉点按键按下;若无,则表示按键按下;若无,则表示第第0 0列无键按下,再让下一列处在低电平,依此循环,这列无键按下,再让下一列处在低电平,依此循环,这种方式称为种方式称为键盘扫描键盘扫描。 键号键号= =行首键号(行首键号(0 0、4 4、8 8、1212)+ +列号(列号(0 0、1 1、2 2、3 3) 原理:原理: 在某一时刻只让在某一时刻只让一条列线一条列线处于处
28、于低低电平,其余列线均电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。有键按下。问题引入:问题引入: LEDLED显示器如何显示出指定数字显示器如何显示出指定数字/ /字符?字符? 工作原理:以共阴极为例工作原理:以共阴极为例 v 某各发光二极管阳极加上高电平时点亮某各发光二极管阳极加上高电平时点亮v驱动方式驱动方式静态驱动:每个数码管用一个并口驱动静态驱动:每个数码管用一个并口驱动 动态驱动:共一个并口,轮询以节省资源动态驱动:共一
29、个并口,轮询以节省资源 发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)串行口四种工作方式应用比较串行口四种工作方式应用比较工作方式工作方式功能功能说明说明波特率波特率方式方式08位同步移位位同步移位寄存器寄存器常用于扩展常用于扩展I/O口口fosc/12方式方式110位位UART8位数据、起始位数据、起始位、结束位位、结束位可变(取决于定可变(取决于定时器时器1溢出率)溢出率)方式方式211位位UART8位数据、起始位数据、起始位位0、结束位、结束位1和奇偶校验位和奇偶校验位fosc/64或或fosc/32方式方式311位位UART数据、起始、校数据、起始、校验
30、、结束位验、结束位可变(取决于定可变(取决于定时器时器1溢出率)溢出率)MCS-51串行口的波特率串行口的波特率 在方式在方式2中,波特率取决于中,波特率取决于PCON中的中的SMOD值:值: 当当SMOD=0时,波特率为时,波特率为fosc/64; 当当SMOD=1时,波特率为时,波特率为fosc/32.即波特率即波特率 = 。oscSMODf642 在方式在方式0中,波特率为时钟频率的中,波特率为时钟频率的1/12,即,即fosc/12,固定不变固定不变)x256(12f322oscsmod双机通信操作步骤v1、根据要求确定串口工作方式、根据要求确定串口工作方式v2、设定定时器的工作模式并
31、计算初值、设定定时器的工作模式并计算初值v3、启动定时器、启动定时器v4、开启中断开启中断v5、发送或接收开始、发送或接收开始64关键字关键字用途用途说明说明_at_地址定位地址定位为变量进行存储器绝对空间地址定位为变量进行存储器绝对空间地址定位alien函数特性声明函数特性声明用以声明与用以声明与PL/M51兼容的函数兼容的函数bdata存储器类型声明存储器类型声明可位寻址的可位寻址的8051内部数据存储器内部数据存储器bit位变量声明位变量声明声明位变量或位类型函数声明位变量或位类型函数code存储器类型声明存储器类型声明8051程序存储器空间程序存储器空间compact存储器模式存储器模
32、式指定使用指定使用8051外部分页寻址数据存储空间外部分页寻址数据存储空间data存储器类型声明存储器类型声明直接寻址的直接寻址的8051内部数据存储器内部数据存储器far存储器类型声明存储器类型声明8051外部数据存储器外部数据存储器idata存储器类型声明存储器类型声明间接寻址的间接寻址的8051内部数据存储器内部数据存储器interrupt中断函数声明中断函数声明定义中断服务函数定义中断服务函数(未完,见下页)(未完,见下页)65large存储器模式存储器模式指定使用指定使用8051外部数据存储空间外部数据存储空间pdata存储器类型声明存储器类型声明分页寻址的分页寻址的8051外部数据
33、存储器外部数据存储器_priority_多任务优先声明多任务优先声明规定规定RTX51或或RTX51 Tiny的任务优先级的任务优先级reentrant可重入函数声明可重入函数声明定义可重入函数定义可重入函数sbit位变量声明位变量声明声明可位寻址的特殊功能位声明可位寻址的特殊功能位sfr特殊功能寄存器声明特殊功能寄存器声明声明声明8位的特殊功能寄存器位的特殊功能寄存器sfr16特殊功能寄存器声明特殊功能寄存器声明声明声明16位的特殊功能寄存器位的特殊功能寄存器small存储器模式存储器模式指定使用指定使用8051内部数据存储空间内部数据存储空间_task_任务声明任务声明定义实时多任务函数定
34、义实时多任务函数using寄存器组定义寄存器组定义定义定义8051的工作寄存器组的工作寄存器组xdata存储器类型声明存储器类型声明8051外部数据存储器外部数据存储器66v C语言的基本数据类型有语言的基本数据类型有char、short、int、long、float和和double。v 对对C51编译器来说:编译器来说: 可以精简为:可以精简为:bit、char、int、long、float五个五个short类型与类型与int类型相同类型相同double类型与类型与float类型相同。类型相同。bit(1位)、位)、char (8位)位) 、int (16位)位) 、long (32位)位)
35、 、float (32位)位)67v8051系列微处理器采用了系列微处理器采用了哈佛体系结构哈佛体系结构,即程序存储区和数据,即程序存储区和数据存储区是分离的。存储区是分离的。8051系列微处理器提供了三种不同类型的存储系列微处理器提供了三种不同类型的存储区域(区域(memory areas),),v 程序存储区(程序存储区(program memory)v内部数据存储区(内部数据存储区(internal data memory)v外部数据存储区(外部数据存储区(external data memory)v这三种存储区域均从地址这三种存储区域均从地址0开始编址,通过采用开始编址,通过采用不同的
36、寻址指不同的寻址指令令来解决地址重叠的问题。来解决地址重叠的问题。 68/内部数据区的字符型变量。内部数据区的字符型变量。 char data var1;/在程序区中定义字串在程序区中定义字串char code text = ENTER PARAMETER:; /外部数据区的长度为外部数据区的长度为100的无符号长整形数组的无符号长整形数组unsigned long xdata array100; /内部数据区,间接寻址方式访问的浮点变量内部数据区,间接寻址方式访问的浮点变量float idata x,y,z; /外部数据区,分页存储区中的无符号整型变量外部数据区,分页存储区中的无符号整型变量
37、unsigned int pdata dimension;/外部数据区,无符号字符类型的三维数组变量外部数据区,无符号字符类型的三维数组变量unsigned char xdata vector1044;/内部数据区,可位操作的字符变量内部数据区,可位操作的字符变量char bdata flags; 69v位变量(位变量(Bit Types)是指用一个二进制位表示的变是指用一个二进制位表示的变量。位数据类型可以用来说明变量、参数表、函数返回量。位数据类型可以用来说明变量、参数表、函数返回值等。位数据变量声明和基本的数据类型声明一样。值等。位数据变量声明和基本的数据类型声明一样。v所有的位变量都存
38、储在所有的位变量都存储在内部数据区的位寻址段内部数据区的位寻址段中。因中。因为该段只有为该段只有16个字节长,所以在一个作用域内最多只个字节长,所以在一个作用域内最多只能声明能声明128个位变量。个位变量。v注意:由于位变量只能存储在内部数据存储区的位变注意:由于位变量只能存储在内部数据存储区的位变量区内,因此只能使用量区内,因此只能使用data 和和idata两种存储器类型修两种存储器类型修饰符,其它存储器类型是非法的。饰符,其它存储器类型是非法的。70v可位寻址的对象(可位寻址的对象(Bit-addressable Objects)是指可以同是指可以同时用字节(字)寻址和位寻址方式进行访问
39、的对象。只有当时用字节(字)寻址和位寻址方式进行访问的对象。只有当数据对象占据数据对象占据8051内部数据区的可位寻址区时,才是一个可内部数据区的可位寻址区时,才是一个可位寻址对象。位寻址对象。vC51使用使用bdata存储器类型来声明可位寻址对象。存储器类型来声明可位寻址对象。v例如:例如:int bdata ibase;/*可位寻址的整形变量可位寻址的整形变量 */char bdata bary 4; /* 可位寻址的字符形数组可位寻址的字符形数组 */v注意:声明为注意:声明为bdata存储器类型的变量必须为存储器类型的变量必须为全局变量全局变量,不,不能是局部变量。由于能是局部变量。由
40、于bdata区为区为16个字节,因此可寻址对象个字节,因此可寻址对象所占存储空间不能大于所占存储空间不能大于16个字节。个字节。71v位变量是一位的变量,可位寻址变量是一个字节或字位变量是一位的变量,可位寻址变量是一个字节或字的变量,只是可以位寻址。的变量,只是可以位寻址。v位变量用类型位变量用类型bit或者或者sbit定义,可位寻址变量可以用定义,可位寻址变量可以用char或或int定义,但前面要跟着定义,但前面要跟着bdata进行数据类型说明。进行数据类型说明。bit data y;sbit idata y;char bdata y;vsbit是特殊寄存器区,是特殊寄存器区,bit是可位寻
41、址区,是可位寻址区, char bdata 都在可位寻址区都在可位寻址区72v8051系列的微控制器提供了一个独立的内存区,用来存放系列的微控制器提供了一个独立的内存区,用来存放特殊功能寄存器(特殊功能寄存器(special function register, SFR)。)。vSFR用来在程序中控制定时器,计数器,串行用来在程序中控制定时器,计数器,串行I/O,端口,端口I/O操作,以及外设的操作。操作,以及外设的操作。SFR驻留在地址驻留在地址0X80到到0XFF空间空间,可按可按字节寻址字节寻址或按字寻址,某些寄存器还可以按或按字寻址,某些寄存器还可以按位寻址位寻址。v8051系列微控制
42、器中系列微控制器中SFR的个数和类型是变化的。的个数和类型是变化的。C51提提供了许多供了许多8051兼容芯片的兼容芯片的包含文件包含文件,这些文件对芯片的,这些文件对芯片的SFR进行了定义。进行了定义。CX51编译器用编译器用sfr,sfr16,sbit来进行来进行SFR定义。定义。73vC51的指针和标准的指针和标准C中的指针功能相同。但是由于中的指针功能相同。但是由于8051体系结体系结构的特殊性,构的特殊性,C51提供了两种不同类型的指针:提供了两种不同类型的指针:通用指针通用指针(Generic Pointers)具体指针具体指针(Memory-specific Pointers)。
43、)。v通用指针的声明是和标准通用指针的声明是和标准C中的指针声明是相同的,例如:中的指针声明是相同的,例如:char *s; /* 指向字符类型的指针指向字符类型的指针 */int *numptr; /* 指向整型类型的指针指向整型类型的指针*/long *state;/* 指向长整型类型的指针指向长整型类型的指针 */74v具体指针具体指针是在声明时是在声明时指定了存储器类型的指针指定了存储器类型的指针,是指向特定存,是指向特定存储区域中的指针变量。储区域中的指针变量。char data *str; /* ptr to string in data */int xdata *numtab;
44、/* ptr to int(s) in xdata */long code *powtab; /* ptr to long(s) in code */v具体指针不需要保存存储器类型字节。具体指针可以保存在一具体指针不需要保存存储器类型字节。具体指针可以保存在一个字节(个字节(idata, data, bdata, pdata类型指针)或类型指针)或2个字节个字节(code 和和xdata类型指针)中。类型指针)中。v具体指针可以用来访问具体指针可以用来访问8051声明的存储区内的变量。具体指声明的存储区内的变量。具体指针的针的效率高效率高,但,但灵活性较差灵活性较差。 75v例:例:char
45、data * xdata ptr; /* ptr in xdata to data char */int xdata * data numtab; /* numtab in data to xdata int */long code * idata powtab; /* powtab in idata to code long */v注意:本例中变量定义时使用了两个存储器类型,注意:本例中变量定义时使用了两个存储器类型,*前的存储器类型修饰指针指向的数据,前的存储器类型修饰指针指向的数据,*后后的的存储器类型修饰指针本身,即存储器类型修饰指针本身,即指针所占据的存储区域类指针所占据的存储区域类
46、型型。 76v在在C语言中,指针变量除了能指向数据对象外,也语言中,指针变量除了能指向数据对象外,也可可以指向函数以指向函数。v函数在编译时,编译器为每个函数分配一个入口地址,函数在编译时,编译器为每个函数分配一个入口地址,这个这个入口地址就称为函数的指针入口地址就称为函数的指针。函数的指针可以赋给。函数的指针可以赋给函数指针变量函数指针变量,并能通过函数指针变量来调用它所指向,并能通过函数指针变量来调用它所指向的函数。的函数。指向函数指针变量的定义格式如下:指向函数指针变量的定义格式如下:类型标识符类型标识符 (*指针变量名)(参量列表)指针变量名)(参量列表)77int add(int a
47、,int b)return a+b;int sub(int a,int b)return a-b;main()int (*pFunc)(int,int);/定义函数指针变量!定义函数指针变量!int x,y;pFunc=add;/对函数指针变量赋值对函数指针变量赋值x=(*pFunc)(3,4);pFunc=sub;y=(*pFunc)(5,3);v上例运行完成后,上例运行完成后,x=?,y=?。78v可重入(可重入(reentrant)函数可以由多于一个任务并发使用,而函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不必担心数据错误。相反, 不可重入(不可重入(non-reentr
48、ant)函数不函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据么使用本地变量,要么在使用全局变量时保护自己的数据 可重入函数:可重入函数: v不为连续的调用持有静态数据。不为连续的调用持有静态数据。 v不返回指向静态数据的指针;所有数据都由函数的调用者提供
49、。不返回指向静态数据的指针;所有数据都由函数的调用者提供。 v使用本地数据,或者通过制作全局数据的本地拷贝来保护全局使用本地数据,或者通过制作全局数据的本地拷贝来保护全局数据。数据。 v绝不调用任何不可重入函数。绝不调用任何不可重入函数。 79v 可重入函数可重入函数可以在同一个时刻由多个进程共享。当可以在同一个时刻由多个进程共享。当一个进程正在执行一个可重入函数,另一个进程可一个进程正在执行一个可重入函数,另一个进程可以中断该进程,并可以开始执行同一个可重入函数,以中断该进程,并可以开始执行同一个可重入函数,而不影响函数的运行结果。而不影响函数的运行结果。ANSI C 语言中,调用函数时会把
50、函数的语言中,调用函数时会把函数的参数参数和函数中使用和函数中使用的的局部变量局部变量入栈。入栈。因为因为8051 内部堆栈空间的限制,为了提高效率,内部堆栈空间的限制,为了提高效率,C51 没有没有提供这种堆栈,而是提供一种压缩栈。提供这种堆栈,而是提供一种压缩栈。每个函数有一个给定每个函数有一个给定存储空间,用于存放局部变量存储空间,用于存放局部变量。函数中的每个变量都存放在。函数中的每个变量都存放在这个空间的固定位置。当递归调用该过程时会导致变量被覆这个空间的固定位置。当递归调用该过程时会导致变量被覆盖,盖,所以通常情况下所以通常情况下CX51中的函数是中的函数是不能重入不能重入的的。
51、80v为此必须使用为此必须使用reentrant函数属性来声明函数是可重函数属性来声明函数是可重入的。格式如下:入的。格式如下:函数类型函数类型 函数名函数名(形式参数列表形式参数列表) reentrantv与不可重入函数的参数传递和局部变量的存储分配方与不可重入函数的参数传递和局部变量的存储分配方法不同,法不同,C51编译器为再入函数生成一个编译器为再入函数生成一个模拟栈模拟栈,通过,通过这个模拟栈来完成参数传递和存放局部变量。这样每次这个模拟栈来完成参数传递和存放局部变量。这样每次函数调用时的局部变量都会被单独保存,再入函数一般函数调用时的局部变量都会被单独保存,再入函数一般占用较大的内存
52、空间,运行起来也比较慢,并且不允许占用较大的内存空间,运行起来也比较慢,并且不允许传递传递bit 类型的变量,也不能定义局部位变量。类型的变量,也不能定义局部位变量。v可重入函数经常在实时应用系统中应用,也可在中断可重入函数经常在实时应用系统中应用,也可在中断函数和非中断函数同时调用同一个函数时使用。函数和非中断函数同时调用同一个函数时使用。812. ARM内核体系结构内核体系结构3)运行模式)运行模式ARM体系结构支持体系结构支持7种处理器模式,分别种处理器模式,分别为:为:用户模式、快中断模式、中断模式、用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统管理模式、中止模式
53、、未定义模式和系统模式,模式,如下表所示。如下表所示。82处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)运行具有特权的操作系统任务与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位时进入此模式数据访问中止 (abt)用于支持虚拟内存和/或存储器保护数据访问终止时进入该模式未定义指令终止 (und)支持软件仿真硬件的协处理器指令预取终止时进入此模式ARM处理器模式2. ARM内核
54、体系结构内核体系结构这样的好处是可以更好的支持操作系统并提高工作效率这样的好处是可以更好的支持操作系统并提高工作效率83特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)运行具有特权的操作系统任务与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位时进入此模式数据访问中止 (abt)用于支持虚拟内存和/或存储器保护数据访问终止时进入该模式未定义指令终止 (und)支持软件仿真
55、硬件的协处理器指令预取终止时进入此模式 除用户模式外,其它除用户模式外,其它6 6种模式种模式均为均为特权模式特权模式。ARMARM内部寄存器内部寄存器和一些片内外设在硬件设计上只允和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不的切换处理器模式,而用户模式不能直接切换到别的模式。能直接切换到别的模式。未定义指令终止 (und)数据访问中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys)2. ARM内核体系结构内核体系结构84
56、异常模式异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)运行具有特权的操作系统任务与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护数据访问终止时进入该模式 未定义 (und)支持软件仿真硬件的协处理器指令预取终止时进入此模式 未定义指令终止 (und) 数据访问中止 (abt) 管理 (svc) 中断 (ir
57、q) 快中断 (fiq) 这五种模式称为这五种模式称为异常模式异常模式。它们除了可以通过程序切换进入外,它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户的寄存器,以避免异常退出时用户模式的状态不可靠。模式的状态不可靠。2. ARM内核体系结构内核体系结构85用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)运行具有特权的操作系统任务与用户模式类似,
58、但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位时进入此模式数据访问中止 (abt)用于支持虚拟内存和/或存储器保护数据访问终止时进入该模式未定义指令终止 (und)支持软件仿真硬件的协处理器指令预取终止时进入此模式 这两种模式都不能由异常进入,这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用系统模式是特权模式,不受用户模式的限制。操作系统在该模式户模式的限制。操作
59、系统在该模式下访问用户模式的寄存器就比较方下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的可以使用这个模式访问一些受控的资源。资源。 系统 (sys) 用户 (usr)2. ARM内核体系结构内核体系结构862. ARM内核体系结构内核体系结构5)寄存器组)寄存器组ARM处理器内部有处理器内部有37个个32位寄存器。位寄存器。在不同的工作模式和处理器状态下,程序在不同的工作模式和处理器状态下,程序可以访问的寄存器也不尽相同。可以访问的寄存器也不尽相同。87寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公安部保安员考试题库及答案
- 感染性疾病的控制与护理查房
- 高危妊娠期患者护理查房
- 建筑安全、危险化学品等多领域安全生产知识试卷
- 市场营销观念说课课件
- 左德元路基工程课件
- 工程资料培训课件
- 工程课程课件
- 工程设计课件
- 2025年度商标权转让合同样本
- T/CTRA 01-2020废轮胎/橡胶再生油
- 武汉市华一寄宿学校新初一分班语文试卷含答案
- 常见的立式旋风水膜除尘器(大气污染治理)
- 教育培训系统v2.3-产品介绍
- 高等材料力学教学课件
- 2025年中国硝基胍市场现状分析及前景预测报告
- 农艺工技师实操考试试题及答案
- 医院新员工入职廉洁教育培训
- 2025年-安徽省安全员《C证》考试题库及答案
- 跌倒坠床管理培训
- 借用对公账号协议书
评论
0/150
提交评论