### Setting up a New Embedded Rust Project Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/examples/README.md A step-by-step guide for creating a new embedded Rust project using the STM32H7xx-HAL crate. Includes setting up the cross-compiler, configuration files, dependencies, and building the project. ```sh rustup target add thumbv7em-none-eabihf ``` ```toml [dependencies.stm32h7xx-hal] version = "^0" features = ["stm32h743v"] [dependencies.cortex-m-rt] version = "^0" ``` ```sh cargo build ``` -------------------------------- ### STM32H7xx-HAL Logging Features Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/examples/README.md Demonstrates how to enable different logging outputs for STM32H7xx-HAL examples using Cargo feature flags. Supports RTT, Semihosting, and ITM logging. ```sh cargo build --features=stm32h750v,rt,log-rtt --examples ``` ```sh cargo build --features=stm32h750v,rt,log-semihost --examples ``` ```sh cargo build --features=stm32h750v,rt,log-itm --examples ``` -------------------------------- ### Publish to Crates.io Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Checking out the latest code and publishing the new version to crates.io. ```bash cd [clean tree] git pull upstream cargo publish --features stm32h743 ``` -------------------------------- ### Build Example Program Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/README.md Compiles example programs by specifying the target device using a cargo feature. Ensure the correct target device feature (e.g., `stm32h743v`) and `rt` are included. ```Rust $ cargo build --features=stm32h743v,rt ``` -------------------------------- ### Commit Release Changes Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Committing the version updates and other release-related changes. ```bash git commit -am 'v0.2.0' ``` -------------------------------- ### Tag and Push Release Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Creating a Git tag for the release and pushing it to the upstream repository. ```bash git tag -a 'v0.2.0' -m 'v0.2.0' git push upstream refs/tags/v0.2.0 ``` -------------------------------- ### Push Release Branch Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Pushing the newly created release branch to the upstream repository. ```bash git push --set-upstream upstream v0.2.0 ``` -------------------------------- ### Create Release Branch Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Steps to create a new release branch from the upstream master branch. ```bash git fetch upstream git checkout upstream/master git checkout -b v0.2.0 ``` -------------------------------- ### Merge Release to Master Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/RELEASING.md Merging the release branch into the master branch on the upstream repository. ```bash git push --set-upstream upstream v0.2.0:master ``` -------------------------------- ### Add stm32h7xx-hal as Dependency Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/README.md Integrates the stm32h7xx-hal crate into a standalone Rust project. Specify the target device feature and `rt` in the Cargo.toml file's dependencies section. ```TOML [dependencies] cortex-m = "0.7.4" cortex-m-rt = "0.7.1" stm32h7xx-hal = {version = "0.16.0", features = ["stm32h743v","rt"]} ``` -------------------------------- ### Enable ITM Receive on Blackmagic Source: https://github.com/stm32-rs/stm32h7xx-hal/blob/master/examples/ITM.md This snippet shows the command to enable ITM receive functionality when using the Blackmagic debugger. Further configuration of ITM output may be required. ```gdb monitor trace ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.