arm-v7m systick:call irq_attach_thread.
Signed-off-by: yangguangcai <yangguangcai@xiaomi.com>
diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig
index 5e96e1e..97022b2 100644
--- a/arch/arm/src/armv7-m/Kconfig
+++ b/arch/arm/src/armv7-m/Kconfig
@@ -153,3 +153,21 @@
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 b7c706b..2b2f466 100644
--- a/arch/arm/src/armv7-m/arm_systick.c
+++ b/arch/arm/src/armv7-m/arm_systick.c
@@ -294,7 +294,14 @@
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 */