嵌入式:1.嵌入式入门|初识嵌入式、处理器、ARM与STM32

嵌入式入门|初识嵌入式、处理器、ARM与STM32

很多刚入门嵌入式的同学,一开始会被MCU、MPU、SOC、ARM、STM32这些名词绕晕,今天用很直白的话,把基础概念串起来,方便大家理解和复习。

一、嵌入式是什么?

我们先从计算机说起。一台基础计算机核心组成包含CPU、内存、IO接口:CPU负责运算,内存用来临时运行程序、存放数据,IO用来和外部设备交互。

而嵌入式系统 ,就是把一套计算机系统,嵌入到某一个特定设备里面。

官方一点的定义:以应用为中心,以计算机技术为基础,对功耗、体积、成本有严格约束的专用计算机系统。

它和我们电脑不一样,电脑是通用计算机,可以装各种软件;嵌入式是为某一款产品专门做的,属于专用系统。

嵌入式的技术基础离不开C/C++、数据结构、操作系统、硬件组件这些内容。

现在热门的边缘计算,本质就是嵌入式 + AI,把AI模型部署在本地设备上,不用全部上传云端。

嵌入式的应用随处可见:智能手表、无人机、家电、工业控制器、车载设备等等,都是嵌入式产品。

二、嵌入式常见4类处理器

嵌入式处理器分好几种,各自定位差别很大,不要搞混:

  1. MPU(微处理器)

    就是我们理解的通用处理器,性能强,但是功耗、体积更大。常见的就是ARM架构的A系列内核,一般跑Linux系统,比如平板、开发板里面的处理器。

  2. MCU(微控制器,也就是单片机)

    把CPU、内存、IO、串口等外设模块全部集成在一颗芯片里,高度集成。特点:体积小、功耗低、成本便宜,但是片上资源有限。

    我们最熟悉的51单片机是8位,STM32是32位单片机,也是我们学习嵌入式最常用的MCU。

  3. DSP(数字信号处理器)

    专门针对数字信号处理做优化,擅长处理信号运算,大量用在通信领域,典型代表是TI的TMS320系列,5G通信里面大量使用DSP。

  4. SoC(片上系统)

    思路就是:能集成的全部集成到一颗芯片。除了CPU,还会把GPU、通信模块、外设等全部打包,手机主芯片就是典型SoC。

三、ARM内核和上面这些处理器是什么关系?

这里有一个很容易踩坑的点:ARM公司本身不生产芯片,它只设计处理器内核架构,然后把内核授权给ST、TI这些芯片厂商,厂商再加上外设,做成完整芯片。

从ARM v7架构开始,分成三大系列内核:

  • Cortex‑A:面向应用,跑完整操作系统,对应MPU,用来做复杂APP;
  • Cortex‑M:面向MCU(单片机),我们学的STM32就属于这个系列。比如STM32F407用Cortex‑M4内核,STM32F103C8T6用Cortex‑M3内核;
  • Cortex‑R:实时内核,主打高实时性,对外部事件响应速度极快,多用于工业、汽车控制。

四、STM32详细介绍

STM32是ST(意法半导体)出品的32位单片机,32代表32位地址总线,寻址范围0~2³²-1,最大寻址空间4G。

开发STM32,主流有三种开发方式:

  1. 寄存器开发:直接操作寄存器,依靠参考手册,代码执行效率最高,理解底层原理必学;
  2. 标准库开发:ST早期推出的库,封装了寄存器操作,简化代码;
  3. HAL库开发(现在主流):搭配STM32CubeMX图形化配置软件,可视化配置外设,上手更快,也是企业项目最常用的方案。标准库搭配FreeRTOS,就可以实现多任务调度,适合中小型项目。

外设、通信协议、RTOS

  • 外设:围绕CPU集成、拥有特定功能的硬件模块,学习重点就是搞懂它的工作原理和配置方式。常见外设:UART、ADC、DMA、TIM定时器、IIC、SPI。
  • 通信协议:设备之间传输数据的规则,分为板内短距离和远距离通信。常用:IIC、SPI、UART、ModBus、USB、以太网、CAN、RS485、MQTT、TCP/UDP。
  • RTOS(实时操作系统) :核心是多任务调度,协调多个任务运行。嵌入式最经典的就是FreeRTOS,在STM32项目里非常普及。
    现在也可以在性能足够的STM32上面,部署轻量化AI模型,实现简单的智能识别功能。

我们学习阶段很常用的型号:STM32F407VET6 ,内核是Cortex‑M4,资源丰富,适合入门HAL库、RTOS、DMA、外设进阶学习。

结尾小结

简单梳理一遍链路:ARM设计内核 → ST拿到内核,加上外设,做成STM32这款MCU;我们用寄存器/标准库/HAL库,搭配各种通信协议、RTOS,在嵌入式设备上实现功能。

嵌入式是软硬件结合的方向,先吃透STM32基础,再往MPU、Linux、边缘AI方向拓展,路线会清晰很多。

相关推荐
小李不想当小白20 分钟前
HAL库之UART(STM32 HAL库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Dev_XH39 分钟前
【成品设计】基于物联网的旅游生态农业互动系统
stm32·单片机·嵌入式硬件·物联网·旅游
Industio_触觉智能14 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw17 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
물の韜18 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
Zw-awa19 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
stm32
无敌贵点大王21 小时前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院21 小时前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk5551 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网