工程架构学习记
1、软件框架参考:

对于上图框架设计,Drvp 硬件驱动层 直接与硬件打交道,最底层,与芯片相关;Drv 驱动适配层 ,对硬件驱动层的进一步包装 就是包装Drvp层。bsp层,统一由framework.h负责管理,并传递操作方式,包含结构可以如下所示:

2、什么是 framework:
在嵌入式软件架构里,Framework(框架层) 不是一个简单的 “函数库”,而是一套统一的、规范的运行环境与交互规则。它定义了 “上层业务该怎么调用底层资源”,而不是让业务代码直接裸奔操作寄存器或驱动。
它把底层的复杂细节(比如驱动差异、OS API、硬件适配)全部封装起来,给上层提供一套稳定、统一的接口。上图里的 bsp_framework,就是基于 BSP 的硬件适配 + 系统框架层,是整个工程的 “地基”。

总之,BSP 是功能集合(所有底层支持的总和),framework 是组织方式(把这些功能分层、封装、对外提供统一接口的架构)。
3、用 STM32 HAL 库时,drvp 层可以直接去掉,drv 层直接调用 HAL 库就行。因为 HAL 库本身,就已经把 drvp(硬件寄存器操作)干了,HAL 库 = 官方帮你写好的 drvp。drv 层只做一件事:
封装 HAL 库,给上层提供统一接口,比如://drv_gpio.c 直接调用 HAL 库,不需要 drvp
void drv_gpio_set(...) {
HAL_GPIO_WritePin(GPIOx, GPIO_Pin, GPIO_PIN_SET);
}
浙公网安备 33010602011771号