# BSP-Bridge **Repository Path**: cui-han/bsp-bridge ## Basic Information - **Project Name**: BSP-Bridge - **Description**: BSPBridge:一个专注于板级支持包(BSP)开发与优化的开源项目,旨在为嵌入式系统提供高效、稳定的硬件驱动和软件支持。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BSP-Bridge #### 介绍 BSP-Bridge 是一个专注于板级支持包(BSP)开发与优化的开源项目,旨在为嵌入式系统提供高效、稳定的硬件驱动和软件支持。 本项目提供统一的 BSP 开发框架,帮助开发者快速适配不同的硬件平台,降低嵌入式软件开发的复杂度。 #### 软件架构 ``` BSP-Bridge/ ├── arch/ # 架构相关代码 (ARM, RISC-V, x86等) │ ├── arm/ # ARM架构 │ │ ├── cortex-m0/ # Cortex-M0系列 │ │ ├── cortex-m3/ # Cortex-M3系列 │ │ ├── cortex-m4/ # Cortex-M4系列 │ │ ├── cortex-m7/ # Cortex-M7系列 │ │ └── cortex-m33/ # Cortex-M33系列 │ ├── riscv/ # RISC-V架构 │ │ ├── rv32/ # 32位RISC-V │ │ └── rv64/ # 64位RISC-V │ └── xtensa/ # Xtensa架构 (ESP32等) │ ├── lx6/ # LX6核 │ └── lx7/ # LX7核 │ ├── board/ # 板级支持包配置文件 │ ├── stm32/ # STM32系列板卡 │ │ ├── stm32f103c8/ # 蓝pill/红板 │ │ ├── stm32f407zg/ # 探索者 │ │ ├── stm32f429zi/ # 阿波罗 │ │ ├── stm32h743xi/ # H7系列 │ │ └── common/ # STM32通用配置文件 │ ├── gd32/ # GD32系列板卡 │ │ ├── gd32f103/ # GD32F103 │ │ └── gd32f450/ # GD32F450 │ ├── esp32/ # ESP32系列 │ │ ├── esp32/ # 经典ESP32 │ │ ├── esp32s3/ # ESP32-S3 │ │ └── common/ # ESP32通用配置 │ └── template/ # 板级配置模板 │ ├── bsp/ # 板级外设驱动 (BSP层驱动) │ ├── led/ # LED驱动 │ ├── key/ # 按键驱动 │ ├── uart/ # UART驱动 │ │ └── ringbuffer/ # 环形缓冲区 │ ├── i2c/ # I2C驱动 │ ├── spi/ # SPI驱动 │ ├── timer/ # 定时器驱动 │ ├── adc/ # ADC驱动 │ ├── pwm/ # PWM驱动 │ └── wdt/ # 看门狗驱动 │ ├── components/ # 组件/中间件 │ ├── easy_logger/ # EasyLogger (轻量级日志库) │ ├── easy_flash/ # EasyFlash (轻量级KV存储) │ ├── fatfs/ # FATFS文件系统 │ ├── lvgl/ # LVGL图形库 │ └── usb_stack/ # USB协议栈 │ ├── devices/ # 外部设备驱动 │ ├── sensors/ # 传感器 (AHT21, DS18B20, BMP280, MPU60XX, SHT30) │ ├── displays/ # 显示屏 (OLED, LCD, 电子墨水屏) │ ├── communications/ # 通信模块 (ESP8266, EC20, LoRa, GPS) │ └── storages/ # 存储设备 (SD卡, SPI Flash, EEPROM) │ ├── hal/ # 硬件抽象层 │ ├── hal_gpio.h # GPIO抽象接口 │ ├── hal_uart.h # UART抽象接口 │ ├── hal_i2c.h # I2C抽象接口 │ ├── hal_spi.h # SPI抽象接口 │ ├── hal_timer.h # 定时器抽象接口 │ └── hal_adc.h # ADC抽象接口 │ ├── include/ # 公共头文件 │ ├── bsp_config.h # BSP全局配置 │ ├── bsp_types.h # 类型定义 │ ├── bsp_error.h # 错误码定义 │ ├── bsp_debug.h # 调试宏 │ └── version.h # 版本信息 │ ├── kernel/ # 内核相关 (RTOS封装) │ ├── freertos/ # FreeRTOS │ ├── rtthread/ # RT-Thread (可选) │ └── osal/ # 操作系统抽象层 │ ├── libs/ # 库文件 │ ├── stdlib/ # 标准库补充 │ ├── algorithms/ # 算法 (CRC, PID, 滤波, 坐标变换) │ └── third_party/ # 第三方库 (cJSON, lwip, mbedtls) │ ├── projects/ # 项目工程文件 │ ├── mdk/ # Keil MDK工程 │ ├── iar/ # IAR工程 │ ├── gcc/ # GCC工程 │ ├── cubeide/ # STM32CubeIDE工程 │ └── platformio/ # PlatformIO工程 │ ├── scripts/ # 脚本工具 │ ├── build.py # 构建脚本 │ ├── flash.py # 下载脚本 │ └── code_format.sh # 代码格式化 │ ├── tests/ # 测试代码 │ ├── unit/ # 单元测试 │ ├── integration/ # 集成测试 │ └── mock/ # 模拟层 │ ├── examples/ # 示例代码 │ ├── blinky/ # LED闪烁 │ ├── uart_echo/ # UART回显 │ ├── aht21_demo/ # AHT21传感器示例 │ ├── freertos_demo/ # FreeRTOS多任务 │ └── fatfs_demo/ # 文件系统示例 │ ├── tools/ # 开发工具 │ ├── openocd/ # OpenOCD配置文件 │ ├── jlink/ # J-Link脚本 │ └── pinout_generator/ # 引脚配置生成器 │ ├── docs/ # 文档 │ ├── api/ # API文档 │ ├── user_manual/ # 用户手册 │ └── development/ # 开发文档 │ ├── LICENSE # 许可证 ├── README.md # 项目说明 └── Kconfig # 全局配置菜单 ``` ## 📌 目录说明 | 目录 | 说明 | 包含内容 | | :------------ | :------------ | :-------------------------- | | `arch/` | 架构相关代码 | CPU核心、启动文件、中断向量 | | `board/` | 板级配置 | 各开发板引脚映射、时钟配置 | | `bsp/` | 板级外设驱动 | LED、按键、UART等板载外设 | | `components/` | 组件/中间件 | EasyLogger、FatFS、LVGL等 | | `devices/` | 外部设备驱动 | 传感器、显示屏、通信模块等 | | `hal/` | 硬件抽象层 | 统一的外设接口 | | `kernel/` | 内核/RTOS封装 | FreeRTOS、OSAL | | `projects/` | 工程文件 | MDK/IAR/GCC等IDE工程 | | `scripts/` | 脚本工具 | 构建、下载、调试脚本 | | `tests/` | 测试代码 | 单元测试、集成测试 | | `examples/` | 示例代码 | 各模块使用示例 | | `tools/` | 开发工具 | OpenOCD、J-Link脚本等 | #### 主要特性 - **多架构支持**:支持 ARM (Cortex-M0/M3/M4/M7/M33)、RISC-V (RV32/RV64)、Xtensa (ESP32) 等主流嵌入式架构 - **多平台兼容**:支持 STM32、GD32、ESP32 等主流开发板 - **统一驱动接口**:提供标准化的 HAL 接口,便于驱动移植和复用 - **丰富外设驱动**:内置 LED、按键、UART、I2C、SPI、Timer、ADC、PWM、WDT 等常用外设驱动 - **组件集成**:集成 EasyLogger 日志库、EasyFlash 存储库、FatFS 文件系统、LVGL 图形库 - **外部设备支持**:提供传感器(AHT21/DS18B20/BMP280/MPU60XX/SHT30)、显示屏(OLED/LCD)、通信模块(ESP8266/LoRa/GPS) 等驱动 - **RTOS 支持**:支持 FreeRTOS、RT-Thread 等主流实时操作系统 - **多工具链兼容**:支持 Keil MDK、IAR、GCC、STM32CubeIDE、PlatformIO 等开发环境 #### 安装教程 1. **环境准备** - 安装 GCC/Clang 交叉编译工具链 - 安装 CMake 或 Make 构建工具 - 配置开发板调试工具 (J-Link/OpenOCD/ST-Link) 2. **获取源码** ```bash git clone https://gitee.com/cui-han/bsp-bridge.git cd bsp-bridge ``` 3. **编译构建** ```bash mkdir build && cd build cmake .. make ``` #### 使用说明 1. **选择目标板级** 根据您的硬件平台,在 `board/` 目录下选择或创建对应的 BSP 配置。 2. **配置驱动** 在 `bsp/` 目录中选择或修改所需的硬件驱动。 3. **烧录与调试** 使用调试工具将生成的固件烧录到开发板并进行调试。 #### 当前仓库快速开始(Linux/WSL) 当前仓库可直接在 `examples/` 下运行主机侧示例: - `examples/demo_led`:LED 驱动示例 - `examples/demo_aht21`:AHT21 驱动示例 - `examples/demo_mpu6050`:MPU6050 驱动示例 - `examples/hal/pin`:HAL PIN(GPIO) 抽象示例 推荐在 VS Code 中使用任务执行(已提供 configure/build/run/clean 任务)。 命令行方式示例: ```bash # 以 AHT21 示例为例 cd examples/demo_aht21 cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug cmake --build build ./build/demo_aht21 ``` 辅助脚本: - `scripts/gen_vscode_demos.sh`:自动生成 demo 对应的 VS Code `tasks.json` 与 `launch.json` - `scripts/open_bsp_bridge_workspace.sh`:使用 `code` 命令一键打开工作区 #### 示例代码 ```c // LED闪烁示例 #include "bsp/led/led.h" int main(void) { led_obj_t led; led_hw_t led_hw = { .port = GPIOA, .pin = GPIO_PIN_0 }; bsp_led_drv_inst(&led, &led_hw); led.init(&led); while (1) { led.on(&led); delay_ms(500); led.off(&led); delay_ms(500); } } ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 许可证 本项目遵循 MIT 许可证开源,欢迎社区贡献和参与。