This project moved from GitHub to Codeberg.
Canonical repository: https://codeberg.org/larchcone/circle-stdlib.git
Issues and pull requests need to be submitted on Codeberg.
The GitHub repository https://github.com/smuehlst/circle-stdlib.git is a read-only mirror. Pull requests on GitHub will be closed with a corresponding remark without further action.
For transitioning from GitHub to Codeberg the remote must be switched for the circle-stdlib and circle-newlib repositories:
git remote set-url origin https://codeberg.org/larchcone/circle-stdlib.git
cd libs/circle-newlib
git remote set-url origin https://codeberg.org/larchcone/circle-newlib.gitThe goal of this project is to provide C and C++ standard library support for the Raspberry Pi bare-metal environment Circle.
Newlib is used as the standard C library. The fork circle-newlib contains the changes for building Newlib in combination with Circle.
mbed TLS can optionally be used for TLS connections in
Circle (call configure with --opt-tls, see also the
README file for circle-mbedtls).
A toolchain from Arm GNU Toolchain Downloads:
- gcc 14.3.Rel1 hosted on Intel Linux or Windows Subsystem for Linux (WSL/WSL2):
- gcc 14.3.Rel1 hosted on AArch64 Linux:
Add the toolchain to the path, then:
git clone --recursive https://codeberg.org/larchcone/circle-stdlib.git
cd circle-stdlib
./configure
makeThis configures the build for the default 32-bit toolchain with the arm-none-eabi- prefix.
The configure script has the following options:
$ ./configure -h
usage: configure [ <option> ... ]
Configure Circle with newlib standard C library and mbed TLS library.
Options:
-d, --debug build with debug information, without optimizer
-h, --help show usage message
-n, --no-cpp do not support C++ standard library
-o, --option <name>[=<value>] additional preprocessor define (optionally with value)
can be repeated
--opt-tls build with mbed TLS support
-p <string>, --prefix <string> prefix of the toolchain commands (default: arm-none-eabi-)
--qemu build for running under QEMU in semihosting mode
-r <number>, --raspberrypi <number>
Circle Raspberry Pi model number (1, 2, 3, 4, 5, default: 1)
--softfp use float ABI setting "softfp" instead of "hard"
-s <path>, --stddefpath <path>
path where stddef.h header is located (only necessary
if script cannot determine it automatically)To clean the project directory, the following commands can be used:
make clean
make mrproper # removes the configuration toomake build-samplesThe resulting executables are normal Circle bare-metal applications. Circle's standard installation and debugging instructions apply.
For running the programs under QEMU see Circle's corresponding notes on QEMU.
See CHANGELOG.md.
This project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3 - see the LICENSE file for details