Cortex-M3/M4(2)-架构
Cortex-M3/M4架构——基本介绍
- 1. 概述
- 2.Cortex-M架构
- 3. Cortex-M3/M4-架构组成部分
- 3.1 编程模型
- 3.1.1 操作模式状态
- 3.1.2 寄存器
- 3.2 存储器系统
- 3.3 异常和中断
- 3.4 复位
- 参考文献
1. 概述
什么是架构?百度百科说软件架构是系统的草图,用来指导软件系统的设计。
我理解,就像公司组织架构一样,根据需求目标,确定整体框架,框架里的每一部分都有各自的职能,部分之间有联系。架构规定了,构成部分,每个部分该做什么事,部分之间如何沟通。
Cortex-M3/M4处理器都是基于ARM-v7架构。
2.Cortex-M架构
Cortex-M架构(架构有的称为体系结构)包括ARM-v6,ARM-v7,ARM-v8和ARM-v8.1,处理器对应的架构如下表。
对比几种架构如下:
Cortex-M架构更为详细的信息参照官网:
https://developer.arm.com/architectures/cpu-architecture/m-profile
3. Cortex-M3/M4-架构组成部分
架构将从几个方面进行介绍,包括编程模型,存储器,中断,复位等方面进行,相当于针对组织架构的各部分分别介绍。
3.1 编程模型
编程模型,我理解是一个编程的模板。编程模型将从操作模式状态和寄存器两个方面介绍。
3.1.1 操作模式状态
Cortex-M3/M4处理器有两种操作状态和模式。
1.操作状态
包括调试状态和Thumb状态。
调试状态:处理器被暂停,进入此状态,停止指令执行。
Thumb状态:执行Thumb指令,进入此状态。
Cortex-M处理器在启动后默认处于特权线程模式以及Thumb状态。
2. 操作模式
操作模式有两种:处理模式和线程模式。
线程模式:执行普通代码。
处理模式:主要执行中断服务程序等异常处理。处理模式下,具有特权访问等级(特权访问等级可访问处理器的所有资源,非特权访问等级某些状态不能访问)。
3.1.2 寄存器
这里的寄存器指的是处理器内核里的寄存器,用来对数据进行处理和控制。Cortex-M3/M4处理器的寄存器由寄存器组,特殊寄存器和浮点寄存器组成。
1)寄存器组
寄存器组有13个32位通用寄存器,3个特殊寄存器,总共16个寄存器。
栈指针:R13,通过PUSH/POP实现栈存储的访问。栈指针包括两种:主栈指针(MSP)和进程栈指针(PSP),由CONTROL寄存器决定。
MSP:默认的栈指针。用于处理模式。
PSP:用于线程模式。
链接寄存器:R14,用于调用函数或子程序时保存返回地址。
程序计数器:可读可写。
2)特殊寄存器
包括程序状态寄存器、中断/异常屏蔽寄存器、控制寄存器。
程序状态寄存器包括以下三个寄存器
- 应用状态寄存器(APSR)
- 执行状态寄存器(EPSR)
- 中断状态寄存器 (IPSR)
下图是以上状态寄存器位数的定义。
中断/异常屏蔽寄存器:
- PRIMASK: 1位宽的中断屏蔽寄存器,异常优先级最高,为0。
- FAULTMASK:故障屏蔽寄存器,异常优先级为1。
- BASEPRI:根据优先级屏蔽。
CONTROL寄存器决定了
- 栈指针的选择
- 线程模式的访问,是特权还是非特权。
3)浮点寄存器
主要是指Cortex-M4浮点寄存器。主要包括浮点单元寄存器组和浮点状态寄存器。
3.2 存储器系统
特点如下:
- 4GB寻址空间(32位)
- 被定义的存储器映射
- 支持大小端存储
- 存储器保护单元(MPU)
- 支持非对齐传输
- 写缓冲
关于存储器映射,为了方便Cortex-M不同系列的移植和重用
4GB的存储空间被划分为以下几种,如下图所示:
- 代码访问
- 数据访问
- 外设
- 内部控制和调试部件
3.3 异常和中断
打断正常执行程序的事件就是异常,中断是异常的一种。异常源有多个,如下所示:
NVIC:Nested vectoredinterrupt controller嵌套向量中断控制器,作用是管理异常,比较中断优先级,确定异常入口以及屏蔽中断等。
下图是异常类型总结表
3.4 复位
复位类型有三种:
- 上电复位。复位微控制器的所有
- 系统复位。只复位处理器和外设,调试部分不复位
- 处理器复位。
复位流程如下:
先读主栈指针2个字,再读复位向量的地址。
参考文献
《ARM Cortex-M3与Cortex-M4权威指南》
《Arm Cortex-M Processor Comparison Table》
Cortex-M3/M4(2)-架构相关推荐
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
- ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
- cortex m3/m4处理器的复位设计
cortex m3/m4处理器在复位层面总体上可以划分为core和debug logic两部分.core部分包括处理器内核(core)以及NVIC,BUS Matrix,MPU的非debug部分.de ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?
本文转自嵌入式资讯精选公众号,特别鸣谢, 编者按:初学习ARM单片机的同学们可能会对ARM的架构定义并不是很明确,形形色色的名词背后到底代表什么含义呢?请听听这位嵌入式工程师的经验总结. ARM架构: ...
- Cortex M3/M4 学习摘要(二)
########################################## 处理器类型 使用RICS 3级流水选,且拥有哈佛架构 4GB寻址空间 加载存储架构 ############### ...
- Cortex M3/M4 学习摘要(一)
##################################################### 微控制器和处理器: 在一个基本的微处理器中,处理器只占了很小一部分,一般被内存.时钟发生器 ...
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- Cortex M3内核架构
CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...
- Cortex M3 NVIC与中断控制
Cortex M3 NVIC与中断控制 宗旨:技术的学习是有限的,分享的精神是无限的. 一.NVIC概览 --嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断 ...
- Cortex M3 Bit-banding简介
http://blog.csdn.net/shevsten/article/details/7676397 Cortex M3 Bit-banding简介 分类: ARM MCU2012-06-19 ...
最新文章
- 嵩天python笔记_第一篇python笔记
- lt;备份gt;10月18日 DNS
- scala学习之数组操作
- python shape函数_Perlin噪声和Python的ctypes
- 漫画:什么是拜占庭将军问题
- 多态计算器的开发 c# 1614095334
- Java核心编程总结(二、抽象类与接口),linux音频驱动架构
- 让Sublime Text 2支持GBK
- 时间序列分析的模型应用 – 股价预测
- 朋友:趣头条上市了!我:谁?
- 某程序员入职后,发现领导是前公司的下属
- [连载2]互联网究竟是什么怪物…他们不愿公开真正秘密...
- 如果们正预测基本面子
- AutoCAD Civil 3D 介绍
- 软考高项记忆小妙招-项目章程
- 2020电赛省赛实战(二)ADS1292心电检测仪
- 探店通系统,短视频矩阵源码,抖音矩阵系统,look
- 保险基本概念测试人员须知(一)
- plotly绘制简单图形<7>--用plotly画图参数设置
- vue-cli模拟后台数据交互