嵌入式系统第一讲(研)嵌入式系统介绍

上传人:真** 文档编号:243113526 上传时间:2024-09-16 格式:PPT 页数:118 大小:3.74MB
返回 下载 相关 举报
嵌入式系统第一讲(研)嵌入式系统介绍_第1页
第1页 / 共118页
嵌入式系统第一讲(研)嵌入式系统介绍_第2页
第2页 / 共118页
嵌入式系统第一讲(研)嵌入式系统介绍_第3页
第3页 / 共118页
点击查看更多>>
资源描述
第一讲 嵌入式系统概述,电信学院崔寅鸣,Mobile: 13602731383,E-mail: ymcui,第一讲 嵌入式系统介绍,电信学院崔寅鸣,Email: ymcui,本讲主要内容,嵌入式系统概述,实验室介绍与课程说明,嵌入式系统概要介绍,EELiod270,开发系统介绍,Module,板、,EDR,板,Banyan-UE,仿真器,ARM,处理器简介,体系结构、编程模型、,ARM,指令系统,嵌入式系统概述,应用于航空航天军事,应用于消费电子产品,嵌入式,Internet,应用,嵌入式系统的定义(一),IEEE,对嵌入式系统的定义:,Embedded system is a kind of device used to control, monitor or assist the operation of equipment, machinery or plant.,“,控制、监视或者辅助设备、机器和车间运行的装置,”,嵌入式系统的定义(二),一般的定义:,嵌入式系统是以应用为中心和以计算机技术为基础的,并且软硬件是可裁减的,能满足应用系统对功能、可靠性、实时性、成本、体积、功耗等指标的严格要求的专用计算机系统。,简单说,嵌入式系统就是应用软件与系统硬件的一体化。,嵌入式系统的特点,系统内核小:一般应用于小型电子装置。,专用性强:软硬件结合紧密,针对硬件进行系统的移植。,系统精简:系统软件和应用软件紧密融合,部分无明显区别。,实时多任务的操作系统: 合理调度多任务,,RTOS,开发平台。,专门的开发工具和环境。,实验室条件,深圳亿道公司,EELiod270,教学开发平台,Intel Xscale270,微处理器,,520MHz,完善的硬件平台,支持,WinCE,和,Linux,操作系统,课程主要内容,ARM,与,EEliod270,开发系统介绍,嵌入式,Linux,系统的构建与启动分析,嵌入式,Linux,下程序开发,课程特点,理论结合实践,通过实验掌握知识、锻炼能力,课程涉及面广,要求软硬件综合能力高,硬件(嵌入式开发板、各种硬件接口),ARM,汇编语言编程,C/C+,语言编程,Linux,操作系统,QT,、,Java,等,课程安排(一),3,18,周,3-5,周理论课,6-18,周嵌入式,Linux,实验,系统构建,驱动程序实验,自选综合实验,评分标准,理论课:,10,实验:,90,内部网络资源,ftp,服务器:,218.192.169.1,,,port: 21, user: emb ,pwd: embedded,EELiod,硬件平台资料,ADS,开发系统资料,嵌入式,Linux,BSP,软件包,实验指导书,其他安装软件(虚拟机,,Redhat9,等),参考书及资料(一),ARM,嵌入式处理器结构与应用基础,北航出版社,马忠梅等,,2002,嵌入式系统,Intel StrongARM,结构与开发,北航出版社,陈章龙等,,2002,ARM,应用系统开发详解,清华大学出版社,李驹光等,,2003,Redhat Linux 9,从入门与精通,,Michael Jang,著,邱仲潘等译,电子工业出版社,Linux,编程宝典,,John Goerzen,著,魏永明等译,电子工业出版社,参考书及资料(二),Alessandro Rubini,,魏永明等译,,linux,设备驱动程序,第二版,中国电力出版社,,2002,中国,Linux,论坛,嵌入式开发网,嵌入式系统的基本构成,存储器及外围电路,嵌入式处理器,嵌入式操作系统,应用软件,嵌入式硬件系统,嵌入式处理器,各种类型存储器,模拟电路及电源,接口控制器及接插件,嵌入式软件系统,板级支持包(,BSP),操作系统(,OS/RTOS),设备驱动(,Device Driver),协议栈(,Protocol Stack),应用程序(,Application),嵌入式处理器的分类,嵌入式微处理器(,MPU),ARM,Dragonball Mc9328 Mx1,Xscale270,嵌入式微控制器,(MCU),8051,、,P51XA,、,MC68HC05/11/12/16,、,68300,等,嵌入式,DSP,处理器,嵌入式片上系统(,SOC-System On Chip,),嵌入式可编程片上系统(,EPSOC,),ARM,嵌入式微处理器,ARM,公司成立于,1990,年,,Saxby,和,12,名工程师,ARM=,A,dvanced,R,ISC,M,achine,RISC,(精简指令集),的典型代表,32,位处理器技术,嵌入式领域的主力军,ARM,处理器有三大特点,体积小、功耗低、成本低,性能高,ARM/Thumb 32/16,位双指令系统,全球众多的合作伙伴,ARM,ARM,的产品,ARM,处理器内核,以知识产权(,IP,)形式提供给,IC,生产厂家,硬核:有和特定工艺相连系的物理版图。,软核:用硬件描述语言或,C,语言写成,用于功能仿真,ARM,开发工具、,SOC,开发工具、评估板等,ARM,公司不生产芯片,ARM,赢利模式:专利授权费,+,版费,目前在通信领域处于统治地位,,100%,的,CDMA,手机和,85%,以上的,WCDMA,手机,Intel Inside & Inside Intel,ARM,芯片年出货量超过几十亿片,ARM,营收中,手机芯片占,2/3,ARM,嵌入式微处理器,嵌入式操作系统简介,使用操作系统的好处和坏处,底层硬件抽象化,多任务,在比较复杂的应用情况下优势明显,占用系统资源,简单应用情况下增加开发难度,嵌入式操作系统特点,除具有普通操作系统的功能如任务调度、中断处理等外,嵌入式操作系统还有以下特点:,编码体积小,适合有限的存储空间,面向应用,可裁减和移植,部分要求实时性强,又称实时多任务操作系统(,RTOS,),可靠性高以及较强的网络功能,嵌入式操作系统,通常按体系的分类,Windows,兼容系列,Windows CE/NT/XP,Linux,类,嵌入式,Linux, uCLinux,RTLinux,Android,及其派生的,iPhone,、,oPhone,、,LePhone,等,通信领域嵌入式操作系统,VxWorks, Nucleus,VRTX,QNS,pSOS,其他如,Symbian,、,BlackBerry,等,嵌入式操作系统结构,嵌入式,Linux,特点,免费和代码公开,支持多种硬件平台,可裁剪,使用成本低,强大的网络功能,支持,GUI,开发,丰富的开发技术资源,嵌入式系统的应用开发,本实验室条件支持:,无,OS,ADS,集成开发环境,有,OS,嵌入式,Linux,Windows CE,嵌入式产品开发过程,集成开发环境,ARM ADS,(,ARM Developer Suits,),它是,ARM,公司的集成开发环境,包括命令行开发工具、图形开发工具、实用工具和支持软件,4,部分,可以进行编辑、编译及调试,C,、,C+,及汇编程序。,Metrowerks CodeWarrior for ARM ADS v1.2,ARM,汇编及,C,程序的编辑、编译,AXD,调试,嵌入式应用开发的调试,由于嵌入式系统的可用资源有限,嵌入式开发和调试工作通常要通过高性能的宿主机完成。,嵌入式应用软件通过宿主机上的交叉编译器,完成交叉编译和连接后下载到目标机。,宿主机:进行嵌入式软件开发的主机,目标机:将要开发的目标板,嵌入式开发的调试方法,大致有以下几种调试方法:,模拟调试方式,ROM Monitor,方式(或,Angel,方式),ICE,仿真,JTAG,调试与仿真,模拟开发调试方式,模拟开发调试,不需开发板硬件,一台,PC,即可,纯软件模拟嵌入式处理器的功能和指令。如,ARM,公司的,ARMulator,模拟器。,它虽然简单可行,但是缺乏在线调试和实时仿真功能。,ROM Monitor,调试方式(一),ROM Monitor,方式(或,Angel,方式),ROM Monitor,(或,Angel,)是运行在目标机的,Flash,或,ROM,的一段程序,它主要负责监控目标机上被调试程序的运行情况。通过和宿主机的配合,完成嵌入式系统的调试。,它是目前低廉有效的一种调试方式。之前课程使用,Metrowerks,公司的,CodeWarrior,进行开发调试时要用到的,Metro-TRK,就属于这类软件。,ROM Monitor,调试方式(二),ICE,在线仿真模式,在线仿真,(In Circuit Emulator),传统硬件级仿真调试模式,取下目标板,MPU,;在线仿真器可以完全仿真,MPU,的行为;通过卡座等连接到目标板。,它支持单步执行、断点、反汇编、源程序级调试。,优点:功能非常强大,软硬件均可做到完全实时在线调试,缺点:,适合于简单的,MPU,一般滞后,MPU,几个月,价格昂贵,宿主机,目标板,仿真器,硬件连接示意图,JTAG,仿真调试方式(一),JTAG,(,Joint Test Action Group,)联合测试行动小组,是,IEEE,的一个标准,JTAG,初始主要用于芯片内部测试,可对具有,JTAG,接口的芯片的硬件电路进行边界扫描和故障检测,后用于调试:在芯片内部定义,TAP,(,Test Access Port),,可以访问寄存器和挂在总线上的设备,JTAG,仿真调试方式(二),JTAG,调试器,硬件简单,只进行并口,/usb,和,JTAG,接口的电平转换,主要工作由主机软件完成,如,JTAG/usb,协议转换等,速度慢,一般,10K/s,级别,JTAG,仿真器,硬件复杂,除完成,JTAG/usb,协议转换,可能有,MPU,进行控制,提供并口,/USB,接口等,速度快,价格贵,JTAG,仿真调试方式(三),JTAG,仿真器,ARM,处理器为了方便调试,内含,Embeded ICE,宏单元,并留有,JTAG,调试接口,支持在线仿真。它无需目标存储器,不占用目标系统的端口。,使用集成开发环境配合,JTAG,仿真器是目前最常用的一种调试方式。,宿主机,目标板,仿真器,硬件连接示意图,JTAG,仿真调试方式(四),嵌入式,Linux,开发调试,嵌入式,Linux,工具链,交叉编译器,GCC,arm-linux-gcc,项目管理工具,MAKE,调试工具,GDB,break,设置断点,Run,执行程序,Step,单步跟踪进入,Next,单步不进入函数,Print, Display,显示变量值,Quit,EELiod270,开发系统介绍,XScale,架构,PXA2,70,时钟频率分,312MHz,、,416MHz,、,520MHz,及,624MHz,四种,内部集成,Intel Wireless MMX,技术,该技术可提供额外的性能以支持,3D,游戏和高级视频,采用了,SpeedStep,低功耗技术,通过智能管理电压和频率变化实现节省高达,55%,的功耗,集成了快速捕捉(,Intel Quick Capture,)技术,使镜头支持,400,万以上像素,XScale,特点,采用,ARMV5TE,指令集,无线,MMX,指令单元,IMMU,和,DMMU,I-Cache,和,D-Cache,写缓冲器(8入口的高速,FIFO),协处理器,电源管理与性能监控,调试单元,XScale,协处理器,CP0:,用于,DSP,处理,更好的处理多媒体信息,包含一个40位累加器,并增加了8条新的指令。,CP1:,用于无线,MMX,指令数据传输和状态控制等,CP6:,为,PXA27X,新增的协处理器,主要用于减少访问中断控制寄存器的时间。,CP14:,用于系统的性能监视、时钟管理、电源管理和软件调试,CP15:,用于,MMU,控制,PXA270,XSBase270,开发平台,触摸屏,8” TFT LCD 640*480,JTAG,接口,120pin,扩展接口,PXA270 520MHz,32Pin,LCD,接口,数码管*,4,CF,卡,喇叭,SD/MMC,卡,SIM Card,Camera,全功能串口,RTC Battery,红外收发器,RS485,红外串口,Can Bus,以太网口,USB Host,音频输入输出,USB Slave,4*4,矩阵键盘,高亮度,LED*8,GPS,模块接口,步进电机,BT,串口,功能转换开关,直流电机,Flash*32M,Sdram*64M,平台硬件分层,分,EDR,板(底板)和,Module,板(模块板或核心板),Module,板,最小系统,EDR,板,功能接口板,Module,板,包含以下部分,MPUIntel Xscale PXA270 520MHz,SDRAM ,双片,,64M,,,缺省地址空间是,0,xa0000000,0xafffffff,FLASH,双片,,32M,,,其缺省地址空间是,0,x00000000,0x03ffffff,CPLD,采用,Xilinx,公司的,XC2C128,可编程器件,丰富片选及加密,串口,全功能调试串口,网络接口,JTAG,电源控制,LP3971,芯片,,Intel SpeedStep,动态电源管理技术,Module,板,另外还含有以下接口电路,音频控制接口电路,Philips UCB1400,芯片,内含,10bits,的,ADC,LCD,控制电路,触摸屏控制电路,通过两个,120pin,的连接器连接到,EDR,板,Module,板,EDR,板,PCMCIA/CF,卡接口,MMC/SD,卡接口,RTC,实时时钟,数码管和,LED,按键,Sw1-sw4,直入键盘,Sw5-sw16,矩阵扫描,Quick Capture,摄像头模块,支持400万像素数码镜头,并能提供最大416,Mbps,的数据传输速率,EDR,板,RS232,BT_UART,(蓝牙串口),只有收发信号线,IR_UART,(红外串口),RS485,GPS,模块接口,需另外的,GPS,模块板,CAN,总线接口,汽车应用,使用,270,的,SPI,(串行外设接口),直流电机,接口信号电压为,+3.3v,和,-3.3v,时,分别正向转动和反向转动,EDR,板,步进电机,有方向端,四相步进,ABCD,USB,接口,两个,HOST,接口,支持,spec 1.1,规范,一个,SLAVE,接口,扩展插槽,CON10,CON11,可外接,AD/DA,模块板,电源,外接+5,V/3A,+12V/2A,输出的开关电源,5v,及经由变换的,3.3v,给各逻辑电路供电,12v,给显示屏、步进电机、风扇供电,EDR,板,网络接口,直接从,Module,板引下来,拨码开关,控制功能复用选择,例如,Quick Capture,是和马达,按键,485共用信号线,EDR,板,Banyan-U,仿真器,20pins,的,JTAG,接口和,USB,接口,支持,ARM7/ARM9/XScale,系列,CPU,支持,USB 2.0/USB 1.1,,自动识别,核心部分使用,CPLD,设计,使用,USB,接口供电,JTAG,接口电平由目标板决定,可以支持多种电压的,CPU,Banyan-U,仿真器,基础实验在线调试,FLASH,烧写,Banyan-UE,仿真器安装使用,仿真器的安装,Banyan-UE-1.8.9.exe,解压,FlashWrite-v0.4.7,到安装目录,仿真器使用,执行,DaemonU.exe,,识别处理器(见下图),Daemon,图,Banyan,仿真器烧写,FLASH,执行,flashwrite-v0.4.7.exe,,识别,flash,器件型号,,Device ID,选择要烧写的镜像文件,设置好烧录地址(,flash,地址是,0x000x003ffffff,是,PAX270,处理器上电起始执行地址,烧写过程:选择,AUTO,,选中其中的,erase,,,program,,,verify,三项,,start!,Flashwrite,参见,Banyan-U,软件手册,.pdf,Banyan-U,硬件手册,.pdf,FlashWrite,使用手册,.pdf,目前已购买的独立功能模块,蓝牙模块,GPRS,模块,GPS,模块,EELiod270,软件,目前提供,Windows CE,和,Linux,两种嵌入式,OS,的支持,平台配套手册和软件,实验平台,使用手册,(Windows CE,和,Linux),上机指导书,基础实验上机指导书,Windows CE,上机指导书,Linux,上机指导书,BSP,光盘,(Windows CE,和,Linux),EELIOD WinCE,软件,EELIOD Linux,BSP,软件,Windows CE,实验代码,Windows CE,平台搭建,线程同步调试,驱动程序结构,进程通信,数据库,IO,接口,-LED,IO,接口,-,电机,动态链接库,Windows CE,实验代码,无线网络通信,Ping,和,UDP,实验,设备驱动实验,串口实验,CAN,总线实验,CF,和,SD,实验,USB,摄像头,Linux,实验代码,常用命令及工具,Makefile,实验,Bootloader,内核编译,文件系统制作,GUI,应用,驱动程序结构,IO,驱动,Linux,实验代码,SD,卡驱动,USB,驱动,QT,移植,串口通信,GPRS,和,GSM,通信,WebServer,移植,USB,摄像头,嵌入式数据库,ARM,处理器简介,ARM,体系结构的发展,ARM,简介,ARM,处理器命名规则,ARM7TDMI,核命名规则,7,体系结构,T Thumb,代码支持,(16 bit,指令,),D Debug,硬件调试模块支持,M ,加强的乘法支持,I EmbeddedICE Logic,S ,可综合的软核,E DSP,J Jazeller,,允许直接执行,Java,字节码,ARM,处理器支持的运行模式,ARM,处理器共支持,7,种运行模式,分别为:,用户(,usr):ARM,处理器正常的程序执行状态;,系统模式(,sys):,运行具有特权的操作系统任务;,快速中断(,fiq):,用于高速数据传输或通道处理;,外部中断(,irq):,用于通用的中断处理;,管理模式(,svc):,操作系统使用的保护模式;,中止(,abt):,当数据或指令访问中止时进入该模式,可用于虚拟存储及存储保护;,未定义(,und):,当未定义指令执行时进入该模式,可用于硬件协处理器的软件仿真。,ARM,处理器运行模式,除用户模式之外的其余6种称为非用户模式,或特权模式(,Privileged Modes);,而特权模式中,除系统模式之外的其余5种又称为异常模式(,Exception Modes,)。,用户程序运行在用户模式下,不能访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器处理器模式的切换。这种体系结构可以使系统控制整个系统的资源。,ARM,处理器运行模式,当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了程序运行状态)不被破坏。,系统模式,系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时可以正常保存当前工作状态,进行模式切换。,ARM,的寄存器组织,ARM,处理器共有,37,个,32,位寄存器,其中,31,个为通用寄存器,,6,个状态寄存器,。,ARM,状态下的寄存器组织,未分组寄存器,R0R7,分组寄存器,R8R14,程序计数器,R15,(,PC,),当前程序状态寄存器 (,CPSR),备份的程序状态寄存器(,SPSR),Thumb,状态下的寄存器组织,Thumb,状态下的寄存器组织,通用寄存器,R0R7,程序计数器,PC,堆栈指针,SP(R13),连接寄存器,LR,CPSR,和,SPSR,R13(SP,堆栈指针),每种异常模式都有备份寄存器,R13_usr, R13_svc, R13_abt, R13_und, R13_irq, R13_fiq,用作堆栈指针,每种异常模式有自己专用的栈地址,R13,用于被中断程序的现场保护,即保存需要保护的寄存器值,R14(LR,连接寄存器),每种异常模式都有备份寄存器,R14_usr, R14_svc, R14_abt, R14_und, R14_irq, R14_fiq,两种作用,存放当前子程序的返回地址,异常中断发生时,该异常模式,R14_xxx,被设置为将要返回的地址,R15(PC,程序计数器),指令地址,PC=,当前执行指令地址8,地址值字对齐及半字对齐,例,MOV PC,PC;,跳转到下面第二条指令,状态寄存器,状态寄存器,:,当前程序状态寄存器,CPSR,,,可以在任何工作模式下被访问;,程序状态备份寄存器,SPSR,,只有在异常模式下,才能被访问,;,CPSR,当前程序状态寄存器(一),当前程序状态寄存器,CPSR,N:,补码形式的有符号数运算时,1为负,0为正;,Z:1,表示结果为零;,C:,加减法的进位或借位,以及非加减法的最后移位;,V:1,表示补码形式的有符号数加减运算时符号位溢出;,CPSR,当前程序状态寄存器(二),Q:v5,以上版本才有,描述增强,DSP,运算指令是否发生溢出;,I、F:,中断禁止位,1表示中断禁止;,T:,指示处理器处于,ARM,或,Thumb,工作状态;,CPSR,当前程序状态寄存器,(,三,),M4:0,:,表示处理器的运行模式,0b10000User,0b10001FIQ,0b10010IRQ,0b10011Supervisor,0b10111Abort,0b11011Undefined,0b11111System,ARM,控制程序执行的方式,正常执行,每执行一条指令,ARM,指令,PC+4,Thumb,指令,PC+2,跳转:,B、BL、BX、BLX,异常中断,执行完当前指令,跳转到异常中断处理程序,执行完返回到发生中断指令的下一条处,要保护和恢复被中断程序的执行现场,ARM,处理器的异常中断,(,一),异常是指正常的程序执行流程发生暂时的停止或改变,例如在复位、有中断请求及指令预取中止时;,ARM,处理器支持7种类型的异常。,复位(,RESET):,当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。,未定义指令(,UDEF):,当,ARM,处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。,软件中断(,SWI):,该异常由执行,SWI,指令产生,可用于用户模式下的程序调用特权操作指令。使用该异常机制可以实现系统功能调用。,ARM,处理器的异常中断(二),指令预取中止(,PABT):,若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。,数据中止(,DABT),:,若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。,IRQ(,外部中断请求):,当处理器的外部中断请求引脚有效,且,CPSR,中的,I,位为0时,产生,IRQ,异常。系统的外设可通过该异常请求中断服务。,FIQ(,快速中断请求):,当处理器的快速中断请求引脚有效,且,CPSR,中的,F,位为0时,产生,FIQ,异常。,ARM,处理器的异常中断(三),异常类型,模式,正常向量地址,高向量地址,复位,管理,0,x00000000,0,xFFFF0000,未定义指令,未定义,0,x00000004,0,xFFFF0004,软件中断,管理,0,x00000008,0,xFFFF0008,指令预取中止,中止,0,x0000000C,0,xFFFF000C,数据中止,中止,0,x00000010,0,xFFFF0010,IRQ,IRQ,0,x00000018,0,xFFFF0018,FIQ,FIQ,0,x0000001C,0,xFFFF001C,ARM,处理器的异常中断(四),异常优先级,异常类型,1(最高),复位,2,数据中止,3,FIQ,4,IRQ,5,预取中止,6,未定义指令,,SWI,ARM,处理器对异常的处理(一),对异常的响应,:,将下一条指令的地址存入相应异常类型的连接寄存器,LR_mode;,保存用户寄存器值到堆栈中,将,CPSR,复制到相应异常类型的,SPSR_mode,中;,设置,CPSR,的,M4:0,强制改变到相应的运行模式;,禁止正常中断,如果异常类型为快速中断或复位,同时禁止快中断;,强制,PC,从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。,ARM,处理器对异常的处理(二),异常返回,从堆栈中恢复用户寄存器,将,SPSR_mode,复制回,CPSR,中,复制,LR_modePC,未定义异常的操作过程,进入异常,:,R14_und=,产生异常的下一条指令地址,SPSR_und=CPSR,CPSR4:0=0b11011/*,进入未定义运行模式,*/,CPSR5=0/*,进入,ARM,工作状态,*/,CPSR7=1/*,禁止正常中断,*/,如果设置了高向量模式,则,PC=0xFFFF0004,否则,PC=0x00000004,退出异常,:,MOVS PC R14,恢复,PC(,从,R14_und),和,CPSR(,从,SPSR_und),,并返回到该未定义指令的下一条指令处,ARM,推荐的异常退出指令,异常类型,R14(,ARM,),R14(,Thumb,),返回指令,BL,PC+4,PC+2,MOV PC, R14,SWI,PC+4,PC+2,MOV,S,PC, R14,UDEF,PC+4,PC+2,MOVS PC, R14,FIQ,PC+4,PC+4,SUBS PC,R14,#4,IRQ,PC+4,PC+4,SUBS PC,R14,#4,PABT,PC+4,PC+4,SUBS PC,R14,#4,DABT,PC+8,PC+8,SUBS PC,R14,#8,RESET,-,-,-,例:,SWI,中断的,R14,例如:,0,x8000,mov .,0x8004,add .,0x8008,SWI .,0x800C,mov .,0x8010,add .,当程序执行,SWI,异常时,,PC,指向0,x8010,,在跳转到异常向量的之前,,ARM,会把,R14,调整到0,x800C,ARM,数据类型,字(,Word):,在,ARM,体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请注意区分。,半字(,Half-Word),:,在,ARM,体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。,字节(,Byte):,在,ARM,体系结构和8位/16位处理器体系结构中,字节的长度均为8位。,存储器组织,以0,x87654321,为例,小端方式对应于地址,A+3=0x87,A+2=0x65,A+1=0x43,A=0x21,大端方式对应于地址,A=0x87,A+1=0x65,A+2=0x43,A+3=0x21,ByteA+3,ByteA+2,ByteA+1,ByteA,Bit31 bit0,字对齐与半字对齐,ARM,状态,字地址的低两位,bits1:0,必须为0,b00,,半字地址的最低位,bit0,为0,b0,Thumb,状态,字地址最地位,bit0,必须为0,b0,如果写入,PC,的指令地址非对齐,ARMV3,及以下,忽略,R15,的,bits1:0,ARMV4,及以上,执行结果不可预知,Thumb,,忽略,R15,的,bit0,ARM,处理器工作状态,从编程的角度看,,ARM,处理器有,2,种工作状态并可自由切换:,ARM,状态:处理器执行,32,位的、字对准,ARM,指令;,Thumb,状态:处理器执行,16,位、半字对准的,Thumb,指令。,ARM/Thumb,状态的切换,ARM,处理器总是从,ARM,状态开始执行,可用指令实现状态切换,BLX,LDR、LDM,及,POP,当处理器进入异常中断处理程序时,自动切换到,ARM,状态,如果从,Thumb,状态进入异常,处理完成退出后仍自动进入,Thumb,状态,立即数,一条,ARM,指令,32,位,可能含,12,位立即数,immediate=immed_8,循环右移,(2*rotate_imm),合法:,0xff,x0104,0xff0,0x3f0,非法:,0x101,0xff1,0x102(,非偶数位,),Qu:0x1fc,ARM,指令系统,ARM,指令集包括:,跳转指令,数据处理指令,程序状态寄存器处理指令,加载/存储指令,协处理器指令,异常产生指令,ARM,指令系统,跳转,B,,,BL,,,BLX,移位,ASR,LSL,LSR,ROR,ROX,存储加载,LDR,STR,软中断,SWI,指令名,指令含义,操作,ADD,相加,Rd=Rn+op2,SUB,相减,Rd=Rn-op2,RSB,反向相减,Rd=op2-Rn,ADC,带进位加,Rd=Rn+op2+C,SBC,带借位减,Rd=Rn-op2+C-1,RSC,反向带借位减,Rd=op2-Rn+C-1,AND,位与,Rd=Rn AND op2,ORR,位或,Rd=Rn OR op2,EOR,位异或,Rd=Rn EOR op2,BIC,位清零,Rd=Rn AND NOT op2,MOV,传送,Rd=op2,MVN,传送非,Rd=NOT op2,CMP,比较,Rn-op2,CMN,负向比较,Rd=op2-Rn,TST,测试,Rn AND op2,TEQ,测试相等,Rn EOR op2,指令名,指令含义,操作,MUL,乘法,Rd=Rm*Rs,MLA,乘加,Rd=Rm*Rs+Rn,UMULL,无符号数乘法,RdH: RdL = Rm*Rs,UMLAL,无符号数乘加,RdH: RdL += Rm*Rs,SMULL,有符号数乘,RdH: RdL = Rm*Rs,SMLAL,有符号数乘加,RdH: RdL += Rm*Rs,多寄存器加载/存储指令(一),该指令完成多个通用寄存器与存储单元之间的数据传送。,LDM|STM cond,寻址方式,Rn !,通用寄存器组,符号的含义:,寻址方式为:,IA、IB、DA、DB、FD、ED、FA、EA;,Rn:,基址寄存器,不允许为,R15 (PC);,!:指令执行后,刷新基址寄存器,Rn,“,”,:,当寄存器列表包含,PC,且为,LDM,指令时,同时将,SPSR,拷贝到,CPSR,,,用于异常返回;,当寄存器列表不包含,PC,,指示指令中所有的寄存器为用户模式下的寄存器,LDM / STM,操作,语法:, Rb!, ,四,种寻址操作:,LDMIA,/,STMIA,Increment After(,先操作,后增加),LDMIB,/,STMIB,Increment Before(,先增加,后操作,),LDMDA,/,STMDA,Decrement After (,先操作,后递减),LDMDB,/,STMDB,Decrement Before (,先递减,后操作,),IA,r1,地址,增加,r4,r0,r1,r4,r0,r1,r4,r0,r1,r4,r0,r10,IB,DA,DB,LDMxx r10, r0,r1,r4,STMxx r10, r0,r1,r4,基址寄存器 (,Rb),存储器块拷贝,可选项“,!,”将导致,LDM,/,STM,指令去自动更新基址寄存器,后缀为,IA,IB,时,加上,4,乘以 用于传送的寄存器的数目的值,后缀为,DA,DB,时,减去,4,乘以用于传送的寄存器的数目的值,示例:,; r12,指向源数据起始地址,; r14,指向源数据尾地址,; r13,指向目的数据起始地址,loopLDMIAr12!, r0-r11;,装载48,bytes,STMIAr13!, r0-r11;,存储,them,CMPr12, r14;,check for the end,BNEloop;,loop until done,此循环传送,48 bytes,占用了,31,周期,时钟为33,MHz,时传输速率超过,50 Mbytes/sec,存储器增加,r13,r14,r12,多寄存器加载/存储指令(二),例如:,STMFD R13!, R0, R4-R7, LR,;,寄存器进栈,LDMFD R13!, R0, R4-R7, PC,;,寄存器返回,注:,基址寄存器可以出现在寄存器列表中,但要避免和写回操作“!”同时使用。,R15,可以出现在,LDM,指令的寄存器列表中;但要避免出现在,STM,指令的寄存器列表中,此时,可以使用,R14(,用以保存返回地址),。,LDMFD sp!,r4-r7,pc,100,FF,1234,AOBE,8034,1010,1234,8420,9753,r4,1,r5,14544,r6,0,r7,12,pc,9020,r4,100,100,FF,r5,FF,1234,r6,1234,A0BE,r7,A0BE,8034,pc,8034,堆栈,r4,100,r5,FF,r6,1234,r7,A0BE,lr,8034,ABCD,8765,102,E,16,FFFF,1010,1234,8420,9753,存储器顶,SP,SP,100,FF,1234,A0BE,8034,SP,Old SP,100,FF,1234,A0BE,8034,ARM,堆栈操作通过块传送指令来完成:,STMFD,(Push),块存储,- Full Descending stack STMDB,LDMFD,(Pop),块装载,- Full Descending stack LDMIA,STMFD sp!,r4-r7,lr,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!