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