ARM CORETEX M0简介

news2024/12/26 2:06:40

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位指令集;

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Matlab】智能优化算法_亨利气体溶解度优化算法HGSO

【Matlab】智能优化算法_亨利气体溶解度优化算法HGSO 1.背景介绍2.数学模型2.1 亨利定律2.2 HGSO 3.文件结构4.伪代码5.详细代码及注释5.1 Create_Groups.m5.2 Evaluate.m5.3 fun_checkpoisions.m5.4 fun_getDefaultOptions.m5.5 HGSO.m5.6 main.m5.7 sumsqu.m5.8 update_posit…

机器学习总览

机器学习 1.什么是机器学习? 机器学习是使计算机像人类一样学习与行动的科学,并通过观察与现实世界交互的形式向计算机提供数据和信息,从而随着时间的推移以自主的方式改善其学习。 通过经验提高某些任务性能的计算机程序。 人工智能>机器…

FreeRTOS ~(六)信号量 ~ (1/3)信号量解决同步缺陷

前情提要 FreeRTOS ~(四)同步互斥与通信 ~ (1/3)同步的缺陷 FreeRTOS ~(五)队列的常规使用 ~ (1/5)队列解决同步缺陷 举例子说明:利用信号量解决前述的"同步的缺陷&…

最具价值开源项目收藏--持续更新

轻量级开源笔记应用(memos) 该项目基于 Go React.js SQLite 技术栈开发,兼具高性能与可定制性,适用于日常生活办公中的各类笔记管理场景。 开源地址:https://github.com/usememos/memos 跨平台无缝传输文件&#…

揭秘python函数:编程艺术的核心力量(3)

文章目录 前言递归lambda表达式lambda 的参数形式无参数位置参数关键字参数缺省参数可变参数1.包裹位置传递2.包裹关键字传递 带判断条件的lambda表达式列表数据按照字典key的值进行排序 高阶函数的使用内置高阶函数1.map()2.reduce()3.filter() 前言 前面我们已经学习了 pyth…

7-测试模型(2个)

目录 1.软件测试V模型 2.软件测试W模型(双V模型) 1.软件测试V模型 V模型最早是由Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果。是瀑布模型的变种。 明确地标注了测试过程中存在的…

前端工程打包部署

打包 直接执行第二个脚本build即可 打包后的文件将会放在dist目录下 部署 NGINX:是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占用内存少,并发能力强,在各大型互联网公司都有非…

R中高效安装包,以ComplexHeatmap包为例

包安装问题解决方案 1. Biocmanager安装 [2. 手动安装](正在更新……) 目录 包安装问题解决方案前言1. install.packages()的介绍1.1 install.packages()的工作原理1.2 install.packages()安装失败的原因1.3 解决方案 2. BiocManage安装ComplexHeatmap总…

kubernetes的概念以及部署

简介: kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是…

PDF怎么免费分割成多个文件?这几个方法非常好用!

记灵在线工具是一种常用的电子工具,尤其在工作和学习中,我们经常需要使用记灵工具进行文档处理和整理。其中,记灵工具的分割功能是非常有用的,因为它可以将一个大的文件分割成多个较小的文件,从而便于我们对文件进行分…

Ubuntu22.04如何安装steam游戏平台

linux终端安装 安装命令1 打开终端,输入以下命令安装: sudo snap install steam 安装命令2 1.在这种安装模式下,我们使用的是指令安装,这时我们需要打开终端(cmd/控制台)随后输入此指令:“su…

口语理解任务源码详解系列(三)利用BiRNN-attention模型实现

利用RNN-attention模型实现 写在前面 在前文介绍了项目的数据集构建:传送门,以及利用seq2seq-attention模型实现意图分类与槽位填充任务:传送门 本文利用BiRNN-attention实现:实现细节请参考论文:《Attention-Based Re…

一键搞定发布自己Jar到Maven中央仓库

做java 开发那当然离不开jar包管理, 不知何时一直想想封装一个自己的jar包 然后发布到maven中央仓库给别人使用。 hhh 我感觉自己写一个jar包工具然后,被很多人使用是一件很牛,很快乐事情。 终于有了这个机会,和时间。SpringBoot stater出来了…

Steam搬砖项目介绍

Steam搬砖项目:轻松赚取稳定收入的副业选择 对于许多数字游戏玩家来说,Steam平台并不陌生。今天,我将向您介绍一个稳定的副业选择——Steam搬砖项目。通通过简单的操作,您可以轻松获得几十上百元的利润。 介绍 Steam搬运砖项目…

css 伪元素和浮动

展示为行内元素 inline-block <style>div {/* 浏览器解析行内块或行内标签的时候, 如果标签换行书写会产生一个空格的距离, 展示为行内元素 */display: inline-block;width: 100px;height: 100px;}.one {background-color: pink;}.two {background-color: skyblue;}</…

基于OpenCV 实现车牌号码识别--附免费源码

在本教程中,您将学习如何使用 OpenCV 和 EasyOCR 包自动执行车牌/车牌识别 (LPR/NPR)。 EasyOCR是一个开源 Python 包,用于执行光学字符识别 - OCR(从图像中提取文本)。 该软件包非常易于使用,在撰写本文时,它支持 80 多种语言,包括中文、阿拉伯语、法语、英语、西里尔…

多元回归预测 | Matlab主成分分析PCA降维,BP神经网络回归预测。PCA-BP回归预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab主成分分析PCA降维,BP神经网络回归预测。PCA-BP回归预测模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warnin…

【脚本语言】Shell Script - 日期的获取、设置和延时操作

目录 基础概念 基础语法 打印当前日期 打印纪元时 将日期转换为纪元时 打印要求格式的日期 设置日期和时间 基础概念 Bash可以帮助我们以不同的格式打印日期、设置日期&#xff0c;又或根据日期或时间进行操作等。 在类Unix系统中&#xff0c;日期被存储为一个整数&#xff0…

阿里云服务器架构x86、GPU、ARM、裸金属和超级计算集群说明

阿里云服务器架构有什么区别&#xff1f;X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、超级计算集群有什么区别&#xff1f;阿里云服务器网分享云服务器ECS架构详细说明&#xff1a; 目录 阿里云服务器ECS架构说明 X86计算 ARM计算 GPU/FPGA/ASIC 弹性裸金属服务…

在 CI/CD流水线中运行自动化单元测试的4个原因

目录 什么是单元测试&#xff1f; C#中的单元测试示例 我需要在CI/CD 流水线中运行自动化测试吗&#xff1f; 开发人员代码验证反馈循环 预验证 步步为营 减少“另一个开发人员写了这段代码”的问题 什么是单元测试&#xff1f; 单元测试 什么是单元测试&#xff1f; 单…