aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-12-07Add macro support for register arraysIan McIntyre
I'm experimenting with a RAL code generator that collapses contiguous register arrays. The generated code would resemble pub struct RegisterBlock { pub MY_ARRAY: [RWRegister<u32>; 3], } and an individual register would be addressed like ral::read_reg!(ral::my_mod, my_inst, MY_ARRAY[1]); This commit extends the four macros so that we can specify an array offset. We simply need to match zero or more `[N]` patterns, where `N` is some expression that produces an array offset. The included test case shows that the approach should support multi-dimensional arrays.
2021-09-23Prevent masking value variables with importsVadim Kaushan
2021-09-21Mark all registers as transparentIan McIntyre
Guarantees that the layout is the same as the inner type. Since UnsafeCell is also transparent, this ensures that the register has the same ABI as T. Today's registers work without this. Otherwise, RAL register blocks would have unaccounted offsets / wrong sizes. This is for completness, and a signal for others that a transmute might be OK. Requires Rust 1.28.
2021-08-15Initial commit. Import `registers.rs` from stm32ral.Adam Greig