当前位置: 首页 > news >正文

嵌入式软件分层架构

层级 名称 职责说明 依赖关系 典型文件/模块
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
http://www.jsqmd.com/news/429470/

相关文章:

  • Git:临时切换分支保存当前工作
  • [AI智能体与提效-121] - LangChain 核心专业术语与阐述
  • 读懂用户心理,才是好 UI 设计的开始 - ui设计公司兰亭妙微
  • Git分支命名规范示例
  • why visual letters are good
  • DeepSeek能植入广告吗?2026年企业获客新解法 - 品牌2026
  • 一文读懂大数据领域的数据血缘
  • 一.系统烧写
  • 前端工程化过程 - 何苦
  • the similarity between Japan and Russian
  • RDD编程初级实践
  • 2025年六大热门数据库管理工具!哪款工具功能最强大?
  • DeepSeek能植入广告推广吗?联系哪家公司? - 品牌2026
  • Doris查询缓存机制:提升大数据重复查询性能
  • 荷马史诗-huffman树
  • 黑匣子-对顶堆
  • DeepSeek能做广告推广吗?联系哪家公司? - 品牌2026
  • 40.kubernetes面试
  • [Arduino UNO]使用simavr和gdb-avr 调试arduino IDEblink参考代码
  • SAP HCM中动态选择的实现与应用方法
  • ▲DQPSK调制解调+扩频解扩通信链路matlab误码率仿真
  • 个性化U盘图标设置的详细步骤与技巧
  • 多模型编排爆火:Perplexity 最新架构解析与私有化部署
  • 2026.3.2
  • PowerShell 新建 Address Book Policy
  • P2922 [USACO08DEC] Secret Message G
  • Godot游戏开发01-学习一个教程-显示一个方块
  • 汇编语言
  • 39.qkubernetes面试必考题
  • 39.kubernetes面试必考题