第一章嵌入式系统概述1嵌入式系统的定义及特点定义:嵌入式系统源于微型计算机,是嵌入到对象体系中,实现嵌入对象智能化的计算机。可以将嵌入式系统定义成“嵌入到对象体系中的专用计算机应用系统”。特点:嵌入性、内含计算机、专用性。P112常见的嵌入式实时操作系统(1)µClinux含义:微控制领域中的Linux系统。(2)WindowsCE含义:微软公司开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。(3)VxWorks含义:一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分。思考与练习1、举出3个书本中未提到的嵌入式系统的例子。答:机顶盒、红绿灯控制、数字空调。2、什么叫嵌入式系统?答:嵌入式系统是以应用为中心,以计算机技术为基础,软件、硬件可裁减,适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。3、什么叫嵌入式处理器?嵌入式处理分别为哪几类?答:嵌入式处理器为完成特殊的应用而设计的特殊目的的处理器。嵌入式处理器分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统。4:、什么是嵌入式操作系统?为何要用嵌入式操作系统?操作系统负责计算机系统中全部软硬资源的分配回收、控制与协调等开发的活动;操作系统提供了用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。第二章ARM7体系结构1RISC结构特性:ARM内核采用精简指令集计算机体系结构,是一款小门数的计算机2ARM公司开发了一系列ARM处理器,应用较多的是ARM7系列,ARM9系列,ARM10系列,ARM11系列,还有针对低端8位MCU市场推出的Cortex系列,其具有32位CPU的性能,8位MCU的价格。3ARM7TDMI中T:高密度16位Thumb指令集扩展D:支持片上调试M:64位乘法指令I:EmbeddedICE硬件仿真功能模块4ARM处理器使用了冯·诺依曼结构,指令和数据共用一条32位总线。因此只有装载,存储和交换指令可以对存储器中的数据进行访问。5ARM处理器直接支持8位字节、16位半或者32位字的数据类型。了解:方式半字对齐字对齐地址省略号0x40020x40040x40060x4008省略号省略号0x40040x40080x400C0x4010省略号特征Bit0=0其他位为任意值Bit1=0,bit0=0其他位为任意值表2.1ARM指令的长度是一个字,Thumb指令的长度是半字。63级流水线的3个阶段:(1)取指从存储器装载一条指令(2)译码识别将要被执行的指令(前一条指令)(3)执行处理指令并将结果写回寄存器(再之前一条指令)7ARM处理器的2种操作状态分别为:(1)ARM状态:32位处理器执行字方式的ARM指令,处理器在系统上电时默认为ARM状态。(2)Thumb状态:16位处理器执行半字方式的Thumb指令8ARM处理器内部共有37个用户可访问的32位寄存器,期中有6个32位宽的状态集训期目前只使用了其中12位。9P26表2.2ARM处理器模式P27ARM内部寄存器10P28表2.3了解各模式下的寄存器11需要记得:堆栈指针R13(SP)链接寄存器R14(LR)程序计数器R15(PC)指到哪儿,执行到哪儿12CPSR与SPSR状态寄存器相互之间的关系:(a)当一个特定的异常中断发生时,讲CPSR的当前值保存到相应异常模式下的SPSR,然后设置CPSR为相应的异常模式(b)从异常中断程序退出返回时,可通过保存在SPSR中的值来恢复CPSR13中断禁止标志位:I和F都是中断禁止为标志,用来使能或者禁止ARM的2种外部中断源,具体设置如下:(1)当I置位(置1)时,IRQ中断被禁止,否则(I置0)IRQ中断使能(2)当F置位(置1)时,FIQ中断被禁止,否则(I置0)FIQ中断使能14控制位T反映了正在操作的状态:(1)当控制位T置位(置1)时,处理器正在Thumb状态下运行。(2)当控制位T清零(置0)时,处理器正在ARM状态下运行。15模式控制位:M4,M3,M2.M1和M0(即M[4:0])16记0x00000000是复位异常向量地址17异常优先级:复位最高,FIQ高于IRQ,软件中断SWI最低18存储器格式:大端格式和小端格式,小端格式中,最低地址的字节被看做是最低字节位,最高地址的字节被看做是最高位字节。大端格式中,最高位字节保存在最低地址,最低位字节保存在最高地址。思考与练习1(1)TDMI的含义略(2)ARM7TDMI采用几级流水线?使用何种存储器编址方式?3级采用冯·诺依曼结构(指令和数据共用一条32位总线)(3)ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式指的是处理器在执行程序是在不同时刻所在的不同状态,ARM处理器状态是指处理器当前所执行的指令集(4)分别列举ARM的处理器模式和状态?答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。(5)PC和LR分别使用哪个寄存器?答:PC::R15作用:程序计数器LR::R14。作用:链接寄存器(6)R13寄存器的通用功能是什么?答:堆栈指针SP。(7)CPSR寄存器中哪些位用来定义处理器状态?答:在CPSR中,T位反应正在操作的状态,当T位置位时,处理器正在Thumb状态运行,当T为清零时,处理器正在ARM状态下运行(8)描述一下如何禁止IRQ和FIQ的中断。答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。2.存储器格式定义R0=0x12345678,假设使用存储指令将R0的值放在0x4000单元中。如果存储器格式为大端格式,请写出在执加载在指令将存储器0x4000单元的内容的取出存放到R2寄存器操作后所得R2的值。如果存储器格式改为小端格式,所得的R2的值又为多少?低地址0x4000单元的字节内容分别是多少?答:无论是大端格式还是小端格式,R2的值与R1一致R2=0x12345678;地址0x4000单元的字节:大端:0x12、小端:0x78。第三章ARM7TDMI(-S)指令系统1寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM处理器具有8种基本寻址方式:(a)寄存器寻址(b)立即寻址(c)寄存器移位寻址(d)寄存器间接寻址(e)基址寻址:例如LDRR2,[R3,#0x0C](f)多寄存器寻址(g)堆栈寻址(h)相对寻址2ARM7TDMI(-S)的指令集,包括ARM指令集和Thumb指令集P58-P59+P60表3.1+P61表3.2自己看另:表3.2LDR:加载字数据即把源地址存储器放入目标寄存器STR:存储字数据即把目标地址寄存器放入源寄存器3乘法指令,ARM分支指令,ARM杂项指令,ARM伪指令做了解P72-P80思考与练习1.(1)ARM7TDMI(-S)有几种寻址方式?“LDRR1,[R0,#0x08]”属于哪种寻址方式?答:有8种寻址方式:1.寄存器寻址2.立即寻址3.寄存器移位寻址4.寄存器间接寻址5.基址寻址6.多寄存器寻址7.堆栈寻址8.相对寻址;“LDRR1,[R0,#0x08]”属于基址寻址。(2)ARM指令的条件码有多少个?默认条件码是什么?答:16个;AL。(5)请指出MOV指令与LDR加载指令的区别及用途?答:MOV将立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作,即将一个数据从一个寄存器传送到另一个寄存器中,或讲一个常数传送到一个寄存器中。LDR用于读取指定地址上的存储器单元内容(内存数据)放入寄存器中(7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。答:用BL;MOVPC,R14。(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。答:BX(ARM与Thumb状态的切换指令)第四章LPC2000系列ARM硬件结构1.LPC2114/2124/2210/2220/2212/2214有较小的64和144脚封装,多个32位定时器,4路10位ADC或8路10位ADC及9个中断。2、片内存储器LPC2114/2212集成了一个128KB的Flash存储器系统片外存储器在CPU外部扩展连接的存储器芯片称为片外存储器,这些器件通常都具有数据线、地址线和控制线等。3、P104图4.4LPC2000系列ARM的内部存储器大小4.P115图为LPC2000内部的时钟发生系统5.使用外部时钟源时,称之为“从属模式”;使用外部晶体时,称之为“振荡模式”6.复位是指将计算机系统中的硬件逻辑归位到一个初始的状态。7.LPC2000系列ARM有2个复位源,外部复位和看门狗复位。8.LPC2114/2124/2210/2220/2212/2214支持两种节电模式:空闲模式和掉电模式。1)在空闲模式下,处理器停止执行指令。2)在掉电模式下,振荡器关闭。9.P172图4.60通过引脚连接模块控制引脚功能10.LPC2000系列ARM具有3个PINSEL寄存器,它们是32位宽度的,其中PINSEL0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同。11.P173表4.52:引脚选择寄存器0(PINSEL0)12.LPC2000系列ARM的GPIO具有如下特性:1)可以独立控制每个GPIO口的方向(输入/输出模式)2)可以独立设置每个GPIO的输出状态(高/低电平)3)所有GPIO口在复位后默认为输入状态LPC2114和LPC2124具有两个端口——P0和P1,它们最多具有46个I/O口可供使用。13.P184程序清单4.10设置P0.0为输出模式程序清单4.11控制蜂鸣器报警14.LPC2000系列ARM中的VIC模块具有如下特性:1)ARMPrimeCell向量中断控制器2)最多32个中断请求输入3)16个向量IRQ中断4)16个优先级,可动态分配优先级5)可产生软件中断15.ARM内核含有7种模式,所有模式全部共享一个程序状态寄存器------CPSRCPSR寄存器中“I”标志位和“F”标志位分别用来控制IRQ模式和FIQ模式的使能:1)当I=1时,禁止IRQ中断,反之IRQ中断使能;2)当F=1时,禁止FIQ中断,反之FIQ中断使能;16.快速中断请求:具有最高优先级,中断响应最快,常用于处理非常重要、非常紧急的事件向量IRQ:具有中等优先级和16个通道,最多可分配16个向量IRQ中断。向量IRQ中断对外部事件响应比较及时,常用于处理重要事件非向量IRQ:优先级最低,中断延时时间比较长,常用于处理一般事件中断。非向量IRQ中断也属于IRQ中断。17.P213图4.88边沿触发中断示意图LPC2000系列ARM含有4个外部中断输入,外部中断可以分为4个中断源。18.LPC定时器0和定时器1特性:1)两个32位定时器/计数器各含有一个可编程32位预分频器2)具有多大4路捕获通道。当输入信号跳变时可取得定时器的瞬时值,也可选择捕获事件产生中断3)4个32位匹配寄存器,匹配时的动作有3种:匹配时定时器继续工作,可选择产生中断;匹配时停止定时器,可选择产生中断;4)4个对应于匹配寄存器的外部输出,匹配时的输出有4种:匹配时设置为低电平;匹配时设置为高电平;匹配时翻转,匹配时无动作。19.I^2C接口特性:1)标准的I^2C总线接口;2)可配置为主机、从机或主/从机3)可编程时钟可实现通用速率控制4)主、从机之间双向数据传输5)多主机总线(无中央主机)6)同时发送的主机之间进行仲裁,避免了总线数据的冲突7)LPC2000系列ARM在告诉模式下,数据传输的速率为0—400kbit/s20.UART0只提供TXD和RXD信号引脚,而UAR