mciantyre / teensy4-rs

Rust support for the Teensy 4
Apache License 2.0
291 stars 32 forks source link

Deprecate the HAL and PAC, and port the BSP to the imxrt-rs HAL #54

Closed mciantyre closed 4 years ago

mciantyre commented 4 years ago

49 describes the Rust register access layer (RAL), an alternative API for accessing processor registers, differing from what's supported by svd2rust. We found that a RAL-based hardware abstraction layer (HAL) builds much faster than it's peripheral-access crate (PAC) approach (#48). Additionally, the auto-generated RAL supports all iMXRT processor variants, which isn't easy to achieve with current svd2rust and PAC tooling. Given its benefits, we started to port the HAL to use the RAL in imxrt-rs/imxrt-rs#8. Once complete, the HAL should be faster to build and more easily extend for other iMXRT variants. The new HAL provides nearly the same API as the HAL in this repository, so it should be trivial to adopt

The new HAL is available at imxrt-rs/imxrt-rs, and we will not continue to develop the imxrt1062-hal in this repository. Since we won't maintain the HAL, and since the RAL solves many of the shortcomings of the PAC, we will no longer maintain the imxrt1062-pac, its subcrates, and its associated tooling in this repository. Finally, since we're deprecating the HAL, we will need to migrate the Teensy 4 BSP to use the new HAL.

The work will occur on the feature/imxrt-hal branch, where we've started to migrate the BSP to the new HAL.

mciantyre commented 4 years ago

Added a success criteria to each example in teensy4-examples. All examples work as expected. Examples that rely on PITs require imxrt-rs/imxrt-rs#28.

mciantyre commented 4 years ago

Pushed updates to the HAL and PAC on crates.io, incrementing the patch number in the versions. The updates just change the description to say that the crates are either unmaintained or deprecated.

Removed all PAC and HAL source code, and updated the docs, on a separate branch.

mciantyre commented 4 years ago

As part of separating the imxrt-rs components from the Teensy 4 components, I'm also removing the imxrt1062-fcb-gen crate. The successor is the imxrt-boot-gen crate. I deprecated the original crate on crates.io a few weeks ago. The successor has a similar interface, and may be extended for additional iMXRT processors.

55 has the commits that remove imxrt1062-fcb-gen, and update teensy4-fcb to the successor.