From 62d7b3beebbeaa3570dc9d7d87662bd611ca69ec Mon Sep 17 00:00:00 2001 From: yangguangcai Date: Tue, 21 May 2024 10:52:19 +0800 Subject: [PATCH] arm-v7m systick:call irq_attach_thread. Signed-off-by: yangguangcai --- 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 5e96e1e5b3b..97022b294f2 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 b7c706ba570..2b2f466de2a 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 */