rsta2/circle

3/5 🧩 软硬件结合 已发布
rsta2 2251 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/5
rsta2/circle

项目简介

A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)


Circle 是一个专为树莓派设计的 C++ 裸机编程环境,旨在让开发者无需操作系统即可直接控制树莓派硬件。它提供了大量经过测试的 C++ 类库和附加组件,覆盖了从 GPIO、I2C、SPI 到 USB、以太网、音频等几乎所有树莓派外设功能。项目还附带丰富的示例程序,帮助开发者快速上手,支持 32 位和 64 位裸机应用开发。

标签

项目特点

无需操作系统,直接在树莓派上运行 C++ 裸机程序,性能更高、控制更灵活
提供大量经过测试的 C++ 类库,覆盖 GPIO、I2C、SPI、USB、以太网、音频等外设
支持 32 位和 64 位 ARM 架构,兼容树莓派全系列型号
附带丰富的示例程序,从简单的 LED 闪烁到复杂的 USB 键盘驱动,快速上手
模块化设计,可轻松扩展自定义驱动和功能组件
活跃的社区维护,持续更新适配新版树莓派硬件

技术规格

支持平台 树莓派 1/2/3/4/5、树莓派 Zero/Zero 2W
架构 ARMv6 (32位)、ARMv7 (32位)、ARMv8 (64位)
编程语言 C++17
构建系统 GNU Make
工具链 ARM GCC 交叉编译器 (arm-none-eabi-)
启动方式 从 SD 卡直接启动 (kernel.img)
内存管理 支持 MMU、页表、动态内存分配
外设支持 GPIO、I2C、SPI、PWM、UART、USB、以太网、HDMI、音频、SD卡、RTC
网络协议 TCP/IP、UDP、DHCP、DNS、HTTP (通过附加组件)
文件系统 FAT32 (通过附加组件)
调试方式 UART 串口输出、QEMU 模拟

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
树莓派主板 (任意型号) 1 推荐树莓派 3B+ 或 4B
MicroSD 卡 1 至少 8GB,用于存放 kernel.img
USB 转 TTL 串口模块 1 可选,用于调试输出
杜邦线 若干 连接外设
LED、电阻、按键等 若干 基础实验用
ARM GCC 交叉编译器 1 arm-none-eabi-gcc
GNU Make 1 构建工具
串口终端软件 1 如 PuTTY、screen

能力画像

**记忆与知识检索**:3/5 — 需要查阅文档了解各类外设的寄存器配置和 API 用法
**动手与操作**:4/5 — 需要连接硬件、烧录 SD 卡、使用串口调试等物理操作
**编程与算法**:4/5 — 使用 C++ 编写裸机程序,涉及中断处理、内存管理等底层编程
**设计与建模**:3/5 — 需要设计外设驱动模块和系统架构,但已有类库提供基础框架
**实验与调试**:5/5 — 裸机调试主要依赖串口输出和 LED 指示,需要反复实验验证
**协作与分享**:2/5 — 项目以个人开发为主,但可通过 GitHub 提交 issue 或 PR 参与社区
**学习与研究**:5/5 — 深入理解树莓派硬件架构、ARM 汇编、操作系统原理等底层知识
**系统集成**:3/5 — 可集成多个外设驱动构建完整应用,但需自行处理资源冲突

所需技能

C++ 编程基础(类、模板、继承) 树莓派硬件基础知识(GPIO、I2C、SPI 等接口) 基本命令行操作(Linux 终端、Make 构建) ARM 架构基础(寄存器、中断、MMU)为加分项 嵌入式调试能力(串口输出、逻辑分析仪使用) 阅读英文技术文档的能力

适用场景

学习树莓派底层硬件原理和裸机编程
开发高性能、低延迟的树莓派嵌入式应用(如机器人控制、实时数据采集)
制作无需操作系统的树莓派专用设备(如迷你游戏机、数字相框)
教学演示操作系统原理、中断处理、内存管理等计算机基础课程
研究 ARM 架构和硬件驱动开发
替代 Linux 系统,在资源受限场景下运行轻量级程序