MCU基础
目录1.CPU的基本结构和运行机制1.1 ALU1.2 Register Files1.3 Control Unit2.堆栈的概念3.ARM体系结构3.1 ARM的发展过程3.2 ARM Cortex M Register FilesProgrammers Model4.中断4.1 中断的概念和机制4.2 中断的允许和禁止、现场保护4.3 中断子程序和函数调用的区别4.4 中断向量表4.5 中断优先级和中断嵌套5.复位、时钟、存储器、总线5.1 复位5.2 时钟5.3 存储器5.4 总线、外设6.小结1.CPU的基本结构和运行机制一个基本的MCU的结构图如下所示。主要由处理器CPU存储器Memory总线Bus和外设Peripheral组成。CPU主要包含逻辑运算单元ALU寄存器组register files控制单元control unit有些CPU还有浮点运算单元MMUCache Management。一个典型的CPU如下图所示。1.1 ALUALU由四个要素组成操作数、运算、运算结果和标志位。运算结果和标志位往哪里存呢寄存器。存放标志位的寄存器有个特殊的名字叫程序状态寄存器Program Status RegisterPSR有的叫条件码寄存器Condition Code RegisterCCR。PSR的每一位称为状态位且代表的含义不同比如溢出标志位等。每执行一条指令相应的状态位都会进行更新。每条指令影响的状态位都是不一样的需要查芯片手册。1.2 Register Files寄存器用于临时保存和获取操作数任何CPU都包含若干个通用/专用寄存器寄存器的数目和宽度是衡量CPU的重要指标。ALU的操作数和运算结果可以来自寄存器或者数据存储器对个人PC而言是内存或者硬盘对MCU而言是CPU以外的存储部分1.3 Control Unit那是什么让上面的一切自动的运行呢-Control Unit。控制单元的主要作用1、指令解析分析该指令需要执行何种操作2、数据流向确定该指令用到的操作数来源和产生结果的去向。简言之就是控制单元将一条指令解析为对ALURegisterMemory的控制来明确做什么运算数据从哪来到哪去。那又一个问题来了控制单元上的指令是从哪里来的程序是指令的有序集合指令和数据一样也是保存在存储器当中这些指令序列“依次”进入CPU执行。下一条待执行的指令地址保存在PC寄存器Program Counter程序计数器中。如果发生函数调用或者中断返回的地址从何而来呢这就要引出另一个概念堆栈。2.堆栈的概念如何保存返回地址呢一开始想到的办法就是设计返回地址寄存器但是如果发生嵌套调用的话会出现寄存器不够用。于是设计了一种机制栈能够保持数据的顺序后入先出覆盖并不是销毁。那栈都有哪些用途呢堆栈指针寄存器Stack PointSP堆栈溢出。有时候电脑出现的蓝屏可能是堆栈溢出或者是越界访问PC指向了存储器一段莫名其妙的空间并试图取出值来运行程序跑飞了。对操作系统而言可能认为是越界访问嵌入式系统可能认为是非法指令无法解释程序就复位了。学习C语言感觉不到堆栈因为C语言的函数调用参数传递等都是编译器帮你隐性地使用了堆栈。用会骗语言做中断编程时会接触到这个概念。写道这里再回头看看CPU的结构自己在脑子里过一遍基本上就能知道一段程序是怎么被CPU执行的了CPU一直在发展从8位到16位、32位ARM Cortex MPowerPCColdFire、64位时钟的频率也越来越高从Hz到MHz、GHz频率越高执行每条指令的时间就越短。学习CPU重点关注两点1、CPU由哪些寄存器是编程的对象2、ALU对应的指令集即有哪些指令代表的含义是什么3.ARM体系结构3.1 ARM的发展过程ARM公司只做CPU设计采用出售IP的方式运营半导体制造商无需自己设计CPU。3.2 ARM Cortex M Register FilesProgrammers Model4.中断4.1 中断的概念和机制1、主程序中设置号中断发生的条件Gobal IEIF2、按下键电路以信号的形式通知CPU中断发生了3、CPU自动调用该中断服务子程序。需要说明的是中断总开关打开后它可能在任意一个时间点上调用。4.2 中断的允许和禁止、现场保护现场保护考虑到效率压有限个寄存器入栈如果编程人员用到更多可以自己手动压栈。4.3 中断子程序和函数调用的区别函数调用返回地址中断子程序返回地址和之前压入栈的寄存器的值。4.4 中断向量表当一个中断发生时CPU如何找到中断服务子程序并执行呢--中断向量表。4.5 中断优先级和中断嵌套5.复位、时钟、存储器、总线5.1 复位5.2 时钟5.3 存储器1G(B) 1024M(B)1M 1024KB1KB1024B1Byte 8bit5.4 总线、外设6.小结MCU上电过程给SP指针赋值将开发工具生成的入口函数代码第一条指令的地址给PC最后一条指令Jump to main函数。

相关新闻

AI文献综述工具:提升研究效率与质量

AI文献综述工具:提升研究效率与质量

1. 项目概述:AI驱动的文献综述革命"书匠策AI"这个工具名称本身就透露着对学术写作场景的深刻理解——它将"书匠"的工匠精神与"策略"的智能属性完美结合。作为长期浸泡在学术圈的研究者,我深刻体会到文献综述这个环节的痛点…

2026/10/19 23:02:15 阅读更多 →
如何实现城通网盘终极加速:ctfileGet免费高速下载方案详解

如何实现城通网盘终极加速:ctfileGet免费高速下载方案详解

如何实现城通网盘终极加速:ctfileGet免费高速下载方案详解 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘下载速度慢、验证流程繁琐而烦恼吗?ctfileGet是一款完全…

2026/10/16 21:45:01 阅读更多 →
系统架构设计师考试:高效备考策略与资源推荐

系统架构设计师考试:高效备考策略与资源推荐

639 | 系统架构设计师考试:高效备考策略与资源推荐 考系统架构设计师,就像参加一场马拉松。 不是比谁起跑快,而是比谁能坚持到最后。 一、考试概览 考试信息 ┌───────────────────────────────────────────────────…

2026/10/20 7:33:52 阅读更多 →

最新新闻

职业经验建模:用声明式YAML构建可复用AI Agent

职业经验建模:用声明式YAML构建可复用AI Agent

1. 这不是又一个“AI Agent 框架”,而是一套可复用的职业经验建模方法论你有没有试过让大模型写一份市场总监的季度复盘报告?或者模拟一位资深HR在薪酬谈判中的应答逻辑?多数时候,结果要么是泛泛而谈的模板话术,要么是…

2026/10/21 5:51:19 阅读更多 →
PeopleSoft Application Engine 中文文档:AE 程序开发与性能优化指南

PeopleSoft Application Engine 中文文档:AE 程序开发与性能优化指南

简介:这份资源是PeopleSoft Application Engine的中文版官方文档,面向PeopleSoft开发人员、人力系统实施顾问及需要维护批量业务流程的技术人员。Application Engine作为PeopleSoft后台工作流的核心组件,承担数据更新、报表生成、接口同步等批…

2026/10/21 5:51:19 阅读更多 →
XSS绕过实战指南:从编码原理到防御全解析

XSS绕过实战指南:从编码原理到防御全解析

写这篇的原因是,我自己早期学XSS的时候,走了太多弯路。网上大多数资料只会丢payload列表,告诉你“这样打就完事了”,但没人讲清楚为什么能绕过、什么时候无效、以及真正决定绕过成败的那几步判断到底怎么做。后来做了一段时间的实…

2026/10/21 5:51:19 阅读更多 →
零基础网络安全入门指南:从威胁建模到Web安全实战

零基础网络安全入门指南:从威胁建模到Web安全实战

不知道你有没有过这种感受:刷到某个数据泄露的新闻,发现密码库满天飞;点开一个钓鱼邮件,差点把账号拱手送人;看见招聘网站上安全工程师年薪比别人高一大截,心里痒痒的。于是打开搜索引擎,输入“…

2026/10/21 5:51:19 阅读更多 →
网络安全零基础入门路线:从网络协议到本地靶场实战的完整知识地图

网络安全零基础入门路线:从网络协议到本地靶场实战的完整知识地图

网络安全这几年确实是绕不开的话题,但很多想入门的朋友都卡在同一个位置:资料越存越多,工具越下越杂,真正打开电脑却不知道先学什么。这篇文章写给完全零基础的人,目标不是让你一夜变成渗透测试高手,而是帮…

2026/10/21 5:51:19 阅读更多 →
SpringBoot整合SSM实验室预约系统:从设计到答辩完整实战

SpringBoot整合SSM实验室预约系统:从设计到答辩完整实战

实验室预约这类系统,在我接触过的毕业设计和实际项目里,出现频率相当高。原因也很直接:它的业务流程足够完整,涉及用户角色、资源管理、状态流转、时间冲突判断这些核心逻辑,却又不像电商或社交系统那样无限膨胀&#…

2026/10/21 5:50:19 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →