三级嵌入式系统学习总结一第一章1.嵌入式系统概论嵌入式系统中的软件一般都固化在只读存储器中,用户不能随意更改其中的程序功能。嵌入式系统的逻辑组成:1)处理器2)存储器3)I/O设备与I/O接口4)数据总线5)软件嵌入式处理芯片有四种类型:1)微处理器2)数字信号处理器3)微控制器(单片机)4)片上系统微控制器MCU的低端产品并不会因为高端产品的出现而衰落在32位MCU中,绝大多数使用RAM内核EDA:电子设计自动化IP核可以分为三种:软核、硬核、固核2.嵌入式系统与数字媒体计算机中常用的最广泛的西文字符及其编码是ASCII字符集和ASCII码,即美国标准信息交换码,共有128个字符,一个字符占一个字节。我国目前广泛使用的汉字编码国家标准有GB2312和GB18030GB2312只有6763个汉字,不够用GB18030字符集与国际标准UCS/Unicode字符集基本兼容。GB18030采用不等长的编码方法,单字节编码表示ASCII码,双字节编码表示汉字,与GB2312保持向下兼容,四字节编码表示其他字符Unicode最新版本是6.3。UCS/Unicode在计算机中具体实现时采用不同的编码方案,最常用的是UTF-8和UTF-16,UTF-8采用的是单字节可变长编码;UTF-16采用的是双字节可变长编码文本的类型可以分为简单文本、丰富格式文本、超文本图像的数据量=图像水平分辨率*图像垂直分辨率*像素深度/8(像素深度指的是每个像素用多少个二进制数来表示)数字视频的数据量非常大,在进行传输时必须进行压缩,压缩编码标准是国际标准化组织(ISO)制定的,其名称为MPEG。无线局域网采用的协议主要是IEEE802.11(俗称WIFI)3.数字通信与计算机网络微波是一种300MHz-300GHz的电磁波计算机网络的组成:1)计算机等智能电子设备2)数据通信链路3)通信协议4)网络软件以太局域网:1)发送数据设备必须把要传输的数据分成小块(帧)进行传输,一次只能传输1帧;2)局域网中的每一个终端都有自己唯一的标识,称为物理地址或MAC地址,在发送的每一帧数据中,必须包含自己的MAC地址和接收终端的MAC地址3)IP协议定义了主机的概念,所有主机及使用一种统一格式的地址标识,称为IP地址。4)以太局域网大多是由集线器或者交换机组网计算机网络的类型:1)局域网2)城域网2)广域网IP地址分为A、B、C三类。IP是由四段数字组成,共32位,8位一段。A类IP段0.0.0.0到127.255.255.255(0段和127段不使用)B类IP段128.0.0.0到191.255.255.255C类IP段192.0.0.0到223.255.255.255XP默认分配的子网掩码每段只有255或0A类的默认子网掩码255.0.0.0一个子网最多可以容纳1677万多台电脑B类的默认子网掩码255.255.0.0一个子网最多可以容纳6万台电脑C类的默认子网掩码255.255.255.0一个子网最多可以容纳254台电脑二第二章1.嵌入式处理器嵌入式处理器按照指令集可以分为复杂指令集结构和精简指令集结构,按存储机制可以分为冯诺依曼结构及哈佛结构,按字长可以分为8位、16位、32位等精简指令集结构采用加载和存储两种指令对存储器进行读写操作。ARM内核采用多层次的存储结构,在处理器与主存储器之间加入CACHE,综合了哈佛结构和冯诺依曼结构的优点。ARM处理器的主流为32位,其主要特征如下:1)单周期操作2)只是用加载/存储指令访问内存3)指令长度固定4)三地址指令格式5)指令流水线格式6)低功耗设计ARM由三种指令集,分别是:1)ARM指令集2)Thumb指令集3)Thumb-2指令集2.典型ARM处理器介绍ARM处理器分为5类,分别是:1)经典ARM处理器2)ARMCortex嵌入式处理器3)ARMCortex实时嵌入式处理器4)ARMCortex应用处理器5)ARM专家处理器ARMCortex处理器包括:1)Cortex-A面向高端应用的处理器2)Cortex-R面向实时控制的处理器3)Cortex-M面向微控制器的处理器3.ARM处理器体系结构ARM处理器的工作状态:1)ARM状态,即32位状态2)Thumb状态,即16位状态3)调试状态ARM处理器有7种工作模式,分别是1)用户模式User2)快速中断模式FIQ3)外部中断模式IRQ4)管理模式SVC5)中止模式ABT6)未定义指令模式UND7)系统模式SYSARM处理器由37个寄存器,包括31个通用寄存器和6个状态寄存器,通用寄存器中不分组的有8个,即R0-R7。ARM处理器用两种模式存储数据,一是大端模式,即32位的高字节存放在低地址中,低字节存放在高字节中;二是小端模式,即32位的高字节存放在高地址中,低字节存放在低字节中。MMU,即存储器管理模块,作用是进行虚拟地址到物理地址的映射、存储器访问权限控制MPU是存储器保护单元4.ARM处理器指令集指令的条件码:EQ:相等NE:不相等CS:无符号数大于或等于CC:无符号数小于HI:无符号数大于LS:无符号数小于或等于GE:带符号数大于或等于LT:带符号数小于GT:带符号数小于或等于LE:带符号数小于或等于PL:正数或0块拷贝寻址举例:LDMIAR0,{R1,R2,R5,R9}R1[R0],R2[R0+4],R3[R0+8],R4[R0+12]STMIAR0,{R1-R7}[R0]R1,[R0+4]R2,[R0+8]R3,[R0+12]R4,[R0+16]R5……程序状态寄存器访问指令举例:MRSR0,CPSR传送CPSR中的值到R0MSRCPSR,R0传送R0的值到CPSRs5.ARM汇编语言程序设计意会三第三章1.嵌入式系统硬件组成概述最小系统的构成:嵌入式处理器、存储器、复位电路、电源电路、时钟电路、调试测试接口典型嵌入式应用系统的硬件组成:最小硬件系统、前向通道、后向通道、人机交互通道以及相互互联通信通道。前向通道即输入接口,由模拟量输入接口和数字量输入接口组成;后巷通道即输出接口,由模拟输出接口和数字输出接口组成;人机交互通道即输入输出接口;2.嵌入式处理芯片AMBA(AdvancedMicrocontrollerBusArchitecture)先进微控制器总线体系结构AMBA规定了两种类型的总线,分别是系统总线和外围总线,通过桥接器进行连接与系统总线连接的部件:电源及时钟控制器、内核、DMA、外部存储器控制接口、USB主机、SRAM、中断控制器、LCD控制器;与外围总线连接的部件:GPIO、UART、SPI、IIC、IIS、USB设备、WDT、TIMER、RTC、PWM、ADC/DAC、CAN、Ethernent。片内程序存储器常用FlashROM,片内数据存储器常用SRAM。3.嵌入式系统的存储器嵌入式系统的存储器结构:嵌入式处理器(内部L1/L2Cache)、主存储器(内存)、外部存储器(外存),Cache由SRAM承担MROM:掩膜只读存储器,出厂后信息确定,无法改变;PROM:一次可编程存储器EPROM:紫外线可擦除的只读存储器EEPROM:电擦除可编程存储器FLASHROM:闪存;NORFLASH和NANDFLASH是流行的闪存新存储器:FRAM(铁电存储器)、MRAM(磁性存储器)存储器容量=单元总数*数据位数/单元并行总线的存储器带宽=总线频率*数据宽度/8*传输次数/总线周期串行总线的存储器带宽=总线频率/104.I/O接口及常用的GPIOGPIO提供的输入具有缓冲功能,输出有锁存功能IIC总线有两条数据线,分别是数据线SDA和时钟线SCL。SCL为高,SDA由高变低时启动传输,SCL为高,SDA由高变低时停止传输。传输时高位在前,低位在后,传输的第一个字节为地址,地址的最后一位指示数据传输方向,第9位为应答位。总线控制遵循低电平优先的原则。SPI是同步串行接口,一般使用四条线,分别是时钟、输入、输出、片选。SPI发送数据时,数据从主机中从左向右发送给从机(主机数据左对齐),从机数据从右向左发送给主机(从机数据右对齐),发送数据时,高位在前,低位在后UART:常用于全双工串行异步通信,发数据时,低位在前,高位在后USB:最多可以连接127个设备。USB系统由USB硬件和USB软件组成。硬件中的主控制器包括一个根集线器,传输时采样翻转不归零。采用半双工差分方式传输数据。触摸屏分为电阻式和电容式5.ARM内核典型处理器芯片S3C2410是韩国三星公司制造的微处理器,以下都是S3C2410的有关介绍电源管理模块有正常模式、慢速模式、休眠模式、掉电模式。任何情况下复位操作均进入正常模式,在掉电模式和休眠模式下,只要有任何一个外部中断EINT或者RTC时钟中断发生,均将返回到正常模式。总共由5个16位定时器timer,4个具备PWM的功能。定时器输入时钟频率=PCLK/(预分频值+1)*时钟因子有三个UART,UBRDIV=INT(UCLK/(波特率*16))-1,UCLK可以是PCLK,也可以是UEXTCLK。看门狗定时器的技术脉冲周期为:t_watchdog=1/(PCLK/(预分频值+1)/分频系数),计数初值为WTCON=T/t_watch_dog6.嵌入式系统外部通信接口RS-485采用差分信号传输方式CAN总线也使用差分的方式传输四第四章在uC/OS-II中,任务或者中断服务可以通过事件控制模块(ECB)相其他任务发出信号1.嵌入式系统的软件组成嵌入式系统的特点:软件与硬件一体化、软件代码时空效率要求高、软件可剪裁、软件应用环境复杂、软件开发难度大、软件面向用户、面向产品、面向应用、软件产业高度分散、软件具有较长的生命周期。嵌入式系统的软件结构:简单的轮询结构(只进行查询操作)、带中断的轮询结构、监控式操作系统+应用软件的结构、通用嵌入式操作系统+应用软件的结构。高端嵌入式系统的软件结果层次示例:硬件层、硬件抽象层、操作系统层、中间件层、应用软件层。中间件是指除了操作系统内核、设备驱动程序和应用软件之外的系统软件。硬件抽象层(HardwareAbstractLayerHAL)和板极支持包(BoardSupportPackageBSP)是嵌入式系统的底层软件,引入HAL对硬件进行抽象,通过硬件抽象层应用编程接口(HALAPI)向上提供服务。BSP在系统复位之后负责系统软硬件环境的初始化,包括三个方面的内容,一是系统复位时的硬件初始化,包括处理器芯片的初始化和电路板的初始化,二是为操作系统提供硬件相关的驱动程序支持,三是引导加载操作系统。BSP是操作系统正常运行的前提,其效率和稳定性直接影响整个系统的性能及稳定性。引导加载程序(引导程序)bootloader是底层软件的一部分,嵌入式系统上电后首先运行引导加载程序,进行系统上电自检、硬件初始化、建立存储空间映射、配置系统参数、建立上层软件运行环境,加载和启动操作系统等等。嵌入式操作系统的加载方式:1)在ROM中直接运行操作系统代码2)在RAM中运行操作系统代码3)从外存储器加载操作系统代码运行4)从通信端口加载操作系统代码运行。引导加载程序的运行过程,一是让嵌入式系统正常运起来,与处理器体系结构相关的硬件初始化和板极初始化等操作通常在第一步完成,一般用汇编语言来写。第二是实现操作系统加载的功能,用C语言实现。设备驱动程序是指直接与硬件相互作用并控制硬件的软件,是对硬件操作的抽象。2.嵌入式操作系统实时系统(Real-TimeSystem)是必须在有限和确定的时间内对外部事件做出响应的信息系统。实时系统的关键特性:1)时间约束性2)可预测性3)可靠性4)交互性硬实时任务:必须在给定的时间内完成,超过时限会引起重大的错误软实时任务:超过时限不会引发致命错误,而是造成任务的服务质量下降准实时任务:通常允许偶尔错过最后时限,若超过时限,所进行的操作或计算没有任何意义。实时操作系统采用如下的机制来保持对实时任务的响应和处理的时间确定性:1)事件驱动2)多级中断嵌套