第一篇:嵌入式系统总结--考试备用
Liunx系统移植的步骤:
1、开发环境的搭建
2、系统引导
3、内核引导
3、设备驱动程序
4、文件系统 Bootloader自举程序
因为嵌入式系统的开发,没有足够的资源在本机上运行开发工具和调试工具,所以很难在嵌入式系统的硬件平台上进行软件开发。通常的嵌入式系统的软件开发采用一种交叉的开发的方式.TARGET就是目标机,HOST是开发机(宿主机)。在开发主机上,可以安装开发工具,编辑,编译目标板的Liunx引导程序,内核和文件系统,然后在目标板上运行。
Gcc编译器
gcc的基本用
gcc[options][filenames] gcc的执行过程
1、预处理
2、编译
3、汇编
4、链接
Make工具通过makefile的文件来完成并自动维护编译工作。要使用make,首先要创建makefile文件。
makefile基本结构
1)需要有make工具创建的项目,通常是目标文件和可执行文件; 2)要创建的项目所依赖的文件; 3)创建每个项目时需要运行的命令;
Makefile变量
GNU的make工具除了提供建立目标的基本功能之外,还有许多便于表达依赖性关系以及建立目标命令的特色,其中之一就是变量或宏的定义能力。如果用户要以相同的编译选项同时编译多个C源文件,且为了每个目标的编译指定冗长的编译选项的话,利用简单的变量定义,可简化makefile文件,避免这种乏味的工作。
隐含规则
隐含规则是指由make自定义的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。
构建交叉编译环境的3种方法;
1)分步编译和安装交叉编译环境所需要的库和源代码,最终生成交叉编译环境。2)通过Crosstool脚本工具来实现一次编译生成交叉编译环境。
3)使用开发平台供应商提供的开发环境安装套件建立交叉编译环境,这是最常用的方法!
建立交叉编译环境的过程可以划分的步骤: 1)做好准备工作,包括下载工具源码包和补丁,准备内核头文件,创建工作目录等;
2)编译,安装; 3)编译辅助编译器;
4)建立glibc库,这里要使用交叉编译工具链。
5)编译生成完整的编译器,重新配置gcc功能,使其支持c、c++等语言; 内核分类:进程管理、内存管理、文件系统、设备控制和网络; 嵌入式Linux内核裁剪方法
一方面是针对硬件特点对源代码的修改,另一方面是功能模块的裁剪。内核功能裁剪的方法
1)使用linux自身的配置工具,编译定制内核; 2)修改内核源代码,进行内核裁剪; 3)基于系统调用关系,进行内核裁剪; 内核定制过程:
增加新的内核组建——配置内核——生成内核——装载内核 内核编译及装载3步
1、执行#make dep 命令,正确设置编译内核所需的附属文件,进行依赖性编译;
2、执行#make clean 命令,清除以前构造内核时产生的所有目标文件,模块文件和一些临时文件;
3、执行#make zlmage命令,生成可执行内核映像文件; 对设备如何管理
将所有的设备看作具体的文件,通过文件系统层对设备进行访问。和设备相关的2个层次——文件系统层和设备驱动层;
模块就是一个已编译但未连接的可执行文件,利用这种机制,我们可以根据需要,再不重新编译内核的情况下,将编译好的模块动态地插入运行中的内核,或者将内核中已经存在的某个模块移走。
设备类型:字符设备、块设备、网络设备;
第二篇:嵌入式考试总结
嵌入式系统定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统应用:工业控制火控系统、飞行控制系统、测试仪器、医疗设备、游戏机 应用发展阶段:无操作系统的嵌入算法阶段、简单监控式的实时操作系统阶段、通用的嵌入式网络实时操作系统阶段
嵌入式系统已经有了近30年的发展历史,它是硬件和软件交替发展的双螺旋式发展
嵌入式系统特点:1 面向特定应用、2 可裁减、3.处理器体系结构和类型多样化。4.大多都有实时操作系统。5 一般有实时性要求。6资源比较少。7 软件固化在存储器芯片中。8 通常要求功耗小。9 集成度高。10嵌入式系统本身不具备自举开发能力 嵌入式系统的组成:硬件平台、板级支持包(BSP)、操作系统、应用程序 嵌入式系统硬件平台:嵌入式处理器、存储器件、外设接口
嵌入式CPU的特点:1 对实时多任务操作系统具有很强的支持能力。2具有功能很强的存储区保护功能。3 处理器结构可扩展。4 低功耗。嵌入式CPU的分类:嵌入式微控制器(EMCU)、嵌入式微处理器(EMPU)、嵌入式DSP处理器(EDSP)、嵌入式片上系统(ESoC)
MCU(MicroController Unit)MCU芯片内集成了ROM/EEPOM、RAM、总线、总线逻辑、I/O等必要功能和外设。已有20多年的历史。如51,98/96。
与MPU比,单片化、体积小,功耗、成本低,可靠性高,能节省系统开支、降低出错概率和减少高频干扰适合控制系统。
发展:内核化(内核 +IP、内核 +FPGA、内核+外围模块)、专用化(接口单片机、网络单片机、射频单片机、数采单片机、电力线载波…)
DSP(Digital Signal Processor)专用于信号处理,采用哈佛体系结构,指令系统特殊,具有较高的编译效率和指令执行速度。如数字滤波、快速傅立叶变换和离散余弦变换等DSP算法。
MPU(MicroProcessor Unit)由CPU演变而来,32位以上。与通用CPU比,MPU只保留与应用相关的功能和硬件,除去冗余的功能部分,实现最少的功耗和资源,满足嵌入式需求。与工业控制计算机比,MPU体积小,重量轻,成本低,可靠性高。常见的嵌入式处理器核:ARM、MIPS、PowerPC、68K、x86 SoC(System on Chip)是嵌入式系统多种形式的统一归宿SOC最大的特点,成功实现软硬件无缝结合,直接在处理器芯片内嵌入操作系统的代码模块。SOC具有极高的综合性。由于绝大部分系统构件都是在系统内部,整个系统特别简洁,不仅减少了功耗和体积,并且提高了可靠性,和设计效率。降低内部工作电压,减少芯片功耗;减少芯片引脚数目,简化制造过程;简化外围驱动单元,优化处理速度; 优化内部电路结构,降低系统噪声
冯.诺伊曼结构,也称普林斯顿结构、程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
哈佛结构:程序指令存储和数据存储分开的存储器结构。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。CISC:复杂指令集 特点是指令数量庞大臃肿,具有大量的指令和寻址方式每个指令不管执行频度高低都处于同一个优先级,程序员的编程工作相对容易。但它的致命弊端是执行效率低下,处理器的晶体管被大量低效的指令所占据,资源利用率颇为低下。
RISC:精简指令集 8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。在通道中只包含最有用的指令 确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单嵌入式处理器采用RISC 指令流水:执行指令的过程:(1)取指令(Fetch)(2)译码(Decode)(3)取操作数(Fetch Operant)(4)执行指令(Execute)(5)写回(Write Back)采用指令流水线技术,提高处理器的执行效率
嵌入式处理器的技术指标 :1.功能:集成的存储器、外设、接口等的种类和数量;2.字长:字长指数据总线位数;3.处理速度:4.寻址能力:寻址能力取决于地址总线的宽度;5.功耗:工作功耗、待机功耗等,功耗与频率,功耗与电压;6.温度:民用、工业用、军用、航天等级别。民用范围为0℃~70℃
嵌入式处理器的选择:
1、技术指标原则:首要考虑功能,其次考虑对其他芯片的支持情况,再次考虑处理器的字长、寻址空间、主频、功耗等;
2、熟悉原则: 降低开发风险和难度;
3、成本原则:处理器成本和额外成本;
4、支持工具原则:选择合适的软件开发工具;
5、整体原则:全盘考虑处理器和其他部件或软件的兼容和约束
嵌入式处理器的发展方向:
1、多核结构:在一个处理器中集成两个或多个完整的CPU核;提升处理器的并行性能。缩短核间的互连和通信延迟。多核结构简单,易于优化设计。
2、更低的功耗:功耗更小,工作方式:等待、暂停、休眠、空闲、节电等;
3、更先进的工艺和更小的封装;
4、更宽的工作电压范围:3.3~5.5 V 2.2~6 V。最低工作电压1.8 V。ARM(Advanced RISC Machines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商
ARM优点:全新设计的RISC结构的32位处理器;因为是全新的设计,开始就是32位,没有历史遗留问题(比如x86)。所以,更便于对处理器结构进行优化;价格低廉;ARM公司不生产芯片,专心研究处理器内核的解决方案;低功耗
ARM架构:32位ALU31个;32位通用寄存器及6位状态寄存器;32X8位乘法器;32X32位桶型移位寄存器;指令译码及控制逻辑;指令流水线;数据地址寄存器 ARM的流水线结构:一条指令的执行可分成若干阶段:(1)取指,从存储器中取出指令(FETCH)(2)译码,指令译码(DEC)(3)取操作数,如从寄存器读取(REG)(4)执行计算(ALU)(5)存储器访问,操作数与存储器有关(Mem)(6)结果写回寄存器(RES)
程序执行时间:T(proc)=N(inst)*CPI/f(clk)T(proc):程序执行时间N(inst):一个程序的指令CPI:执行一条指令的平均周期f(clk):处理器的时钟周期,减少程序执行时间的关键是减少CPI 流水线除了加深流水线的深度和加快时钟频率来提高流水线的效率和吞吐率外,还要解决:结构相关:在流水线中重叠执行的指令,产生资源冲突。ARM中采用I-Cache,D-Cache,ALU采用单独加法器计算地址;数据相关:一条指令需要前面指令的执行结果。定向技术(将ALU结果直接送到ALU输入)、流水线互锁(通过硬件检测,暂停至定向技术可以解决)、编译器优化;控制相关:分支指令时。指令预测、计算分支转移成功的PC值
ARM存储结构:ARM架构处理器的存储器寻址空间有4GB;有的带有I-CACHE和D-CACHE;片内不带RAM和ROM。系统需要的RAM、ROM(包括FLASH)都通过总线外接;由于存储器寻址空间达4GB,有的片内带有MMU;允许外接 PCMCIA 存储器的分类:与CPU的联系:主存:直接和CPU交换信息;辅存:不能直接和CPU交换信息。按存储元件使用的材料:半导体存储器(常作主存);磁存储器(磁带,磁盘);光存储器(光盘)。(对半导体存储器)按读写工作方式可分:RAM(随机存储器),ROM(只读存储器)存储器技术指标:1.存储容量,2.存取速度3.易失性4.只读性5.功耗6.可靠性7.价格 存储空间的组织:实际存储器由多种类型和容量的存储芯片组成。合理安排每个存储芯片的地址范围。存储空间的组织问题实质是地址译码电路的设计问题。地址译码的过程包括两个步骤:先选中某个存储芯片(称为片选),其次选中片内的某个单元(称为片内寻址)。片选过程:由译码电路对高位地址进行译码后产生的片选信号;片内寻址:由地址译码电路对低位地址进行译码实现存储单元寻址。常用的片选方法:线选法、全译码法、部分译码法和混合译码法等。
RAM是一种可读可写的内存,在上电的情况下才能保持在存储器中。(1)存放当前正在执行的程序和数据。(2)存放I/O缓冲数据(3)作为中断服务程序中保护现场信息的堆栈 ROM分类:(1)掩膜型ROM:内容在芯片生产出来之前指定。(2)PROM:一次性编程的只读存储器,OTP(Once Time Program)。(3)EPROM:可以修改ROM中的数据,即重复烧录。紫外线照射。4)E2PROM:断电情况下保存数据,又能在应用系统中在线修改
Flash存储器概述:Flash存储器就是俗称的闪存,它是一种非易失性存储芯片,Flash存储器具有高密度、低价格、非易失性、快速(读取速度较快)及可用电擦除可编程等特点。Flash存储器被广泛应用于各类移动存储器卡、U盘、数码相机记忆卡、记忆棒等。
Flash存储器分类:Flash存储器主要有NOR Flash存储器和NAND Flash存储器两类。NOR Flash:基于Intel公司所开发的架构,可以随机读取任意单元的内容,读取速度较快。写入和擦除的速度较低,以块(Block)为单位进行数据的读/写。最大优点是可以直接从Flash中运行程序,缺点是工艺复杂,价格也比较贵。
NAND Flash:基于东芝公司(Toshiba)所开发的结构通过I/O指令的方式进行读取,因此需要通过驱动程序来读取。存储容量较大、成本较低,常用来制作记忆卡。存储空间是按照块和页(Page)的概念来组织的。
接口的功能:外设识别和寻址,速度匹配和缓冲,时序匹配,信息格式匹配和信息类型转换等。接口的结构:接口一般由数据存储(缓冲)电路,控制命令逻辑电路,状态设置和存储电路构成 接口数据传输的方式:1.程序查询方式。2.中断方式。3.DMA。
接口设计的过程:接口设计首先在硬件上分析接口两侧情况.然后考虑CPU总线与I/O设备之间信号的转换.合理选用I/O接口芯片.进行硬件连接.最后进行接口驱动程序分析与设计。总线:是各种信号线的集合,是嵌入式系统中各部件之间传输数据、地址和控制信息的公共通路.总线的主要参数:总线带宽、总线位宽、总线工作频率等几个.常用的总线:USB总线.I2C总线.DMA总线.SPI总线.I2S总线.CAN总线.RS232C/485总线.IEEE1394总线等
电路:电路是由若干相互连接、相互作用的基本电子器件组成的具有特定功能的电子系统 电路原理图:描述元器件或芯片引脚的逻辑连接的图纸,由元器件、连接、标号等组成。印制电路板(Print Circuit Board,PCB)描述元器件或芯片引脚的物理连接的图纸
采用嵌入式操作系统的必要性:1提高系统的可靠性2提高开发效率,缩短开发周期3能充分发挥32位CPU的多任务潜力
嵌入式操作系统的特点:具备一般操作系统的基本功能,如任务调度、同步机制、中断处理和内存管理等外,还有以下特点:(1)可拆装性(2)支持实时性(3)统一的接口(4)操作方便简单(5)提供强大的网络功能(6)强稳定性、弱交互性(7)固化代码(8)更好的硬件适应性
实时系统主要衡量指标:响应时间(Response Time)控制应用中最重要;生存时间(Survival Time)在此时间内数据有效;吞吐量(Throughout)一定时间内系统可以处理事件的总数 实时操作系统的分类:一.速度分,强实时系统、一般实时系统、弱实时系统.二.确定性分,硬实时系统、软实时系统.三.软件结构分,1、单线程程序(1)循环轮询:特点:对简单系统易于实现、没有中断,不会出现随机性问题、应用领域有限、对大量I/O服务的应用实现困难、大的程序不便调试,适合慢速系统(2)有限状态机:特点:小系统易于实现、可以执行快速、只通过输出功能改变机器的响应、应用领域有限、不能保证确定性、大系统难于调试。(3)事件驱动系统,事件驱动系统是能对外部时间直接响应的系统。包括前后台、实时多任务、多处理器。是RTOS的主要形式。四.开放性分
1、商用系统:特点:充分满足了模块化设计的要求,可把程序按照模块化的要求自然分解成若干独立的任务。启动监控任务程序,提高了系统的可靠性。良好的开发工具,提高了开发效率。特殊设计,避免系统崩溃。产品不断升级。
2、专用系统,一些专业厂家为本公司产品特制的OS,不提供应用开发者使用。如CISCO的网络产品的EPOC等。特点:操作系统功能较弱。针对性强、安全性高
3、开放系统,如:各类嵌入式LINUX(RT LINU、μCLINUX)、μC/OS等。特点:源码公开、功能简单、技术支持差、系统稳定性差、对开发者要求高。
典型的RTOS包括:
1、RTOS基本内核:RTOS基础和核心。包括任务管理、中断管理、基本的通信管理和内存管理。其中对外设的管理只提供中断管理,不提供具体的操作。
2、扩展内核:方便用户使用的扩展,建立在基本内核上。如GUI、TCP/IP、浏览器、电源管理、文件管理
3、设备驱动接口:在内核和IO间,定义软硬件的界线,方便RTOS移植和升级。有的统一于RTOS基本内核。
4、API RTOS与通用操作系统的(GPOS)比较:基本设计原则 :GPOS尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。RTOS:采用各种算法和策略,始终保证系统行为的可预测性(predictability),即在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求.任务调度策略:GPOS:基于优先级的抢先式调度策略,对于优先级相同的进程则采用时间片轮转调度方式,用户进程可以通过系统调用动态地调整自己的优先级,操作系统也可根据情况调整某些进程的优先级。RTOS :采用固定优先级抢先式调度方式,进程的优先级是固定不变的,并且该优先级是在运行前通过某种优先级分配策略来指定的。内存管理:GPOS:虚存管理机制 RTOS:在原有虚存管理机制的基础上增加页面锁。得到 了虚存管理机制为软件开发带来的好处,又提高了系统的可预测性。缺点是由于TLB等机制的设计也是按照注重平均表现的原则进行的,因此系统的可预测性并不能完全得到保障,采用静态内存划分的方式,为每个实时任务划分固定的内存区域。这种方式的优点是系统具有较好的可预测性,缺点是灵活性不够好。中断处理 GPOS:中断处理程序的优先级被设定为高于任何用户进程。RTOS:一种是除时钟中断外,屏蔽所有其它中断,中断处理程序变为周期性的轮询操作,这些操作由核心态的设备驱动程序或由用户态的设备支持库来完成。优点:充分保证了系统的可预测性。缺点:对环境变化的响应可能不如上述中断处理方式快,另外轮询操作在一定程度上降低了CPU的有效利用率。另一种是对于采用轮询方式无法满足需求的外部事件,采用中断方式,其它时间仍然采用轮询方式。此时中断处理程序与所以其它任务一样拥有优先级,调度器根据优先级对处于就绪态的任务和中断处理程序统一进行处理器调度。这种方式使外部事件的响应速度加快,并避免了上述中断方式带来第二个问题,但第一个问题仍然存在。共享资源的互斥访问 GPOS:采用信号量机制来解决共享资源的互斥访问 RTOS:对传统的信号量机制进行了一些扩展,引入了如优先级继承协议、优先级顶置协议以及Stack Resource Policy等机制,较好地解决了优先级倒置的问题。系统调用以及系统内部操作的时间开销 进程通过系统调用得到操作系统提供的服务,操作系统通过内部操作(如上下文切换等)来完成一些内部管理工作。为保证系统的可预测性,实时操作系统中的所有系统调用以及系统内部操作的时间开销都应是有界的,并且该界限是一个具体的量化数值。而在通用操作系统中对这些时间开销则未做如此限制
系统的可重入性 在通用操作系统中,核心态系统调用往往是不可重入的,当一低优先级任务调用核心态系统调用时,在该时间段内到达的高优先级任务必须等到低优先级的系统调用完成才能获得CPU,这就降低了系统的可预测性。因此,实时操作系统中的核心态系统调用往往设计为可重入的。
辅助工具 实时操作系统额外提供了一些辅助工具,如实时任务在最坏情况下的执行时间估算工具、系统的实时性验证工具等,可帮助工程师进行系统的实时性验证工作。
操作系统的移植:嵌入式操作系统还有一个特点是,针对不同的平台,系统不是直接可用的,一般需要经过针对专门平台的移植操作系统才能正常工作。嵌入式操作系统移植的目的是指使操作系统能在某个微处理器或微控制器上运行
操作系统的移植大体可以分为三个层次:结构层次的移植。如果待移植处理器的结构不同于任何已经支持的处理器结构。平台层次的移植。如果待移植处理器是某种操作系统已支持体系的处理器。板级移植。如果所用处理器已被操作系统支持,就只需要板级移植了。包括驱动程序的编写和环境变量设置等内容等
Windows CE系统架构:Windows CE属于比较典型的微内核操作系统。在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现
WinCE系统包括四层结构:应用程序、WinCE内核映像、板级支持包(BSP)、硬件平台。BSP(Board Support Packet——板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,它主要的功能是给上层提供统一接口,同时屏蔽各种硬件底层的差异,以及提供操作系统的驱动及硬件驱动。简单的说,就是BSP包含了所有与硬件有关的代码,为操作系统提供了硬件平台无关性
BSP组成:是一个包括启动程序Bootloader、OEM适配层程序(OAL)、标准开发板(SDB)和相关硬件设备的驱动程序和配置文件的软件包。
WinCE BSP组成:OEM改编层,Bootloader,设备驱动,配置文件
Windows CE开发环境搭建:1安装ActiveSync4.5用于连接WindowsCE设备和安装桌面Windows的PC机的工具2安装Visual Studio 2005开发套件3安装Visual Studio 2005 SP1 4安装目标设备SDK:Windows Mobile 6 professional SDK,Windows Mobile 6 professional image(CHS)
嵌入式系统的开发模式:嵌入式的开发与通用计算机系统的开发的最大不同是嵌入式系统采用交叉开发的架构。首先,利用主机系统上丰富的资源及良好的开发环境开发和仿真调试目标系统上的软件。然后通过接口将交叉编译的目标代码传输到目标系统上,并用交叉调试器在监控程序或实时内核/操作系统的支持下进行实时分析和调度。最后,目标系统在特定的环境下运行
嵌入式系统交叉开发环境:指用于嵌入式软件开发的所有工具软件的集合,一般包括文本编辑器,交叉编译器,交叉调试器,仿真器,下载器等,由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。
嵌入式开发环境的建立:1根据目标系统的处理器体系结构选择合适的工具和仿真器2根据目标系统上的接口资源,选择合适的开发主机和目标系统的联系方式3选择合适的开发主机操作系统(WINDOWS,LINUX)4在目标机和主机系统安装相应开发工具,建立开发环境5嵌入式软件开发工具根据不同的阶段分类:需求分析工具,软件设计工具,编码调试工具,测试工具,配置管理工具、维护工具等。
嵌入式软件开发工具根据嵌入式软件开发分类:与嵌入式QS相关的开发工具,用于开发:基于嵌入式OS的应用,部分驱动程序等;与嵌入式QS无关的开发工具,用于开发:基本的驱动程序,辅助硬件调试程序,系统软件等
交叉调试器:调试程序和被调试程序运行在不同机器上的调试器。调试器通过某种方式能控制目标机上被调试程序的运行方式。通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等。典型的交叉调试器方法:Crash and Burn,ROM Moniter。ROM Emulator,In Circuit E mulator,On Chip Debugging ROM Moniter:ROM Monitor是被固化且运行在目标机上的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试。调试器与ROM Monitor之间的通信遵循远程调试协议。
ROM Monitor能配合调试器完成:程序映像下载;对目标机系统内存的读写;对寄存器的读写;设置和清除不同类型的断点;单步执行指令;复位系统等调试功能
调试过程(1)启动目标机,监控器掌握对目标机的控制,等待和调试器建立连接;(2)启动调试器,并和监控器建立起通信连接;(3)使用调试器将应用程序下载到目标机上的RAM空间中;(4)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;(5)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。
ROM Emulator:ROM Emulator是一种用于替代目标机上的ROM芯片的设备,即ROM仿真器。利用这种设备,目标机可以没有ROM芯片,但目标机的CPU可以读取ROM Emulator设备上ROM芯片的内容:ROM Emulator设备上的ROM芯片的地址可以实时地映射到目标机的ROM地址空间,从而仿真(Emulation)目标机的ROM。
ICE(In-Circuit Emulator)是一种用于替代目标机上CPU的设备,即在线仿真器。它比一般的CPU有更多的引出线,能够将内部的信号输出到被控制的目标机。ICE上的Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。连接ICE和目标机时,一般是将目标机的CPU取下,而将ICE的CPU引出线接到目标机的CPU插槽。用ICE进行调试时,在Host端运行的调试器通过ICE来控制目标机上运行的程序。适用于:调试实时的应用系统;调试设备驱动程序;对硬件进行功能和性能的测试;实时性能分析
OCD(On Chip Debugging)是CPU芯片提供的一种调试功能(片上调试),可以认为是一种廉价的ICE功能:OCD的价格只有ICE的20%,但提供了ICE 80%的功能。调试方法:1)将CPU的模式分为一般模式和调试模式2)一般模式下,CPU从内存读取指令执行3)调试模式下,CPU首先从调试端口读取指令,通过调试端口可以控制CPU进入和退出调试模式;Host端的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。
软件仿真器调试的特点:优点:最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用Host资源提供更详细的错误诊断信息。缺点:和实际的运行环境差别很大;设备模拟的局限性较大;实时特性较差;对Host的资源要求较高。适用范围:对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序
嵌入式软件测试工具:能够用来辅助测试的工具,主要用来支持测试人员的工作。一般有内存分析工具,性能分析工具,覆盖分析工具,缺陷跟踪工具等。
软硬件分开设计存在问题:缺少统一的软硬件表示方法;划分依靠先验定义;不能够验证整个系统;通过HW/SW边界时很难发现不兼容问题;缺少成熟的设计流程;上市时间问题;描述更改变得困难
软硬件协同设计定义:软硬件共同设计目的是为硬件和软件的协同描述,验证和综合提供一种集成环境
软硬件协同设计的基本需求:统一的软硬件描述方式;交互式软硬件划分技术 ;完整的软硬件模型基础;正确的验证方法 软件硬件协同设计的设计流程:用HDL语言和C语言进行系统描述并进行模拟仿真和系统功能验证;对软硬件实现进行功能划分,分别用语言进行设计并将其综合起来进行功能验证和性能预测等仿真确认(协调模拟仿真);如无问题则进行软件和硬件详细设计;最后系统测试 软件硬件协同设计的特点:缩短开发周期;取得更好的设计效果;满足苛刻的设计限制 ; 这种平台的推出将不仅包含芯片本身,还必须包含完整的开发系统和典型应用实例,而供应商提供的服务和技术支持也当然要成为产品不可分割的一部分 缺点:典型的手动划分(manual Partition);固定应用领域(carefully very specialized);逐渐增长的评估需求支持很弱(no abstract models);主要强调性能;模型的连贯性在设计重用中不被支持;商业系统更强调协同验证(co-verification)方面(more achievable goal)
嵌入式系统典型的接口(RS232RS484USB、同步串口及其他串口、I2C、I2S、AC97、LAN等的应用特点): RS232:采用RS232的三根线进行通信。接口为D型的9针阳性的插头。低速红外异步通信接口,支持使用红外的双向无线通信,提供发送编码器和接收解码器,支持IrDAV1.11的物理链路。不支持IR LED驱动器和接收放大器。支持半双工,最高波特率115.2Kb/s。蓝牙 I2C总线接口:由PHILIPS创建的双线方式串行总线.双向数据线用于输入输出,双向时钟线用于控制和采样,每个设备有一个地址,采用主从方式通信。实现主机与外设间通信.允许多主机,此时采用裁决控制器。I2C单元是处理器内部总线上的设备。USB:Host控制器基于PCI,提高了系统性能,即插即用,无需手动设置地址、中断……热插拨,系统不需重启便可工作.易于扩展,理论上可连接多达127个设备,但一般都只限于连接两三个设备,真正组网后的系统稳定因素需要探讨.USB2.0以低成本实现高达480Mb/s的传输率(USB1.0的全速设备可达12Mb/s)接口标准统一、端口供电 AC97控制器:支持AC97 V2.实现话音数字化
内部集成电路声音控制器(I2S)用于数字立体声的规程 多媒体卡控制器(MMC)
Boot Loader技术:嵌入式系统中的 OS 启动加载程序.引导加载程序(包括固化在固件(firmware)中的boot代码,和Boot Loader两大部分,是系统加电后运行的第一段软件代码).相对于操作系统内核来说,它是一个硬件抽象层,系统的加载启动任务就完全由 Boot Loader 来完成,在操作系统内核运行之前运行一段小程序
功能:初始化硬件设备,建立内存空间的映射图,调整系统软硬件环境,以便操作系统内核启动
不通用:依赖于硬件,依赖于具体的板级配置 不同的 CPU有不同的Boot Loader 多阶段的 Boot Loader:提供更为复杂的功能,以及更好的可移植性,从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,启动过程可以分为 stage 1和stage2两部分 两种不同的操作模式:一.启动加载模式:自主(Autonomous)模式,从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,Boot Loader 的正常工作模式
二.下载模式:通过串口连接或网络连接等通信手段从主机(Host)下载文件,如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。通常在第一次安装内核与根文件系统时被使用系统更新也会使用 Boot Loader 的这种工作模式,通常都会向它的终端用户提供一个简单的命令行接口
第三篇:嵌入式系统相关知识点总结
嵌入式系统的定义及特点
定义:嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
特点:(1)嵌入式系统是面向特定应用的。嵌入式系统中的CPU是专门为特定应用设计的,具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于整个系统设计趋于小型化。
(2)嵌入式系统涉及先进的计算机技术、半导体技术、电子技术、通信和软件等各个行业。是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
(3)嵌入式系统的硬件和软件都必须具备高度可定制性。
(4)嵌入式系统的生命周期相当长。嵌入式系统和具体应用有机地结合在一起,其升级换代也是和具体产品同步进行的。
(5)嵌入式系统本身并不具备在其上进行进一步开发的能力。在设计完成以后,用户如果需要修改其中的程序功能,必须借助于一套专门的开发工具和环境。
(6)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存贮于磁盘等载体中。
特点也可答:1.系统内核小。2.专用性强。3.系统精简。4.高实时性的系统软件(OS)是嵌入式软件的基本要求。5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。6.嵌入式系统开发需要开发工具和环境。7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行,所以具有较长的生命周期。8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
操作系统在嵌入式系统中所起的作用(四个)
嵌入式操作系统(嵌入式linux学习)的功能
嵌入式操作系统除具备了一般操作系统(嵌入式linux系统)最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下两个方面的功能:
1.构成一个易于编程的虚拟机平台
嵌入式操作系统构成一个虚拟机平台,EOS把底层的硬件细节封装起来,为运行在它上面的软件(如中间件软件和各种应用软件)提供了一个抽象的编程接口。软件开发在这个编程接口的上进行,而不直接与机器硬件层打交道。
2.系统资源的管理者
嵌入式操作系统是一个系统资源的管理者,负责管理系统当中的各种软硬件资源,如处理器、内存、各种I/O设备、文件和数据等,使得整个系统能够高效、可靠地运转。
嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
嵌入式操作系统是嵌入式系统应用的核心.嵌入式操作系统,大大地提高了嵌入式系统硬件工作效率,并为应用软件开发提供了极大的便利。
操作系统的作用主要体现在两方面:
1.屏蔽硬件物理特性和操作细节,为用户使用计算机提供了便利 2.有效管理系统资源,提高系统资源使用效率
Linux与嵌入式使用的uclinux操作系统的关系
Linux与UNIX系统兼容,开放源代码。现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。所以uClinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。
uClinux是针对控制领域的嵌入式linux操作系统,它从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。uClinux同标准Linux的最大区别就在于内存管理。标准Linux是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU,MMU把虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟—物理地址转换映射,支持不同任务之间的保护。对于uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术,仍然采用存储器的分页管理。
什么是内核?
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
什么是Bootlonder? 答案一搜狗百科:启动程序(英语:boot loader,也称启动加载器,引导程序)位于电脑或其他计算机应用上,是指引导操作系统启动的程序。引导程序启动方式及程序视应用机型种类而不同。BIOS开机完成后,bootloader就接手初始化硬件设备、创建存储器空间的映射,以便为操作系统内核准备好正确的软硬件环境。BootLoader是依赖于硬件而实现的,特别是在嵌入式领域,为嵌入式系统建立一个通用的BootLoader是很困难的。
答案二百度百科:Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
使用带uclinux操作系统的嵌入式系统应该注意什么问题?
uClinux的内存管理
uClinux同标准Linux的最大区别就在于内存管理。对于uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术,仍采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。这一点影响了系统工作的很多方面。
uClinux系统对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。由于应用程序加载时必须分配连续的地址空间,而针对不同硬件平台的可一次成块,分配内存大小限制是不同,所以开发人员在开发应用程序时必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另外由于采用实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空间,程序开发时要保证不侵犯其它程序的地址空间,以使得程序不至于破坏系统的正常工作,或导致其它程序的运行异常。
从内存的访问角度来看,开发人员的权利增大了(开发人员在编程时可以访问任意的地址空间),但与此同时系统的安全性也大为下降。uClinux的多进程处理
uClinux没有MMU管理存储器,在实现多个进程时(fork调用生成子进程)需要实现数据保护。uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux针对没有mmu处理器开发,所以被迫使用一种flat方式的内存管理模式,启动新的应用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,uClinux必须在可执行文件加载阶段对可执行文件reloc处理,使得程序执行时能够直接使用物理内存。
编程实现五个点的中值滤波和均值滤波
clear all;t=0:0.01:1;f2=5;%生成一个正弦信号y; y1=1*sin(2*pi*f2*t);%y1=square(2*pi*f2*t);%向y中加入噪声信号生成x;x1=y1+0.1*randn(1,101);figure(1)subplot(2,1,1);plot(t,y1,'r');title('生成一个正弦信号y');grid;legend y;subplot(2,1,2);plot(t, x1,'r');title('向y中加入噪声信号生成x');grid;legend x;X=1:length(x1)for X=1:length(x1)z2=smooth(x1,5);%M=5时的均值滤波 end for X=1:length(x1)figure(2)plot(t,z1,'r');title('M=5时的均值滤波处理后的信号');grid;legend y;for X=1:length(x1)L2= median(x1,5);end figure(3)plot(t,L2,'r');title('M=5时的中值滤波处理后的信号');grid;legend y;
第四篇:嵌入式系统复习总结
嵌入式系统复习总结
一、嵌入式系统的概述
1.嵌入式系统的定义:嵌入到对象中的专业计算机 2.三大特点:嵌入型、专业性、计算机系统 3.组成:软件、硬件
4.结构层次:应用程序、嵌入式系统实时操作系统,硬件抽象层、嵌入式系统硬件工作平台
5.分类:MCU、EMPU、DSP、CPLDFPGA、SoC
二、51单片机
1.单片机的特点:体积小、控制功能强、可靠性高、易扩展易产品化、性能价格比高、需要开发装置
2.51单片机的组成:CPU、64KB数据存储器、4KB程序存储器、两个16位定时计数器、5个中断源、P0~P3 4个并行IO口、4个串行
3存储其结构特点:内、外数据存储器,内、外程序存储器 程序存储器,内外统一编制,地址重合区由EA决定,EA=1访问外部,EA=0访问内部,内部数据存储器:00H~20H由32个寄存器组成,每八个一组,21H~2FH位寻址区,30H~FFH用户存储区,内外存储地址有指令区分MOVSMOV SFR特殊功能寄存器:ACC、B、SP、DPTR、PSW、IO宿存器 4.CPU时序电路:振荡周期(1)、状态周期(2)、机器周期(12)、指令周期、CPU访问指令时两次读指令,访问外部程序存储器是ALE两次有效,S1P2S4P2,4.单片机的引脚功能:PSEN,ALEPROG,EA 5.输入输出口结构:p0准双向口,每位可带8个LSTTTL负载,输出需要上拉电阻(准双向原因:作为输出口,要给锁存器1,屏蔽两个二极管)
p1、p2均为准双向口,带四个负载,p1也需要上拉电阻,p2自带电阻,p2控制信号为1时输出高八位地址 p3每个位有特殊定义 6.单片机的寻址方式:
直接寻址:SFR寻址均为直接寻址
寄存器寻址:乘法指令中B寄存器为寄存器寻 立即数寻址:
寄存器间接寻址:R0,R1 变址寻址:注意PC变址不改变PC值,DPTR变址可以随意到任意位置取数
相对变址寻址:调转指令 位寻址 7.单片机指令:(1)数据传送类指令:MOVMOVXMOVC,XCHXCHDSWAP,PUSHPOP(2)数据传送类指令:
ADDADDCINC,SUBBDEC,MUL(低位A,高位B),DIV(商A,余数B)
(3)逻辑类指令:
ANL,ORL,XRL, RL,RR,RLC,RRC, CPL(按位取反),CLR(请位)
(4)转移类指令
AJMP,LJMP,SJMP,JMP.JZ.JNZ,CJNE,CJE,DJNZ(5)位转移指令
JC rel ;若CY=1,则PC ←PC+ 2 + rel ;若CY=0,则PC ←PC+ 2 JNC rel ;若CY=0,则PC ←PC+ 2 + rel ;若CY=1,则PC ←PC+ 2 JB bit,rel ;若(bit)=1,则PC ←PC+ 3 + rel ;若(bit)=0,则PC ←PC+ 3 JNB bit,rel ;若(bit)=0,则PC ←PC+ 3 + rel ;若(bit)=1,则PC ←PC+ 3 JBC bit,rel ;若(bit)=1,则PC ←PC+ 3 + rel,bit←0 ;若(bit)=0,则PC ←PC+ 3 8.程序设计:
冒泡法,BCD转2进制,2进制转BCD,ASCALL转2进制 9.伪指令:ORG,EQU 10.中断系统
两个外部中断INT0、1,两个定时器中断TI0、TI1,串口中断
中断系统的组成:TCON,SCON,IE,IP
中断响应的条件:
有中断请求; EA=1;
IE相应的中断位为1;CPU执行指令最后一个周期;
CPU没有执行同级或者更高级的中断指令; CPU不执行RET,RETI或者读取IEIP的指令
中断响应的过程:
①置位相应的优先级状态触发器,清除相应的中断请求标志(TI和RI除外);
②由硬件自动生成一条长调用指令LCALL,将断点地址(当前PC值)压入堆栈加以保护;
③将中断入口地址装入PC,使程序转向执行中断服务程序。中断响应时间为3~8个机器周期
中断相应返回时: 将优先状态触发器置0; 将返回地址送至PC返回
定时器中断自动清除标志位 外部中断:
(1)电平触发外部清除,或者软件清除(2)边缘触发自动清除 串行口中断软件清除
10.定时器中断:TCON,80H设置(T0低位,T1高位)
工作方式0:13位计数TH位高八位TL低五位表示低五位,工作方式1:16位计数
工作方式2:8位计数,TL方初值,TH计数
工作方式3: TL0不变可做定时计数,用T0的一套,TH0只能定时用T1的一套。T1为方式3时不工作 11.利用定时中断溢出编程
(1)产生方波信号(方波信号的嵌套)
①设置TMOD控制字,确定工作方式;
②计算计数初值并装入计数值寄存器TH0(1)、TL0(1); ③若使用中断系统,则开中断EA=
1、ET0或ET1=1; ④启动定时器/计数器工作(置TR0或TR1)。(2)外部中断的扩展(查询方式,将初值设置为最大)
禁止中断;JBC 12.串行口波特率的计算
方式0:固有频率的12分之一
方式1、3:与三相同与T
1fOSC2SMOD的益处时间有关 32122nx 方式2:固有频率的64分之一
三、ARM单片机
(1)两种工作状态:ARM状态(32位)、THUM状态(16位)
工作状态的切换:BX RN 寄存器最后一位是0切换ABM状态,最后一位是1切换到THUM状态
(2)七种工作模式:用户模式、系统模式、管理模式、外部中断模式、快速中断模式、未定义指令模式、数据访问中止模式
后五个属于“异常模式”,后六属于“特权模式”
(3)ARM7的流水式作业:取指——译码——执行
采用冯诺依曼存储结构 ARM9流水式作业:取指——译码——执行——访存——回写 采用哈佛结构
(4)存储其结构(37个寄存器)
31个通用寄存器、6个标志位寄存器 1.R0~R7八个通用寄存器(7种模式通用)2.R8~R12前六种公用,最后一种自己用一组 3.R13:堆栈指针
R14:子程序连接寄存器(子程序调用时自动将下一条地址送给R14),这两个寄存器用户模式、系统模式公用一组,异常模式每种各一组 4.R15,:PC计数器
5.CPSR:程序状态寄存器 N.V.C.Z.Q.I.F.T.M4~M0 6.SPSR:程序状态备用寄存器,调用子程序将当前CPSR复制给SPSR,用户模式与系统模式没有,异常模式每种一组。
(5)存储类型;
数据类型三种:8位字节、16位半字、32位字
指令类型:16位THUM、32位ARM 大端格式:与正常存储方式相反
小端格式:高字节对应高地址,低字节对应低地址(6)多级存储形式:寄存器组、片上RAM、CASHE、主存储器
(7)异常:(其中异常模式类似于中断)1.种类:按优先级排列
复位、数据中止、FIQ、IRQ、指令预取终止、未定义指令终止、SWI(软件中止)2.异常的相应过程:
保护返回地址:将下一条地址复制到LR子程序连接寄存器中;
保护当前状态寄存器的值:复制CPSR至将要执行模式的SPSR;
强行设置异常模式下CPSR的值;
强制PC从中断向量地址取出指令执行;
可以设置中断禁止位;
3.中断的返回
将返回的值写入PC中
恢复CPSR的值
清除冲断禁止位
4.异常返回地址的确定(LR 在复制时已自动减4)
(1)软件中止:直接返回(2)未定义指令:直接返回
(3)FIQ、IRQ、指令预取中止:均减四返回
(4)数据中止:减八返回
(8)寻址方式
立即寻址:MOV R0, #0xFF00(8位位图)寄存器寻址:MOV R2, R3 寄存器移位寻址:MOV R0, R1, LSL#4(6种类型的移位操作)
寄存器间接寻址:LDR R1,[R2] 变址寻址:LDR R0, [R1,#8](前变址寻址);
LDR R0, [R1,#8]!(自动变址寻址); LDR R0, [R1], #2(后变址寻址)
堆栈寻址:STMFD SP!, {R4-R7, LR}(4种类型的堆栈操作)块复制寻址:LDMIA R1!,{R2-R4,R5}(4种块复制寻址操作)
相对寻址:BL SUBR(9)指令集: 数据传送:MOV、MVN 算术运算:ADD、ADC、SUB、SBC、RSB、RSC、MUL、MLA、UMULL、UMLAL、SMULL、SMLAL 逻辑运算:AND、ORR、EOR、BIC 比较和测试:CMP、CMN ARM程序状态访问指令:MSR ARM存储器访问指令
单一数据:LDR、STR、LDRB、STRB 批量数据:LDM、STM(IA、IB、DA、DB)数据交换:SWP ARM分支指令:B、BL、BX(10)伪指令与程序设计 1.伪指令
ADR:小范围加载指令,将相对偏移量加载到某个寄存器中,只能用一条指令来实现,若不能用一条指令来实现则编译错误
ADRL:中范围加载指令,将PC的相对偏移量加载到某个寄存器中,必须用两条指令来实现,LDR:将某个32位偏移量加载到寄存器中
声明变量:
全局变量:GBLA,GBLL,GBLS 局部变量:LCLA,LCLL,LCLS 变量赋值:SETA,SETL,SETS 声明寄存器列表:RLIST 数据定义伪指令:DCB DCDU DCWU 分配一块字节内存单元伪操作SPACE(%)格式:标号 SPACE expr 或 标号 % expr 声明数据缓冲池(文字池)伪操作LTORG 格式: LTORG 段指示伪操作AREA 格式:AREA 段名 {,属性1} {,属性2}… 程序入口伪操作ENTRY 格式:ENTRY(11)基本ATPCS规则
1.子程序调用过程中寄存器的使用规则
子程序间通过寄存器R0~R3来传递参数
在子程序中,使用寄存器R4~R11来保存局部变量 寄存器R12用作子程序内部调用的scratch寄存器 寄存器R13用作数据栈指针,记作sp或SP 寄存器R14用作链接寄存器,记作lr或LR 寄存器R15是程序计数器,记作pc或PC。2.数据栈的使用规则;
数据栈为满递减FD类型,并对数据栈的操作是8字节对齐的
3.参数的传递规则。
(a)参数个数可变的子程序参数传递规则
(b)参数个数固定的子程序参数传递规则(c)子程序结果返回规则
四、存储器与接口技术
1.SRAM:静态随机访问存储
(1)组成:地址线、数据线、读写控制、片选信号线(2)工作原理:读写均先输送地址,在进行数据的输入和输出
(3)SRAM与CPU的链接: 2.DRAM:
有行地址和列地址,工作时有地址锁存器,先输送行地址在输送列地址,选中单元后输送单元,读数据时需要刷新电路
3.SDRAM:与SRAM相比多了同步时钟信号,同时增添了BLOCK,地址分行地址、列地址,也需要刷新电路,BLOCK为最大读写单元,引脚BA选择块儿 4.FLASH:
(1)NOR FLASH:存储容量绞小,读速度较快,采用线性寻址,可直接找到存储位置
(2)HAND FLASH:存储密度大,写入和擦除速度较快,有BLOCK存储单元,有块儿地址,页地址,页内地址,数据地址线复用,传送地址需要四个周期
5.MCS-51单片机
P0口作为地址线低八位和数据线,所以需要地址锁存器,p0口分时复用,由ALE管理,P2输出地址高八位,PSEN接程序存储器使能端OE 进行存储其扩展时可用与门或者先选来链接存储器片选信号进行扩展。
链接程序存储器数据存储器复用时,将PSEN 与RD相与和选通相连连 6.ARM(S3C2410)存储机制:
(1)与SRAM、DRAM相连(2)高速存储机制:CASHE(3)NMUI 接口设计:
(1)HAND FLASH启动:将地址前4KB 的代码作为启动代码
(2)ROM启动: 可选择16位或者32位的存储器,通过M1、M0进行选择 在与存储器进行连接时,注意地址线,若存储器为8位直接位位对应,16位是错开一位,32位时错开两位 7.接口 1.RS-232C 信号电平与逻辑
RS-232C信号采用负逻辑,即以+12V电平视为逻辑“0”,-12V电平视为逻辑“1”
串行接口电路中需要在TTL标准与RS-232C标准之间进行电平转换 2.SPI接口
总线定义及信号线构成 传输技术:同步、全双工
SPI采用同步、全双工串行传输技术,也称为同步串行总线接口;SPI总线(Serial Peripheral Interface)称为串行外围设备接口 3.USB 总线定义及信号线构成,半双工传输 三种设备Host、Device和HUB USB(Universal Serial Bus)即通用串行总线,主要用于PC与外围设备互连。USB的输出特性是差分驱动、支持半双工方式,接收采用差分接收 USB体系结构中包括三种设备 Host(即主控制器)Device(设备)
HUB(集线器,也是设备)4.I2C总线
总线定义及信号线构成,信号线连接方式 总线仲裁
I2C总线定义了两根传输线:SDA(串行数据)和SCL(串行时钟),都是双向传输线,通过电阻上拉到正电源,总线空闲时都是高电平5.I2S总线
总线定义及信号线构成 数据传输格式
I2S总线(Inter-IC Sound Bus集成电路内置音频总线 串行数据高位MSB在先,发送器和接收器可以有不同的字长无论有多少位有效数据,最高位MSB总是出现在IISLRCK变化后的第二个IISCLK脉冲处。MSB位置固定,LSB位置取决于字长。这就使得接收端与发送端可以不同的有效位数。如果接收端能处理的有效位数少于发送端的,则可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端的,则剩余低位自行补0。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位
第五篇:嵌入式系统复习总结
一、嵌入式系统定义:以应用中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
二、硬件设计的步骤:1需求和功能分析,这是系统设计的首要任务和依据。2设计方案的规划,主要操作有构造系统体系结构;软硬件功能划分;性能指标评估;可维护性;3核心部件选型,核心部件通常指系统的处理器、微控制器或DSP等;4主要部件选型,主要部件有存储器、测试接口、外设接口等;5 基础部件选型,基础部件指系统设计所需的电源电路、时钟电路、复位电路、低功耗电路等;6 原理图设计;7 PCB设计;8 系统调试;9产品维护和升级。
三、嵌入式操作系统EOS(Embedded Operating System):嵌入式应用软件的基础和开发平台,它是一段嵌入在目标硬件中的软件,用户的其他应用程序都建立在嵌入式操作系统之上。目前有:linux、uClinux、WinCE、Uc/OS-II、VxWorks等,它们具有实时性高、可靠性好、可裁剪、体积小等特性。实时系统是指一个能够在指定或者确定的时间内完成系统功能以及对外部或内部、同步或异步时间作出响应的系统。嵌入式实时操作系统(Real Time Embedded Operating System)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统(包括硬、软件系统)极为重要的组成部分。
四、S3C44B0X:功能:
2.5V ARM7TDMI内核,带有8K高速缓存器(SAMBAII 1通道多主IIC-BUS控制器;
总线体系结构); 1通道IIS-BUS控制器;
外部存储器控制器(FP/EDO/SDRAM控制,片选逻 5个PWM定时器核1通道内部定时器;
辑); 看门狗定时器;
LCD控制器(最大支持256色STN,LCD具有专用 71个通用I/O口8通道外部中断源;
DMA); 功耗控制:具有普通、慢速、空闲核停止模式; 2通道通用DMA、2通道外设DMA并具有外部请求 8通道10位ADC;
引脚; 具有日历功能的RTC;
2通道UART,带有握手协议1通道SIO; 具有PLL的片上时钟发生器。
5种模式:
正常模式:正常运行模式;低速模式:不加PLL 的低时钟频率模式;
空闲模式:只停止CPU 的时钟;停止模式:停止所有的时钟;
LCD的SL空闲模式:SL 空闲模式的进入将导致 LCD 控制器开始工作。此时,CPU和除LCD控制器外的所有外设都停止工作。
五、嵌入式最小系统是指由保证嵌入式微处理器可靠工作所必需的基本电路组成的系统,通常包括处理器单元、时钟单元、复位单元、存储器单元、供电单元和调试接口。基于ARM的嵌入式最小系统基本组成主要包括:基于ARM核的微处理器、电源电路、复位电路、时钟电路、存储器电路(FLASH和SDRAM)、UART接口电路和JTAG调试接口。
六、异常处理的基本步骤:1将下一条指令的地址存入相应连接寄存器
LR,将CPSR复制到相应的SPSR中。2根据异常类型,强制设置CPSR的运行模式位。3强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:1将连接寄存器LR的值减去相应的偏移量后送到PC中。2将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。
七、调用:
1、汇编访问C变量全局:汇编可通过地址间接访问在C语言中声明过的全局变量。通过使用important关键词引入全局变量,并利用ldr
与str指令根据全局变量的地址访问他们。
2、C语言调用汇编:汇编语言设计首先遵守atpcs。首先在汇编文件需要使用EXPORT为操作来声明,使得本程序可以被其他程序调用。
同时要在C程序调用汇编程序之前要在C程序中使用extern关键字作为引入的汇编程序的声明;
3、汇编调用C:汇编语言设计首先遵守atpcs。需要在汇编中使用IMPORT伪操作来声明对应的C语言程序。在汇编语言程序中通过BL
指令来调用子程序。
八、嵌入式系统特点:1“专用”计算机系统,2运行环境差异很大,3比通用PC资源少,4功耗低、体积小、集成度高、成本低,5具有完整的系统测试和可靠性评估体系,6具有较长的生命周期7需要专用开发工具和方法进行设计,8包含专用调试电路,9多学科知识集成系统。应用范围:1汽车;2工业控制;3通信设备;4消费电子5商业终端6航空航天、军事需求。
嵌入式应用的多样性,造就了嵌入式微处理器的多样性,32位嵌入式RISC处理器产品主要有MIPS公司的MIPS,IBM公司的PowerPC系列,Sun公司的Sparc和ARM公司的基于ARM核系列。
九、嵌入式系统的设计过程:(1)系统定义与需求分析(2)系统设计方案的初步确立(3)初步设计方案性价比评估与方案评审论证(4)完善初步方案、初步方案实施(5)软硬件集成测试(6)系统功能性能测试及可靠性测试ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。
十、ARM微处理器:7种运行模式
用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
未定义(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。
十一、ARM寄存器: ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。
ARM指令集可以分为6大类:数据处理指令(算术运算指令;逻辑运算指令;数据传送指令;比较指令;测试指令;乘法指令);Load/Store指令;跳转指令;程序状态寄存器处理指令;协处理器指令;异常产生指令。
ARM处理器支持的基本寻址方式有7种:立即寻址;寄存器寻址;寄存器间接寻址;基址加偏址寻址;堆栈寻址;快拷贝寻址;相对寻址。
两种常见的ARM开发环境及其特点:ADS/SDT IDE开发环境:它由ARM公司开发,使用了CodeWarrior公司的编译器; 集成了GNU开发工具的IDE开发环境:它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。
十二、Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
BootLoader包含两种不同的操作模式:启动加载(Boot loading)模式:Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。下载(Downloading)模式:Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件
嵌入式系统的发展趋势:
1即将迎来以ARM为核心的32位浪潮
嵌入式系统应用的高低端 :以4位、8位单片机或为控制器(MCU)为核心的嵌入式系统,早已广泛的应用于工业控制、军事、航空航天、家电等各个领域,极大地推动了IT技术的发展。目前这些属于最低端应用的嵌入式系统。这些低端应用市场范围非常广泛,局部带动了低端应用。
即将来临的32位浪潮:随着嵌入式系统的不断发展,当应用越来越复杂、使用范围越来越广时,8位处理器已经无法满足的需要,此时32位SoC为高性能嵌入式系统开发提供了功能丰富的硬件平台,也为实时嵌入式操作系统的广泛应用提供了硬件基础。因此,以32位处理器作为高性能嵌入式系统开发的核心已是嵌入式技术发展的必然趋势。
32位向ARM 转移,形成ARM市场主导地位:在嵌入式微处理器中,虽然有多种嵌入式处理器可供选择,但是ARM处理器核以其低功耗、高性能等突出优点已在32位嵌入式应用中稳居第一。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案事实上的标准。优良的性能和广泛的市场定位极大地增加和丰富了ARM的资源,加速了ARM处理器面向各种应用的系统芯片的开发和发展。
2嵌入式系统与Internet的融合:
为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。3未来嵌入式系统的发展趋势
近几年,在消费电子、工业应用、军事国防、网络设备等领域的嵌入式应用,为中提供了难得的发展机遇。另外,嵌入式技术又不断地刺激新的技术的产生——信息家电、医疗电子病历、微小型智能武器等方面应用也日益广泛,应用深度也进一步加强。
互联网的普及、微电子加工工艺的提高、3C技术的普遍融合、使用者需求的增多、信息服务应用的生活化、技术的渗透性和融合性、设备的关联性以及个性化服务的普遍需求。因而,移动化处理信息,即随时随地的获取信息、处理信息等,成为信息社会把握先机而制胜的必然武器。日益发展的嵌入式已能够满足人们随时随地利用任何设备和手段来接收、处理和发布信息的需求。低成本、低功耗的消费电子和宽带、无线通信以及处理运算的高效计算结合技术将进一步刺激和加速嵌入式技术的发展,造就更广阔的市场空间。