Generic Bare Metal MCU Framework 是一个面向工程实践的通用裸机嵌入式软件框架,基于 C/C++ 构建,采用分层架构与面向对象设计思想,旨在为多 MCU 平台提供一套可复用、可扩展、可长期演进的基础软件骨架。

该框架不依赖 RTOS,运行于纯裸机环境,通过统一的系统抽象、设备模型、任务机制与构建体系,实现从底层 MCU 启动、外设驱动到上层应用逻辑的完整软件栈组织方式。

本项目面向以下目标用户:

  • 具有一定经验的嵌入式软件工程师
  • 希望构建长期可维护裸机平台的个人或团队
  • 对 C++ 裸机架构设计、模块化与系统抽象感兴趣的开源社区开发者

框架采用自底向上的分层结构,各层职责明确、依赖单向。

+--------------------------------------------------+
|                    Application (APP)             |
+--------------------------------------------------+
|            Device Abstraction & Services         |
|      (Device, Logger, Protocol, Task, System)   |
+--------------------------------------------------+
|          HAL - Hardware Abstraction Layer        |
|        (GPIO, UART, SPI, Timer, ADC, etc.)       |
+--------------------------------------------------+
|        MCU Support Package (Startup, BSP)        |
|   (Clock, Interrupt, Linker Script, Registers)  |
+--------------------------------------------------+
|                     Hardware                     |
+--------------------------------------------------+

各层说明:

MCU Support Package(MCU 层)

  • 负责芯片相关内容:启动代码、时钟配置、中断向量表、链接脚本、寄存器定义。

HAL(硬件抽象层)

  • 对外设进行统一接口封装,屏蔽寄存器细节,向上提供稳定的驱动 API。

Device & Service Layer(设备与系统服务层)

  • 建立统一的设备模型、通信协议、缓冲区、日志系统、时间系统与任务框架。

Application Layer(应用层)

  • 用户业务逻辑,仅依赖抽象接口,不直接操作寄存器。

github:

https://github.com/bazingamc/Generic-Bare-Metal-MCU-Framework

国内镜像:

https://gitee.com/miao-ce/generic-bare-metal-mcu-framework

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐