新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM Cortex-M3 学习笔记(2)

ARM Cortex-M3 学习笔记(2)

作者:时间:2016-11-20来源:网络收藏
最近在学ARM Cortex-M3,找了本号称很经典的书“An Definitive Guide to The ARM Cortex-M3”在看。这个系列学习笔记其实就是在学习这本书的过程中做的读书笔记。

第二章 Cortex-M3 概述
Cortex M3 内核的组成可以用一张简图来表示:

本文引用地址:http://www.eepw.com.cn/article/201611/318827.htm

图 3 Cortex-M3内核简图

内核寄存器组包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能访问R0-R7。
R13是堆栈指针,实际上有两个,一个是主堆栈指针(MSP)另一个是进程堆栈指针(PSP),堆栈要求4字节对齐。
R14存放程序的返回地址。
R15是PC,记录程序当前的执行地址。

特殊功能寄存器包括:
程序状态字寄存器组(PSRs)
中断屏蔽寄存器组(PRIMASK, FAULTMASK, BASEPRI)
控制寄存器(CONTROL)

运行模式和特权级别
两种运行模式:handler mode和thread mode。
两种特权级别:特权级和用户级

中断例程工作在特权级,普通程序代码既可以工作在特权级也可以在用户级。
相互间的转换用下图来描述:

图 4 操作模式转换图
嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controller)
 可嵌套中断支持
 向量中断支持
 动态优先级调整支持
后面有一章会对NVIC进行详细的介绍。

地址空间分配
与以前的ARM 内核不同,Cortex-M3对地址空间的分配有个大的框架。向NVIC寄存器等的地址也都被固定了下来,这就方便了在程序的移植。具体的地址分配可以用下图来简单的描述:

图 5 地址分配

总线
Cortex-M3内部有若干个总线接口,以使Cortex-M3能同时读取程序代码和访问内存,它们是:
指令存储区总线(两条)
系统总线
私有外设总线

中断和异常
Cortex-M3支持11个内部异常和240个外部中断。当然,对具体的芯片,可以支持的外部中断数量肯定就要少的多了。

调试支持
在支持传统的JTAG基础上,还支持更新更好的串行线调试接口。
基于CoreSight调试解决方案,使得处理器哪怕是在运行时,也能访问处理器状态和存储器内容。
内建了对多达6个断点和4个数据观察点的支持。



关键词: ARMCortex-M

评论


相关推荐

技术专区

关闭