This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 62d7b3beeb arm-v7m systick:call irq_attach_thread.
62d7b3beeb is described below
commit 62d7b3beebbeaa3570dc9d7d87662bd611ca69ec
Author: yangguangcai <[email protected]>
AuthorDate: Tue May 21 10:52:19 2024 +0800
arm-v7m systick:call irq_attach_thread.
Signed-off-by: yangguangcai <[email protected]>
---
arch/arm/src/armv7-m/Kconfig | 18 ++++++++++++++++++
arch/arm/src/armv7-m/arm_systick.c | 7 +++++++
2 files changed, 25 insertions(+)
diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig
index 5e96e1e5b3..97022b294f 100644
--- a/arch/arm/src/armv7-m/Kconfig
+++ b/arch/arm/src/armv7-m/Kconfig
@@ -153,3 +153,21 @@ config ARMV7M_SYSTICK
depends on TIMER
---help---
Enable SysTick timer driver.
+
+config ARMV7M_SYSTICK_IRQ_THREAD
+ bool "attach irq by irq_attach_thread"
+ default n
+ depends on ARMV7M_SYSTICK
+
+if ARMV7M_SYSTICK_IRQ_THREAD
+
+config ARMV7M_SYSTICK_IRQ_THREAD_PRIORITY
+ int "SYSTICK IRQ THREAD PRIORITY"
+ default 255
+ range 0 255
+
+config ARMV7M_SYSTICK_IRQ_THREAD_STACK_SIZE
+ int "SYSTICK IRQ THREAD STACK SIZE"
+ default DEFAULT_TASK_STACKSIZE
+
+endif # ARMV7M_SYSTICK_IRQ_THREAD
diff --git a/arch/arm/src/armv7-m/arm_systick.c
b/arch/arm/src/armv7-m/arm_systick.c
index b7c706ba57..2b2f466de2 100644
--- a/arch/arm/src/armv7-m/arm_systick.c
+++ b/arch/arm/src/armv7-m/arm_systick.c
@@ -294,7 +294,14 @@ struct timer_lowerhalf_s *systick_initialize(bool coreclk,
putreg32(NVIC_SYSTICK_CTRL_TICKINT, NVIC_SYSTICK_CTRL);
}
+#ifdef CONFIG_ARMV7M_SYSTICK_IRQ_THREAD
+ irq_attach_thread(NVIC_IRQ_SYSTICK, NULL,
+ systick_interrupt, lower,
+ CONFIG_ARMV7M_SYSTICK_IRQ_THREAD_PRIORITY,
+ CONFIG_ARMV7M_SYSTICK_IRQ_THREAD_STACK_SIZE);
+#else
irq_attach(NVIC_IRQ_SYSTICK, systick_interrupt, lower);
+#endif
up_enable_irq(NVIC_IRQ_SYSTICK);
/* Register the timer driver if need */