ARM嵌入式系统第一讲



《ARM嵌入式系统第一讲》由会员分享,可在线阅读,更多相关《ARM嵌入式系统第一讲(68页珍藏版)》请在装配图网上搜索。
1、,单击此处添加标题,,,,*,ARM,嵌入式系统原理及应用,主讲:盛晨辉,,2010.5.1,教学计划,第二讲 基于,LPC2000,系列,ARM,的工程设计,第三讲,ARM,程序设计,第一讲 嵌入式系统概述及,ARM7,体系结构,第五讲,ARM,外围硬件系统与接口技术,第四讲,LPC2000,系列,ARM,内部硬件结构,第六讲,,LPC2000,系列,ARM,硬件结构及实验,(1),第七讲,LPC2000,系列,ARM,硬件结构及实验,(2),第八讲,LPC2000,系列,ARM,硬件结构及实验,(3),第一讲 嵌入式系统概述及,ARM7,体系结构,ARM7,体系结构,LPC2000,
2、系列,ARM,概述,ARM,嵌入式系统概述,参考资料及文献:,《,ARM,嵌入式系统基础教程(第,2,版),》,第一章、第二章、第四章,嵌入式系统概述,概述,,,即使不可见,嵌入式系统也是无处不在。嵌入式系统不仅存在于生活的方方面面,而且在很多领域和行业得到广泛应用,包括工业自动化、国防、运输以及航空航天等。,,嵌入式系统具有无数的种类,每种种类都有自己独特的个性。,计算机分为两大类,通用计算机:,PC,机、服务器、工作站,……,,专用计算机:硬件软件可剪裁,通常是以嵌入式操作系统,+,用户应用程序,明显的可嵌入性,对体积、成本、价格、功耗非常敏感,功能具有很强的针对性,通常要求可靠性和实时性
3、,……,嵌入式系统的定义,从技术角度定义:以应用为中心,以计算机技术为基础,硬件软件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。,,从系统角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语“嵌入式”反映了它通常是更大系统中的完整系统。嵌入的系统中可以有多个嵌入式系统。,嵌入式微处理器的分类,嵌入式微处理器,MPU,,嵌入式微控制器,MCU,,嵌入式数字信号处理器,DSP,ARM,技术的发展,ARM (Advanced RISC Machines),是一家坐落在英国剑桥的电子公司,,1990,年,11,月由苹果电脑、,A
4、corn,和,VLSI Technology,共同组建。,,ARM,公司既不设计芯片,也不生产芯片,他们以高效的,IP (Intellectual Property),内核为产品。,,ARM,技术的发展,目前,几十家大的半导体公司都是使用,ARM,公司的授权,在,ARM,内核及其技术的基础上添加自己的设计并推出各种芯片产品,即,ARM,微处理器或,ARM,微控制器。,,ARM,芯片已遍及工业控制、消费电子、通信系统、网络系统、无线电系统以及生活的各个方面。已经改变了人们生活、工作和娱乐方式。,,世界上大多数嵌入式系统,32,位微控制器芯片都是基于,ARM,内核的。,,ARM,已经成为嵌入式微处
5、理器的代名词,,ARM,公司成为全球性,RISC,标准的缔造者。,第一讲 主要内容,ARM7,体系结构,LPC2000,系列,ARM,概述,ARM,嵌入式系统概述,ARM,体系结构,,ARM,处理器为,RISC,芯片,其简单的结构使得,ARM,内核非常小,功耗也很低。,RISC,体系结构应具有如下特点:,,采用固定长度的指令格式,便于译码;,,使用单周期指令,便于流水线操作;,,使用大量寄存器,数据处理指令只对寄存器操作,不直接操作存储器;,,简单的寻址模式;,,在一条数据处理指令中,同时完成逻辑处理和位移处理两个功能,实现,ALU,和移位寄存器的最大利用;,,所有的指令都可以根据前面的执行
6、结构决定是否被执行,提高指令的执行效率;,,在循环处理中使用地址的自动增减,提高运行效率。,,,各,ARM,体系结构版本,为清楚表达各,ARM,体系结构使用的指令集,,ARM,公司定义了,5,种主要的,ARM,指令集体系版本,即,V1~V5,。,,各版本号有着巨大的改进和完善,并仍在改进中。,ARM,处理器核简介,ARM,公司开发的很多系列的处理器内核,基于各种内核的处理器都有各自的特点和应用领域。目前使用比较广泛的系列是:,,ARM7,,ARM9,,ARM9E,,ARM10,,SecurCore,,Intel,的,Xscale,ARM,处理器核简介,——ARM7,ARM7,系列微处理器包括四
7、种类型内核:,ARM7TDMI,、,ARM7TDMI-S,、,ARM720T,、,ARM7EJ-S,。,ARM7TDMI(-S),是目前使用最广泛的,32,位嵌入式,RISC,处理器。,,T,:支持,16,位压缩指令集,Thumb,,D,:支持片上,Debug,,M,:内嵌硬件乘法器,Multiplier,,I,:嵌入式,ICE,,支持片上断点调试,,S,:可综合版本,ARM7TDMI(-S),ARM7TDMI(-S),基于,ARM,体系结构,V4,版本,是目前低端的,ARM,内核,具有优异的性能,功耗很低,使用的门的数量少,因而应用广泛。,,ARM7TDMI(-S),支持,32,位寻址范围,
8、弥补了,ARM6,不能在低于,5V,电压下工作的不足。,ARM7TDMI(-S),内核框图,ARM7TDMI(-S),ARM7TDMI(-S),使用流水线来提高指令流的速度。,ARM7TDMI(-S),的流水线分为三级:,取址,>,译码,>,执行,。,ARM,Thumb,,PC,PC,取指,PC-4,PC-2,译码,PC-8,PC-4,执行,周期,1,周期,2,周期,3,周期,4,周期,5,周期,6,取指,译码,执行,,,,,取指,译码,执行,,,,,取指,译码,执行,,,,,取指,译码,执行,ARM,处理器状态,为了更好地控制代码量,设计了,2,套指令系统,分别为,ARM,指令集和,Thum
9、b,指令集,,ARM,指令集为,32,位,,Thumb,指令集为,16,位。,,ARM,指令集具完整功能,,Thumb,功能上可看做,ARM,指令集的子集,具有很高的代码密度,,ARM,状态,(,默认,),:执行字方式的,ARM,指令。,,Thumb,状态:执行半字方式的,Thumb,指令。,ARM,处理器状态,ARM,指令集和,Thumb,指令集不能同时有效,,ARM,状态下要使用,Thumb,指令必须进行状态切换,反之亦然。,当前程序状态寄存器,CPSR,中的控制位,T,反映处理器的当前状态,,T=0,表示,ARM,状态;,,T=1,表示,Thumb,状态。,,处理器状态的切换并不影响处理
10、器的模式和寄存器的内容,ARM,处理器状态,BX,指令控制程序跳转的同时进行状态切换。,,使用,BX,指令进行状态切换后,流水线中的取指和译码指令会被清除,避免出现处理器错误。,,BX,指令这种清空流水线的功能使得处理器状态间的切换是安全的。使用,MSR(,写状态寄存器,),直接修改,CPSR,的,T,位的做法是不安全的。,ARM,处理器模式,ARM,处理器共支持,7,种处理器模式,并以当前程序状态寄存器,CPSR,中的控制位,M[4:0],反映处理器正在操作的模式。,处理器模式,,,说明,用户,(,usr,),,,正常工作模式,不能直接切换到其他模式,特权模式,系统,(sys),,与用户模式
11、相似,但能直接切换到其他模式,,异常模式,管理,(svc),只有在系统复位和软件中断响应时才进入此模式,,,中止,(,abt,),在,ARM7,内核中无效,,,未定义,(und),只有在未定义指令异常响应时才进入此模式,,,中断,(,irq,),只有在,IRQ,异常响应时才进入此模式,,,快速中断,(,fiq,),只有在,FIQ,异常响应时才进入此模式,ARM,处理器模式,只有特权模式下才能对当前程序状态寄存器,CPSR,的所有控制位直接进行读,/,写访问,而在非特权模式下只允许对,CPSR,的控制位进行间接访问。,,进入异常模式时,处理器总是切换到,ARM,状态,而非,Thumb,状态。,,
12、处理器复位后进入管理模式,操作系统内核通常处于管理模式。,,用户模式是正常运行的工作模式,系统模式具有与用户模式完全相同的寄存器,但系统模式是特权模式,可以访问所有的系统资源,主要提供给操作系统的任务使用。,ARM,处理器内部寄存器,ARM7DMI,内部有,37,个用户可访问的,32,位寄存器,其中,6,个,32,位宽的状态寄存器目前只使用了其中的,12,位。,,31,个通用寄存器,,6,个状态寄存器,,在不同的工作模式下,程序员可以访问的寄存器不完全相同。,ARM,处理器内部寄存器,当前程序状态,寄存器,CPSR,ARM,内核通过,CPSR,来监视和控制内部操作,每种异常模式都有一个对应的程
13、序状态保存寄存器,SPSR,,用于保存任务在异常发生之前的,CPSR,的内容。,CPSR,包括:,,4,个条件代码标识,(,负标识,N,、零标识,Z,、进位标识,C,和溢出标识,V),,2,个中断禁止位,(IRQ,禁止与,FIQ,禁止,),,5,个当前处理器模式编码位,(M[4:0]),,1,个用于指示当前执行指令状态的位,(ARM,或,Thumb),当前程序状态,寄存器,CPSR,N,Z,C,V,……,I,F,T,M4,M3,M2,M1,M0,控制位,保留位,标识位,,,N,、,Z,、,C,、,V,是条件代码标识位,可以通过算术和逻辑操作来设置这些位,,ARM,处理器对这些位进行测试以决定是
14、否执行一条指令,实现条件执行。,,N,负标识,运算结果的最高位,记录标识设置操作的结果,,Z,零标识,如果标识设置操作的结果为,0,,置位,,C,进位标识,记录无符号加法溢出,减法借位,,V,溢出标识,记录标识设置操作的有符号溢出,当前程序状态,寄存器,CPSR,CPSR,的低八位为控制位,分别是:,,中断禁止,I,和,F,,处理器状态位,T,,处理器模式位,M4~M0,,发生异常时,控制位改变。当处理器在一个特权模式下操作时,可用软件操作这些位。,,异常向量表,地址,异常,进入时的模式,I,F,0x00000000,复位,管理,禁止,禁止,0x00000004,未定义指令,未定义,I,F,0
15、x00000008,软件中断,管理,禁止,F,0x0000000C,中止,(,预取,),中止,I,F,0x00000010,中止,(,数据,),中止,I,F,0x00000014,保留,保留,,,0x00000018,IRQ,中断,禁止,F,0x0000001C,FIQ,快速中断,禁止,禁止,异常优先级,优先级,,异常,最高,,,,,,,最低,1,复位,,2,数据中止,,3,FIQ,,4,IRQ,,5,预取指中止,,6,未定义指令,,6,软件中断,SWI,进入异常,保存返回地址到,LR,,保存,CPSR,的当前值到相应异常模式下的,SPSR,,设置,CPSR,为相应的异常模式,禁止相应中断控制
16、位,防止不受控制的中断嵌套,,设置,PC,为相应异常处理程序的中断入口向量地址,退出异常,用,LR,中的值减去偏移量再恢复,PC,,用,SPSR,恢复,CPSR,,在入口处置位的中断禁止控制位清零,复位异常,nRESET,信号被拉低时,,ARM,处理器放弃正在执行的指令;,nRESET,信号恢复高电平时,,ARM,处理器执行以下操作:,,强制进入管理模式,,禁止,IRQ,和,FIQ,,进入,ARM,状态,,强制,PC,从,0x0000 0000,开始执行,,复位后,除,PC,和,CPSR,之外的所有寄存器的值都是随机的。,中断请求异常,IRQ,IRQ,中断异常发生时,内核自动做如下处理:,,将
17、返回地址保存到,R14_irq,中,,将,CPSR,保存到,SPSR_irq,中,,禁止新的,IRQ,中断,进入,ARM,状态,进入,IRQ,异常模式,,强制,PC,执行,0x0000 0018,地址的指令,,如果需要嵌套,IRQ,中断,那么必须在中断服务程序中重新使能,IRQ,中断。,FIQ,快速中断异常,CPSR,的,F,位被清零时,可以发生,FIQ,异常。,FIQ,是优先级最高的中断,进入该中断后会同时禁止任何外部中断源再次发生中断,除非在软件中重新使能,FIQ,和,IRQ,。,,FIQ,有,8,个专用寄存器,使得进入,FIQ,时不用压栈,以提高响应速度。,,FIQ,入口地址在向量表顶部
18、,可以不需要跳转,直接放置中断服务程序。,未定义指令异常,当,ARM,处理器遇到一条自己和系统内任何协处理器都无法执行的指令时,发生未定义指令异常。,,软件可以使用这一机制通过仿真未定义的协处理器指令来扩展,ARM,指令集。,中止异常,中止表示当前对存储器的访问不能被完成。,,中止有两种类型:预取指中止和数据中止。,SWI,软件中断异常,由于系统正常工作是在用户模式下进行的,如果需要切换到特权模式就必须使用软件中断切换到管理模式。,,该异常由执行指令,SWI,产生,用于用户模式下的程序调用特权操作指令。,ARM,体系的存储系统,ARM,处理器采用冯诺依曼结构,指令和数据共用一条,32,位数据总
19、线。,ARM,存储器可以看做一个从,0,开始的线性递增字节集合:,,字节,0~3,保存第,1,个存储的字,,字节,4~7,保存第,2,个存储的字,,字节,8~11,保存第,3,个存储的字,,ARM,处理器可以将存储器中的字以下列格式存储:大端,(Big-endian),小端,(Little-endian),。,存储器格式,位于地址,A,的字包含的字节位于地址,A,、,A+1,、,A+2,、,A+3,,位于地址,A,的半字包含的字节位于地址,A,、,A+1,,位于地址,A+2,的半字包含的字节位于地址,A+2,、,A+3,,位于地址,A,的字包含的半字位于地址,A,、,A+2,LPC2000,系
20、列,ARM,指定为小端,Little,31-24,23-16,15-8,7-0,字地址,高地址,,,低地址,11,10,9,8,8,,7,6,5,4,4,,3,2,1,0,0,Big,31-24,23-16,15-8,7-0,字地址,高地址,,,低地址,8,9,10,11,8,,4,5,6,7,4,,0,1,2,3,0,第一讲 主要内容,ARM7,体系结构,LPC2000,系列,ARM,概述,ARM,嵌入式系统概述,LPC2000,系列,ARM,概述,LPC2000,系列,ARM,是基于一个支持实时仿真和跟踪的,32,位,ARM7TDMI-S,的微控制器,芯片内集成丰富的外设,功耗却很低。,
21、,具有,64/144,引脚封装。,,片内,SRAM,及,FLASH,使单片运行成为可能。,,外扩大容量存储器。,,片内,PLL,可实现,60MHz,操作频率。,,片内,Boot,装载程序实现在系统编程,(ISP),和在应用编程,(IAP),。,LPC2000,系列,ARM,概述,4/8,路,10,位,A/D,转换器,转换时间低至,2.44ms,,2,个,32,位定时器、,PWM,单元、实时时钟和看门狗。,,多个串行接口:,UART,、,I2C,和,SPI,。,,向量中断控制器。,,2,个低功耗模式:空闲和掉电。,,可个别使能,/,禁止外部功能来优化功耗。,,双电压:内核,1.8V,、,I/O,
22、操作,3.3V,。,LPC2000,系列,ARM,概述,,,不同芯片内部存储器容量,对片内,Flash,编程的,3,种方法,使用,JTAG,仿真器,通过芯片的,JTAG,接口下载程序。,,使用在系统编程技术,(ISP),,通过,UART0,接口下载程序。,,使用在应用编程技术,(IAP),,可以实现用户程序运行时对,FLASH,进行擦除或编程。,对片内外存储器的操作,对于,SRAM,,不管是片内片外,都可直接进行读写操作。,,对于片内,FLASH,,可以直接读取数据,可使用,ISP,或,IAP,进行擦除和编程。,,对于片外,FLASH,,可以直接读取数据,但是写操作时必须进行时序控制。,存储器
23、映射,LPC2000,绝大部分存储器单元的地址是在芯片设计生产时就确定的,用户无法修改。,,ARM,芯片对,AHB,外设、,VPB,外设、片内及片外存储器进行统一编址。,AHB,和,VPB,AHB,和,VPB,外设区域都为,2MB,,每个外设空间都为,16KB,,各自分配最多,128,个外设。,,AHB,外设挂接在芯片内部,AHB,总线上,具有较高的速度。,,VPB,外设挂接在芯片内部,VPB,总线上,速度相对较低。,预取指中止和数据中止异常,如果试图访问一个保留地址或未分配区域的地址,,LPC2000,系列,ARM,将产生预取指中止或数据中止异常。,存储器映射模式,模式,激活,说明,Boot
24、 Block,模式,由任何复位硬件激活,Boot Block,异常向量映射到存储器底部,用户片内,FLASH,模式,由,Boot,代码软件激活,不需要重映射,用户片内,RAM,模式,由用户程序激活,由用户程序激活,异常向量表从静态,RAM,底部重映射,用户外部存储器模式,复位时,BOOT【1,:,0】,不为,11,时激活,中断向量从外部存储器的底部重映射,MEMMAP,寄存器描述,位,位名称,描述,复位值,1,:,0,MAP[1:0],00:BOOT,装载程序模式,,01:,用户,FLASH,模式,,10:,用户,RAM,模式,,11:,用户外部存储器模式,0,7,:,2,,保留,NA,存储器
25、重映射,定义,:为存储器分配地址的过程称为映射,为了增加系统的灵活性,系统中部分存储单元可以同时出现在不同的地址上,即存储器的重映射。重映射通过存储器管理部件实现。,,注意,:存储器重映射并不是对重映射单元的内容进行了复制,只是将多个地址指向了同一存储单元。,,举例,:,LPC2000,系列处理器中,Boot Block,和异常向量表进行了重映射。,Boot Block,Boot Block,是芯片设计厂商在,LPC2000,系列,ARM,内部固化的一段代码,用户无法对其修改或删除。,,Boot Block,在芯片复位后被首先运行。,,LPC2200,系列芯片的,Boot Block,为,8K
26、B,,有的芯片中,Boot Block,占用了用户,FLASH,空间。,,Boot Block,存在于,FLASH,的顶部。,,没有片内,FLASH,的芯片也存在,Boot Block,。,Boot Block,的重映射,Boot Block,有些程序是可以被用户调用的,为了增加用户代码的可移植性,所以最好能把,Boot Block,代码固定在某个地址上。由于各芯片片内,FLASH,大小不同,所以将,Boot Block,重映射到接近,2GB,的地方,这样无论片内,FLASH,地址如何变化,,Boot Block,地址是不变的。,异常向量表,地址,异常,0x0000 0000,复位,0x000
27、0 0004,未定义指令,0x0000 0008,软件中断,0x0000 000C,预取指中止,0x0000 0010,数据中止,0x0000 0014,保留,0x0000 0018,IRQ,0x0000 001C,FIQ,异常向量表及其重映射,ARM,内核发生异常后,会使程序跳转到位于,0x00000000~0x0000001C,的异常向量表处,再经过向量表跳转到异常服务程序。,,Boot Block,、,FLASH,、,SRAM,、外部存储器中的中断向量重映射到,0x00000000~0x0000001C,地址上。,Boot Block,的功能,不同芯片的,Boot Block,不尽相同,
28、以,LPC2200,系列,ARM,为例:,,判断运行哪个存储器上的程序。,,用户代码是否有效,无效时进入,ISP,状态。,,判断芯片是否加密。,,IAP,,ISP,MAM,存储器加速模块,当系统时钟工作在,60MHz,时,一条指令的执行时间只需十几,ns,,而,Flash,的读取速度大于,50ns,。,,LPC2000,扩展内部,Flash,部件的总线到,128,位,即可以一次取指,4,条,ARM,指令。,,MAM,可以将需要的下一个,ARM,指令锁存,以防止,CPU,取指被暂停。,MAM,存储器加速模块,MAM,存储器加速模块,加速级别,功耗,可预测性,关闭,低,高,部分使能,中,中,完全使
29、能,高,低,关闭:无指令预取指,所有的存储器请求都会导致,Flash,的读操作。,,部分使能:,CPU,顺序执行所需要的代码由缓冲区提供,但是分支后需要对,Flash,进行读操作。,,完全使能:,CPU,需要的任何代码和数据都会尝试从缓冲区获取。,外部存储器控制块,EMC,支持静态存储器部件;,,4,个存储器组可单独配置,每个组可访问,16MB,空间;,,可扩展,8,、,16,或,32,位数据总线,但是同组数据总线宽度必须一致;,,支持字节定位读取。,外部存储器控制块,EMC,存储器或,,外部,I/O,部件,存储器或,,外部,I/O,部件,存储器或,,外部,I/O,部件,存储器或,,外部,I/
30、O,部件,Bank0,,EMC Bank1,,Bank2,,Bank3,ARM7TDMI-S,AHB,外部存储器控制块,EMC,Bank,地址范围,0,0x8000 0000 ~ 0x80FF FFFF,1,0x8100 0000 ~ 0x81FF FFFF,2,0x8200 0000 ~ 0x82FF FFFF,3,0x8300 0000 ~ 0x83FF FFFF,BOOT【1,:,0】,的引导控制,P2.27/D27/BOOT1,P2.26/D26/BOOT0,引导方式,0,0,CS0,控制的,8,位存储器,0,1,CS0,控制的,16,位存储器,1,0,CS0,控制的,32,位存储器,1,1,内部,FLASH,存储器,其他系统控制模块,部件,功能,晶体振荡器,通过外接晶振或时钟源为系统提供时钟,PLL,将时钟倍频到一个更高的时钟频率,VPB,分频器,将内核时钟与外设时钟分开,功率控制,使处理器空闲或掉电,或关闭指定部件,唤醒定时器,系统上电或掉电唤醒后,保证稳定时钟,thanks,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色简约风地球1小时日主题班会
- 红色党政风全民国家安全教育
- 古风书香中国世界读书日读书分享
- 2024消费者权益保护法实施条例学习加大消费者合法权益保护力度
- 2025《提振消费专项行动方案》大力提振消费全方位扩大国内需求
- 手术室仪器设备管理医疗器械管理仪器设备管理制度医疗培训医疗行业
- 绿色清新中国风毕业答辩开题报告
- 政府工作报告里的“加减乘除”
- 红色插画风聚焦三农党政会议精神
- 党的建设的六项基本要求确保党的先进性和纯洁性提高党的执政能力和领导水平
- 2025民营经济座谈会
- 《哪吒2》与导演饺子的家庭教育智慧
- “三农”工作这么干
- 清明祭英烈缅怀先烈铸忠魂砥砺奋进践初心英灵不朽山河永念
- 红色党政教育强国建设规划纲要