注:下面是指令集和微框架的分类图,后面我会以ARM的M4举例子。

一.什么是指令集

大概的可以看这个视频

https://www.bilibili.com/video/BV1uXzbYBEy2/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=406ed6ebf46cdfc0c758cd0e6414d588

我奇妙的比喻:指令集就类似一个国家盖房设计标准,设计矮房子的叫精简指令集(risc),设计高楼的叫复杂指令集(cisc),ARMv7就是arm公司指定的一直指令集标准。根据这些设计标准设计的图纸就是Cortex-M(微架构),规定了CPU 的基本结构,包括 寄存器指令集异常和中断处理机制,以及 内存模型 等。

二.DFP,标准库,HAL库都是什么东西

1.DFP(Device Family Pack ARM 公司 提供的一个标准开发包

        针对不同的 ARM Cortex-M 内核 系列(比如 Cortex-M0, M3, M4, M7 等)来提供开发支持。

  • 它包括了与芯片架构相关的基础代码、驱动程序、启动文件和外设配置。

  • DFP 主要提供的是 对 ARM Cortex-M 内核的支持,即 内核寄存器、指令集和核心功能(比如 NVIC、SysTick 定时器等)的支持

2. ST 的标准库

  • ST 的标准库(通常是 HAL 库StdPeriph 库)是基于 ARM 的 DFP 进行开发的,但它主要聚焦在 STM32 芯片的外设驱动 上。

  • STM32 的外设(如 GPIO、UART、ADC、I2C 等)都有对应的驱动代码和寄存器配置,这些代码会通过 ST 的标准库 来操作这些外设。

  • 这些驱动代码会映射到相应的 外设寄存器(这些外设寄存器的地址由 STM32 芯片的硬件定义,和 ARM 内核无关)。

总结:

        内核寄存器外设寄存器 之间的联系:通过 DFP 提供的接口和 STM32 的标准库,开发者可以通过访问外设寄存器来实现硬件功能,这些操作间接地会影响 CPU 的执行(如中断、时钟、外设初始化等)。

三.是什么IDE(Integrated Development Environment)

全称:集成开发环境

  • 定义:IDE 是一套为开发者提供 代码编辑、编译、调试、下载、测试 等功能的集成工具。它帮助开发者快速开发和调试嵌入式程序。

总结:IDE + DFP + 标准库(hal) + 编译器 = 完整的嵌入式开发环境

例子:

1.使用keil就是标准库+DFP+KEIL+STLINK/JLINK+编译器(armcc)

2.使用vscdoe就是标准库+vscdoe+OZONE(jlink的调试软件)+编译器(gcc)

注:vscdoe无法直接调试,需要用第三方工具调试elf文件,第三方烧录工具烧录查看实验现象。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud之服务入口Gateway之自定义过滤器

目录 过滤器执行顺序 自定义过滤器 自定义GatewayFilter 定义GatewayFilter 配置过滤器 启动服务并访问 自定义GlobalFilter 定义GlobalFilter 启动服务并访问 服务部署 过滤器执行顺序 如果⼀个项⽬中, 既有GatewayFilter, ⼜有 GlobalFilter时, 执⾏的先后顺序是什…

MySQL——视图、储储过程、触发器

目录 一、视图 二、存储过程 三、触发器 一、视图 视图是一种虚拟存在的表。视图中的数据并不在数据库中真实存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑&#xff0c…

iOS App 卡顿与性能瓶颈排查实战 如何定位CPU内存GPU帧率问题、优化耗电与网络延迟(uni-app开发性能优化全流程指南)

在 iOS 应用开发中,卡顿 是用户最直观的负面体验。 一个 App 如果在页面切换、滚动、后台运行时频繁掉帧或发热,用户很快就会放弃使用。 对于 uni-app 跨平台开发者 来说,卡顿问题更为复杂: JS 与原生层桥接增加了 CPU 负载&#…

腾讯开源多模态 RAG:复杂文档秒变自建知识库,支持 API 调用

上篇,分享了 小智AI MCP系列的第一篇: 小智 AI 闹钟提醒 定时任务,设备端MCP实现 有朋友问,能否接入知识库 RAG? 让小智可以根据企业知识库,回答客户的疑问~ 当然可以,接入方式同样是 MC…

Node.js中的 http 模块详解

http 模块是 Node.js 中的核心模块之一,专门用于构建基于 HTTP 的网络应用程序。它允许创建 HTTP 服务器和客户端,处理网络请求和响应。1. 核心 API 详解1.1. http.createServer([options][, requestListener])用于创建 HTTP 服务器的核心方法&#xff0…

LAMP 环境部署

LAMP 环境部署 一、概述 1. 目的 基于 CentOS 7 系统部署 LAMP(Linux Apache MySQL PHP)环境的完整步骤,通过脚本化操作实现环境快速搭建,适用于运维人员进行测试环境或基础生产环境的 LAMP 部署 2. 适用环境操作系统&#xff…

用html5仿造nes游戏敲玻璃写一个敲玻璃游戏

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>敲玻璃游戏</title><style>body {ma…

996引擎-ItemTips特效框层级自定义

996引擎-ItemTips特效框层级自定义 需求场景 ItemTips 中相关方法 创建特效的位置 创建特效框 核心修改 调整视图,自己加个背景,不用原来的 设置 tipsLayout_bg 的层级 结果预览 参考资料 需求场景 策划说我们的tips特效框,遮挡文字。如果按官方说的设为底层又跑到背景框后…

Java 注解与 APT(Annotation Processing Tool)

Java 注解与 APT&#xff08;Annotation Processing Tool&#xff09; 注解&#xff08;Annotation&#xff09;基础 注解是 Java 语言的一种元数据形式&#xff0c;它可以在代码中添加标记信息&#xff0c;用于描述代码的额外信息&#xff0c;但不会直接影响代码的执行逻辑。注…

Unity 检测网络-判断当前(Android/Windows平台)设备是否连接了指定WiFi

判断设备是否连接了特定的网络1.Unity 脚本2.Unity AndroidManifest.xml文件①改个设置②补充权限语句1.Unity 脚本 using UnityEngine; using System.Collections; using System.Diagnostics; using Debug UnityEngine.Debug; using UnityEngine.UI;#if UNITY_ANDROID &…

通过网络强化增强混合IT环境的安全

网络是企业运营的支柱&#xff0c;也是网络犯罪分子和恶意威胁者的主要目标&#xff0c;他们会破坏IT运营的连续性。随着混合云基础设施、远程办公和物联网&#xff08;IoT&#xff09;生态系统的出现&#xff0c;网络边界正在不断扩大&#xff0c;新的漏洞不断产生&#xff0c…

ACP(四):RAG工作流程及如何创建一个RAG应用

RAG的工作原理 你在考试的时候有可能会因为忘记某个概念或公式而失去分数&#xff0c;但考试如果是开卷形式&#xff0c;那么你只需要找到与考题最相关的知识点&#xff0c;并加上你的理解就可以进行回答了。 对于大模型来说也是如此&#xff0c;在训练过程中由于没有见过某个知…

宇视设备视频平台EasyCVR视频设备轨迹回放平台监控摄像头故障根因剖析

监控摄像头的类型繁多&#xff0c;市场上提供了广泛的选择。然而&#xff0c;在使用监控摄像头的过程中&#xff0c;用户可能会遇到云台在很短的时间内出现运转不灵或完全无法转动的问题。这里&#xff0c;我们将对这一常见问题进行深入分析。一、具体的原因&#xff1a; 1、距…

【Uni-App+SSM 宠物项目实战】Day15:购物车添加

大家好!今天是学习路线的第15天,我们正式进入订单与购物车核心模块。昨天完成了商家服务列表的分页加载,今天聚焦“购物车添加”功能——这是连接“商品浏览”与“订单提交”的关键环节,用户可将宠物用品(如粮食、玩具)加入购物车,后续统一结算。 为什么学这个? 购物车…

Java 黑马程序员学习笔记(进阶篇6)

常用的 API1. 正则表达式(1) 题目&#xff1a;贪婪爬取和非贪婪爬取① 贪婪爬取&#xff1a;爬取数据的时候尽可能的多获取数据 ② 非贪婪爬取&#xff1a;爬取数据的时候尽可能的少获取数据 ③ Java中默认的是贪婪爬取 ④ 后面加上 ? 可以转变为非贪婪爬取(2) 捕获分组捕获分…

计算机网络---数据链路层上

文章目录1. 数据链路层的功能2. 组帧2.1 字符填充法2.2 字节填充法2.3 零比特填充法2.4 违规编码2.5 总结3. 差错控制3.1 检错编码3.1.1 奇偶校验3.1.2 循环冗余校验码&#xff08;CRC&#xff09;3.1.3 总结3.2 纠错编码&#xff08;海明校验码&#xff09;3.3 总结4. 流量控制…

机器学习实战项目中,回归与分类模型中该如何科学定义目标变量Y?

前言 在机器学习项目里&#xff0c;目标变量 (Y) 的定义决定了你能解答什么问题&#xff0c;以及模型能给业务带来什么价值。选择不当不仅可能导致模型误差大、偏差严重&#xff0c;还可能让业务决策方向偏离。 本文分两大场景&#xff1a; 供应链项目中的 销量预测&#xff08…

【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章是动态规划算法的基础入门篇&#xff0c;我将通过三道简单题 一道中等难度的一维动态规划题来带你对动态规划有个初认识&#xff0c;并基本了解动…

深入对比Tomcat与Netty:HTTP请求从网卡到Controller的全链路追踪

我们日常用Spring Boot写的RestController&#xff0c;感觉上就是一个简单的方法&#xff0c;但它背后其实有一套复杂的网络服务在支撑。一个HTTP请求到底是怎么从用户的浏览器&#xff0c;穿过层层网络&#xff0c;最终抵达我们代码里的Controller方法的&#xff1f;理解这个过…

GO学习记录十——发包

记录下不同平台的发包操作和期间遇到的问题 1.命令&#xff1a; $env:GOOSlinux $env:GOARCHamd64 go build -o release/HTTPServices-linux第一行&#xff0c;配置平台&#xff0c;linux、windows 第二行&#xff0c;配置部署服务器的处理器架构 第三行&#xff0c;输出目标文…