This is a workaround.

This works around the current configuration of the AST1060 I2C. The device has
a 32-byte SRAM buffer per I2C channel, and this is too small for
NEGOTIATE_ALGORITHMS. There is support for DMA, and we are pursuing it.

This commit should not be merged to main as it its for DEMO purposes only. It
should be discarded from the DEMO if DMA is working before needed.
1 file changed
tree: a42f3dd441bd2720fc078d9e1a644c3b0a11eb8b
  1. .cargo/
  2. .claude/
  3. .github/
  4. apps/
  5. docs/
  6. hal/
  7. openprot/
  8. patches/
  9. platform/
  10. services/
  11. target/
  12. third_party/
  13. xtask/
  14. .bazelignore
  15. .bazelrc
  16. .bazelversion
  17. .gitignore
  18. .semgrepignore
  19. BUILD.bazel
  20. BUILD.md
  21. Cargo.lock
  22. Cargo.toml
  23. deny.toml
  24. LICENSE
  25. mctp-parse
  26. MODULE.bazel
  27. MODULE.bazel.lock
  28. out-of-tree.md
  29. port-mctp-echo.md
  30. pw
  31. README.md
  32. rust-toolchain.toml
  33. summary.md
  34. workflows.json
README.md

OpenPRoT

Technical Charter

The OpenPRoT Technical Charter can be found at https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md

Getting Started

This project uses cargo-xtask for build automation and project management.

Available Tasks

You can run tasks using cargo xtask <task-name>:

  • cargo xtask build - Build the project
  • cargo xtask test - Run all tests
  • cargo xtask check - Run cargo check
  • cargo xtask clippy - Run clippy lints
  • cargo xtask fmt - Format code with rustfmt
  • cargo xtask clean - Clean build artifacts
  • cargo xtask dist - Build a distribution (release build)
  • cargo xtask docs - Build documentation with mdbook
  • cargo xtask cargo-lock - Manage Cargo.lock file
  • cargo xtask precheckin - Run all pre-checkin validation checks
  • cargo xtask header-check - Check license headers in source files
  • cargo xtask header-fix - Fix missing license headers in source files

Examples

# 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

Development

The project is structured as a Cargo workspace with two main components:

  • openprot/ - The main application
  • xtask/ - Build automation scripts

The 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.

Requirements

  • Rust 1.70+ (2021 edition)
  • Cargo

No additional tools are required - everything is handled through Cargo and the xtask scripts.