嵌入式软件的分层架构
有空就填坑。
常规的分层架构
大致可分为以下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。(可由个人习惯进行修改)