STM32F407学习记录(五)Cortex-M3/M4权威指南:第一章
前言本文章相当于学习笔记摘录总结。推荐自行观看相关书籍权威指南。1.1什么是ARM Coretex-M处理器1.1.1Cortex-M3和Cortex-M4处理器介绍Cortex-M3/M4以及特点1.1.2Cortex-M处理器家族Cortex-M3/M4是基于Armv7-M架构。Cortex-M0/M0是基于Armv6-M架构。1.1.3处理器和微控制器的区别Arm公司不生产微控制器Arm公司设计处理器然后授权处理器给其他芯片制造商去设计微控制器而一个微控制器除了处理器还包括其他部分如下图。1.1.4ARM和微控制器供应商ARM公司提供处理器的设计源代码给微控制器供应商微控制器供应商在此基础上二次开发设计其他部分。1.1.5选择Cortex-M3和Cortex-M4微控制器Cortex-M微控制器有很多从低成本到高性能的多处理器系统。产品中选择哪种微控制器有很多考虑的因素。1.2Cortex-M处理器的优势1.2.1低功耗1.2.2性能可以处理许多复杂的应用场景1.2.3能耗效率1.2.4代码密度Thumb ISA指令集提供了良好的代码密度意味着完成相同的任务所需代码更少如此对flash的容量需求更少芯片厂商可以设计更小封装的微控制器。1.2.5中断Cortex-M3/M4处理器具有可配置的中断控制器支持240个中断向量8~256个中断优先级。中断嵌套由硬件自动处理具有零等待状态存储器的系统的中断等待仅为12个周期。12个周期指的是从硬件触发中断信号到CPU执行中断服务程序ISR第一条指令中间只隔了12个CPU时钟周期。具有零等待状态存储器的系统这是实现“仅12个周期”的前提条件。为什么会有这个前提条件很多单片机内部Flash闪存比CPU主频慢CPU读取指令时需要插入“等待周期”让CPU干等着。“零等待”意味着存储器Flash或SRAM的速度跟得上CPU读取指令不需要插入任何等待周期。正因如此CPU在响应中断时取中断向量去哪个地址执行、取第一条指令都能无缝衔接不会因为存储器太慢而把12个周期拖长到几十个周期。1.2.6易于使用几乎所有代码都可以用C实现1.2.7可扩展性1.2.8调试特性1.2.9OS支持1.2.10多种系统特性1.2.11软件可移植性和可重用性1.2.12选择设备、工具和OS等1.3ARM Cortex-M处理器应用1.4ARM处理器和ARM微控制器的资源1.4.1ARM网站上有什么ARM参考文献1.4.2微控制器供应商提供的文档比如STM32参考手册1.4.3工具供应商提供的文档比如keil1.4.4其他资源1.5背景和历史1.5.1ARM简史1990年成立除了处理器设计ARM还提供外设和存储器控制器等系统级IP的授权。1.5.2ARM处理器的发展Cortex-M3发布前ARM处理器已经有很多用在微控制器中其中最成功的处理器之一为ARM7TDMI处理器。它支持两套指令集32位ARM指令集、16位Thumb指令集可同时使用这两套指令集。从那时起为了应对不同的应用ARM继续开发新的处理器例如ARM9、ARM11。在ARM11发布之后ARM决定将优化的Thumb-2指令集等新技术应用在微控制器和汽车部件等低成本市场上。ARM通过多样化的CPU从而扩展产品线Cortex这以新的处理器名也是因此而来其包含三类A类用于高性能的开放应用平台比如应用在linux、安卓B类用于需要实时性能的高端嵌入式系统比如应用在汽车、移动通信基带控制器M类用于深度嵌入式微控制器系统比如应用在微控制器和混合信号设计的小型应用1.5.3Thumb ISA的架构版本ARM开发新的处理器、新的指令集架构特性也不断更新。一个架构有不同的版本。比如ARMv7架构被分为了3类* Cortex-A处理器:ARMv7-A架构。* Cortex-R处理器:ARMv7-R架构。* Cortex-M处理器:ARMv7-M 和 ARMv6-M架构。随着Cortex-M3处理器的成功另外一种名为ARMv6-M架构也出现了以满足超低功耗设计的需要。它使用和ARMv7-M架构相同的编程模型和异常处理方法(如NVIC),并且主要使用ARMv6 的Thumb 指令以降低设计的复杂度。Cortex-M0,Cortex-M0和Cortex-M1处理器基于ARMv6-M架构。原先的处理器同时支持32位ARM指令和16位Thumb指令但是需要处理在两种指令状态进行切换。而Thumb-2指令集天生支持16位和32位指令无需切换。比如不支持Thumb-2指令集的处理器在需要处理复杂计算时就需要切换到ARM状态。1.5.4处理器命名1.5.5关于ARM生态系统个人理解ARM架构相当于一个“规范”规范更新迭代也就是下图不同架构支持不同的指令集比如v7架构支持Thumb-2指令集。一个架构有不同的版本相当于特调版本如ARMv7-A架构、ARMv7-R架构、ARMv7-M。处理器就是根据特调版本规范设计出来的。

相关新闻

3. 进程状态

3. 进程状态

目录 一、教材中经典的进程状态模型 二、调度 && 运行 && 阻塞 && 挂起 2.1. 画图 例子 2.2. 阻塞与挂起的区别 2.3. 上述例子的流程图 三、Linux 内核链表 的底层工作原理和内存布局图 3.1. 结构定义 3.2. 如何通过链表节点找到宿主结…

2026/7/15 3:36:47阅读更多 →
Pixhawk遥控输入与电机连接全链路解析:从PWM信号到电调校准

Pixhawk遥控输入与电机连接全链路解析:从PWM信号到电调校准

1. 项目概述:这不是“接上线就飞”,而是飞控与物理世界的第一次真实握手你手里的Pixhawk飞控板,本质上是一台嵌入式飞行计算机——它不长眼睛、不长耳朵,更没有触觉。它所有的感知和决策,都依赖于外部输入信号的精准喂…

2026/7/15 3:31:47阅读更多 →
AI智能体交易的风险与安全实践:从MCP协议到金融数据处理

AI智能体交易的风险与安全实践:从MCP协议到金融数据处理

当你对着手机说一句"买一万块英伟达",AI真的会从你的真实账户里扣款下单——这不是科幻电影,而是Robinhood在2026年5月27日上线的Agentic Trading(智能体交易)功能。这家拥有2700万用户的美国券商,把曾经只有…

2026/7/15 3:31:47阅读更多 →
影刀RPA 影刀流程的单元测试方法:不靠试跑靠验证

影刀RPA 影刀流程的单元测试方法:不靠试跑靠验证

影刀RPA 影刀流程的单元测试方法:不靠试跑靠验证 作者:林焱 大多数人验证流程的方法是:跑一遍,看看结果对不对。这在小流程中没问题,流程一大、分支一多,靠"试跑"验证效率极低。更专业的做法是单…

2026/7/15 5:21:57阅读更多 →
影刀RPA 影刀中的SQL查询大全:从简单查询到多表联查

影刀RPA 影刀中的SQL查询大全:从简单查询到多表联查

影刀RPA 影刀中的SQL查询大全:从简单查询到多表联查 作者:林焱 影刀内置了SQLite指令,但很多新手只会最简单的SELECT *。这篇把RPA场景中最常用的SQL语句整理出来——不是数据库教科书,而是你在写影刀流程时打开就能抄的速查表。…

2026/7/15 5:21:57阅读更多 →
DS90UB662-Q1多路视频流合并:CSI-2转发模式详解与工程实践

DS90UB662-Q1多路视频流合并:CSI-2转发模式详解与工程实践

1. 项目概述:多路视频流合并的挑战与DS90UB662-Q1的解决方案在嵌入式视觉系统,尤其是汽车电子领域,我们常常面临一个核心挑战:如何将来自多个图像传感器(比如环视系统的四个鱼眼摄像头)的视频流&#xff0c…

2026/7/15 5:21:57阅读更多 →
Spring IOC 控制反转

Spring IOC 控制反转

一句话 IOC 是把对象的创建和依赖管理权从代码里转移到了 Spring 容器,开发者不再手动 new 对象和 set 依赖,而是由容器统一管理并注入。 1. 什么是 IOC 传统方式:UserService service new UserService();service.setUserDao(new UserDao()…

2026/7/15 5:21:57阅读更多 →
影刀RPA 异常处理的分层设计:子流程级、步骤级、操作级的三层防线

影刀RPA 异常处理的分层设计:子流程级、步骤级、操作级的三层防线

影刀RPA 异常处理的分层设计:子流程级、步骤级、操作级的三层防线 作者:林焱 异常处理是RPA流程稳定性的最后一道防线。没有异常处理的流程,一个报错就全盘崩溃;异常处理太粗的流程,错误信息被吞掉,出问题…

2026/7/15 5:21:57阅读更多 →
Windows Home Server 2011安装指南:兼容性、驱动与家庭服务器部署

Windows Home Server 2011安装指南:兼容性、驱动与家庭服务器部署

如果你在整理旧设备时翻出一台还能开机的老电脑,或者想用最低成本搭建一个家庭文件备份和远程访问环境,可能会想到十年前那个专为家庭设计的服务器系统——Windows Home Server 2011。虽然它早已在2016年停止支持,但在某些特定场景下&#xf…

2026/7/15 5:16:57阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →