bsp_wrapper
← 代码架构库 | ← 嵌入式工程架构 | ← 模块总览 | ← 主页
向 App、Service 提供稳定接口,隐藏 BSP 类型、具体器件和平台细节。
| 文件 | 作用 |
|---|---|
| bsp_wrapper_xxx.h | 可复用:App调用的稳定接口 |
| bsp_wrapper_xxx.c | 可复用:保存Adapter函数表并转调 |
Wrapper层职责
- Wrapper 是 App、Service 使用的稳定接口,不暴露 Driver、Handler、MCU 和 OS 类型。
- Wrapper 保存 Adapter 注册的函数表,在
init、control等公开接口中转调。 - 多实例由 App 传入逻辑
index,Adapter 将其交给 Handler 查找driver_group[index]。 - 调用顺序:
app_periph_register()注册 Adapter,系统初始化调用 Wrapperinit,业务代码只调用 Wrapper API。
bsp_wrapper配置:
- 复制
bsp_wrapper_xxx.h/.c,将xxx改为模块名。 - 在头文件中定义 App 使用的类型和接口,不暴露 Driver 类型:
void bsp_wrapper_xxx_init(void);
int32_t bsp_wrapper_xxx_control(uint32_t index, uint32_t command,
const void *argument);- 在源文件中保存 Adapter 注册的函数表。
- App 只调用 Wrapper 的接口。
Wrapper不包含main.h、HAL或SPI Port类型。外部Flash、屏幕使用硬件SPI还是软件SPI,不改变Wrapper公开接口。