目录
嵌入式系统软件开发的本质是“软件与硬件的协同演进”,其开发流程比传统应用软件更加注重硬件依赖、资源受限、实时性及安全性。
一、需求分析阶段
目标:
明确产品的功能需求、性能指标、系统约束及技术可行性。
工作内容:
识别功能需求:如开锁、传感器采集、远程通信等
非功能需求:如功耗、响应时间、安全性、可靠性
硬件资源初估:是否需要 MCU/NPU、传感器、通信模块等
通信协议与平台依赖:MQTT、BLE、Wi-Fi、RTOS、OTA 等
二、系统架构设计阶段
目标:
构建软硬件协同的系统总体架构,定义模块边界与接口。
输出内容:
模块划分图、功能流程图、状态机图
软件架构层级划分(五层模型)
通信协议与数据结构定义(如 TLV、JSON、Protobuf)
外设资源映射与内存分配规划
系统功耗与时钟设计策略
三、开发准备阶段
目标:
搭建开发与测试环境,准备硬件样板、工具链和配置项。
内容包括:
选型与购买开发板(如 STM32、ESP32、NXP)
硬件原理图审查与原型板调试
安装 IDE(Keil、STM32CubeIDE、VS Code + PlatformIO)
配置编译器、调试器(GCC、J-Link、ST-Link)
搭建版本管理系统(如 Git)
制定编码规范与注释标准
四、底层驱动开发阶段(HAL / BSP)
目标:
开发与平台相关的硬件驱动,完成底层功能抽象。
内容包括:
启动文件与中断向量表配置
GPIO、UART、SPI、I2C、ADC、PWM 驱动开发
定时器、中断控制、外设初始化代码
BSP 层编写与测试(包括电源初始化、时钟配置等)
五、操作系统集成阶段(RTOS / OS)
目标:
集成操作系统,为系统提供任务调度、同步通信等能力。
核心操作:
移植或配置 RTOS(如 FreeRTOS、RT-Thread)
创建任务(Task)与线程(Thread)
实现任务间通信(消息队列、信号量、互斥锁)
设置任务优先级与调度策略
启用看门狗机制与异常捕获模块
六、中间件与协议栈集成阶段
目标:
实现协议通信、OTA、安全模块等通用能力。
实现内容:
MQTT/HTTP/WebSocket 客户端移植
OTA 升级机制实现(支持断点续传、签名验证)
TLS/SSL 安全协议集成(如 mbedTLS)
本地加解密模块(AES、RSA)
通信协议解析器(如 TLV、Modbus、LwM2M)
七、应用逻辑开发阶段
目标:
实现产品的主要功能逻辑和人机交互