SVD_to_D: Generate over 100k lines of highly-optimized microcontroller mmapped-IO code in the blink of an eye
Mike via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Mon Jul 31 01:51:16 PDT 2017
https://github.com/JinShil/svd_to_d
SVD_to_D is a command-line utility that generates D code from ARM
Cortex-M SVD files.
SVD files are XML files that describe, in great detail, the
memory layout and characteristics of registers in an ARM Cortex-M
microcontroller. See
https://github.com/posborne/cmsis-svd/tree/master/data for a
curated list of SVD files for many ARM Cortex-M microcontrollers
from various silicon vendeors.
From the information in an SVD file, code for accessing the
microcontroller's memory-mapped-io registers can be automatically
generated, and SVD_to_D does exactly that.
For a large microcontroller like the SM32F7, the amount of code
generated can be more than 100k lines. See an example of
generated D code here:
https://github.com/JinShil/svd_to_d/tree/master/examples/stm32f7x9
The code generated by SVD_to_D depends on this memory-mapped-IO
library: https://github.com/JinShil/memory_mapped_io That
library uses D's CTFE and meta-programming features to generate
highly optimized code (for both size and speed) at compile-time
with additional features such as type safety and
compile-time-enforced mutability.
Enjoy!
Mike
More information about the Digitalmars-d-announce
mailing list