ARM CORETEX M0简介

ARM CORETEX M0简介

1. M0处理器简单框图

在这里插入图片描述
处理器内核:逻辑控制与运算
内部总线系统:单总线将处理器与外部的存储器和外部连接,进行数据交互(冯诺依曼架构,数据与指令一起)
NVIC:嵌套向量中断控制器,帮助cpu处理外部的中断请求,max32个中断,4级中断优先级
异常:由cpu自己产生,reset,hardfault,SVcall,pendsv,systick
中断:由系统其他外设产生(32个)
WIC:唤醒中断控制器,系统进入低功耗模式后,将cpu唤醒的控制器
调试子系统单元:用于调试整个子系统

2. M0处理器简单框图
工作模式
线程模式(thread mode):芯片复位后,即进入线程模式,执行用户程序
处理模式(handler mode):当处理器发生了异常或者中断,则进入处理模式进行处理,处理完成后返回线程模式
区别:两个模式操作的寄存器不同
工作状态
thumb状态:正常工作时,处理器的状态
调试状态:调试程序时处理器的状态
寄存器
13个通用寄存器以及多个特殊寄存器
R0R12:所有工作模式都可以操作,R0R7:低端寄存器,可以作为16位或32位指令操作数,R8~R12为高端寄存器,只能用作32位操作数
R13:堆栈指针SP,M0不同的物理位置上存在两个栈指针,主栈指针MSP,进程栈指针PSP。在处理模式上,只能使用MSP,在线程模式下,通过CONTROL寄存器控制使用哪种指针,系统上电默认MSP;
R14:链接寄存器(LR),用于存储子程序或者函数调用的返回地址
R15:程序计数器(PC),存储下一条将要执行的指令的地址
指令集
(EPSR)寄存器的T标志位负责指令集的切换,m0只支持thumb指令

  1. arm指令集
    a. 32位精简指令集
    b. 指令长度固定
    c. 降低编码数量产生的耗费,减轻解码和流水线的负担
  2. thumb指令集
    a. 是arm指令集的一个子集
    b. 指令宽度16位
    c. 与32位指令集相比,大大节省了系统的存储空间
    d. thumb指令集不完整,所以必须配合ARM指令集一同使用
    note:rhumb指令与arm相比,代码体积小了30%,但是性能也低了20%;故存在thumb-2,即兼容thumb 16位指令集,又兼容部分32位指令集;

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值