嵌入式学习 Day4
1.Cortex类似于大脑不同型号效果不同2.DSP数字信号处理器用于处理大量数字计算3.FPU浮点数运算单元4.PC 程序计数器 Program count 用于计第一个程序地址5.SP 栈指针 用于管理栈6.LP 连接寄存器用于保存返函数回地址7.xPSR 程序状态寄存器8.STM32上电后内部完整流程上电↓读取向量表 //理解为地址表↓设置SP //向量表数据要往里面压类似于要把一个个地址往里面压为什么压地址请看DAY1、2↓进入Reset_Handler //设置运行环境、初始化变量、清零BSS、进入main的一个函数↓初始化系统↓main()9.、GPIO外部中断完整流程完整过程按键↓GPIO输入变化 //高低电平等变化↓EXTI检测边沿//EXTI检测边沿一个检测器理解为检测高低电平↓产生中断请求↓NVIC判断优先级//嵌套中断控制器判断那个东西先中断优先级高先中断↓CPU响应↓进入IRQ_Handler函数//↓执行中断代码↓返回主程序10.RCC时钟信号树HSI高速内部时钟IntHSE高速外部时钟Ex PLL锁相环放大倍频率//8MHZ×972MHZ11.时钟树分APB1/APB2两条总线为APB1TIMER USART1 IICAPB2控制GPIO USART2 ADC一、今日学习目标今天开始从 STM32 外设层进入 CPU 内核层。前几天学习C语言 ↓ 指针 ↓ 结构体 ↓ 寄存器 ↓ GPIO控制今天继续深入ARM Cortex-M3 CPU ↓ 程序启动 ↓ 异常系统 ↓ NVIC中断管理 ↓ GPIO外部中断 ↓ 时钟系统目标理解 STM32 为什么可以运行程序为什么中断可以自动进入函数以及 GPIO 为什么需要时钟。二、ARM Cortex-M是什么1. Cortex含义Cortex 是 ARM 对处理器核心架构的命名。英文Cortex皮层、核心层例如大脑皮层Cerebral Cortex表示大脑负责高级处理的区域。ARM使用 Cortex 表示一套面向不同应用设计的处理器核心架构。2. Cortex-M含义CortexARM设计的CPU核心。MMicrocontroller微控制器所以Cortex-M表示ARM面向单片机领域设计的CPU核心系列。三、Cortex-M系列区别Cortex-M0/M0特点成本低功耗低结构简单应用简单控制器低功耗设备Cortex-M3STM32F103C8T6使用Cortex-M3特点32位架构支持复杂中断性能强适合通用嵌入式控制Cortex-M4M4相比M3增加DSPDigital Signal Processing数字信号处理。作用提升大量数学计算能力。例如音频处理ADC采样 ↓ 滤波计算 ↓ 输出M3需要普通指令完成大量乘法计算。M4拥有专门DSP指令可以更快完成。部分M4还有FPUFloating Point Unit浮点运算单元。适合电机控制音频信号处理机器人四、Cortex-M3核心寄存器CPU内部有高速寄存器。重要的1. PCProgram Counter程序计数器。作用保存下一条要执行指令的地址。注意PC不是存程序。程序存储Flash。例如Flash 0x08000000 ↓ 程序代码PC记录当前执行位置。2. SPStack Pointer栈指针。作用保存当前栈顶地址。栈用于保存局部变量函数参数函数现场例如voidtest(){inta;}变量a可能存放在栈中。为什么启动时需要设置SP因为CPU刚上电不知道栈在哪里。向量表第一个数据就是初始SP。例如向量表 0x08000000 ↓ 0x20005000表示RAM中的栈顶位置。3. LRLink Register连接寄存器。作用保存函数返回地址。例如main调用fun();CPU跳转到fun。执行结束后需要知道回哪里。LR保存返回地址。4. xPSR程序状态寄存器。保存CPU状态包括运算结果标志当前执行状态异常状态五、STM32启动流程STM32上电后不会直接进入main。完整流程上电 ↓ 读取向量表 ↓ 设置SP ↓ 进入Reset_Handler ↓ 初始化系统 ↓ main()六、向量表Vector Table向量表本质保存异常和中断函数地址的表。例如地址 内容 0x08000000 初始SP 0x08000004 Reset_Handler 0x08000008 HardFault_Handler 0x0800000C EXTI_HandlerCPU发生异常查找对应地址。跳转执行。七、Reset_Handler是什么Reset_Handler不是中断。它是芯片复位后的启动函数。主要作用1. 设置运行环境例如初始化栈。2. 初始化变量例如inta10;需要从Flash加载到RAM。3. 清零BSS区域例如intb;默认b04. 系统初始化例如配置时钟系统参数5. 调用main最终main();八、异常和中断Cortex-M统一称Exception异常包括Exception ├── Reset ├── HardFault ├── SysTick └── 外部中断IRQ九、NVIC中断控制器全称Nested Vectored Interrupt Controller中文嵌套向量中断控制器。作用管理中断。NVIC负责1. 开启中断例如允许USART中断。2. 设置优先级例如电机保护高优先级。按键低优先级。3. 中断嵌套例如正在执行UART中断。突然发生高优先级定时器中断。CPU暂停UART。执行Timer。完成后回来。十、EXTI外部中断控制器全称External Interrupt/Event Controller作用检测GPIO输入变化。例如按键连接PA0。按下GPIO电平1 ↓ 0这个变化叫下降沿。EXTI检测到产生中断请求。十一、边沿概念GPIO有两个状态0和1。变化过程叫边沿。上升沿0 → 1例如低电平变高。下降沿1 → 0例如按键按下。十二、GPIO外部中断完整流程完整过程按键 ↓ GPIO输入变化 ↓ EXTI检测边沿 ↓ 产生中断请求 ↓ NVIC判断优先级 ↓ CPU响应 ↓ 进入IRQ_Handler函数 ↓ 执行中断代码 ↓ 返回主程序十三、STM32时钟系统RCC全称Reset and Clock Control作用管理时钟复位1. HSIHigh Speed Internal高速内部时钟。来源芯片内部RC振荡器。例如8MHz。2. HSEHigh Speed External高速外部时钟。来源外部晶振。STM32开发板通常8MHz晶振。3. PLLPhase Locked Loop锁相环。作用倍频。例如STM32F103HSE 8MHz ↓ PLL ×9 ↓ 72MHz十四、APB1和APB2STM32内部有不同总线。APB1连接TIM2USART2I2CAPB2连接GPIOUSART1ADC十五、今天解决的问题总结问题1为什么启动需要设置SP答案不是存地址。而是告诉CPU栈在哪里。问题2Reset_Handler是什么答案芯片复位后的启动函数。负责初始化环境初始化变量配置系统调用main问题3EXTI检测边沿是什么意思答案检测GPIO电平变化。包括上升沿0→1下降沿1→0问题4Cortex是什么意思答案ARM处理器核心架构名称。问题5M3和M4区别答案M4增加DSP部分有FPU更适合复杂数学运算。十六、今日总结今天学习最大的收获以前GPIOC-BRR(113);只知道控制LED。现在知道完整链路C代码 ↓ CPU执行 ↓ 寄存器访问 ↓ 外设工作 ↓一 GPIO变化 ↓ 硬件响应同时理解程序启动 向量表 ↓ SP ↓ Reset_Handler ↓ main 中断 GPIO ↓ EXTI ↓ NVIC ↓ CPU ↓ Handler这为后续学习GPIO外部中断定时器UARTDMARTOS打下底层基础。

相关新闻

AI大模型18- 从零搭建推理增强:思维链、自一致性采样与自我反思完整指南

AI大模型18- 从零搭建推理增强:思维链、自一致性采样与自我反思完整指南

18-推理增强:从 CoT 到自我反思 免费基金定投助手全功能拆解:为什么你的基金定投还在亏钱?因为你的工具用错了。动态平衡仓位管理8种智能定投策略引擎,会自己算买卖点的定投系统-CSDN博客 https://download.csdn.net/download/wei…

2026/10/15 4:08:46 阅读更多 →
PHP上传文件为什么会被覆盖

PHP上传文件为什么会被覆盖

最近排查一个 PHP 后台时遇到过这种情况:用户连续上传两份文件,页面都提示成功,但最后服务器目录里只剩下一份。数据库记录有两条,下载时却都指向同一个文件。 继续看上传代码后发现,程序直接使用了用户原始文件名保存…

2026/10/15 4:08:46 阅读更多 →
纯纳米泡与DDA正电修饰纳米泡强化赤铁矿-高岭土反浮选——正电泡促高岭土卡房结构,异步絮凝压赤铁矿夹带

纯纳米泡与DDA正电修饰纳米泡强化赤铁矿-高岭土反浮选——正电泡促高岭土卡房结构,异步絮凝压赤铁矿夹带

论文来源:Huaizhi Shao, Panwu Li, Ahmed Sobhy, Xiangyang Ling, Dongping Tao, Ming Zhang. Effects of Pure and Modified Nanobubbles on the Reverse Flotation of Kaolinite from Hematite[J]. Mineral Processing and Extractive Metallurgy Review, 2023. D…

2026/10/15 4:08:46 阅读更多 →

最新新闻

火山引擎智能数据洞察平台v2.0工程实践深度解析

火山引擎智能数据洞察平台v2.0工程实践深度解析

简介:本资源是火山引擎官方发布的《智能数据洞察平台v2.0》核心介绍PPT,面向企业数据平台建设者、BI工程师、数据分析负责人及数字化转型决策者,系统解析该平台在跨源融合、自助建模、AI增强分析与嵌入式BI等关键场景下的技术架构与落地能力。…

2026/10/15 4:59:06 阅读更多 →
基于SpringBoot+Vue的校园体育资源共享与运动爱好者交流平台设计与实现

基于SpringBoot+Vue的校园体育资源共享与运动爱好者交流平台设计与实现

选题背景与意义 随着我国高等教育事业的持续发展和“健康中国”战略的深入推进,高校体育教育逐渐从传统的课堂教学模式向多元化、个性化、信息化方向转型。校园体育资源作为高校育人体系的重要组成部分,不仅承载着增强学生体质、培养健康生活方式的功能&…

2026/10/15 4:59:06 阅读更多 →
金融方面的证书有哪些含金量高的?按岗位分赛道的选择思路

金融方面的证书有哪些含金量高的?按岗位分赛道的选择思路

金融领域的证书很多,宣传口径也很杂。有人把从业资格和CFA放在一张表里比,有人把培训结业证说成"国家认可",还有人暗示考下某个证就能进投行。这些说法往往忽略了一个前提:证书的含金量,取决于它本身的制度性…

2026/10/15 4:59:06 阅读更多 →
剑侠世界4:无限定档10.15公测!开服福利奖励攻略

剑侠世界4:无限定档10.15公测!开服福利奖励攻略

剑侠世界4:无限于10月15日全平台公测,预下载也已经正式开启。10 月 14 日 10 点起全平台开放预下载,同步开启服务器预创角。PC 端玩家预创角成功后,还能进入独立试玩场景,提前熟悉各武器的技能手感和外观效果。要注意首…

2026/10/15 4:59:06 阅读更多 →
xtu C语言基础-试除法判断素数

xtu C语言基础-试除法判断素数

//试除法判断素数 int is_prime(int n){if(n<2) return 0; if(n2) return 1;if(n%20) return 0; //除2以外所有偶数都不是素数//排除了偶数之后只用遍历奇数for(int i3;i*i<n;i2){ //i*i可以避免浮点数运算if(n%i0) return 0;}return 1; }

2026/10/15 4:59:06 阅读更多 →
静态路由实现全网可达:从路由表原理到配置与排错

静态路由实现全网可达:从路由表原理到配置与排错

做网络项目最烦的是什么&#xff1f;设备连好线、接口全亮&#xff0c;结果PC之间互相ping不通&#xff0c;而且怎么查都看不出问题。干这行久了你就明白&#xff0c;八成是路由表没配周全——数据包走到中间某台路由器&#xff0c;转发表里没有目标网段&#xff0c;报文直接被…

2026/10/15 4:58:06 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时&#xff0c;网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上&#xff0c;依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里&#xff0c;扩缩容到底难在哪做过大模型推理服务部署的人&#xff0c;大概都经历过这样的场景&#xff1a;一个团队共用一套推理集群&#xff0c;A 业务跑的是 7B 的小模型&#xff0c;B 业务跑的是 72B 的大模型&#xff0c;C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子&#xff1a;一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减&#xff0c;为了把启动时间压进两秒以内&#xff0c;我手贱地把一串自认为“没用”的 systemd 服务给 disable 了&#xff0c;其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →