嵌入式系统原理与应用EMB-2-PSOC5中央处理器与存储器-精选课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《嵌入式系统原理与应用EMB-2-PSOC5中央处理器与存储器-精选课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 原理 应用 EMB PSOC5 中央处理器 存储器 精选 课件
- 资源描述:
-
1、第1节 Cortex-M3内核概述第2节 嵌套向量中断控制器第3节 高速缓存控制器第4节 PHUB和DMAC第5节 存储器结构与功能精选课件第1节 Cortex-M3内核概述第2节 嵌套向量中断控制器第3节 高速缓存控制器第4节 PHUB和DMAC第5节 存储器结构与功能精选课件PSoC5采用ARM Cortex-M3内核(低功耗32位CPU),使用哈佛(Harvard)3级流水线核和固定4GB存储器映射。v支持16/32位Thumb-2指令集。Cortex-M3结构特性v流水性结构v寄存器v操作模式vSystick定时器v存储器空间映射v异常及处理精选课件Cortex-M3特性还包括v使用硬
2、件除法指令,v低延迟中断服务程序ISR入口和退出特性。还包括其它模块,与CPU紧密连接在一起。v嵌套中断控制器(Nested Vector Interrupting Controller-NVIC),vSYSTICK定时器和v众多的调试和跟踪模块。精选课件精选课件3级流水线结构(性能达到1.25DMIPS/MHz),提高指令执行速度和降低功耗。v支持Thumb-2指令集:支持16/32位操作;原子比特位的读和写操作;支持非对齐存储器访问操作。v改善代码的密度,确保存储器的使用效率。v易于使用、编程和调试,易于从8/16位处理器移植。vNVIC支持中断和异常,帮助快速地响应中断。v扩展的调试支持
3、:串行线调试端口(SWD);断点;Flash修补;代码跟踪。精选课件3级流水线实现:v取指-从存储器取指令;v译码-产生地址和分支预测;v执行-基于地址和分支执行指令。当执行1个指令时,流水线能给出12个等待状态。总线基于v轻量先进高性能总线(Advanced High Performance Bus Lite-AHB Lite)v先进高性能总线(Advanced High Performance Bus-APB)精选课件总线接口:v加载指令的I-Code总线;v加载数据的D-Code总线;v从存储器器区域0 x20000000 0 xDFFFFFFF和0 xE0100000 0 xFFFFF
4、FFF。v外部的私有外设总线,用于调试元件。v调试访问端口,用来连接调式接口模块。精选课件 4种普通寄存器(通用寄存器,堆栈指针,链接寄存器和程序计数器)精选课件通用寄存器(R0:12):所有指令都可访问R0:7。所有32位指令和部分16位指令可以访问R8:12。堆栈指针(Stack Pointer-SP)(R13):2个堆栈指针,每1次只能用1个。SP是32位对齐方式。忽略1:0比特位,当作0来处理。链接寄存器(R14):保存程序调用期间返回的程序计数器的值。程序计数器(R15):能写此寄存器来控制程序流(程序执行顺序)。精选课件3种特殊寄存器(程序状态寄存器,中断屏蔽寄存器和控制寄存器)。
5、v仅使用特殊指令访问特殊寄存器,不能正常数据处理。精选课件程序状态寄存器(Program Status Register-PSR):v应用程序状态寄存器(Application PSR-APSR)v中断程序状态寄存器(Interrupt PSR-IPSR)v执行程序状态寄存器(Execution PSR-EPSR)PSR提供ALU标志(零/进位),执行状态和当前执行中断数量。v使用MSR和MRS指令,能单独或者集体访问3个PSR。v作为xPSR时,能对其进行集体访问。精选课件中断屏蔽寄存器vPRIMASK:用来禁止除不可屏蔽中断NMI和硬故障外的所有中断;vFAULTMASK:用来禁止NMI外
6、的所有中断。vBASEPRI:用来禁止指定的或者低优先级的中断。NVIC使用这些寄存器来屏蔽中断或异常。控制寄存器v控制堆栈指针的选择和处理器的特权级。只有2位:CONTROL0:0线程模式的特权;1线程模式的用户状态;CONTROL1:0使用默认的堆栈;1使用可替换的堆栈。精选课件2种特权分级v特权级(Privileged):代码没有资源限制v用户(User):代码有资源限制使用控制寄存器控制特权分级。v当代码在用户级时,它不能访问调试资源和某些重要的寄存器,这些限制包括限制访问MSR和MRS指令,不能使用CPS指令。不能访问系统定时器,NVIC或系统控制块。可能限制访问存储器或外设。精选课
7、件2种操作模式v线程模式所有正常的应用程序使用线程模式。在线程模式下,使用进程堆栈指针PSP。线程模式能存在于特权级和用户级。v管理者模式操作系统内核和异常处理程序使用管理者模式。在此模式下,使用主堆栈指针(MSP)。管理者模式只用于特权级。精选课件调整控制寄存器,可从特权级切换到用户级,但是不能通过调整控制寄存器从用户级切换到特权级。v发生异常时,系统自动使用特权级;退出异常时,又返回到特权级。v只能通过异常处理程序对控制寄存器编程为特权模式,才能恢复到特权级。精选课件SysTick定时器集成在NVIC中,产生SYSTICK中断。v在实时系统中用于任务管理。片内有1个24位可重加载的寄存器,
8、递减计数器的值。v使用Cortex-M3内部时钟或PSoC5时钟。片内有2个寄存器控制时钟源:第1个是Cortex-M3寄存器NVIC_SYSTICK_CTL,选择时钟源来自内部或者外部(默认)。第2个是PSoC5寄存器PANTHER_WAITPIPE,选择内部时钟源;或内部ILO 100KHz(默认),或DSI时钟。精选课件精选课件Cortex-M3具有线性32位(4GB)地址空间。v包括2个位带别名区域,分别用于SRAM空间和外设空间。访问1个位带别名区域影响相应位带区域内单独的位。v2个位带中的地址除可以象普通RAM一样使用外;v还可以有自己的位带别名区,位带别名区每个比特膨胀为32位的
9、字。精选课件精选课件Cortex-M3提供丰富特性的异常结构,支持大量的系统异常和外部中断。v中断号1-15的异常用于系统异常,16以上用于外部中断输入。vPSoC5结构支持32个外部中断。异常由NVIC处理。v大多数的异常都有可编程的优先级,少数有固定的优先级。v当前正在运行的异常的值由特殊寄存器IPSR或者来自NVIC的中断控制状态寄存器(VECTACTIVE域)给出。精选课件中断是异常的一部分。v异常和中断的处理方法相同。在中断向量表中保存着每个异常句柄(服务程序)。v向量表开始于异常句柄,后面跟着中断服务程序的地址。v可动态改变向量表的指针。v若向量表在SRAM中,则可动态修改向量。精
10、选课件第1节 Cortex-M3内核概述第2节 嵌套向量中断控制器第3节 高速缓存控制器第4节 PHUB和DMAC第5节 存储器结构与功能精选课件嵌入向量中断控制器(Nested Vector Interupted Controller-NVIC)是Cortex-M3处理器的组成部分。v作为存储器映射设备访问。除用作中断处理控制寄存器和控制逻辑外,还用作SYSTICK定时器和调试控制的控制寄存器。NVIC特性v支持32个中断和16个异常;可配置的优先级;动态可重新配置的中断优先级(07);支持嵌套的中断;可编程中断向量(固定功能,UDB或DMA);v支持尾链(Tail chaining)和迟到
11、的中断。这样能背对背的中断。支持电平触发和脉冲触发。精选课件精选课件中断控制器提供1种机制,使得在不需要考虑目前主程序执行任务的情况下,可在新的地址执行程序。v提供32个中断线,每个中断线对应1个中断向量和可配置的优先级。每个中断线分配8个优先级中的一个。v支持32个中断信号:固定功能模块;DMA通道;UDB;v中断线穿过1个多路复用器。用来选择中断源。多路复用器选择:v固定功能IRQ(中断请求);UDB的电平IRQ、UDB的边沿IRQ;DMA IRQv使用IDMUX.IRQ_CTL寄存器来选择中断请求IRQ。精选课件精选课件中断控制器使能或者禁止个别的中断线。v使能寄存器SETEN和清除使能
12、寄存器CLREN,分别用来使能和禁止中断线。v寄存器的每1位都对应1个中断线,这些寄存器使能和禁止中断,以及读中断的使能状态。v设置未处理中断寄存器SETPEND和清除未处理中断寄存器CLRPEND,允许通过软件设置和清除未处理中断比特位。v每个比特位对应于1个中断线。可以通过读这些寄存器来查看,未处理中断比特位的状态。精选课件v对所有脉冲/电平中断,一旦中断控制器接收到来自CPU的中断入口(IRA)的响应,则立即清除相应未处理中断比特位。v对脉冲中断,一旦有新脉冲到来,就可再次设置未处理中断比特位。v对电平中断,当中断控制器接收到来自CPU的中断退出(IRC)响应后,则检查中断线的状态。若此
13、时,仍然确认中断线,则设置(复位)处理中断比特位;如果没有确认中断线,则未处理中断比特位保持清除状态。精选课件若硬件请求设置未处理中断比特位,而同时软件请求清除未处理中断比特位,则硬件请求具有更高优先级。v当已设置相同的比特位,再设置该位,则只执行一次中断。不管是否设置相应的使能位,总可以更新未处理中断比特位。v建议在使能中断以前,查看未处理中断比特位的状态。中断控制器提供中断优先级处理的能力来帮助为每个中断分配不同的优先级。精选课件可分配(07)共8个级别的优先级。v0级具有最高优先级,7级具有最低优先级。v使用中断优先级寄存器PRI_x设置优先级。v可以动态的配置中断的优先级。若确认1个中
14、断INTB和正在执行另1个中断INTA,则3种可能:v若INTA的优先级比INTB低,则:INTA执行点停止;INTA现场入栈,开始执行INTB;执行完INTB后,INTA继续从中断点上继续执行;精选课件v若INTA的优先级比INTB高,则:INTB等待INTA执行完;INTA执行完后,INTB开始执行;v若INTA和INTB优先级相同,则:若INTA正在执行,则INTB等待INTA执行完。当INTA执行完后,INTB开始执行;若INTB正在执行,则INTA等待INTB执行完。当INTB执行完后,INTA开始执行。精选课件同时产生中断v若INTA优先级低于INTB,则INTB获得仲裁权,开始执
15、行;v若INTA优先级高于INTB,则INTA获得仲裁权,开始执行;v若INTA和INTB有相同的优先级,则具有低索引值的中断获得仲裁权,开始执行。中断控制器支持电平和脉冲中断。v中断控制器包含脉冲检测逻辑,用于检测中断线的上升沿。若检测到上升沿,脉冲检测逻辑设置未处理中断比特位。v中断控制器检测任何对中断信号的确认,则按如下执行中断。精选课件电平中断v中断服务程序内清除相应外设寄存器的中断请求比特位。若设置外设寄存器的中断请求位,导致中断信号线上的高电平信号。退出中断时若在外设寄存器中设置中断请求位,将再次设置中断未处理比特位。若使能中断则再次处理中断。脉冲中断v在中断线上出现1个脉冲。脉冲
16、的上升沿设置未处理中断比特位,执行相应的中断。若已设置中断未处理比特位,此时产生脉冲,不起任何作用。进入ISR时,自动清除未处理中断位。若中断当前正在处理的时候,产生脉冲,再次设置未处理中断比特位,执行中断。精选课件精选课件中断控制器能控制电平和脉冲中断,执行顺序:v执行相应中断信号的中断要求设置中断使能(假设已经编程优先级和中断向量地址);v当确认中断信号时,在未处理中断寄存器内设置对应于相应中断号的未处理中断比特位,表示正在等待执行中断。v优先级译码单元读取优先级,确定何时执行中断。v中断控制器向CPU发送中断请求,以及用于执行的中断向量地址。vCPU接收到请求。精选课件v中断入口(IRA
17、):CPU响应中断入口。进入中断入口后,能检测下1个相同中断线。忽略在任何进入中断入口前,对任何中断线的确认。接收到相应信号后,中断控制器清除未处理中断比特位。v中断控制器将当前中断号及其优先级压入到中断控制器堆栈。v中断退出(IRC):完成中断的执行时,处理器解决下1个请求。CPU响应中断退出。退出中断时,将中断上下文(现场,比如中断号和优先级)从堆栈中弹出。精选课件PSoC5基于Cortex-M3 CPU核,其中断控制器有额外特性。中断控制器是Cortex-M3核的一部分。活动中断v活动中断是指一个当前正在执行的中断。CPU堆栈中保存活动中断的优先级和中断号。v当任何中断开始执行时,中断优
18、先级和中断号压入到堆栈。通过读取堆栈的内容了解活动中断细节。精选课件使用CPU堆栈v使用2个不同的堆栈指针来分别访问两个堆栈,即进程堆栈指针(PSP)和主堆栈指针(MSP)。vCortex-M3能配置使用2个堆栈。当配置使用所有堆栈时,第1个中断使用PSP或者MSP保存细节。v当配置不使用所有堆栈时,只使用主堆栈指针。支持ACTIVE寄存器v保存中断的活动状态。精选课件ACTIVE寄存器的特性:v寄存器的每1位指示相应中断的活动状态。v当ACTIVE寄存器的比特位设置为1时,中断是活动的。当该位设置为0时,中断当前处于非活动状态。v当前运行的中断由于1个高优先级的中断所停止时,当前运行中断的状
19、态保持活动,这是因为在高优先级中断执行后,它继续执行。v只有执行完中断后,才清除活动状态比特位。精选课件支持异常v但是ACTIVE中的比特位只对应到中断,而非异常。v异常的活动状态细节保存在异常状态寄存器。v异常状态寄存器不但用于读取活动状态,而且用于使能异常。中断嵌套v当正在执行1个低优先级的中断时,确认1个高优先级的中断时,产生中断嵌套。精选课件PSoC5内只有CPU堆栈保存所有嵌套中断细节:v当前中断号,当前中断优先级v程序计数器,PSR,R0-3,R12和LRv保存R4-R11寄存器,取决于应用程序当CPU处理压栈和出栈时,CPU堆栈向下生长。配置用于控制如何使用PSP和MSP。v若使
20、用所有的堆栈,第1个中断使用当前活动的PSP或者MSP。所有其它的嵌套的中断只适用MSP。精选课件若配置只用1个堆栈时,中断细节保存在MSP,其顺序:v正在执行低优先级中断时,高优先级中断到达,中断控制器向CPU发送请求,在执行点上停止运行低优先级中断。v低优先级中断的细节,指令指针和其它通用目的寄存器,压入到堆栈。(取决于嵌套使用堆栈,MSP或者PSP)。v支持的嵌套数量取决于可使用的堆栈空间,用户应确认足够的可用堆栈空间。若堆栈空间不足,则导致不确定的结果。v执行较高优先级中断后,高优先级中断的细节从堆栈中弹出。低优先级中断从终止点继续执行。v由于硬件处理堆栈和出栈由硬件处理,它们有最小的
21、延迟。在操作过程中,不需要调用指令。精选课件精选课件精选课件中断向量地址vPSoC5结构允许用户为每1个中断线指定中断服务程序。v调用对应于1个中断线的中断服务程序不是1个分支指令。v中断服务程序地址保存在中断向量表中,导致直接调用程序。v此执行方法防止调用中断服务程序的延迟。v从中断向量表取出中断服务程序地址,并且实现。v中断向量地址的列表保存在向量表中。精选课件PSoC 5包含向量表偏移寄存器v移动向量表时,启动镜像应该包含堆栈指针值,复位向量,NMI向量和硬故障向量。v向量地址是32位,LSB使用0 x01填充,MSB包含相应24位执行ISR地址。在LSB中出现0 x01,表示为Thum
22、b指令。确认中断信号期间,从表中得到中断服务程序的地址(Interrupt Vector Address-IVA),并给CPU执行中断。vPSoC5支持异常,向量表也有地址对应15个异常,后面跟着中断服务程序的地址。精选课件尾链v是一个过程,用于减少中断的延迟。v正在执行相同或更高优先级的其它中断时,确认1个新中断:新的低优先级的中断等待处理。当执行当前的中断后,并不会弹出当前在堆栈中的中断细节。新中断的细节压入堆栈,开始执行新的中断。当执行新中断后,新中断的细节和前面中断的细节弹出堆栈。v在2个中断期间无入栈和出栈操作,大大降低延迟。尾链能节省最多6个周期。精选课件迟到中断v其它中断正在压栈
23、用于执行时,产生1个迟到的中断。v通过处理迟到的中断,其它特性减少中断延迟。v过程描述:确认低优先级中断;确认发生高优先级中断,将低优先级中断的细节压入堆栈;低优先级中断入栈后,代替低优先级中断,并执行高优先级中断入栈;执行完高优先级中断后,执行低优先级中断。精选课件中断控制器和功耗模式v关闭中断控制器电源或时钟,仍能够运行CPU核。v在此情况下,在进入/推出不同低功耗模式(交替活动,休眠和冬眠)时,需要注意。v关闭中断控制器时钟后,执行:清除所有等待处理的中断,禁止中断控制器内的所有中断;空操作;禁止全局中断比特位;在INTC.CLOCK_EN寄存器的CLOCK_EN比特位中关闭中断控制器的
24、时钟。精选课件只有在活动和交替活动模式下,当关闭中断控制器时钟时,CPU能运行。v当在关闭中断控制器时,从交替活动模式切换到活动模式时:遵循前述的步骤来关闭中断控制器的时钟。现在CPU能运行任何不包含中断的代码。当任何时候要求时,切换到活动状态。只有唤醒中断时才能切换到活动模式,然后CPU应该保持轮询PM.MODE_CSR寄存器,寻找系统切换到活动模式的时间。切换回活动模式时,遵循前述的过程,用于从低功耗模式切换到活动模式。精选课件第1节 Cortex-M3内核概述第2节 嵌套向量中断控制器第3节 高速缓存控制器第4节 PHUB和DMAC第5节 存储器结构与功能精选课件高速缓存模块是1个指令缓
展开阅读全文