Cortex M3基础
Cortex M3基础 提纲 寄存器组 1. 通用目的寄存器R0-R7 2. 通用目的寄存器R8-R12 3. 堆栈指针R13 4. 连接寄存器R14 5. 程序计数器R15 二、特殊功能寄存器组 1.程序状态寄存器(PSRs 或PSR) 2. PRIMASK, FAULTMASK 和BASEPRI 3.控制寄存器(CONTROL) 三、操作模式 四、异常与中断 五、向量表 六、栈内存操作 1. 堆栈的基本操作 2. Cortex-M3 堆栈的实现 3.再论Cortex-M3 的双堆栈机制 六、复位序列 但若CONTROL[0]=1(线程模式+用户级),则在中断响应的始末,both 处理器模式和特权等极都要发生变化,如下图所示。 CONTROL[0]只有在特权级下才能访问。用户级的程序如想进入特权级,通常都是使用一条“系统服务呼叫指令(SVC)”来触发“SVC 异常”,该异常的服务例程可以选择修改CONTROL[0]。 Cortex‐M3 支持大量异常,包括16‐4‐1=11 个系统异常,和最多240 个外部中断——简称IRQ。具体使用了这240 个中断源中的多少个,则由芯片制造商决定。由外设产生的中断信号,除了SysTick 的之外,全都连接到NVIC 的中断输入信号线。典型情况下,处理器一般支持16 到32 个中断,当然也有在此之外的。 作为中断功能的强化,NVIC 还有一条NMI 输入信号线。NMI 究竟被拿去做什么,还要视处理器的设计而定。在多数情况下,NMI 会被连接到一个看门狗定时器,有时也会是电压监视功能块,以便在电压掉至危险级别后警告处理器。NMI 可以在任何时间被激活,甚至是在处理器刚刚复位之后。 下表列出了Cortex‐M3 可以支持的所有异常。有一定数量的系统异常是用于fault 处理的,它们可以由多种错误条件引发。NVIC 还提供了一些fault 状态寄存器,以便于fault 服务例程找出导致异常的具体原因。 当一个发生的异常被CM3 内核接受,对应的异常handler 就会执行。为了决定handler 的入口地址,CM3 使用了“向量表查表机制”。这里使用一张向量表。向量表其实是一个WORD(32 位整数)数组,每个下标对应一种异常,该下标元素的值则是该异常handler 的入口地址。向量表的存储位置是可以设置的,通过NVIC 中的一个重定位寄存器来指出向量表的地址。在复位后,该寄存器的值为0。因此,在地址0 处必须包含一张向量表,用于初始时的异常分配。 举个例子,如果发生了异常11(SVC),则NVIC 会计算出偏移移量是11x4=0x2C,然后从那里取出服务例程的入口地址并跳入。0 号异常的功能则是个另类,它并不是什么入口地址,而是给出了复位后MSP 的初值。 在Cortex‐M3 中,除了可以使用PUSH 和POP 指令来处理堆栈外,内核还会在异常处理的始末自动地执行PUSH 与POP 操作。本节让我们来检视一下具体的动作,第9 章则讨论异常处理时的自动栈操作。 笼统地讲,堆栈操作就是对内存的读写操作,但是其地址由SP 给出。寄存器的数据通过PUSH 操作存入堆栈,以后用POP 操作从堆栈中取回。在PUSH 与POP 的操作中,SP 的值会按堆栈的使用法则自动调整,以保证后续的PUSH 不会破坏先前 PUSH 进去的内容。 堆栈的功能就是把寄存器的数据放入内存,以便将来能恢复之——当一个任务或一段子程序执行完毕后恢复。正常情况下,PUSH 与POP 必须成对使用,而且参与的寄存器,不论是身份还是先后顺序都必须完全一致。当PUSH/POP 指令执行时,SP 指针的值也根着自减/自增。 Cortex‐M3 使用的是“向下生长的满栈”模型。堆栈指针SP 指向最后一个被压入堆栈的32位数值。在下一次压栈时,SP 先自减4,再存入新的数值。 POP 操作刚好相反:先从SP 指针处读出上一次被压入的值,再把SP 指针自增4。 在进入ISR 时,CM3 会自动把一些寄存器压栈,这里使用的是进入ISR 之前使用的SP指针(MSP 或者是PSP)。离开ISR 后,只要ISR 没有更改过CONTROL[1],就依然使用先前的SP 指针来执行出栈操作。 * ?? 寄存器组 ?? 特殊功能寄存器组 ?? 操作模式 ?? 异常和中断 ?? 向量表 ?? 存储器保护单元 ?? 堆栈区的操作 ?? 复位序列 CM3 拥有通用寄存器R0‐R15 以及一些特殊功能寄存器。R0‐R12 是最“通用目的”的,但是绝大多数的16 位指令只能使用R0‐R7(低组寄存器),而32 位的Thumb‐2指令则可以访问所有通用寄存器。特殊功能寄存器有预定义的功能,而且必须通过专用的指令来访问。 R0‐R7 也被称为低组寄存器。所有指令都能访问它
您可能关注的文档
最近下载
- 2025年福建海峡银行校园招聘笔试备考题库及答案解析.docx VIP
- 江苏旅游职业学院招聘试题.pdf VIP
- 《成人腰大池引流护理》(TCRHA 069-2024).pdf VIP
- 内蒙古单招题库语文及答案.doc VIP
- ESG投资中的绿色washing识别与治理机制研究.pdf VIP
- 2025年互联网营销师体验营销中的体验营销与用户决策专题试卷及解析.pdf VIP
- 2025年互联网营销师用户激活与留存转化专题试卷及解析.pdf VIP
- GBT 22513-2023石油天然气钻采设备 井口装置和采油树.pptx VIP
- 计算机组成原理-教案-唐朔飞.pdf VIP
- 2025年化工工程师控制系统的性能指标与稳态误差专题试卷及解析.pdf VIP
原创力文档

文档评论(0)