嵌入式软件分层架构

层级 名称 职责说明 依赖关系 典型文件/模块
1 硬件抽象层 (HAL) 芯片寄存器操作,与硬件直接交互 stm32f1xx_hal_*.c, CMSIS
2 板级支持包 (BSP) 开发板硬件驱动,如LED、按键、UART配置 → HAL bsp_led.c, bsp_key.c, bsp_uart.c
3 设备驱动层 (DDL) 外设驱动程序,如SPI Flash、EEPROM → BSP → HAL drv_spi_flash.c, drv_eeprom.c
4 操作系统抽象层 (OSAL) RTOS接口抽象,实现跨RTOS兼容 → BSP osal_freertos.c, osal_rtthread.c
5 中间件层 (Middleware) 通用服务组件,如文件系统、协议栈 → OSAL → BSP fatfs, lwip, cjson
6 协议解析层 (Protocol) 通信协议解析,如Modbus、自定义协议 → Middleware modbus_rtu.c, host_parse.c
7 服务框架层 (Service) 业务服务模块,如OTA、配置管理 → Protocol → Middleware ota_service.c, config_service.c
8 应用逻辑层 (Application) 具体业务逻辑实现 → Service → Protocol app_main.c, app_control.c
9 任务调度层 (Scheduler) 任务管理和调度 → Application → OSAL task_scheduler.c
10 系统框架层 (Framework) 系统初始化、启动流程 所有层 system_init.c, startup_*.s
11 工具库层 (Utilities) 通用工具函数,独立于硬件 无依赖 crc_check.c, fifo_buffer.c
12 测试验证层 (Test) 单元测试、集成测试 → 各层 test_*.c, mock_*.c
posted @ 2026-03-02 23:23  比特向阳  阅读(39)  评论(0)    收藏  举报