| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
Test read, modify, write macros
|
|
Ported from the imxrt-ral core test suite. Demonstrate that there are
no "unused variable" warnings in tests by denying warnings for select
tests. These tests show that #2 is resolved.
|
|
Prevent masking value variables with imports
|
|
|
|
Mark all registers as transparent
|
|
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.
|
|
|
|
|