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相关推荐

  1. ARM Cortex M3指令集

    一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC 写入跳转地址值. 通过向程序计数器PC 写入跳转地 ...

  2. The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf

    在网上找不到可以直接下载的直链,要不是要登录就是要付费,挺麻烦的,百度都搜不到什么好东西,谷歌一下发现了可以直接下载的连接如下 https://www.academia.edu/35524606/ 直 ...

  3. 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 ...

  4. ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列

     STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...

  5. ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)

    ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...

  6. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)

    架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...

  7. 基于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系列高性能 ...

  8. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

  9. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?

    本文转自嵌入式资讯精选公众号,特别鸣谢, 编者按:初学习ARM单片机的同学们可能会对ARM的架构定义并不是很明确,形形色色的名词背后到底代表什么含义呢?请听听这位嵌入式工程师的经验总结. ARM架构: ...

  10. ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

最新文章

  1. Spring-AOP实践 - 统计访问时间
  2. VCSA中配置时间和时区,实测至6.5适用
  3. PMP每日三题(2022年2月15日)
  4. WebCore中的渲染机制(二):块和内嵌(Blocks and Inlines)
  5. C++11系列学习之六-----for
  6. hdu 1176 馅饼
  7. Shiro学习总结(3)——Apache Shiro身份认证
  8. 在互联网和信息快速整合的时代
  9. 常用的关系型数据库的优劣与选择
  10. Google+ 为什么会死?
  11. [kuangbin带你飞]专题九 连通图
  12. python select模块_深入理解python中的select模块
  13. html_头部meta设置
  14. 洗衣机测试点 思维导图
  15. 八种常见的防盗链方法总结及分析 (转自http://www.cnblogs.com/uubox)
  16. Hangfire详解
  17. 装修服务转战线上,VR全景为您解决装修行业痛点!
  18. PCIE设备如何降速降带宽
  19. 数据库服务的运行与登录
  20. PowerSI提取S参数(插损、回损、串扰分析)

热门文章

  1. ROM、RAM、DRAM、SRAM、SDRAM
  2. git lfs的安装和使用
  3. Windows 10和Linux脚本启动jar包服务器,并设置开机启动
  4. 庄子 “唯至人乃能游于世不避,顺人而不失己。”
  5. linux centos7以上的自带监控界面cockpit案例
  6. PwC普华永道信息技术2023助理软件工程师面经总结
  7. spm,afni的安装和使用心得
  8. 什么是BST?什么是哈希表?一文带你了解并实现查找的基础知识
  9. java hh24miss_Java编程时间格式与数据库中时间格式转化
  10. 对数组名取地址 a[ ],a