addrmap STM32_Timer {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control1";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Counter_enable_CEN[0:0];
            field {
                sw = rw;
            } Update_disable_UDIS[1:1];
            field {
                sw = rw;
            } Update_request_source_URS[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } One_pulse_mode_OPM[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Direction_DIR[4:4];
            field {
                sw = rw;
            } Center_aligned_mode_selection_CMS[6:5];
            field {
                sw = rw;
            } Auto_reload_preload_enable_APRE[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Clock_Division_CKD[9:8];
    } Control1 @ 0x0;
    reg {
        name="Control2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CCPC[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CCUS[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CCDS[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MMS[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TI1S[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS1[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS1N[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS2[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS2N[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS3[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS3N[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OIS4[14:14];
    } Control2 @ 0x4;
    reg {
        name="SlaveModeControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMS[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OCCS[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TS[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MSM[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ETF[10:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ETPS[13:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ECE[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ETP[15:15];
    } SlaveModeControl @ 0x8;
    reg {
        name="DmaOrInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } Update_interrupt_enable_UIE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_1_interrupt_enable_CC1IE[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_2_interrupt_enable_CC2IE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_3_interrupt_enable_CC3IE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_4_interrupt_enable_CC4IE[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Trigger_interrupt_enable_TIE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Update_DMA_request_enable_UDE[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_Compare_1_DMA_request_enable_CC1DE[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_Compare_2_DMA_request_enable_CC2DE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_Compare_3_DMA_request_enable_CC3DE[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_Compare_4_DMA_request_enable_CC4DE[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Trigger_DMA_request_enable_TDE[14:14];
    } DmaOrInterruptEnable @ 0xc;
    reg {
        name="Status";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = wzc;
            } Update_interrupt_flag_UIF[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = wzc;
            } Capture_Compare_1_interrupt_flag_CC1IF[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = wzc;
            } Capture_Compare_2_interrupt_flag_CC2IF[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = wzc;
            } Capture_Compare_3_interrupt_flag_CC3IF[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                onwrite = wzc;
            } Capture_Compare_4_interrupt_flag_CC4IF[4:4];
            field {
                sw = rw;
            } Reserved1[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = wzc;
            } Trigger_interrupt_flag_TIE[6:6];
            field {
                sw = rw;
            } Reserved2[7:7];
            field {
                sw = rw;
            } Reserved3[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = wzc;
            } Capture_Compare_1_overcapture_flag_CC1OF[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = wzc;
            } Capture_Compare_2_overcapture_flag_CC2OF[10:10];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = wzc;
            } Capture_Compare_3_overcapture_flag_CC3OF[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = wzc;
            } Capture_Compare_4_overcapture_flag_CC4OF[12:12];
            field {
                sw = rw;
            } Reserved4[31:13];
    } Status @ 0x10;
    reg {
        name="EventGeneration";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } Update_generation_UG[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_compare_1_generation_CC1G[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_compare_2_generation_CC2G[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_compare_3_generation_CC3G[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_compare_4_generation_CC4G[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Capture_compare_update_generation_COMG[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Trigger_generation_TG[6:6];
    } EventGeneration @ 0x14;
    reg {
        name="CaptureOrCompareMode1";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CC1S[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC1FE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC1PE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } OC1M[6:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC1CE[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CC2S[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC2FE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC2PE[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } OC2M[14:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC2CE[15:15];
    } CaptureOrCompareMode1 @ 0x18;
    reg {
        name="CaptureOrCompareMode2";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CC3S[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC3FE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC3PE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } OC3M[6:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC3CE[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CC4S[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC4FE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC4PE[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } OC4M[14:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OC4CE[15:15];
    } CaptureOrCompareMode2 @ 0x1c;
    reg {
        name="CaptureOrCompareEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_1_enable_CC1E[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC1P[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC1NE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC1NP[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_2_enable_CC2E[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC2P[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC2NE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC2NP[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_3_enable_CC3E[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC3P[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC3NE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC3NP[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Capture_Compare_4_enable_CC4E[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC4P[13:13];
    } CaptureOrCompareEnable @ 0x20;
    reg {
        name="Counter";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Counter_value_CNT[0:0];
    } Counter @ 0x24;
    reg {
        name="Prescaler";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Prescaler_value_PSC[15:0];
    } Prescaler @ 0x28;
    reg {
        name="AutoReload";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Auto_reload_value_ARR[0:0];
    } AutoReload @ 0x2c;
    reg {
        name="RepetitionCounter";
        regwidth=0x20;
            field {
                sw = rw;
            } Repetition_counter_TIM1_RCR[7:0];
    } RepetitionCounter @ 0x30;
    reg {
        name="CaptureOrCompare1";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CaptureOrCompare1 @ 0x34;
    reg {
        name="CaptureOrCompare2";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CaptureOrCompare2 @ 0x38;
    reg {
        name="CaptureOrCompare3";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CaptureOrCompare3 @ 0x3c;
    reg {
        name="CaptureOrCompare4";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CaptureOrCompare4 @ 0x40;
    reg {
        name="BreakAndDeadTime";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Dead_Time_Generator_DTG[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOCK[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Off_state_selection_idle_mode_OSSI[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Off_state_selection_run_mode_OSSR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Break_enable_BKE[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Break_polarity_BKP[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Automatic_output_enable_AOE[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Main_Output_Enable_MOE[15:15];
    } BreakAndDeadTime @ 0x44;
    reg {
        name="DmaControl";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DmaControl @ 0x48;
    reg {
        name="DmaAddressForFullTransfer";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DmaAddressForFullTransfer @ 0x4c;
    reg {
        name="Option";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Option @ 0x50;
} Registers_addrmap;


};