addrmap STM32_GPIOPort {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Mode";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } MODER[15:0];
    } Mode @ 0x0;
    reg {
        name="OutputType";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT1[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT2[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT3[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT4[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT5[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT6[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT7[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT8[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT9[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT10[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT11[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT12[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT13[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT14[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OT15[15:15];
    } OutputType @ 0x4;
    reg {
        name="OutputSpeed";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } OSPEEDR[15:0];
    } OutputSpeed @ 0x8;
    reg {
        name="PullUpPullDown";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PUPDR0[15:0];
    } PullUpPullDown @ 0xc;
    reg {
        name="InputData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } IDR[15:0];
    } InputData @ 0x10;
    reg {
        name="OutputData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ODR[15:0];
    } OutputData @ 0x14;
    reg {
        name="BitSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } GPIOx_BS[15:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } GPIOx_BR[31:16];
    } BitSet @ 0x18;
    reg {
        name="ConfigurationLock";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK1[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK2[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK3[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK4[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK5[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK6[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK7[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK8[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK9[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK10[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK11[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK12[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK13[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK14[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCK15[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCKK[16:16];
    } ConfigurationLock @ 0x1c;
    reg {
        name="AlternateFunctionLow";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } AFSEL_LO[7:0];
    } AlternateFunctionLow @ 0x20;
    reg {
        name="AlternateFunctionHigh";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } AFSEL_HI[7:0];
    } AlternateFunctionHigh @ 0x24;
    reg {
        name="BitReset";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } GPIOx_BRR[15:0];
    } BitReset @ 0x28;
} Registers_addrmap;


};