A domain-specific build system for AVR C/C++ projects with a strong opinion on how to build them. Has deep integration with the existing toolchain to provide a better developer experience.
- ✍️ Opinionated project organization
- 🏗️ Build with automatic dependency resolution
- 🔌 Upload firmware to microcontroller (powered by avrdude)
Initialize a new AVR C project.
$ bavar init firmware -target attiny2313a blink
blink/
├── avr-project
└── src
└── main.c
Configuration file avr-project
.
(name blink)
(target attiny2313a 1mhz)
Compile and upload the current project (compile in release by default and use usbasp programmer).
$ bavar build @upload
This should already be installed on your system:
- AVR GCC toolchain for compile projects
- avrdude utility for uploading firmware to a microcontroller.
Optional: Git for downloading a project's dependencies, Python3 (and PIL module) for image conventions.
🚧 Now only works on Unix-like systems!
To get prebuilt binaries, see the releases page.
using OPAM package manager.
$ opam pin https://github.com/dx3mod/bavar.git
The project is being developed as part of the LabAvrPlatform platform.
bavar written in modern OCaml with use Dune build-system and OPAM package manager. See Managing Dependencies With opam for details. See also development guide.
The project is no longer actively maintained, but a pull request is welcome.