fix: update Pigweed to OpenPRoT fork, fix MPU layout, rename mctp-stack dep

- MODULE.bazel: switch pigweed git_override to OpenPRoT/pigweed@demo-ast1060-mctp
  (4a682f70c80af6df56b1003a77bd0f9658dae16d)
- MODULE.bazel.lock: regenerated after Pigweed remote change
- services/mctp/server/Cargo.toml: rename mctp-stack dep to mctp-lib so Rust
  resolves it as mctp_lib:: (fixes E0432 unresolved import)
- services/mctp/transport-i2c/Cargo.toml: same mctp-stack -> mctp-lib rename
- target/ast1060-evb/mctp/system.json5: fix PMSAv7 MPU alignment errors
  - Reduce kernel flash_size_bytes to 129792 so kernel ends at 0x20000
    (128KB boundary), placing all app flash regions at aligned addresses
  - Reduce all RAM regions from 64KB to 32KB to fit within 640KB usable SRAM
  - Update kernel ram_start_address from 0xB0000 to 0x98000
  - Total layout: 640KB = 0xA0000
- services/mctp/server/README.md: add build/test instructions, memory map
  diagram, and fix stale mctp_stack references
6 files changed
tree: 308cbdd23cb539c36c206e0e648424aa92aa7d61
  1. .cargo/
  2. .github/
  3. docs/
  4. hal/
  5. openprot/
  6. patches/
  7. platform/
  8. services/
  9. target/
  10. third_party/
  11. xtask/
  12. .bazelignore
  13. .bazelrc
  14. .bazelversion
  15. .gitignore
  16. .semgrepignore
  17. BUILD.bazel
  18. BUILD.md
  19. Cargo.lock
  20. Cargo.toml
  21. deny.toml
  22. LICENSE
  23. MODULE.bazel
  24. MODULE.bazel.lock
  25. out-of-tree.md
  26. port-mctp-echo.md
  27. pw
  28. README.md
  29. rust-toolchain.toml
  30. 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.