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

嵌入式软件的分层架构

有空就填坑。

常规的分层架构

大致可分为以下4层:HAL层(硬件驱动层)、BSP层(板级支持包层)、中间件层(Middleware Layer)、APP层(应用层)

HAL层

最底层,负责直接和硬件打交道,也就是操作MCU的寄存器。

负责初始化外设和提供最基础的硬件读写函数。

原则:只做硬件操作,不掺杂任何业务细节。

BSP层

调用驱动层函数

中间件层(Middleware Layer)

提供通用的软件服务,如:RTOS、文件系统、通信协议栈、通信库、算法库(滤波算法、PID等)

APP层

决定设备做什么和怎么做。只负责调用下层提供的接口

禁止直接操作硬件寄存器和底层的HAL函数

调用关系

HAL驱动层,直接操作硬件。

BSP层,调用驱动层

中间件层,调用BSP层或者驱动层

APP层,调用中间件层、BSP层以及驱动层

实操演示

工程中创建Driver、BSP、Middleware、Application四个文件夹。

在BSP文件里再创建具体的模块文件夹。如:LED

模块文件夹里再创建模块的.c和.h文件。里面的.c和.h文件全部用英文小写,格式如下:bsp_led.c、bsp_led.h。(可由个人习惯进行修改)

http://www.xdnf.cn/news/502759.html

相关文章:

  • GitHub 趋势日报 (2025年05月16日)
  • H3C UIS 超融合管理平台原理解读以及日常运维实操与故障处理
  • Transformer 架构在目标检测中的应用:YOLO 系列模型解析
  • 便捷的批量打印工具推荐
  • PyQt5基本窗口控件(QSlider(滑动条))
  • 【计网】 ARP地址解析协议 [工作过程]
  • hyper-v 虚拟机怎么克隆一台一样的虚拟机?
  • NHANES指标推荐:FMI
  • 【Linux笔记】——Linux线程控制创建、终止与等待|动态库与内核联动
  • 软件测试的常用的面试题【带答案】
  • 【汇总】影视仓接口地址,影视仓最新配置接口【2025.5】
  • 常见图算法解析:TSP问题、最大团/独立集问题、图着色问题、哈密尔顿回路问题、顶点覆盖问题和最长路径问题
  • Ocean: Object-aware Anchor-free Tracking
  • 中级网络工程师知识点4
  • 【文本切割器】RecursiveCharacterTextSplitter参数设置优化指南
  • ORACLE RAC环境REDO日志量突然增加的分析
  • 【以及好久没上号的闲聊】Unity记录8.1-地图-重构与优化
  • SQL Server 常用函数
  • QT使用QXlsx读取excel表格中的图片
  • 【自然语言处理与大模型】大模型(LLM)基础知识④
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(23):受身形
  • mAP、AP50、AR50:目标检测中的核心评价指标解析
  • 开源项目实战学习之YOLO11:12.2 ultralytics-models-sam-decoders.py源码分析
  • Vue百日学习计划Day19-20天详细计划-Gemini版
  • 密文搜索-map容器+substr
  • javaDoc
  • 电子电器架构 --- 整车造车阶段四个重要节点
  • Java卡与SSE技术融合实现企业级安全实时通讯
  • 提示词写的好,也可以生成EXE
  • MySQL多条件查询深度解析