EmbeddedNim / svd2nim

Convert CMSIS ARM SVD files to nim register memory mappings
MIT License
19 stars 2 forks source link

Don't crash on enum usage tag #12

Closed auxym closed 3 months ago

auxym commented 3 months ago

Resolves #10

The SVD spec allows optionally definining two different enumeratedValues sets by using the usage tag to specify read or write usage. This feature appears to be very rarely used in the wild and thus is not currently supported by svd2nim.

At the moment, svd2nim crashes with an exception if the usage tag is encountered. However, patched stm32 SVD files from the embedded rust project appear to use usage in some cases even if a single enum is defined.

As a quick workaround, this PR removes the check for the usage tag. Instead, throw a warning if multiple enum entries are used and just use the first entry for code gen.

Code generation for separate read/write enums can be implemented in the future if anyone actually needs it, please open a new issue.