aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/STM32/RT-STM32L152RE-NUCLEO/chconf.h4
-rw-r--r--demos/STM32/RT-STM32L152RE-NUCLEO/mcuconf.h14
-rw-r--r--os/hal/ports/STM32/STM32L1xx/stm32_isr.h10
-rw-r--r--os/hal/ports/STM32/STM32L1xx/stm32_rcc.h75
-rw-r--r--readme.txt4
5 files changed, 103 insertions, 4 deletions
diff --git a/demos/STM32/RT-STM32L152RE-NUCLEO/chconf.h b/demos/STM32/RT-STM32L152RE-NUCLEO/chconf.h
index 8c745aabf..7d9906294 100644
--- a/demos/STM32/RT-STM32L152RE-NUCLEO/chconf.h
+++ b/demos/STM32/RT-STM32L152RE-NUCLEO/chconf.h
@@ -39,14 +39,14 @@
* @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
-#define CH_CFG_ST_RESOLUTION 16
+#define CH_CFG_ST_RESOLUTION 32
/**
* @brief System tick frequency.
* @details Frequency of the system timer that drives the system ticks. This
* setting also defines the system tick time unit.
*/
-#define CH_CFG_ST_FREQUENCY 1000
+#define CH_CFG_ST_FREQUENCY 10000
/**
* @brief Time delta constant for the tick-less mode.
diff --git a/demos/STM32/RT-STM32L152RE-NUCLEO/mcuconf.h b/demos/STM32/RT-STM32L152RE-NUCLEO/mcuconf.h
index 66daf7d12..f3f8fbff8 100644
--- a/demos/STM32/RT-STM32L152RE-NUCLEO/mcuconf.h
+++ b/demos/STM32/RT-STM32L152RE-NUCLEO/mcuconf.h
@@ -90,9 +90,21 @@
#define STM32_GPT_USE_TIM2 FALSE
#define STM32_GPT_USE_TIM3 FALSE
#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM6 FALSE
+#define STM32_GPT_USE_TIM7 FALSE
+#define STM32_GPT_USE_TIM9 FALSE
+#define STM32_GPT_USE_TIM10 FALSE
+#define STM32_GPT_USE_TIM11 FALSE
#define STM32_GPT_TIM2_IRQ_PRIORITY 7
#define STM32_GPT_TIM3_IRQ_PRIORITY 7
#define STM32_GPT_TIM4_IRQ_PRIORITY 7
+#define STM32_GPT_TIM5_IRQ_PRIORITY 7
+#define STM32_GPT_TIM6_IRQ_PRIORITY 7
+#define STM32_GPT_TIM7_IRQ_PRIORITY 7
+#define STM32_GPT_TIM9_IRQ_PRIORITY 7
+#define STM32_GPT_TIM10_IRQ_PRIORITY 7
+#define STM32_GPT_TIM11_IRQ_PRIORITY 7
/*
* I2C driver system settings.
@@ -155,7 +167,7 @@
* ST driver system settings.
*/
#define STM32_ST_IRQ_PRIORITY 8
-#define STM32_ST_USE_TIMER 2
+#define STM32_ST_USE_TIMER 5
/*
* UART driver system settings.
diff --git a/os/hal/ports/STM32/STM32L1xx/stm32_isr.h b/os/hal/ports/STM32/STM32L1xx/stm32_isr.h
index 16fd83c9c..290632e28 100644
--- a/os/hal/ports/STM32/STM32L1xx/stm32_isr.h
+++ b/os/hal/ports/STM32/STM32L1xx/stm32_isr.h
@@ -52,12 +52,22 @@
#define STM32_TIM2_HANDLER VectorB0
#define STM32_TIM3_HANDLER VectorB4
#define STM32_TIM4_HANDLER VectorB8
+#define STM32_TIM5_HANDLER VectorF8
+#define STM32_TIM6_HANDLER VectorEC
+#define STM32_TIM7_HANDLER VectorF0
#define STM32_TIM9_HANDLER VectorA4
+#define STM32_TIM10_HANDLER VectorA8
+#define STM32_TIM11_HANDLER VectorAC
#define STM32_TIM2_NUMBER 28
#define STM32_TIM3_NUMBER 29
#define STM32_TIM4_NUMBER 30
+#define STM32_TIM5_NUMBER 46
+#define STM32_TIM6_NUMBER 43
+#define STM32_TIM7_NUMBER 44
#define STM32_TIM9_NUMBER 25
+#define STM32_TIM10_NUMBER 26
+#define STM32_TIM11_NUMBER 27
/*
* USART units.
diff --git a/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h b/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h
index 883712ea2..b1832a7ac 100644
--- a/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h
+++ b/os/hal/ports/STM32/STM32L1xx/stm32_rcc.h
@@ -509,6 +509,81 @@
#define rccResetTIM4() rccResetAPB1(RCC_APB1RSTR_TIM4RST)
/**
+ * @brief Enables the TIM5 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccEnableTIM5(lp) rccEnableAPB1(RCC_APB1ENR_TIM5EN, lp)
+
+/**
+ * @brief Disables the TIM5 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccDisableTIM5(lp) rccDisableAPB1(RCC_APB1ENR_TIM5EN, lp)
+
+/**
+ * @brief Resets the TIM5 peripheral.
+ *
+ * @api
+ */
+#define rccResetTIM5() rccResetAPB1(RCC_APB1RSTR_TIM5RST)
+
+/**
+ * @brief Enables the TIM6 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccEnableTIM6(lp) rccEnableAPB1(RCC_APB1ENR_TIM6EN, lp)
+
+/**
+ * @brief Disables the TIM6 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccDisableTIM6(lp) rccDisableAPB1(RCC_APB1ENR_TIM6EN, lp)
+
+/**
+ * @brief Resets the TIM6 peripheral.
+ *
+ * @api
+ */
+#define rccResetTIM6() rccResetAPB1(RCC_APB1RSTR_TIM6RST)
+
+/**
+ * @brief Enables the TIM7 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccEnableTIM7(lp) rccEnableAPB1(RCC_APB1ENR_TIM7EN, lp)
+
+/**
+ * @brief Disables the TIM7 peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccDisableTIM7(lp) rccDisableAPB1(RCC_APB1ENR_TIM7EN, lp)
+
+/**
+ * @brief Resets the TIM7 peripheral.
+ *
+ * @api
+ */
+#define rccResetTIM7() rccResetAPB1(RCC_APB1RSTR_TIM7RST)
+
+/**
* @brief Enables the TIM9 peripheral clock.
* @note The @p lp parameter is ignored in this family.
*
diff --git a/readme.txt b/readme.txt
index 9bb82ef2a..bd34066f6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -96,7 +96,9 @@
for STM32F030xC, STM32F070x6, STM32F070xB devices.
- HAL: Fixed wrong DMA assignment for I2C1 in STM32F302xC registry (bug #637)
(backported to 3.0.2).
-- VAR: Fixed CRT0_CALL_DESTRUCTORS not utilised in crt0_v7m.s (bug #635)
+- HAL: Fixed missing timers 5, 6, 7, 10 & 11 from STM32L1 HAL port (bug #636)
+ (backported to 3.0.2).
+- VAR: Fixed CRT0_CALL_DESTRUCTORS not utilized in crt0_v7m.s (bug #635)
(backported to 3.0.2).
- HAL: Fixed wrong ld file in STM32F072xB USB CDC demo (bug #634)(backported
to 3.0.2).