addrmap STM32F7_USART {

/* Some conversion errors detected, this might mean that the peripheral's registers structure in this file is incomplete.
 * Please refer to logs and comments in the file for more information.
 * 
 * Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 * Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
 */

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ControlRegister1";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                sw = rw;
            } UE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UESM[1:1];
            field {
                sw = rw;
            } RE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } TE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IDLEIE[4:4];
            field {
                sw = rw;
            } RXNEIE[5:5];
            field {
                sw = rw;
            } TCIE[6:6];
            field {
                sw = rw;
            } TXEIE[7:7];
            field {
                sw = rw;
            } PEIE[8:8];
            field {
                sw = rw;
            } PS[9:9];
            field {
                sw = rw;
            } PCE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKE[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MO[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MME[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CMIE[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DEDT[20:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DEAT[25:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } M1[28:28];
        `elsif VARIANT21
            field {
                sw = rw;
            } OVER8[15:15];
            field {
                sw = rw;
            } RTOIE[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EOBIE[27:27];
        `endif

    } ControlRegister1 @ 0x0;
    reg {
        name="ControlRegister2";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADDM7[4:4];
            field {
                sw = rw;
            } No_name_1[13:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SWAP[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXINV[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXINV[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DATAINV[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MSBFIRST[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD[31:24];
        `elsif VARIANT14
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LBDL[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LBDIE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LBCL[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CPHA[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CPOL[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLKEN[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LINEN[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABREN[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRMOD[22:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RTOEN[23:23];
        `endif

    } ControlRegister2 @ 0x4;
    reg {
        name="ControlRegister3";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EIE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HDSEL[3:3];
            field {
                sw = rw;
            } DMAR[6:6];
            field {
                sw = rw;
            } DMAT[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RTSE[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTSE[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTSIE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVRDIS[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DDRE[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DEM[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DEP[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WUS[21:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WUFIE[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UCESM[23:23];
        `elsif VARIANT21
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IREN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IRLP[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NACK[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCEN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ONEBIT[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCARCNT[19:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TCBGTIE[24:24];
        `endif

    } ControlRegister3 @ 0x8;
    reg {
        name="BaudRate";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                sw = rw;
            } BRR[19:0];
            /* Conversion error: Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
            } BRR_[19:0];
            */
        `elsif VARIANT2
            /* Conversion error: Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
            } BRR_[15:0];
            */
            /* Conversion error: Field "BRR_" overlaps another field at the same offset (0x0) and will be skipped, as it is illegal in SystemRDL.
            field {
                sw = rw;
            } BRR_[15:0];
            */
        `endif

    } BaudRate @ 0xc;
    reg {
        name="ReceiverTimeout";
        regwidth=0x20;
            field {
                sw = rw;
            } RTO_Receiver_Timeout_value[23:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BLEN_Block_length[31:24];
    } ReceiverTimeout @ 0x14;
    reg {
        name="Request";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                sw = w;
            } SBKRQ[1:1];
            field {
                sw = w;
            } MMRQ[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } RXFRQ[3:3];
        `elsif VARIANT6
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABRRQ[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXFRQ[5:5];
        `endif

    } Request @ 0x18;
    reg {
        name="InterruptAndStatus";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } PE[0:0];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } FE[1:1];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } NF[2:2];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } ORE[3:3];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } IDLE[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider. This field has reset value calculated at runtime.";
                sw = r;
            } RXNE[5:5];
            field {
                desc = "This field has reset value calculated at runtime.";
                sw = r;
            } TC[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider. This field has reset value calculated at runtime.";
                sw = r;
            } TXE[7:7];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } CTSIF[9:9];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } CTS[10:10];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } BUSY[16:16];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } CMF[17:17];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } SBKF[18:18];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } RWU[19:19];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } WUF[20:20];
            field {
                desc = "This field has the following custom Renode callbacks: Provider. This field has reset value calculated at runtime.";
                sw = r;
            } TEACK[21:21];
            field {
                desc = "This field has the following custom Renode callbacks: Provider. This field has reset value calculated at runtime.";
                sw = r;
            } REACK[22:22];
        `elsif VARIANT24
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } LBDF[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider. This field has reset value calculated at runtime.";
                sw = r;
            } RTOF[11:11];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } EOBF[12:12];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } ABRE[14:14];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } ABRF[15:15];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } TCBGT[25:25];
        `endif

    } InterruptAndStatus @ 0x1c;
    reg {
        name="InterruptFlagClear";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
        `ifdef VARIANT0
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FECF[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NCF[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ORECF[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IDLECF[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } TCCF[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTSCF[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CMCF[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WUCF[20:20];
        `elsif VARIANT16
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TCBGTCF[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LBDCF[8:8];
            field {
                sw = w;
                onwrite = woclr;
            } RTOCF[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EOBCF[12:12];
        `endif

    } InterruptFlagClear @ 0x20;
    reg {
        name="ReceiveData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RDR[7:0];
    } ReceiveData @ 0x24;
    reg {
        name="TransmitData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } TDR[7:0];
    } TransmitData @ 0x28;
} Registers_addrmap;


};