当前位置: 首页 > 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。(可由个人习惯进行修改)

相关文章:

  • Cookie、Session、Token
  • 关于此站点更改通知.top域名后期将统一更换为snowytime.cn访问,其余top访问进入过渡期
  • 使用 Kotlin 和 Jetpack Compose 开发 Wear OS 应用的完整指南
  • Elasticsearch 性能优化面试宝典
  • Redis设计与实现——分布式Redis
  • 【从设置到上传的全过程】本地多个hexo博客,怎么设置ssh才不会互相影响
  • RAID学习笔记
  • vue 模板二次开发准备
  • WebXR教学 09 项目7 使用python从0搭建一个简易个人博客
  • 【Linux网络】NAT和代理服务
  • Python训练打卡Day26
  • Unbuntu 命令
  • Visual Studio2022跨平台Avalonia开发搭建
  • JVM 双亲委派机制
  • windows编写和调试代码工具——IDE安装
  • MATLAB中进行深度学习网络训练的模型评估步骤
  • .NET Core 中 Swagger 配置详解:常用配置与实战技巧
  • 【gitee 初学者矿建仓库】
  • 使用Maven部署应用到TongWeb(东方通应用服务器)
  • 【论文阅读】针对BEV感知的攻击
  • 2024年全国博物馆接待观众14.9亿人次
  • 多个“首次”!上市公司重大资产重组新规落地
  • 【社论】城市更新,始终以人为核心
  • 昔日千亿房企祥生集团约2.03亿元债权被拍卖,起拍价8000万元
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部