39 lines
1.3 KiB
Markdown
Executable file
39 lines
1.3 KiB
Markdown
Executable file
# NUCLEO L053R8 Benches
|
|
|
|
This repository contains code to measure the performance of embedded C and
|
|
Rust code for an STM32 Microcontroller, specifically the `STM32L053R` on a
|
|
`NUCLEO-L053R` evaluation board.
|
|
|
|
It implements a variety of algorithms in both C and Rust
|
|
(`crate/algorithms`). These Algorithm programs are then executed by the
|
|
executable program written in Rust. C code is called using Rust's FFI with
|
|
manually implemented bindings. To measure the actual runtime of the algorithms,
|
|
you need to attach an oscilluscope to the configured port of the board while
|
|
the prgrams are running.
|
|
|
|
## Building
|
|
|
|
See [./scripts/build.sh].
|
|
|
|
## Building
|
|
|
|
See [./scripts/build.sh].
|
|
|
|
### Dependencies
|
|
|
|
In addition to some crates from crates.io, this project requires the following
|
|
to be installed to compile and link to the algorithms-c implementations.
|
|
|
|
```
|
|
# on debian bookworm
|
|
apt install binutils-arm-none-eabi gcc-arm-none-eabi # compiler for the target architecture
|
|
apt install ruby # ceedling is the used build system for algorithms-c, and needs to be installed with gem, the ruby package manager
|
|
gem install ceedling
|
|
```
|
|
|
|
## Acknowledgements
|
|
|
|
For implementing the SHA-2-256 Algorithm, [this](https://sha256algorithm.com/)
|
|
website was very helpful.
|
|
|
|
The algorithms themselves are mostly reference implementation of various RFCs.
|