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.
Resolves #10
The SVD spec allows optionally definining two different
enumeratedValues
sets by using theusage
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.