The 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).
- Linux or Windows 10 Subsystem for Linux (WSL).
- gcc ARM toolchain from Arm Developer GNU-A Downloads on the path. Successfully tested with:
git clone --recursive https://github.com/smuehlst/circle-stdlib.git
cd circle-stdlib
./configure
make
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
--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, 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 too
make build-samples
See CHANGELOG.md.
This project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3 - see the LICENSE file for details