From e289dd883fb5b1178b3f620d29df2b6580739f17 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Thu, 19 Aug 2021 21:34:16 +0200 Subject: [PATCH] Cleanup EXTI --- data/registers/exti_g0.yaml | 192 +++++++--------------------------- data/registers/exti_h7.yaml | 162 +++++++--------------------- data/registers/exti_l5.yaml | 125 ++++++++++++++++++++++ data/registers/exti_v1.yaml | 154 +++++++-------------------- data/registers/exti_w.yaml | 66 ++++++++++++ data/registers/exti_wb55.yaml | 174 ------------------------------ data/registers/exti_wl5x.yaml | 174 ------------------------------ data/registers/exti_wle.yaml | 56 ++++++++++ parse.py | 25 +++-- 9 files changed, 371 insertions(+), 757 deletions(-) create mode 100644 data/registers/exti_l5.yaml create mode 100644 data/registers/exti_w.yaml delete mode 100644 data/registers/exti_wb55.yaml delete mode 100644 data/registers/exti_wl5x.yaml create mode 100644 data/registers/exti_wle.yaml diff --git a/data/registers/exti_g0.yaml b/data/registers/exti_g0.yaml index 14866a9..b6c6297 100644 --- a/data/registers/exti_g0.yaml +++ b/data/registers/exti_g0.yaml @@ -3,147 +3,61 @@ block/EXTI: description: External interrupt/event controller items: - name: RTSR - description: Rising Trigger selection register (EXTI_RTSR) + description: Rising Trigger selection register + array: + len: 2 + stride: 40 byte_offset: 0 - reset_value: 0 - fieldset: RTSR - array: - len: 2 - stride: 40 + fieldset: LINES - name: FTSR - description: Falling Trigger selection register (EXTI_FTSR) + description: Falling Trigger selection register + array: + len: 2 + stride: 40 byte_offset: 4 - reset_value: 0 - fieldset: FTSR - array: - len: 2 - stride: 40 + fieldset: LINES - name: SWIER - description: Software interrupt event register (EXTI_SWIER) + description: Software interrupt event register + array: + len: 2 + stride: 40 byte_offset: 8 - reset_value: 0 - fieldset: SWIER - array: - len: 2 - stride: 40 + fieldset: LINES - name: RPR - description: Rising pending register (EXTI_RPR) + description: Rising pending register + array: + len: 2 + stride: 40 byte_offset: 12 - reset_value: 0 - fieldset: RPR - array: - len: 2 - stride: 40 + fieldset: LINES - name: FPR - description: Falling pending register (EXTI_FPR) - byte_offset: 16 - reset_value: 0 - fieldset: FPR + description: Falling pending register array: len: 2 stride: 40 - + byte_offset: 16 + fieldset: LINES - name: EXTICR - description: external interrupt configuration register + description: Configuration register array: len: 4 stride: 4 byte_offset: 96 fieldset: EXTICR - - name: IMR - description: internal interrupt configuration register 1 + description: Interrupt mask register array: len: 2 stride: 16 byte_offset: 128 - fieldset: IMR - + fieldset: LINES - name: EMR - description: external interrupt configuration register 1 + description: Event mask register array: len: 2 stride: 16 byte_offset: 132 - fieldset: EMR - -fieldset/EMR: - description: Event mask register (EXTI_EMR) - fields: - - name: MR - description: Event Mask on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: MR -fieldset/FPR: - description: Falling Trigger pending register (EXTI_FPR) - fields: - - name: FPIF - description: Falling edge event pending for line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: PRR -fieldset/FTSR: - description: Falling Trigger selection register (EXTI_FTSR) - fields: - - name: TR - description: Falling trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: TR -fieldset/IMR: - description: Interrupt mask register (EXTI_IMR) - fields: - - name: MR - description: Interrupt Mask on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: MR -fieldset/RPR: - description: Rising Trigger pending register (EXTI_RPR) - fields: - - name: RPIF - description: Rising edge event pending for line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: PRR -fieldset/RTSR: - description: Rising Trigger selection register (EXTI_RTSR) - fields: - - name: TR - description: Rising trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: TR -fieldset/SWIER: - description: Software interrupt event register (EXTI_SWIER) - fields: - - name: SWIER - description: Software Interrupt on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum_write: SWIERW + fieldset: LINES fieldset/EXTICR: description: external interrupt configuration register 1 fields: @@ -154,43 +68,13 @@ fieldset/EXTICR: array: len: 4 stride: 4 -enum/MR: - bit_size: 1 - variants: - - name: Masked - description: Interrupt request line is masked - value: 0 - - name: Unmasked - description: Interrupt request line is unmasked - value: 1 -enum/TR: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/PRR: - bit_size: 1 - variants: - - name: NotPending - description: No trigger request occurred - value: 0 - - name: Pending - description: Selected trigger request occurred - value: 1 -enum/PRW: - bit_size: 1 - variants: - - name: Clear - description: Clears pending bit - value: 1 -enum/SWIERW: - bit_size: 1 - variants: - - name: Pend - description: Generates an interrupt request - value: 1 - +fieldset/LINES: + description: EXTI lines register, 1 bit per line + fields: + - name: LINE + description: EXTI line + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/exti_h7.yaml b/data/registers/exti_h7.yaml index 61c8663..98caf07 100644 --- a/data/registers/exti_h7.yaml +++ b/data/registers/exti_h7.yaml @@ -2,139 +2,55 @@ block/EXTI: description: External interrupt/event controller items: - - name: IMR - description: Interrupt mask register (EXTI_IMR) - byte_offset: 128 - reset_value: 0 - fieldset: IMR - - name: EMR - description: Event mask register (EXTI_EMR) - byte_offset: 132 - reset_value: 0 - fieldset: EMR - name: RTSR - description: Rising Trigger selection register (EXTI_RTSR) + description: Rising Trigger selection register + array: + len: 1 + stride: 0 byte_offset: 0 - reset_value: 0 - fieldset: RTSR + fieldset: LINES - name: FTSR - description: Falling Trigger selection register (EXTI_FTSR) + description: Falling Trigger selection register + array: + len: 1 + stride: 0 byte_offset: 4 - reset_value: 0 - fieldset: FTSR + fieldset: LINES - name: SWIER - description: Software interrupt event register (EXTI_SWIER) + description: Software interrupt event register + array: + len: 1 + stride: 0 byte_offset: 8 - reset_value: 0 - fieldset: SWIER + fieldset: LINES + - name: IMR + description: Interrupt mask register + array: + len: 1 + stride: 0 + byte_offset: 128 + fieldset: LINES + - name: EMR + description: Event mask register + array: + len: 1 + stride: 0 + byte_offset: 132 + fieldset: LINES - name: PR - description: Pending register (EXTI_PR) + description: Pending register + array: + len: 1 + stride: 0 byte_offset: 136 - reset_value: 0 - fieldset: PR -fieldset/EMR: - description: Event mask register (EXTI_EMR) + fieldset: LINES +fieldset/LINES: + description: EXTI lines register, 1 bit per line fields: - - name: MR - description: Event Mask on line 0 + - name: LINE + description: EXTI line bit_offset: 0 bit_size: 1 array: - len: 23 + len: 32 stride: 1 - enum: MR -fieldset/FTSR: - description: Falling Trigger selection register (EXTI_FTSR) - fields: - - name: TR - description: Falling trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: TR -fieldset/IMR: - description: Interrupt mask register (EXTI_IMR) - fields: - - name: MR - description: Interrupt Mask on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: MR -fieldset/PR: - description: Pending register (EXTI_PR) - fields: - - name: PR - description: Pending bit 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum_read: PRR - enum_write: PRW -fieldset/RTSR: - description: Rising Trigger selection register (EXTI_RTSR) - fields: - - name: TR - description: Rising trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: TR -fieldset/SWIER: - description: Software interrupt event register (EXTI_SWIER) - fields: - - name: SWIER - description: Software Interrupt on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum_write: SWIERW -enum/MR: - bit_size: 1 - variants: - - name: Masked - description: Interrupt request line is masked - value: 0 - - name: Unmasked - description: Interrupt request line is unmasked - value: 1 -enum/TR: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/PRR: - bit_size: 1 - variants: - - name: NotPending - description: No trigger request occurred - value: 0 - - name: Pending - description: Selected trigger request occurred - value: 1 -enum/PRW: - bit_size: 1 - variants: - - name: Clear - description: Clears pending bit - value: 1 -enum/SWIERW: - bit_size: 1 - variants: - - name: Pend - description: Generates an interrupt request - value: 1 diff --git a/data/registers/exti_l5.yaml b/data/registers/exti_l5.yaml new file mode 100644 index 0000000..8b2ca2b --- /dev/null +++ b/data/registers/exti_l5.yaml @@ -0,0 +1,125 @@ +--- +block/EXTI: + description: External interrupt/event controller + items: + - name: RTSR + description: Rising Trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 0 + fieldset: LINES + - name: FTSR + description: Falling Trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 4 + fieldset: LINES + - name: SWIER + description: Software interrupt event register + array: + len: 2 + stride: 32 + byte_offset: 8 + fieldset: LINES + - name: RPR + description: Rising pending register + array: + len: 2 + stride: 32 + byte_offset: 12 + fieldset: LINES + - name: FPR + description: Falling pending register + array: + len: 2 + stride: 32 + byte_offset: 16 + fieldset: LINES + - name: SECCFGR + description: Security configuration register + array: + len: 2 + stride: 36 + byte_offset: 20 + fieldset: SECCFGR + - name: PRIVCFGR + description: Privilege configuration register + array: + len: 2 + stride: 28 + byte_offset: 24 + fieldset: PRIVCFGR + - name: EXTICR + description: Configuration register + array: + len: 4 + stride: 4 + byte_offset: 96 + fieldset: EXTICR + - name: LOCKRG + description: EXTI lock register + byte_offset: 112 + fieldset: LOCKRG + - name: IMR + description: Interrupt mask register + array: + len: 2 + stride: 16 + byte_offset: 128 + fieldset: LINES + - name: EMR + description: Event mask register + array: + len: 2 + stride: 16 + byte_offset: 132 + fieldset: LINES +fieldset/EXTICR: + description: external interrupt configuration register 1 + fields: + - name: EXTI + description: EXTI configuration bits + bit_offset: 0 + bit_size: 4 + array: + len: 4 + stride: 4 +fieldset/LINES: + description: EXTI lines register, 1 bit per line + fields: + - name: LINE + description: EXTI line + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/LOCKRG: + description: EXTI lock register + fields: + - name: LOCK + description: LOCK + bit_offset: 0 + bit_size: 1 +fieldset/PRIVCFGR: + description: Privilege configuration register + fields: + - name: PRIV + description: Security enable on event input x + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/SECCFGR: + description: Security configuration register + fields: + - name: SEC + description: Security enable on event input x + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/exti_v1.yaml b/data/registers/exti_v1.yaml index 0614fc9..5657456 100644 --- a/data/registers/exti_v1.yaml +++ b/data/registers/exti_v1.yaml @@ -3,138 +3,54 @@ block/EXTI: description: External interrupt/event controller items: - name: IMR - description: Interrupt mask register (EXTI_IMR) + description: Interrupt mask register + array: + len: 2 + stride: 32 byte_offset: 0 - reset_value: 0 - fieldset: IMR + fieldset: LINES - name: EMR - description: Event mask register (EXTI_EMR) + description: Interrupt mask register + array: + len: 2 + stride: 32 byte_offset: 4 - reset_value: 0 - fieldset: EMR + fieldset: LINES - name: RTSR - description: Rising Trigger selection register (EXTI_RTSR) + description: Rising Trigger selection register + array: + len: 2 + stride: 32 byte_offset: 8 - reset_value: 0 - fieldset: RTSR + fieldset: LINES - name: FTSR - description: Falling Trigger selection register (EXTI_FTSR) + description: Falling Trigger selection register + array: + len: 2 + stride: 32 byte_offset: 12 - reset_value: 0 - fieldset: FTSR + fieldset: LINES - name: SWIER - description: Software interrupt event register (EXTI_SWIER) + description: Software interrupt event register + array: + len: 2 + stride: 32 byte_offset: 16 - reset_value: 0 - fieldset: SWIER + fieldset: LINES - name: PR - description: Pending register (EXTI_PR) + description: Pending register + array: + len: 2 + stride: 32 byte_offset: 20 - reset_value: 0 - fieldset: PR -fieldset/EMR: - description: Event mask register (EXTI_EMR) + fieldset: LINES +fieldset/LINES: + description: EXTI lines register, 1 bit per line fields: - - name: MR - description: Event Mask on line 0 + - name: LINE + description: EXTI line bit_offset: 0 bit_size: 1 array: - len: 23 + len: 32 stride: 1 - enum: MR -fieldset/FTSR: - description: Falling Trigger selection register (EXTI_FTSR) - fields: - - name: TR - description: Falling trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: TR -fieldset/IMR: - description: Interrupt mask register (EXTI_IMR) - fields: - - name: MR - description: Interrupt Mask on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: MR -fieldset/PR: - description: Pending register (EXTI_PR) - fields: - - name: PR - description: Pending bit 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum_read: PRR - enum_write: PRW -fieldset/RTSR: - description: Rising Trigger selection register (EXTI_RTSR) - fields: - - name: TR - description: Rising trigger event configuration of line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum: TR -fieldset/SWIER: - description: Software interrupt event register (EXTI_SWIER) - fields: - - name: SWIER - description: Software Interrupt on line 0 - bit_offset: 0 - bit_size: 1 - array: - len: 23 - stride: 1 - enum_write: SWIERW -enum/MR: - bit_size: 1 - variants: - - name: Masked - description: Interrupt request line is masked - value: 0 - - name: Unmasked - description: Interrupt request line is unmasked - value: 1 -enum/TR: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/PRR: - bit_size: 1 - variants: - - name: NotPending - description: No trigger request occurred - value: 0 - - name: Pending - description: Selected trigger request occurred - value: 1 -enum/PRW: - bit_size: 1 - variants: - - name: Clear - description: Clears pending bit - value: 1 -enum/SWIERW: - bit_size: 1 - variants: - - name: Pend - description: Generates an interrupt request - value: 1 \ No newline at end of file diff --git a/data/registers/exti_w.yaml b/data/registers/exti_w.yaml new file mode 100644 index 0000000..5cacddc --- /dev/null +++ b/data/registers/exti_w.yaml @@ -0,0 +1,66 @@ +--- +block/EXTI: + description: External interrupt/event controller + items: + - name: RTSR + description: rising trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 0 + fieldset: LINES + - name: FTSR + description: falling trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 4 + fieldset: LINES + - name: SWIER + description: software interrupt event register + array: + len: 2 + stride: 32 + byte_offset: 8 + fieldset: LINES + - name: PR + description: EXTI pending register + array: + len: 2 + stride: 32 + byte_offset: 12 + fieldset: LINES + - name: CPU + description: CPU specific registers + byte_offset: 128 + block: CPU + array: + len: 2 + stride: 64 +block/CPU: + description: CPU-specific registers + items: + - name: IMR + description: CPU x interrupt mask register + byte_offset: 0 + fieldset: LINES + array: + len: 2 + stride: 16 + - name: EMR + description: CPU x event mask register + array: + len: 2 + stride: 16 + byte_offset: 4 + fieldset: LINES +fieldset/LINES: + description: EXTI lines register, 1 bit per line + fields: + - name: LINE + description: EXTI line + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/exti_wb55.yaml b/data/registers/exti_wb55.yaml deleted file mode 100644 index 516901f..0000000 --- a/data/registers/exti_wb55.yaml +++ /dev/null @@ -1,174 +0,0 @@ ---- -block/EXTI: - description: External interrupt/event controller - items: - - name: RTSR - description: rising trigger selection register - byte_offset: 0 - fieldset: RTSR - array: - len: 2 - stride: 32 - - name: FTSR - description: falling trigger selection register - byte_offset: 4 - fieldset: FTSR - array: - len: 2 - stride: 32 - - name: SWIER - description: software interrupt event register - byte_offset: 8 - fieldset: SWIER - array: - len: 2 - stride: 32 - - name: PR - description: EXTI pending register - byte_offset: 12 - fieldset: PR - array: - len: 2 - stride: 32 - - name: CPU - description: CPU specific registers - byte_offset: 128 - block: CPU_MASK - array: - len: 2 - stride: 64 -block/CPU_MASK: - description: CPU-specific mask registers - items: - - name: IMR - description: CPUm wakeup with interrupt mask register - byte_offset: 0 - fieldset: C1IMR - array: - len: 2 - stride: 16 - - name: EMR - description: CPUm wakeup with event mask register - byte_offset: 4 - fieldset: C1EMR - array: - len: 2 - stride: 16 -fieldset/C1EMR: - description: CPUm wakeup with event mask register - fields: - - name: EM - description: CPU(m) Wakeup with event generation Mask on Event input - bit_offset: 0 - bit_size: 16 - array: - len: 32 - stride: 1 -fieldset/C1IMR: - description: CPUm wakeup with interrupt mask register - fields: - - name: IM - description: CPU(m) wakeup with interrupt Mask on Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: MR -fieldset/FTSR: - description: falling trigger selection register - fields: - - name: FT - description: Falling trigger event configuration bit of Configurable Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: FT -fieldset/PR: - description: EXTI pending register - fields: - - name: PIF - description: Configurable event inputs Pending bit - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum_read: PRR - enum_write: PRW -fieldset/RTSR: - description: rising trigger selection register - fields: - - name: RT - description: Rising trigger event configuration bit of Configurable Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: RT -fieldset/SWIER: - description: software interrupt event register - fields: - - name: SWI - description: Software interrupt on event - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 -fieldset/VERR: - description: EXTI IP Version register - fields: - - name: MINREV - description: Minor Revision number - bit_offset: 0 - bit_size: 4 - - name: MAJREV - description: Major Revision number - bit_offset: 4 - bit_size: 4 -enum/FT: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/RT: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/MR: - bit_size: 1 - variants: - - name: Masked - description: Interrupt request line is masked - value: 0 - - name: Unmasked - description: Interrupt request line is unmasked - value: 1 -enum/PRR: - bit_size: 1 - variants: - - name: NotPending - description: No trigger request occurred - value: 0 - - name: Pending - description: Selected trigger request occurred - value: 1 -enum/PRW: - bit_size: 1 - variants: - - name: Clear - description: Clears pending bit - value: 1 diff --git a/data/registers/exti_wl5x.yaml b/data/registers/exti_wl5x.yaml deleted file mode 100644 index 516901f..0000000 --- a/data/registers/exti_wl5x.yaml +++ /dev/null @@ -1,174 +0,0 @@ ---- -block/EXTI: - description: External interrupt/event controller - items: - - name: RTSR - description: rising trigger selection register - byte_offset: 0 - fieldset: RTSR - array: - len: 2 - stride: 32 - - name: FTSR - description: falling trigger selection register - byte_offset: 4 - fieldset: FTSR - array: - len: 2 - stride: 32 - - name: SWIER - description: software interrupt event register - byte_offset: 8 - fieldset: SWIER - array: - len: 2 - stride: 32 - - name: PR - description: EXTI pending register - byte_offset: 12 - fieldset: PR - array: - len: 2 - stride: 32 - - name: CPU - description: CPU specific registers - byte_offset: 128 - block: CPU_MASK - array: - len: 2 - stride: 64 -block/CPU_MASK: - description: CPU-specific mask registers - items: - - name: IMR - description: CPUm wakeup with interrupt mask register - byte_offset: 0 - fieldset: C1IMR - array: - len: 2 - stride: 16 - - name: EMR - description: CPUm wakeup with event mask register - byte_offset: 4 - fieldset: C1EMR - array: - len: 2 - stride: 16 -fieldset/C1EMR: - description: CPUm wakeup with event mask register - fields: - - name: EM - description: CPU(m) Wakeup with event generation Mask on Event input - bit_offset: 0 - bit_size: 16 - array: - len: 32 - stride: 1 -fieldset/C1IMR: - description: CPUm wakeup with interrupt mask register - fields: - - name: IM - description: CPU(m) wakeup with interrupt Mask on Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: MR -fieldset/FTSR: - description: falling trigger selection register - fields: - - name: FT - description: Falling trigger event configuration bit of Configurable Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: FT -fieldset/PR: - description: EXTI pending register - fields: - - name: PIF - description: Configurable event inputs Pending bit - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum_read: PRR - enum_write: PRW -fieldset/RTSR: - description: rising trigger selection register - fields: - - name: RT - description: Rising trigger event configuration bit of Configurable Event input - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - enum: RT -fieldset/SWIER: - description: software interrupt event register - fields: - - name: SWI - description: Software interrupt on event - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 -fieldset/VERR: - description: EXTI IP Version register - fields: - - name: MINREV - description: Minor Revision number - bit_offset: 0 - bit_size: 4 - - name: MAJREV - description: Major Revision number - bit_offset: 4 - bit_size: 4 -enum/FT: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/RT: - bit_size: 1 - variants: - - name: Disabled - description: Falling edge trigger is disabled - value: 0 - - name: Enabled - description: Falling edge trigger is enabled - value: 1 -enum/MR: - bit_size: 1 - variants: - - name: Masked - description: Interrupt request line is masked - value: 0 - - name: Unmasked - description: Interrupt request line is unmasked - value: 1 -enum/PRR: - bit_size: 1 - variants: - - name: NotPending - description: No trigger request occurred - value: 0 - - name: Pending - description: Selected trigger request occurred - value: 1 -enum/PRW: - bit_size: 1 - variants: - - name: Clear - description: Clears pending bit - value: 1 diff --git a/data/registers/exti_wle.yaml b/data/registers/exti_wle.yaml new file mode 100644 index 0000000..92d7d80 --- /dev/null +++ b/data/registers/exti_wle.yaml @@ -0,0 +1,56 @@ +--- +block/EXTI: + description: External interrupt/event controller + items: + - name: RTSR + description: Rising Trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 0 + fieldset: LINES + - name: FTSR + description: Falling Trigger selection register + array: + len: 2 + stride: 32 + byte_offset: 4 + fieldset: LINES + - name: SWIER + description: Software interrupt event register + array: + len: 2 + stride: 32 + byte_offset: 8 + fieldset: LINES + - name: PR + description: Pending register + array: + len: 2 + stride: 32 + byte_offset: 12 + fieldset: LINES + - name: IMR + description: Interrupt mask register + array: + len: 2 + stride: 16 + byte_offset: 128 + fieldset: LINES + - name: EMR + description: Event mask register + array: + len: 2 + stride: 16 + byte_offset: 132 + fieldset: LINES +fieldset/LINES: + description: EXTI lines register, 1 bit per line + fields: + - name: LINE + description: EXTI line + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/parse.py b/parse.py index 90f9117..6f04e10 100755 --- a/parse.py +++ b/parse.py @@ -373,6 +373,14 @@ perimap = [ ('STM32WL5.*:RCC:.*', 'rcc_wl5/RCC'), ('STM32WLE.*:RCC:.*', 'rcc_wle/RCC'), + ('STM32L5.*:EXTI:.*', 'exti_l5/EXTI'), + ('STM32G0.*:EXTI:.*', 'exti_g0/EXTI'), + ('STM32H7.*:EXTI:.*', 'exti_h7/EXTI'), + ('STM32WB.*:EXTI:.*', 'exti_w/EXTI'), + ('STM32WL5.*:EXTI:.*', 'exti_w/EXTI'), + ('STM32WLE.*:EXTI:.*', 'exti_wle/EXTI'), + ('.*:EXTI:.*', 'exti_v1/EXTI'), + ('.*:STM32L0_crs_v1_0', 'crs_l0/CRS'), ('.*SDMMC:sdmmc2_v1_0', 'sdmmc_v2/SDMMC'), ('STM32H7(42|43|53|50).*:STM32H7_pwr_v1_0', 'pwr_h7/PWR'), @@ -905,22 +913,13 @@ def parse_chips(): # EXTI is not in the cubedb XMLs if addr := defines.get('EXTI_BASE'): - if chip_name.startswith("STM32WB55"): - block = 'exti_wb55/EXTI' - elif chip_name.startswith("STM32WL5"): - block = 'exti_wl5x/EXTI' - elif chip_name.startswith("STM32H7"): - block = 'exti_h7/EXTI' - elif chip_name.startswith("STM32G0"): - block = 'exti_g0/EXTI' - else: - block = 'exti_v1/EXTI' - - peris['EXTI'] = OrderedDict({ + peri = OrderedDict({ 'address': addr, 'kind': 'EXTI', - 'block': block, }) + if block := match_peri(chip_name + ':EXTI:EXTI:v1'): + peri['block'] = block + peris['EXTI'] = peri # FLASH is not in the cubedb XMLs if addr := defines.get('FLASH_R_BASE'):