嵌入式软件的分层架构

有空就填坑。

常规的分层架构

大致可分为以下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。(可由个人习惯进行修改)

你可能感兴趣的:(嵌入式软件架构,嵌入式)