硬件抽象组件
ESP-Brookesia HAL 框架由三个组件分层协作,共同完成从开发板硬件到上层业务的抽象:
flowchart TD
A["上层业务 / 服务 / 示例"]
B["**brookesia_hal_interface**<br/>· 设备 / 接口抽象基类<br/>· 音频、显示、存储等 HAL 接口定义<br/>· 全局接口注册表"]
C["**brookesia_hal_adaptor**<br/>· AudioDevice / DisplayDevice / StorageDevice 板级实现<br/>· 通过 esp_board_manager 初始化外设<br/>· 将接口实例注册到全局表"]
D["**brookesia_hal_boards**<br/>· 各开发板的外设拓扑(引脚、总线)<br/>· 逻辑设备配置(音频编解码、LCD、触摸等)<br/>· 板级 Kconfig 默认值与驱动工厂回调"]
A -->|"按接口名称发现 & 调用"| B
B -->|"实现抽象接口"| C
C -->|"提供 YAML 配置"| D
brookesia_hal_interface: 定义抽象接口,上层业务只依赖此层,与具体硬件解耦brookesia_hal_adaptor: 实现抽象接口,通过esp_board_manager读取板级配置并初始化真实外设brookesia_hal_boards: 提供板级 YAML 配置,描述各开发板的外设拓扑、引脚与驱动参数
备注
自定义开发板可通过以下两种方式接入 ESP-Brookesia HAL 框架:
方式一(推荐):在
brookesia_hal_boards的boards/目录下,按照esp_board_manager规范新建开发板子目录并补充配置文件,无需修改适配层代码。详见 添加自定义开发板。方式二(完全自定义):移除对
brookesia_hal_adaptor和brookesia_hal_boards的依赖,直接基于brookesia_hal_interface的抽象接口编写板级初始化代码。适用于无法使用esp_board_manager的场景,但需自行维护与接口规范的兼容性。