收藏 分销(赏)

嵌入式系统与应用教学课件整本书电子教案全套教学教程电子教案.ppt

上传人:a199****6536 文档编号:11293782 上传时间:2025-07-15 格式:PPT 页数:367 大小:3.08MB 下载积分:25 金币
下载 相关
嵌入式系统与应用教学课件整本书电子教案全套教学教程电子教案.ppt_第1页
第1页 / 共367页
嵌入式系统与应用教学课件整本书电子教案全套教学教程电子教案.ppt_第2页
第2页 / 共367页


点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第,1,章 嵌入式系统概述,本章重点介绍嵌入式系统的一些基本知识,包括嵌入式系统的概念、发展、特点、组成、分类、应用等。,本章内容要点:,1.,嵌入式系统的概念,2.,嵌入式系统的组成,3.,嵌入式系统的类型,4.,嵌入式系统的应用领域与发展趋势,本章内容一般只要求作认识性了解,通过学习,学生应该能够:,1.,初步建立对嵌入式系统的全面认识;,2.,为今后的深入学习和研究打下基础。,1.1,嵌入式系统的概念,1.1.1,嵌入式系统的发展历程,纵观嵌入式系统的发展历程,大致经历了以下四个阶段,:,1,、无操作系统阶段,2,、简单操作系统阶段,3,、实时操作系统阶段,4,、面向,Internet,阶段,1.1.2,嵌入式系统的定义,定义,1,:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。它与通用计算机技术的最大差异是必须支持硬件裁减和软件裁减,以适应应用系统对体积、功能、功耗、可靠性、成本等的特殊要求。,定义,2,:根据,IEEE,(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为,devices used to control,monitor,or assist,theoperation,of equipment,machinery or plants,)。可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。,1.1.3,嵌入式系统的主要特征,1,、系统内核小,2,、专用性强,3,、系统精简,4,、实时可靠,5,、嵌入式软件开发走向标准化,6,、嵌入式系统开发需要开发工具和环境,1.2,嵌入式系统的组成,1.2.1,嵌入式硬件组成,嵌入式系统硬件可分为嵌入式处理器、外围电路和外,设与扩展三部分组成,如图,1-1,所示。,1.2.2,嵌入式软件组成,嵌入式系统的软件结构可以分为四个层次:,1,、驱动层程序,2,、嵌入式操作系统,3,、应用编程接口,4,、嵌入式应用系统,1.3,嵌入式系统的类型,根据不同的分类标准,嵌入式系统有不同的分类方法,,这里根据嵌入式系统结构的复杂程度将其分为以下,3,类,:,1.,缩减,PC,系统,2.,高端嵌入式系统,3.,单片机系统,1.4,嵌入式系统的应用领域与发展趋势,1.4.1,嵌入式系统的应用领域,1,、信息电器,2,、移动计算设备,3,、网络设备,4,、智能控制与仪器,1.4.2,嵌入式系统的发展趋势,1,、嵌入式应用软件的开发需要强大的开发工具和操作系,统的支持,2,、联网成为必然趋势,3,、精简系统内核、算法,设备实现小尺寸、微功耗和低,成本,4,、提供丰富多样的多媒体人机界面,本章系统的讲述了嵌入式系统的定义与发展过程,给出了嵌入式系统的基本特征,重点论述了嵌入式系统的软硬件基本构成体系与嵌入式系统的类型,介绍了嵌入式系统的应用领域及发展趋势。,通过本章的学习,读者应该了解嵌入式系统的基本概念,掌握嵌入式系统的组成与特点,为进一步学习奠定基础。,习 题,1,什么是嵌入式系统?,2,嵌入式系统有什么特点?,3,目前常用的嵌入式处理器有哪几类?,4,嵌入式系统硬件由哪些部分组成?,5,嵌入式软件一般由哪几部分组成?每个部分的功能是什么?,6,列举,2,3,个嵌入式系统应用实例,分析它们的软硬件组成及特 点。,第,2,章 嵌入式系统的开发模式与方法,嵌入式系统的设计开发与一般计算机应用系统的开发有很大的不同,它必须充分考虑嵌入式应用环境资源有限、实时、软硬件相互依赖所带来的问题。,本章针对嵌入式系统开发的实际需求,在讲述嵌入式系统开发相关基本概念的基础上,系统介绍嵌入式系统开发两种常用的开发模式,重点描述嵌入式系统的设计步骤与方法。,本章内容要点:,1.,嵌入式系统的相关知识,2.,嵌入式系统的开发模式,3.,嵌入式系统的设计方法,通过对本章内容的学习,学生应该能够做到:,了解:嵌入式系统的设计步骤与方法。,理解:进一步理解嵌入式系统的开发过程与设计原则。,2.1,相关知识,1,存储器管理单元,2,板级支持包,BSP,3,BootLoader,与,OSLoader,4 ICE,与,ICD,5,编译器与交叉编译器,6 JTAG,7,模拟器与仿真器,2.2,嵌入式系统开发的模式,2.2.1,面向硬件的开发模式,面向硬件的开发模式适合开发目标主机上没有安装操作系统的应用程序,在开发主机上完成程序的编写、编译之后可以通过,ICE,工具直接下载到目标系统上进行在线运行和调试。其开发形式如图,2-1,所示。需要硬件调试器、交叉编译器、模拟仿真器和开发主机等设备。,图,2-1,面向硬件的开发形式,2.2.2,面向操作系统的开发模式,当需要对面向一个内部已经安装好了操作系统(或者具有程序下载功能)的目标系统进行开发时,就可以采用面向操作系统的开发模式。其开发形式如图,2-2,所示:,图,2-2,面向操作系统的开发形式,2.3,嵌入式系统设计方法,2.3.1,嵌入式系统设计方法,1,、硬软件协同设计,其过程如图,2-4,所示,:,图,2-4,软硬件协同设计过程,2,、基于构件的设计方法,基于构件的设计分以下两部分完成:,构件设计,应用软件设计,基于构件的开发是一种十分有效的方法。,其开发过程如图,2-5,所示,图,2-5,基于构件的设计过程,3,、基于中间件的设计方法,基于中间件的嵌入式软件开发,可以忽略下层平台之间的差异,也不考虑应用之间通信协议的实现问题,而是集中精力解决如何达到应用软件本身的性能指标。基于中间件技术的嵌入式软件编程的系统结构如,2-6,所示。,图,2-6,嵌入式中间件编程结构,2.3.2,嵌入式系统编程,目前常用的嵌入式软件程序设计语言有:,1,、汇编语言,2,、,C,语言,3,、嵌入式,Java,2.3.3,嵌入式系统测试,1,、测试目的,源代码级测试,终端产品测试,应用模拟测试,2,、测试步骤,构造测试模型,产生测试用例,执行测试,测试评价,3,、测试工具,纯软件测试工具,纯硬件测试工具,硬件辅助软件的测试工具,2.3.5,嵌入式软件开发环境,1,、交叉开发环境,2,、仿真开发环境,3,、基于,Linus,的嵌入式开发环境,GNU,4,、基于,ARM,的集成开发环境,RealView,MDK,本章针对嵌入式系统开发的特点,在介绍了嵌入式系统开发过程中常用的基本术语的基础上,重点叙述了面向硬件和面向操作系统的开发模式,对嵌入式系统的设计方法进行了详细的讨论,概述了嵌入式系统的设计过程,讲述了开发过程所涉及的各方面知识,分析了嵌入式系统开发环境的构成,为读者提供了一些嵌入式系统设计、编程、测试、软件重用、调试的基本方法与基本思想。,通过本章的学习,读者可以较全面地掌握嵌入式系统地设计理念与设计过程,熟悉常用的方法和技术,为设计一个完整的嵌入式系统建立整体概念,也为学习后续章节的内容做好准备。,习 题,1,什么是,BSP,?,BSP,与,BIOS,有什么异同?,2,简述,BootLoader,与,OSLoader,的作用与功能。,3,简述交叉编译器和模拟器的功能。,4,简述面向硬件开发模式与面向操作系统开发模式的特点。,5,简述嵌入式系统的开发过程及各过程的功能。,6,嵌入式系统软件设计有哪些常用的方法?,7,嵌入式软件具有哪些特点?,8,嵌入式软件设计应该遵循哪些基本原则?,9,常用的嵌入式应用程序设计语言有哪几种?各自适合哪些场合的编程?,10,嵌入式软件需要哪些常规的测试?,11,按嵌入式软件测试工具的构成,其测试工具分为哪几类?分别有什么优缺点?,12,嵌入式软件开发环境应由哪些部分组成?各部分具有什么功能?,13,比较交叉开发和仿真开发的不同点。,14,列举两种以上的常用嵌入式开发环境,说明它们的组成结构及特点。,15,开发环境一般提供哪些开发工具?各开发工具的主要功能是什么?,第,3,章,ARM,微处理器体系结构,本章介绍,ARM,处理器的一些基本知识,包括,ARM,的版本、,ARM,处理器系列和,ARM,处理器的体系结构。,本章内容要点:,1.ARM,概述,2.ARM,的版本,3.ARM,微处理器系列,4.ARM,微处理器结构,5.,基于,ARM9,的,S3C2410AX,微处理器,本章内容一般只要求作认识性了解,通过学习,学生应该能够做到:,了解,ARM,处理器的结构和分类;,理解,ARM,处理器体系结构的特点;,初步认识,S3C2410AX,微处理器。,除此之外,,ARM,体系采用了一些特别的技术,在保证高,性能的同时尽量减小芯片体积,减低芯片的功耗。这些技术,包括,:,1.,在同一条数据处理指令中包含算术逻辑处理单元处理和,移位处理。,2.,使用地址自动增加,(,减少,),来优化程序中循环处理。,3.Load/Store,指令可以批量传输数据,从而提高数据传输,的效率。,4.,所有指令都可以根据前面指令执行结果,决定是否执行,,以提高指令执行的效率。,3.2 ARM,的版本,迄今为止,,ARM,体系结构共定义了,7,个版本。当前正在使用的,ARM,内核,:,图,3-1,当前正在使用的,ARM,内核,2,、,ARM,体系的变种,Thumb,指令集,(T,变种,),长乘法指令,(M,变种,),增强型,DSP,指令,(E,变种,),Java,加速器,Jazelle(J,变种,),ARM,媒体功能扩展,(SIMD,变种,),3,、,ARM/Thumb,体系版本的命名格式,ARM/Thumb,体系版本的命名格式,目前有效的,ARM/Thumb,体系版本名称及其含义,在,ARM 7 TDMI,时期,其变种后缀为:,T,:支持,16,位压缩指令集,Thumb,M,:内嵌硬件乘法器(,32*3264,或者,32*32+6464,),D,:,对调试的支持(,Debug,),I,:嵌入的,ICE,仿真器,支持片上断点和调试点,到,ARM 926 EJ-S,之后,上述变种后缀作为默认不,再列出,新的变种后缀及其含义为:,E,:,DSP,指令支持,J,:,Java,指令支持,S,:可逻辑综合软内核,F,:带向量浮点协运算器,Z,:,内置,TrustZone,安保功能,T2,:,内置,Thumb-2,功能,3.3 ARM,微处理器系列,1,、,ARM7,系列,ARM7,系列包括,ARM7TDMI,,,ARM7TDMI-S,,,ARM7EJ-S,和,ARM720T,这,4,种类型,主要用于适应,不同的市场需求。,ARM7,系列处理器具有以下主要特点,:,成熟的大批量的,32,位,R1CS,芯片,最高主频达到,130,MlPS,功耗很低,代码密度很高,兼容,16,位的微处理器,得到广泛的操作系统和实时操作系统支持,包括,Windows CE,、,Palm OS,、,Symbian,OS,、,Linux,以及业界领先的实时操作系统。,众多的开发工具,EDA,仿真模型,优秀的调试机制,业界众多领先的,IC,制造商生产这类芯片,提供,0.25um.0.18um,及,0.13um,的生产工艺。,代码与,ARM9,系列、,ARM9E,,,ARM10E,兼容,2,、,ARM9,系列,ARM9,系列处理器使用,ARM9TDMI,处理器核,其中包,含了,16,位的,Thumb,指令集。使用,Thump,指令集可以以,16,位的系统开销得到,32,位的系统性能。,ARM9,系列包括,ARM920T,,,ARM922T,和,ARM940T,这,3,种类型,主要用于适应不同的市场需求。,ARM9,系列处理器具有以下主要特点,:,支持,32,位,ARM,指令集和,16,位,Thumb,指令集的,32,位,RISC,处理器,五级整数流水线,单一的,32,位,AMBA,总线接口,MMU,支持,Window CE,,,Palm OS,,,Symbian,OS,,,Linux,等,统一的数据,cache,和指令,cache,提供,0.18um.0.15um,及,0.13urn,的生产工艺,3,、,ARM9E,系列,ARM9E,系列处理器使用单一的处理器内核提供了微控制器、,DSP,,,.,Iava,应用系统的解决方案,从而极大地减小了芯片的大小以及复杂程度,降低了功耗,缩短了产品面世时间。,ARM9E,系列处理器提供了增强的,DSP,处理能力,非常适合那些需要同时使用,DSP,和微控制器的应用场合。其中的,ARM926FJ-S,包含了,Jazzele,技术,可以通过硬件直接运行,Java,代码,提高系统运行,Java,代码的性能。,ARM9E,系列包括,ARM926EJ-S,、,ARM946E-S,和,ARM966E-S 3,种类型,用于适应不同的市场需求。,ARM9E,系列处理器具有以下主要特点,:,支持,32,位的,ARM,指令集和,l16,位的,Thumb,指令集的,32,位,RISC,处理器,包括了,DSP,指令集,五级整数流水线,在典型的,0.13um,工艺下,主频可以达到,300 MIPS,的性能,集成的实时跟踪和调试功能,单一的,32,位,AMBA,总线接口,可选的,VFP9,浮点处理协处理器,在实时控制和三维图像处理时主频可达到,215 MFLOPS,高性能的,AHB,系统,MMU,支持,Window CE,、,Palm OS,、,Symbian,OS,、,Linux,等,MPU,支持实时操作系统,包括,Vxworks,统一的数据,cache,和指令,cache,提供,0.18um,,,0.15um,及,0.13 um,的生产工艺,4,、,ARM10E,系列,ARM10E,系列处理器有高性能和低功耗的特点。它所采用的新的体系使其在所有,ARM,产品中具有最高的,MIPS/MHz,。,ARM10E,系列处理器采用了新的节能模式,提供了,64,位的读取,/,写入,(load/store),体系,支持包括向量操作的满足,IEEE754,的浮点运算协处理器,系统集成更加方便,拥有完整的硬件和软件可开发工具。,ARM10E,系列包括,ARM1020E,,,ARM1022E,和,ARM1026EJ-S,这,3,种类型,主要用于适应不同的市场需求,。,ARM 10E,系列处理器具有以下主要特点,:,支持,32,位的,ARM,指令集和,16,位的,Thurnb,指令集的,32,位,RISC,处理器,包括了,DSP,指令集,六级整数流水线,在典型的,0.13um,工艺下,主频可以达到,400 MIPS,的性能,单一的,32,位,AMBA,总线接口,可选的,VFP 10,浮点处理协处理器,在实时控制和三维图像处理时主频可达到,650 MFLOPS,高性能的,AHB,系统,MMU,支持,Window CE,,,Palm OS,,,Syrnbian,OS,,,Linux,等,统一的数据,cache,和指令,cache,提供,0.18 um,,,0.15um,及,0.13um,的生产工艺,并行读取,/,写入,(load/store),部件,5,、,SecurCore,系列,SecurCore,系列处理器提供了基于高性能的,32,位,RISC,技术的安全解决方案。,SecurCore,系列处理器除了具有体积小、功耗低、代码密度大和性能高等特点外,还具有它自己的特别优势,即提供了安全解决方案的支持。,SecurCore,系列包括,SecurCore,SC100,,,SC200,,,SC300,及最新的,SecurCorc,SC000 4,个系列,主要用于各类智能卡市场。,SecurCore,系列处理器具有以下特点:,支持,ARM,指令集和,Thumb,指令集,以提高代码密度和系统性能,采用软内核技术,以提供最大限度的灵活性,以及防止外部对其进行扫描探测,提供了安全特性,抵制攻击,提供面向智能卡的和低成本的存储保护单元,(MPU),可以集成用户自己的安全特性和其他的协处理器,6,、,ARM,CortexTM,系列,ARM,CortexTM,系列提供了新一代,ARM,体系结构来满足各种应用的不同性能要求,其包含基于,ARMv7,架构的三个分工明确的处理器系列。,A,系列为应用处理器,面向复杂的尖端应用程序,用于运行复杂操作系统;,R,系列为深度嵌入式处理器,针对实时系统;,M,系列是,MCU,微控制器,为成本控制和微控制器应用提供优化。,基于,ARMv7,架构的,Cortex-M3,处理器带有一个分级结构。它集成了名为,CM3Core,的中心处理器内核和先进的系统外设,实现了内置的中断控制、存储器保护以及系统的调试和跟踪功能。这些外设可进行高度配置,允许,Cortex-M3,处理器处理大范围的应用并更贴近系统的需求。目前,Cortex-M3,内核和集成部件已进行了专门的设计,用于实现最小存储容量、减少管脚数目和降低功耗。,7,、,Intel,的,Xscale,Xscale,系列处理器是基于,ARMv5TE,体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持,16,位的,Thumb,和,DSP,指令集。,Xscale,系列处理器是,Intel,基于,ARM,体系结构的微处理机,融合了,Intel,的设计技术,在此基础上,,Intel,发展了功能完善的,XScale,微架构芯片,形成了在多媒体终端、,I/O,应用、网络、数据通信领域应用的多系列嵌入式处理机芯片,.,英特尔,2006,年中已将基于,Xscale,的通信处理器和应用处理器卖给,Marvell,公司,,Intel,已不再生产,Xscale,系列处理器。,3.4 ARM,微处理器结构,3.4.1 ARM,微处理器的工作状态,从编程的角度看,,ARM,微处理器的工作状态一般有两种,并可在两种状态之间切换:,第一种为,ARM,状态,此时处理器执行,32,位的字对齐的,ARM,指令;,第二种为,Thumb,状态,此时处理器执行,16,位的、半字对齐的,Thumb,指令。,3.4.2 ARM,处理器的工作模式,ARM,微处理器支持,7,种运行模式,分别为:,1.,用户模式,(,usr):ARM,处理器正常的程序执行状态,2.,快速中断模式,(,fiq,):,用于高速数据传输或通道处理,3.,外部中断模式,(,irq,):,用于通用的中断处理,4.,管理模式,(svc),:操作系统使用的保护模式,5.,数据访问终止模式,(,abt,),:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。,6.,系统模式,(sys):,运行具有特权的操作系统任务。,7.,未定义指令中止模式,(und):,当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。,3.4.3 ARM,处理器的寄存器组织,ARM,处理器共有,37,个寄存器。其中包括,:,31,个通用寄存器,包括程序计数器,(PC),在内。这些寄存器都是,32,位寄存器。,6,个状态寄存器。这些寄存器都是,32,位寄存器,但目前只使用了其中,12,位。,图,3.3,表明,ARM,状态下的寄存器组织。,图,3.3 ARM,状态下的寄存器组织,3.4.4 ARM,处理器的存储器格式,ARM,处理器的最大寻址空间是,4GB,,其字节地址为,0,到,232-1,。按字访问时,其字地址是字对齐的,可以被,4,整除;按半字访问时,其半字地址是半字对齐的,可以被,2,整除。,ARM,处理器在存储字数据时,有,2,种存储格式:大端格式和小端格式,。,1,、大端格式,大端格式中,字数据的高字节存储在低地址中,而字,数据的低字节存储在高地址中。,2,、小端格式,小端格式中,字数据的低字节存储在低地址中,而字,数据的高字节存储在高地址中,。,3.4.5 ARM,处理器的异常中断,1,、,ARM,中异常中断种类,表,3-3,异常中断,2,、,ARM,处理器对异常中断的响应过程,ARM,处理器对异常中断的响应过程如下所述:,保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过,将当前程序状态寄存器,CPSR,的内容保存到将要执行的异常中断对应,的,SPSR,寄存器中实现的。,各异常中断有自己的物理,SPSR,寄存器。,设置当前程序状态寄存器,CPSR,中相应的位。包括,:,设置,CPSR,中,的位,使处理器进入相应的执行模式,;,设置,CPSR,中的位,禁止,IRQ,中,断,当进入,FIQ,模式时,禁止,FIQ,中断。,将寄存器,lr_mode,设置成返回地址。,将程序计数器值,(PC),设置成该异常中断的中断向量地址,从而,跳转到相应的异常中断处理程序处执行。,3,、从异常中断处理程序中返回,异常处理完毕之后,,ARM,微处理器会执行以下几步操作从异常,返回:,、将连接寄存器,LR,的值减去相应的偏移量后送到,PC,中。,、将,SPSR,复制回,CPSR,中。,、若在进入异常处理时设置了中断禁止位,要在此清除。,4,、各类异常的具体描述,FIQ,(,Fast Interrupt Request,),IRQ,(,Interrupt Request,ABORT,(中止),Software,Interruupt,(,软件中断,),Undefined Instruction(,未定义指令,),5,、异常进入,/,退出小结,表,3-4,总结了进入异常处理时保存在相应,R14,中的,PC,值,及在退,出异常处理时推荐使用的指令。表,3-4,异常进入,/,退出:,注意:,、在此,PC,应是具有预取中止的,BL/SWI/,未定义指令所取的地址。,、在此,PC,是从,FIQ,或,IRQ,取得不能执行的指令的地址。,、在此,PC,是产生数据中止的加载或存储指令的地址。,、系统复位时,保存在,R14_svc,中的值是不可预知的。,7.,异常向量(,Exception Vectors,),表,3-5,显示异常向量地址。,表,3-5,异常向量表,8,、应用程序中的异常处理,当系统运行时,异常可能会随时发生,为保证在,ARM,处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当,ARM,处理器发生异常时,程序计数器,PC,会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。,S3C2410A,提供了以下丰富的内部设备:分开的,16KB,的指令,Cache,和,16KB,数据,Cache,,,MMU,虚拟存储器管理,,LCD,控制器(支持,STN&TFT,),支持,NAND Flash,系统引导,系统管理器(片选逻辑和,SDRAM,控制器),,3,通道,UART,,,4,通道,DMA,,,4,通道,PWM,定时器,,I/O,端口,,RTC,,,8,通道,10,位,ADC,和触摸屏接口,,IIC-BUS,接口,,IIC-BUS,接口,,USB,主机,,USB,设备,,SD,主卡,&MMC,卡接口,,2,通道的,SPI,以及内部,PLL,时钟倍频器。,S3C2410A,采用了,ARM920T,内核,,0.18um,工艺的,CMOS,标准宏单元和存储器单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样它还采用了一种叫做,Advanced Microcontroller Bus,Architecture(AMBA,),新型总线结构。,S3C2410A,的显著特性是它的,CPU,核心,是一个由,Advanced RISC Machines,(,ARM,)有限公司设计的,16/32,位,ARM920T RISC,处理器。,ARM920T,实现了,MMU,,,AMBA BUS,和,Harvard,高速缓冲体系结构。这一结构具有独立的,16KB,指令,Cache,和,16KB,数据,Cache,,每个都是由,8,字长的行(,line,)构成。,3.5,基于,ARM9,的,S3C2410AX,微处理器,本章主要介绍了,ARM,处理器的一些基本知识:包括,ARM,的版本、,ARM,处理器系列和,ARM,处理器的体系结构。并且对基于,ARM9,的,S3C2410AX,微处理器作了简单的介绍。,习 题,1,迄今为止,,ARM,体系结构共定义了多少个版本?,2,ARM,微处理器的工作状态有哪两种?它们是怎样进行切换的?,3,ARM,微处理器的运行模式有哪几种?如何改变?,4,ARM,微处理器复位时,处于何种运行模式,何种工作状态?,5,ARM,微处理器共有多少个寄存器?其中通用寄存器有多少个?状态寄存器有多少个?,6,ARM,微处理器的存储器格式有哪两种?,7,ARM,微处理器的异常中断有哪几种?,8,S3C2410AX,微处理器采用的是哪一种,ARM,的内核?,第,4,章,ARM,指令系统,ARM,处理器支持,32,位的,ARM,指令集和,16,位的,Thumb,指令集(体系结构命名中有,T,的支持,Thumb,指令集,如,ARM7,T,DMI,),,Thumb,指令集可看作是,ARM,指令集压縮形式的子集,是针对代码密度问题而提出的,其具有,16,位的代码密度。,Thumb,不是一个完整的体系结构,处理器不可能只执行,Thumb,指令集而不支持,ARM,指令集。,本章内容要点:,1.ARM,指令集概述,2.ARM,处理器的寻址方式,3.ARM,指令详细介绍,4.Thumb,指令详细介绍,通过对本章内容的学习,学生应该能够做到:,掌握,ARM,指令系统的功能;,理解,ARM,指令在嵌入式中的地位和作用;,应用,ARM,指令进行简单编程。,4.1 ARM,指令概述,4.1.1 ARM,指令的分类,ARM,微处理器的指令集可以分为:,1,、数据处理指令,2,、程序状态寄存器(,PSR,)处理指令,3,、加载,/,存储指令,4,、跳转指令,5,、协处理器指令,6,、异常产生指令,4.1.2 ARM,指令的条件域,当处理器工作在,ARM,状态时,几乎所有的指令均根据,CPSR,中条件码的状态和指令的条件域有条件地执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。,每一条,ARM,指令包含,4,位的条件码,位于机器指令的最高,4,位,31:28,。条件码共有,16,种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令,B,可以加上后缀,EQ,变为,BEQ,表示“相等则跳转”,即当,CPSR,中的,Z,标志置位时发生跳转。,在,16,种条件标志码中,只有,15,种可以使用,如表,4.1,所示,第,16,种(,1111,)为系统保留,暂时不能使用。,表,4.1ARM,指令的条件码,4.2 ARM,处理器的寻址方式,寻址方式是根据指令中给出的地址码字段来实现寻找真实操作,数地址的方式。,ARM,处理器指令有以下,9,种基本寻址方式:,1,、寄存器寻址;,2,、立即寻址;,3,、寄存器移位寻址;,4,、寄存器间接寻址;,5,、基址寻址;,6,、多寄存器寻址;,7,、堆栈寻址;,8,、块拷贝寻址;,9,、相对寻址。,4.3.1 ARM,指令的基本格式,ARM,指令的基本格式如下:,S ,其中,号内的项是必须的,,号内的项是可选的。各项说明如下:,opcode,:指令助记符;,cond,:执行条件;,S,:是否影响,CPSR,寄存器的值;,Rd,:目标寄存器;,Rn,:第,1,个操作数的寄存器;,operand2,:第,2,个操作数;,4.3 ARM,指令集,4.3.2 ARM,指令集,ARM,微处理器的指令集可以分为六大类:,数据处理指令;,程序状态寄存器(,PSR,)处理指令;,加载,/,存储指令;,跳转指令;,协处理器指令;,异常产生指令。,4.4 Thumb,指令集,4.4.1 Thumb,指令集合,1,、存储器访问指令,2,、数据处理指令,3,、跳转指令,4,、杂项指令,4.4.2 Thumb,指令集与,ARM,指令的区别,所有的,Thumb,指令都有对应的,ARM,指令,而且,Thumb,的编程模型也对应于,ARM,的编程模型,在应用程序的编写过程中,只要遵循一定调用的规则,,Thumb,子程序和,ARM,子程序就可以互相调用。当处理器在执行,ARM,程序段时,称,ARM,处理器处于,ARM,工作状态,当处理器在执行,Thumb,程序段时,称,ARM,处理器处于,Thumb,工作状态。,与,ARM,指令集相比较,,Thumb,指令集的数据处理指令的操作数仍然是,32,位,指令地址也为,32,位,但,Thumb,指令集为,16,位的指令长度,舍弃了,ARM,指令集的一些特性,如大多数的,Thumb,指令是无条件执行的,而几乎所有的,ARM,指令都是有条件执行的;大多数的,Thumb,数据处理指令的目的寄存器与其中一个源寄存器相同。,由于,Thumb,指令的长度为,16,位,即只用,ARM,指令一半的位数来实现同样的功能,所以,要实现特定的程序功能,所需的,Thumb,指令的条数较,ARM,指令多。,在一般的情况下,,Thumb,指令与,ARM,指令的时间效率和空间效率关系为:,Thumb,代码所需的存储空间约为,ARM,代码的,60,70,。,Thumb,代码使用的指令数比,ARM,代码多约,30,40,。,若使用,32,位的存储器,,ARM,代码比,Thumb,代码快约,40,。,若使用,16,位的存储器,,Thumb,代码比,ARM,快约,40,50,。,Thumb,代码比,ARM,代码存储器的功耗会降低约,30,。,显然,,ARM,指令集和,Thumb,指令集各有其优点,若对系统的性能有较高要求,应使用,32,位的存储系统和,ARM,指令集,若对系统的成本及功耗有较高要求,则应使用,16,位的存储系统和,Thumb,指令集。当然,若两者结合使用,充分发挥其各自的优点,会取得更好的效果。,另外,,Thumb,指令集较,ARM,指令集有如下限制:,只有,B,指令可以条件执行,其它指令都不能条件执行;,分支指令的跳转范围有更多限制;,数据处理指令的操作结果必须放入其中一个寄存器中;,单寄存器访问指令,只能操作,R0,R7,;,LDM,和,STM,指令可以对,R0,R7,的任何子集进行操作。,本章系统地介绍了,ARM,指令集中的基本指令,以及各指令的应用场合及方法,由基本指令派生出了一些新的指令,其使用方法与基本指令类似。与常见的如,X86,体系结构的汇编指令相比较,,ARM,指令系统无论是从指令集本身,还是从寻址方式上,都相对复杂一些,在学习中应注意他们的差别。同时本章对,ARM,指令集中的,Thumb,指令进行了介绍,,Thumb,指令集作为,ARM,指令集的一个子集,其使用方法与,ARM,指令集类似,但这并不意味着,Thumb,指令集不如,ARM,指令集重要,事实上,他们各自有其应用场合。,习 题,1,比较,ARM,指令系统与,8086/8088,指令系统的不同,总结,ARM,指令系统的特点。,2,若寄存器,R0,的内容为,0 x8000,,寄存器,R1,、,R2,内容分别为,0 x01,、,0 x10,,存储器内容为空。执行下述指令后,说明程序计数器,PC,及寄存器,R0,、,R1,、,R2,和存储器变化情况。,STMIB R0,!,R1,R2,LDMIA R0,!,R1,R2,3,用,ARM,跳转指令实现两段程序间的来回切换。,4,用,ARM,汇编语言编写,1+2+3+100,的程序。,5,简述,Thumb,指令系统的特点。,6,如何用指令实现,ARM,微处理器,Thumb,状态的进入和退出?,7,比较,ARM,指令系统与,Thumb,指令系统的异同。,8,分别说明,ARM,指令系统和,Thumb,指令系统是如何实现移位操作的。,第五章,ARM,应用软件开发环境,本章提要,1,3,2,4,RealView MDK,集成开发环境,RealView MDK,环境下,ARM,程序开发举例,汇编语言编程,嵌入式,C,语言编程,5,汇编语言与,C/C+,的混合编程,5.1 RealView MDK,集成开发环境,5.1.1,安装与启动,RealView,MDK,下载得到的是一个压缩文件,解压后,点击,mdk401prc.exe,,一路回车,即可顺利安装。安装过程中,可修改安装路径。,安装完成后,可从,开始,程序,Keil,uVision4,启动。,5.1.2,工程项目的管理,在,RealView,MDK,中,设置了一个项目管理器,可以在项目管理下,开发应用程序。创建一个应用,一般需要下列几个步骤:,新建一个项目,在项目中,创建、编辑源程序文件,为此项目指定编译和调试环境,编译项目,调试,1,、创建一个工程项目,从,Project,菜单,New,VisionProject,.,进入新建对话框,输入工程名称,然后点击,保存,,即可创建一个新的项目。,选择,CPU:,一个新的工程项目创建以后,首先需要选择目标,CPU,,,Vision,IDE,支持很多种不同公司的,CPU,,我们在这里可以选择,Samsung,公司的,S3C2410A,2,、新建一个源程序,从,File,菜单,New.,或点击,可打开一个空的编辑窗口用以编辑源程序。源程序编辑完后,进行保存。,注意,要根据源程序所采用的编程语言来选择文件的后缀。,3,、将一个源程序加入到工程中,在,Vision,IDE,中,新建的源程序并没有包含在工程中,必须通过下面的操作,将一个已有的源程序文件加入到工程项目中。被加入到工程项目中的源程序文件必须满足以下两个条件:,、该文件的扩展名,必须是文件映射表中所定义的。,、对于可生成目标文件的源程序(如:,C,语言程序、汇编语言程序),在同一个工程项目中不能同名。,将一个已有的源程序文件加入到工程项目中的方法有,2,种:,、在工程项目窗口中的相应位置点右键选择,Add Files.,进入选择文件对话框,可选择一个已有的源程序文件,加入到工程项目中。,、在工程管理对话框中进行。,4,、打开一个工程项目或打开一个源程序文件,从,Project,菜单,Open Project.,,可打开一个已有的工程项目;从,File,菜单,Open.,或点击可打开一个已有的源程序文件,进行编辑。,打开一个已有的工程项目,即已打开该工程中所有的文件。,5,、工程管理,点击可打开工程管理对话框(图,5-9,),在工程管理对话框中,可以分别对工程目标(,Project Targets,)、文件组(,Groups,)和文件(,Files,)进行增加(创建)、减少(删除)、变更顺序以及变更名称等操作,。,6,、编辑源程序,在工程项目窗口中,双击文件名,即可打开源程序编辑窗口,进行编辑。,5.1.3,工程项目的配置,要使前面创建的工程项目能够正确地被编译,还需要对工程的编译选项进行适当配置。在,Vision,IDE,中,点击可打开工程配置对话框。,Vision,IDE,中,工程项目配置的选项有:目标,CPU,的选择设置(,Device,)、生成目标的基本选项设置(,Target,)、编译输出文件的选项设置(,Output,)、编译输出列表文件的选项设置(,Listing,)、用户程序的选项设置(,User,)、,C,语言编译器的选项设置(,C/C+,)、汇编语言编译器的选项设置,(,Asm,),、连接器的选项设置,(Linker),、调试器的选项设置,(Debug),和一些公共选项设置,(utilities),。,I/O,A/D,、,D/A,键盘,LCD,存储器接口,设备接口,工程配置对话框,这里主要需要设置的是以下一些项目:,在目标,CPU,的选择设置(,Device,)中,必须选择,CPU,的型号,这在新建工程时已经做了,在这里,还可以进行修改。,在生成目标的基本选项设置(,Target,)中,主要需要设置系统时钟的频率;选择是否使用嵌入式操作系统;选择使用,ARM/T
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服