一、嵌入式系统概述

大家好,我是你们的嵌入式系统讲师。今天咱们聊聊嵌入式系统到底是什么。说实话,这个问题我入行时也琢磨了很久。

嵌入式系统,说白了就是专门完成特定功能的计算机系统。它被"嵌入"到某个设备里,用户通常感觉不到它的存在。你想想看,你家的微波炉、智能手表、汽车ECU,甚至你手里的手机——里面都有嵌入式系统在默默工作。

1.1 什么是嵌入式系统

我习惯这样定义:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统

嗯,这个定义有点长。咱们拆开来看:

  • 专用性:不像PC啥都能干,嵌入式系统只干一件事。比如空调控制器只管控温。
  • 可裁剪:资源有限,能省则省。我在项目中就经常砍掉不需要的外设驱动。
  • 约束严格:成本、功耗、实时性,哪个都不能含糊。

核心要点:嵌入式系统 ≠ 单片机。单片机只是嵌入式系统的核心处理器之一。嵌入式系统还包括外围电路、传感器、执行器、以及运行其上的软件。

1.2 嵌入式系统的组成

嵌入式系统由两大部分组成:硬件软件。两者缺一不可。

硬件部分

  • 处理器:大脑,比如STM32、ARM Cortex-M系列
  • 存储器:Flash存程序,RAM存运行数据
  • 输入/输出接口:GPIO、UART、I2C、SPI等
  • 外设:传感器、显示屏、电机驱动等
  • 电源管理:供电和功耗控制

软件部分

  • 裸机程序:没有操作系统,直接操作硬件。适合简单任务。
  • 实时操作系统(RTOS):比如NuttX、FreeRTOS。管理任务调度、资源分配。
  • 应用层软件:实现具体功能,比如读取温度、控制电机。

我记得刚做第一个项目时,用的是裸机。后来任务一多,裸机根本忙不过来。那时候我才意识到,RTOS不是锦上添花,而是刚需

1.3 嵌入式系统的分类

嵌入式系统怎么分类?我一般按实时性复杂度来分。

分类 特点 典型应用 处理器举例
小型嵌入式系统 资源极少,裸机或简单RTOS 智能传感器、遥控器 8位单片机(如AVR)
中型嵌入式系统 有一定资源,运行RTOS 工业控制器、智能家电 STM32F4、STM32H7
复杂嵌入式系统 资源丰富,运行Linux/Android 路由器、智能音箱、车载系统 ARM Cortex-A系列

咱们这门课主要聚焦中型嵌入式系统,也就是STM32 + NuttX这个组合。为什么选这个?因为它在工业界用得最广,性价比最高。

个人经验:选型时别一味追求高性能。我见过有人用STM32H7做LED灯控,纯属浪费。合适的才是最好的。

1.4 STM32系列介绍

STM32是意法半导体(ST)推出的32位ARM Cortex-M内核微控制器。它有多火?这么说吧,全球嵌入式工程师,十个里有八个用过STM32

STM32家族很庞大,我按系列给大家捋一捋:

  • STM32F0/F1:入门级,Cortex-M0/M3内核。适合简单控制,成本敏感项目。
  • STM32F4:高性能,Cortex-M4内核,带FPU(浮点运算单元)。适合需要数学运算的场景。
  • STM32H7:旗舰级,Cortex-M7内核,主频高达480MHz。适合复杂算法、图形处理。
  • STM32L系列:低功耗,适合电池供电设备。
  • STM32G系列:性价比之选,融合了F和L的优点。

咱们课程实战用的是STM32F407ZGT6。为什么选它?

  • 性能足够:Cortex-M4,168MHz主频
  • 外设丰富:有以太网、USB、CAN、多个定时器
  • 资料最多:网上随便一搜,教程一大把
  • NuttX支持完善:官方BSP直接可用

避坑指南:我曾经在选型时只看主频,忽略了外设数量。结果项目做到一半发现UART口不够用,只能换芯片重画PCB。教训深刻啊!选型时一定要把外设需求列清楚。

下面这张图展示了嵌入式系统的核心知识体系,大家可以对照着理解:

嵌入式系统知识体系 嵌入式系统 专用计算机系统 硬件 + 软件 硬件 处理器 · 存储器 I/O接口 · 外设 软件 裸机 / RTOS 应用层软件 分类:小型/中型/复杂 STM32系列(Cortex-M) F0/F1入门 · F4高性能 H7旗舰 · L低功耗 G系列性价比之选

这张图把嵌入式系统的核心脉络理清楚了。从定义出发,到组成、分类,再到咱们要用的STM32。后面的课程,我们会一步步深入每个环节。

好了,第一章就到这里。嵌入式系统是个大话题,但别怕,咱们一步一步来。下一章我会带大家搭建开发环境,到时候你们就能亲手编译第一个NuttX内核了。


公众号:蓝海资料掘金营,微信deep3321