https://github.com/rsta2/circle-rust
https://github.com/rsta2/circle-rust
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/rsta2/circle-rust
- Owner: rsta2
- Created: 2023-07-24T19:28:02.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-08T05:48:19.000Z (over 1 year ago)
- Last Synced: 2025-03-18T16:22:31.686Z (about 1 year ago)
- Language: Rust
- Size: 14.6 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
circle-rust
===========
This project is a very first attempt to support applications, written in the Rust programming language, in accessing Circle bare-metal libraries.
Prerequisites
-------------
The following tools must be installed on your development host:
* GNU-C/C++-based toolchain(s), which allow to build Circle for *arm-none-eabi* (32-bit) and/or *aarch64-none-elf* (64-bit) targets. See the Circle *README.md* file for details!
* The *rustup* tool, for installing the Rust command line tools (e.g. cargo, rustc). See the [Rust documentation](https://www.rust-lang.org/) for details on installing Rust!
You have to add the the Rust targets *armv7a-none-eabi* (32-bit) and/or *aarch64-unknown-none* (64-bit) with the following commands:
rustup target add armv7a-none-eabi
rustup target add aarch64-unknown-none
The Raspberry Pi 1 and Zero are currently not supported, because Rust does not provide a bare-metal target for their ARMv6 CPU.
Installation
------------
Clone this project and the required submodules using:
git clone https://github.com/rsta2/circle-rust.git
cd circle-rust
git submodule update --init circle bindgen
Build bindgen using:
cd bindgen
cargo build --release
rust-bindgen requires Clang / LLVM. See the [bindgen Users Guide](https://rust-lang.github.io/rust-bindgen/requirements.html) for details!
Configuration
-------------
Configure Circle as described in the Circle *README.md* file, e.g.:
cd circle
./configure -r 4 -p aarch64-none-elf-
Building
--------
The Circle project:
cd circle
./makeall clean
./makeall -j
The wrapper library:
cd lib/wrapper
make clean
make
The hello-world sample:
cd sample/hello-world
make