aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/EXTIv1/notes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/ports/STM32/LLD/EXTIv1/notes.txt')
-rw-r--r--os/hal/ports/STM32/LLD/EXTIv1/notes.txt23
1 files changed, 23 insertions, 0 deletions
diff --git a/os/hal/ports/STM32/LLD/EXTIv1/notes.txt b/os/hal/ports/STM32/LLD/EXTIv1/notes.txt
new file mode 100644
index 000000000..10eda50d4
--- /dev/null
+++ b/os/hal/ports/STM32/LLD/EXTIv1/notes.txt
@@ -0,0 +1,23 @@
+STM32 EXT driver implementation through EXTI unit.
+
+There are several kind of EXTI lines:
+
+1) GPIO lines. Always in range 0..15, always handled by the EXT driver.
+2) Configurable peripheral events not shared, always handled by the EXT driver.
+3) Configurable peripheral events shared with other, non EXTI, interrupts.
+ The EXTI driver declares the ISR and has to call the IRQ handler of the
+ other driver.
+4) Direct lines (1 in IMR register after reset). The EXTI driver never touches
+ the default configuration for direct lines and does not declare ISRs.
+5) Unused lines. The EXTI driver does not declare ISRs.
+
+The file registry must export:
+STM32_EXTI_NUM_LINES - Range of configurable lines, it can have holes of
+ unused or direct lines. Configurable line numbers go
+ from 0 to STM32_EXTI_NUM_LINES-1.
+STM32_EXTI_IMR_MASK - Direct lines and unused lines marked as 1 in this
+ mask, configurable lines marked as 0.
+STM32_EXTI_IMR2_MASK - Optional, for lines 32...63.
+
+ISRs are not declared inside the driver, each sub-family must have its own
+ext_lld_isr.h and ext_lld_isr.c files.