Skip to content

Enums with isDefault not handled correctly #47

Description

@armandas

In the Renesas RA SVDs, there are some enums like the below, with isDefault and no value.

<field>
<name>MOSEL</name>
<description>Main Clock Oscillator Switching</description>
<lsb>6</lsb>
<msb>7</msb>
<access>read-write</access>
<enumeratedValues>
    <enumeratedValue>
        <name>01</name>
        <description>Resonator</description>
        <value>#01</value>
    </enumeratedValue>
    <enumeratedValue>
        <name>11</name>
        <description>External clock input mode</description>
        <value>#11</value>
    </enumeratedValue>
    <enumeratedValue>
        <name>Others</name>
        <description>Port mode</description>
        <isDefault>true</isDefault>
    </enumeratedValue>
</enumeratedValues>
</field>

This causes chiptool to crash at

value: v.value.unwrap() as _, // TODO what are variants without values used for??

while svd2rust generates the following enum:

#[doc = "Main Clock Oscillator Switching\n\nValue on reset: 0"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum Mosel {
    #[doc = "1: Resonator"]
    _01 = 1,
    #[doc = "3: External clock input mode"]
    _11 = 3,
    #[doc = "0: Port mode"]
    Others = 0,
}

Related issues in svd2rust:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions