| Crates.io | ral-registers |
| lib.rs | ral-registers |
| version | 0.1.3 |
| created_at | 2021-08-15 12:05:33.130196+00 |
| updated_at | 2023-06-18 15:28:33.846128+00 |
| description | MMIO registers abstraction with a macro API |
| homepage | |
| repository | https://github.com/adamgreig/ral-registers |
| max_upload_size | |
| id | 437226 |
| size | 57,819 |
This crate contains an MMIO abstraction that uses macros to read, modify, and write fields in registers.
For example, several fields on a register can be updated (without changing the other fields) using:
// Modify some fields on GPIOA.MODER without changing others.
modify_reg!(gpio, GPIOA, MODER, MODER1: Input, MODER2: Output, MODER3: Input);
// Check a condition on a field.
while read_reg!(gpio, GPIOA, IDR, IDR3 == High) {}
// Read and write the entire register word value.
let port = read_reg!(gpio, GPIOA, IDR);
write_reg!(gpio, GPIOA, port);
This crate contains register code originally written in stm32ral, extracted for easier use in other projects.
Licensed under either of
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.