Restrict access to the UART when logging Added a mutex around the UART in the console backend to prevent multiple tasks from stomping on each other. This eliminates UART corruption garbling the tokenized output.
The OpenPRoT Technical Charter can be found at https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md
This project uses cargo-xtask for build automation and project management.
You can run tasks using cargo xtask <task-name>:
cargo xtask build - Build the projectcargo xtask test - Run all testscargo xtask check - Run cargo checkcargo xtask clippy - Run clippy lintscargo xtask fmt - Format code with rustfmtcargo xtask clean - Clean build artifactscargo xtask dist - Build a distribution (release build)cargo xtask docs - Build documentation with mdbookcargo xtask cargo-lock - Manage Cargo.lock filecargo xtask precheckin - Run all pre-checkin validation checkscargo xtask header-check - Check license headers in source filescargo xtask header-fix - Fix missing license headers in source files# Build the project cargo xtask build # Run tests cargo xtask test # Create a distribution cargo xtask dist # Format code cargo xtask fmt # Run clippy cargo xtask clippy # Build documentation cargo xtask docs # Run all pre-checkin validation checks cargo xtask precheckin # Check license headers cargo xtask header-check # Fix missing license headers cargo xtask header-fix
The project is structured as a Cargo workspace with two main components:
openprot/ - The main applicationxtask/ - Build automation scriptsThe xtask workflow allows you to add custom build steps, automation, and project management tasks written in Rust, making them cross-platform and easy to maintain.
No additional tools are required - everything is handled through Cargo and the xtask scripts.