注:下面是指令集和微框架的分类图,后面我会以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文件,第三方烧录工具烧录查看实验现象。