注:下面是指令集和微框架的分類圖,后面我會以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文件,第三方燒錄工具燒錄查看實驗現象。