Forráskód Böngészése

[bsp][nxp][mcxa153] add interrupt process in IRQ Handler functions

hywing 5 hónapja
szülő
commit
07999dc84a

+ 6 - 4
bsp/nxp/mcx/mcxa/Libraries/drivers/drv_hwtimer.c

@@ -15,7 +15,6 @@
 #define LOG_TAG             "drv.hwtimer"
 #define LOG_TAG             "drv.hwtimer"
 #include <drv_log.h>
 #include <drv_log.h>
 #include <rtdevice.h>
 #include <rtdevice.h>
-#include "drv_hwtimer.h"
 #include "fsl_ctimer.h"
 #include "fsl_ctimer.h"
 
 
 enum
 enum
@@ -244,39 +243,42 @@ INIT_DEVICE_EXPORT(rt_hw_hwtimer_init);
 #ifdef BSP_USING_CTIMER0
 #ifdef BSP_USING_CTIMER0
 void CTIMER0_IRQHandler(void)
 void CTIMER0_IRQHandler(void)
 {
 {
+    rt_interrupt_enter();
     uint32_t int_stat;
     uint32_t int_stat;
     /* Get Interrupt status flags */
     /* Get Interrupt status flags */
     int_stat = CTIMER_GetStatusFlags(CTIMER0);
     int_stat = CTIMER_GetStatusFlags(CTIMER0);
     /* Clear the status flags that were set */
     /* Clear the status flags that were set */
     CTIMER_ClearStatusFlags(CTIMER0, int_stat);
     CTIMER_ClearStatusFlags(CTIMER0, int_stat);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM0_INDEX].time_device);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM0_INDEX].time_device);
-
+    rt_interrupt_leave();
 }
 }
 #endif /* BSP_USING_HWTIMER0 */
 #endif /* BSP_USING_HWTIMER0 */
 
 
 #ifdef BSP_USING_CTIMER1
 #ifdef BSP_USING_CTIMER1
 void CTIMER1_IRQHandler(void)
 void CTIMER1_IRQHandler(void)
 {
 {
+    rt_interrupt_enter();
     uint32_t int_stat;
     uint32_t int_stat;
     /* Get Interrupt status flags */
     /* Get Interrupt status flags */
     int_stat = CTIMER_GetStatusFlags(CTIMER1);
     int_stat = CTIMER_GetStatusFlags(CTIMER1);
     /* Clear the status flags that were set */
     /* Clear the status flags that were set */
     CTIMER_ClearStatusFlags(CTIMER1, int_stat);
     CTIMER_ClearStatusFlags(CTIMER1, int_stat);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM1_INDEX].time_device);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM1_INDEX].time_device);
-
+    rt_interrupt_leave();
 }
 }
 #endif /* BSP_USING_HWTIMER1 */
 #endif /* BSP_USING_HWTIMER1 */
 
 
 #ifdef BSP_USING_CTIMER2
 #ifdef BSP_USING_CTIMER2
 void CTIMER2_IRQHandler(void)
 void CTIMER2_IRQHandler(void)
 {
 {
+    rt_interrupt_enter();
     uint32_t int_stat;
     uint32_t int_stat;
     /* Get Interrupt status flags */
     /* Get Interrupt status flags */
     int_stat = CTIMER_GetStatusFlags(CTIMER2);
     int_stat = CTIMER_GetStatusFlags(CTIMER2);
     /* Clear the status flags that were set */
     /* Clear the status flags that were set */
     CTIMER_ClearStatusFlags(CTIMER2, int_stat);
     CTIMER_ClearStatusFlags(CTIMER2, int_stat);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM2_INDEX].time_device);
     rt_device_hwtimer_isr(&mcxa_hwtimer_obj[TIM2_INDEX].time_device);
-
+    rt_interrupt_leave();
 }
 }
 #endif /* BSP_USING_HWTIMER2 */
 #endif /* BSP_USING_HWTIMER2 */
 
 

+ 0 - 17
bsp/nxp/mcx/mcxa/Libraries/drivers/drv_hwtimer.h

@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2006-2024 RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
-* Change Logs:
-* Date           Author       Notes
-* 2024-11-26     hywing       the first version.
-*/
-
-#ifndef DRV_HWTIMER_H__
-#define DRV_HWTIMER_H__
-
-int rt_hw_hwtimer_init(void);
-
-#endif /* __DRV_HWTIMER_H__ */
-