AVR-Avogadro is an open source AVR simulator made in Rust and C++

Core library is written in Rust and exposes an API used by a GUI written in C++ (QT5).

This simulator aims to be suited for performance analysis.

Building from sources

Dependencies

Currently only linux target is supported. To build from sources you need

  • Rust toolchain (includes rustc and cargo)

  • GCC toolchain (g++ needed for GUI)

  • CMake (>= 3.9) (Cargo build instructions use cmake to build GUI)

From a terminal, you can clone the repo with

git clone --recurse-submodules https://github.com/mlafroce/avr-avogadro.git

This will download QHexEdit2 as a dependency.

If you choose “Download as a zip”, copy QHexEdit2 sources into ui/3rd-party/qhexedit2

To get their last version, download Rust compiler following instructions on their site.

Install GCC and Qt5 with the following commands

sudo apt install build-essential cmake qt5-default

Build

Compile with cargo build Rust’s package manager will download and build dependencies.

Run cargo run to run the application.

Tests and linter

Run cargo test to build and run unit tests.

Clippy is used as Rust linter. Install and run with

rustup component add clippy
cargo clippy

Examples

Small avr examples are in examples folder.

You can compile them running make or manually using avr-gcc.

Install with

sudo apt install gcc-avr

License

This project is licensed under the MIT License, see the LICENSE.md in the repository for details

Acknowledgements

Thanks to Luciano Rabassa for his contributions as a Beta tester.

Thanks to @Simsys for his awesome HexEditor Widget!