ARM Cortex-M3
cortex-m3的体系结构:
cortex-m3:微处理器的内核
1.CM3微处理器内核的结构
一整块处理器的结构:
CM3 + 调试模块(睡眠模式,低功耗运行状态) =合起来为cpu
内部总线
外设 存储器
时钟和复位 I/O
cm3内核:
跟踪调试的接口
控制的逻辑部件 thumb解码器 thumb-2解码器
运算器—— 32位的ALU:乘法器和除法器
NVIC接口:数据传输的接口,提供中断信息的控制器端口
总线接口:
CM3微处理器的特点:
功耗低,价格低(具有的门数),调试的成本比较低(调试的手段非常的多:先进),中断的延迟比较低(响应速度比较快)(即时性),支持多级中断的嵌套,可裁剪的存储器保护单元(MPU)
采用的是armv7-m架构:thumb-2子集(包含所有的基本16位和32位thumb-2指令,只有SP(堆栈指针)是单独分组的,寄存器集比arm7简单的多,硬件自带乘除法器,乘除法指令集(thumb-2)
工作模式:线程模式和处理模式
可中断可继续的push/pop指令(对于系统栈的指令,内存分区):低中断的延迟(中断时可以自动保存进度和恢复处理器的状态)
多种访问方式(8位,16,32)(非对齐访问)
中断数量:加上外部中段:1-240个,设置1-8个中断优先级(随时的进行动态重新配置),优先级也是分组的:占先中断等级和非占先中断多级
内核存储器:8个存储单元
SRD(子区禁止功能):能对存储器区进行管理实现有效使用
MPU可裁剪
APB外设总线接口和其他的总线接口
存储器的对齐访问(结构体的存储对齐)
2.处理器的工作模式和状态:
工作的访问级别:特权级和用户级
特权级:类似于管理员权限:有些文件只有管理员才有权进行操作(所有的资源都可以访问)
用户级:普通用户权限:只能在自己的用户目录和公共目录下进行操作(对系统控制空间的访问和部分重要的系统指针不允许访问)
好处:出于数据安全性的考虑,防止意外,恶意的访问破坏了重要数据
工作模式:处理模式和线程模式
处理模式:处理异常和中断(一定在特权状态下的)
1.是在异常处理出现的时候进入处理模式
2.在处理模式中,所有的代码都只能由特权级别进行访问
线程模式:按照正常的程序逻辑进行运行的程序(特权和用户状态下)
1.在复位的时候,处理器自动进入线程模式reset
2.在异常处理返回之后,会正常进入线程模式,所有的代码对特权用户和普通用户都开放
工作状态:thumb状态和调试状态
thumb状态:指令集,指令执行的正常状态
调试状态:处理器停止运行并且进行调试的状态
control:控制cm3工作模式的切换的
control[0]=0进入复位后的特权模式
control[0]=1进入正常运行的线程模式
control[1]编程模式:堆栈的切换
MSR指令控制寄存器:用来控制进程堆栈和主堆栈之间的来回切换
寄存器和总线的接口:
通用寄存器:R0-R7:低寄存器,对所有想使用通用寄存器的指令都开放访问
R8-R12:高寄存器,只能被32位的指令访问,不能被16位的指令访问
堆栈指针SP:(R13):
MSP主堆栈指针:处理模式,线程模式
PSP进程堆栈指针:只用在线程模式下
链接寄存器(R14) LR:用来保存pc的返回地址
程序计数器PC:(R15)将要执行的下一条指令:正在取指的指令
程序状态寄存器(APSR,IPSR,EPSR):XPSR:用于指示程序运行的状态
APSR:应用状态寄存器
31:N:负数或小于标志位:1:结果为负数或者小于 0:结果为正数或者大于
30:Z:零标志位:1:结果为0 0:非0
29:进位或者借位标志位:1:有进位或者借位 0:无进位或者无借位
28:V:溢出标志位:1:溢出 0:无溢出
27:Q:饱和标志位:1:饱和 0:不饱和
0-26:保留位
IPSR:中断状态寄存器:当前被响应(正在执行的)程序的ISR编号
0-8:中断号
9-31:保留位
ISR数据:基础级别=0 RESET=1 NMI=2
EPSR:执行状态寄存器
当多周期指令被执行的时候,进行程序的现场保护
特殊功能寄存器:异常中断寄存器(PRIMASK,FAULTMASK,BASEPRI)
primask:中断屏蔽寄存器:32位,最低位有效:中断总开关:1:中断全屏蔽 0:中断正常响应
faultmask:错误屏蔽寄存器
basepri:可屏蔽等于和低于某个优先级的中断
控制寄存器(control):0 1
0:主堆栈 特权机
1:进程堆栈 用户级
3.寄存器和总线的接口
总线接口:
ARM微控制器:使用的是AMBA总线体系结构
AMBA:3种总线:1.AHB总线:用于连接高性能的模块(支持突发的数据传输:不间断的连续传输)以及单个的数据传输(一个时钟沿)2.ASB总线:用于连接高性能系统模块,只支持突发的数据传输3.APB总线:用于低性能的外围设备接口
总线结构:指令存储器总线(0x00000000=0x1fffffff,两条AHB)
IC:指令传送
DC:数据传送
系统总线(AHB):访问存储区,片上设备和片外设备(0x200000000-0xd00000000)
内部专用外设总线:访问cm3的内部组件(AHB)
外部专用外设总线:访问cm3的外部组件(APB)
4.存储器的组织和映射
Arm的数据类型:
字节byte:8位有符号和8位无符号;
半字(双字节):16位有符号,无符号;
字:32位有符号,无符号;
存储形式:大端方式和小端模式
大端:高位存在低地址中(网络传输)
小端:低位存在低地址中
存储器的层次结构:
寄存器组:访问时间最快,几个ns纳秒
片上cache:8-32kb,十几个ns
主存储器:小到只有几M,大到几个G动态存储器,访问时间大概是50ns
NORFLASH:几M字节,随机读存运行代码
nandflash:几M,几十个G都是可能的,用来当磁盘使用
位绑定:(指针)是把绑定区的每一位,分别映射到别名区的一个字,那我们对于位绑定的操作,就是对别名区的操作
位绑定别区名的字,仅有最低位有效,是映射的位值,没有其他的意义
对于位绑定区的字,可以直接进行读写操作
5.指令集和流水线和异常中断
6.存储器的保护单元
ARM Cortex-M3相关推荐
- ARM Cortex M3指令集
一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC 写入跳转地址值. 通过向程序计数器PC 写入跳转地 ...
- The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf
在网上找不到可以直接下载的直链,要不是要登录就是要付费,挺麻烦的,百度都搜不到什么好东西,谷歌一下发现了可以直接下载的连接如下 https://www.academia.edu/35524606/ 直 ...
- ausam3x 嵌入式linux,ATSAM3X8EA-AU - 微控制器, 32位, SAM3X系列, ARM 皮质-M3, 84nb
ATSAM3X8EA-AU - 微控制器, 32位, SAM3X系列, ARM 皮质-M3, 84 MHz, 512 KB, 96 KB, 144 引脚, LQFP The ATSAM3X8EA-AU ...
- ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列
STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...
- ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)
ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- 基于Arm Cortex内核的32位MCU和MPU(M0、M0+、M3、M4、M33、M7、A7)
基于Arm Cortex内核的32位MCU和MPU ST意法半导体产品矩阵 M3典型--STM32 F1系列Cortex-M3基础型MCU M4典型--带有DSP和FPU指令的STM32F4系列高性能 ...
- 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单片机的同学们可能会对ARM的架构定义并不是很明确,形形色色的名词背后到底代表什么含义呢?请听听这位嵌入式工程师的经验总结. ARM架构: ...
- ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
最新文章
- Spring-AOP实践 - 统计访问时间
- VCSA中配置时间和时区,实测至6.5适用
- PMP每日三题(2022年2月15日)
- WebCore中的渲染机制(二):块和内嵌(Blocks and Inlines)
- C++11系列学习之六-----for
- hdu 1176 馅饼
- Shiro学习总结(3)——Apache Shiro身份认证
- 在互联网和信息快速整合的时代
- 常用的关系型数据库的优劣与选择
- Google+ 为什么会死?
- [kuangbin带你飞]专题九 连通图
- python select模块_深入理解python中的select模块
- html_头部meta设置
- 洗衣机测试点 思维导图
- 八种常见的防盗链方法总结及分析 (转自http://www.cnblogs.com/uubox)
- Hangfire详解
- 装修服务转战线上,VR全景为您解决装修行业痛点!
- PCIE设备如何降速降带宽
- 数据库服务的运行与登录
- PowerSI提取S参数(插损、回损、串扰分析)
热门文章
- ROM、RAM、DRAM、SRAM、SDRAM
- git lfs的安装和使用
- Windows 10和Linux脚本启动jar包服务器,并设置开机启动
- 庄子 “唯至人乃能游于世不避,顺人而不失己。”
- linux centos7以上的自带监控界面cockpit案例
- PwC普华永道信息技术2023助理软件工程师面经总结
- spm,afni的安装和使用心得
- 什么是BST?什么是哈希表?一文带你了解并实现查找的基础知识
- java hh24miss_Java编程时间格式与数据库中时间格式转化
- 对数组名取地址 a[ ],a