rsta2/circle
FreeA C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)
FreeFree tier
About rsta2/circle
Circle is a C++ bare metal programming environment for the Raspberry Pi, supporting both 32-bit and 64-bit architectures. It provides ready-tested C++ classes and add-on libraries to control various hardware features, including USB, GPIO, Ethernet, and NVMe. Circle includes sample programs demonstrating its usage and an improved TCP/IP network stack with congestion control (RFC 5681). The environment uses C++17 by default and supports LLVM libc++ via the circle-stdlib project. It is suitable for building bare metal applications on most Raspberry Pi models.
Key Features
C++ bare metal environment for Raspberry Pi (32 and 64 bit)
Support for USB, Ethernet, GPIO, NVMe, and other hardware
Ready-tested C++ classes and add-on libraries
Improved TCP/IP network stack with congestion control
Supports C++14, C++17, and C++20
LLVM libc++ support via circle-stdlib
Sample programs demonstrating hardware control
Property strings for device identification (vendor, product, serial)
GPIO manager with FIQ support for multiple interrupts
Pros & Cons
Pros
- Comprehensive set of C++ classes for hardware abstraction
- Supports many Raspberry Pi models (32 and 64 bit)
- Includes sample programs to accelerate learning
- Active development with regular releases and updates
- Open source with no licensing costs
Cons
- Requires thorough knowledge of bare metal programming
- Limited to the Raspberry Pi platform
- Steep learning curve for beginners unfamiliar with low-level development
- Setup and toolchain configuration can be complex
Best For
Bare metal programming on Raspberry PiEmbedded systems development without an operating systemIoT applications requiring low-level hardware controlEducational projects for learning C++ and low-level programmingReal-time applications needing predictable performance
FAQ
What is Circle?
Circle is a C++ bare metal programming environment for the Raspberry Pi that provides ready-tested classes and libraries to control hardware features without an operating system.
Which Raspberry Pi models does Circle support?
Circle is designed to work on most existing Raspberry Pi models. See the 'Support Status' section in the documentation for specific model compatibility.
Is Circle free to use?
Yes, Circle is open source and available for free under the terms of its license (see the LICENSE file in the repository).
How do I start developing with Circle?
You can download the source from GitHub and follow the build instructions. Circle provides sample programs in the 'sample' directory to help you get started.