<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ral-registers/src, branch v0.2</title>
<subtitle>MMIO abstraction using a macro-based API
</subtitle>
<id>https://git.mciantyre.dev/ral-registers/atom?h=v0.2</id>
<link rel='self' href='https://git.mciantyre.dev/ral-registers/atom?h=v0.2'/>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/'/>
<updated>2025-09-28T14:32:16+00:00</updated>
<entry>
<title>Prototype a v0.2</title>
<updated>2025-09-28T14:32:16+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-04-12T22:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=495fbc58b6f4d2e751b16883a2c5cee3c598fd79'/>
<id>urn:sha1:495fbc58b6f4d2e751b16883a2c5cee3c598fd79</id>
<content type='text'>
Needs to be documented. The gist: remove references to MMIO, and add
support for nested structures. Drop the reset_reg! macro.
</content>
</entry>
<entry>
<title>Allow trailing commas at register macros</title>
<updated>2023-06-18T15:10:38+00:00</updated>
<author>
<name>Finomnis</name>
<email>finomnis@gmail.com</email>
</author>
<published>2023-06-18T15:10:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=d49fb1ec06bcd89fee1fe20cb20ab82da91ce434'/>
<id>urn:sha1:d49fb1ec06bcd89fee1fe20cb20ab82da91ce434</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document support for register arrays in each macro</title>
<updated>2022-12-07T14:56:44+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>ianpmcintyre@gmail.com</email>
</author>
<published>2022-12-07T14:56:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=5e7603467c24abb8bdaac95928c05ed74898c9a2'/>
<id>urn:sha1:5e7603467c24abb8bdaac95928c05ed74898c9a2</id>
<content type='text'>
Since stm32ral doesn't have register arrays, I'm using prose and
pseudo-code to document each macro's support for register arrays. This
seemed to be today's simplest way to document the features for users.

I have another commit that implements a hidden module with a RAL-like
API and register arrays. Documentation examples then reference this
hidden module to demonstrate the register array feature. But, it adds
more code (could be shared with the tests), and it resulted in
inconsistent documentation examples when compared to the STM examples.
</content>
</entry>
<entry>
<title>Add macro support for register arrays</title>
<updated>2022-12-07T14:42:54+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>ianpmcintyre@gmail.com</email>
</author>
<published>2022-09-22T17:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=a5850ab6d6c508fc3351fd86646bcf3fb1b69103'/>
<id>urn:sha1:a5850ab6d6c508fc3351fd86646bcf3fb1b69103</id>
<content type='text'>
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&lt;u32&gt;; 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.
</content>
</entry>
<entry>
<title>Prevent masking value variables with imports</title>
<updated>2021-09-23T04:59:55+00:00</updated>
<author>
<name>Vadim Kaushan</name>
<email>admin@disasm.info</email>
</author>
<published>2021-09-22T05:28:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=e65acf5ccf64563b4fc91320dd1075c520ef931a'/>
<id>urn:sha1:e65acf5ccf64563b4fc91320dd1075c520ef931a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mark all registers as transparent</title>
<updated>2021-09-21T21:52:54+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>ianpmcintyre@gmail.com</email>
</author>
<published>2021-09-20T01:23:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=6577b1a5ef911d1ece0858f0be83aa959869118f'/>
<id>urn:sha1:6577b1a5ef911d1ece0858f0be83aa959869118f</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Initial commit. Import `registers.rs` from stm32ral.</title>
<updated>2021-08-15T10:00:01+00:00</updated>
<author>
<name>Adam Greig</name>
<email>adam@adamgreig.com</email>
</author>
<published>2021-08-15T10:00:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/ral-registers/commit/?id=e94d9dcac90b4b0622f573656f32883807381145'/>
<id>urn:sha1:e94d9dcac90b4b0622f573656f32883807381145</id>
<content type='text'>
</content>
</entry>
</feed>
