A Rust embedded-hal HAL for all MCUs in the Cypress PSoC6 family
This crate is currently a WIP, so the API can change at any time.
Currently the example directory examples work but are only built for, and run on the CM0plus core. As work progresses the CM4 core will be available with FPU and thumb2 instructions. Further down the track the programmable hardware will also be added to the mix.
The development strategy is to build out code as required to:
- Complete startup with rust code.
- Complete the implementation of the embedded hal.
- Determine further work from there. To assist with learning the mcu and rust the large Cypress/Infineon code example library will be used as test cases to ensure the functionality is equivalent, gain experience with the API and highlight dependencies etc.
Currently the hal has working but incomplete modules for:
- GPIO
- Semaphores
- Clocks
- Delays A working example using these modules (both cores with c startup code) is:
- Semaphores see the linked repo for more details. This repo also provides an example of how c and rust code can be integrated in a project.
OpenOCD can be used to program the psoc6 the Infineon fork is recommended (OpenOCD Infineon fork ) and you might as well download the manual (Infineon OpenOCD user manual).
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.