From d0892c225668be1c5c1d0b808bffbe105b3949b2 Mon Sep 17 00:00:00 2001 From: gaoyang3513 Date: Fri, 2 Aug 2024 17:24:42 +0800 Subject: [PATCH] =?UTF-8?q?[Mod]=20Ebyte=E9=80=80=E5=87=BA=EF=BC=8CSystick?= =?UTF-8?q?=5Fdeinit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MBL/platform/gdm32/systick.c | 30 ++++++++++++++----- MBL/platform/gdm32/systick.h | 2 ++ .../CMT2310/0_Project/Uart_PingPong/main.c | 4 +++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/MBL/platform/gdm32/systick.c b/MBL/platform/gdm32/systick.c index 5ffd5e9..f2eabb1 100644 --- a/MBL/platform/gdm32/systick.c +++ b/MBL/platform/gdm32/systick.c @@ -36,6 +36,7 @@ OF SUCH DAMAGE. #include "systick.h" volatile static uint32_t delay; +static uint32_t priority_orig; /*! \brief configure systick @@ -45,14 +46,29 @@ volatile static uint32_t delay; */ void systick_config(void) { - /* setup systick timer for 1MHz interrupts */ - if (SysTick_Config(SystemCoreClock / 1000000U)) { - /* capture error */ - while(1); - } + priority_orig = __NVIC_GetPriority(SysTick_IRQn); - /* configure the systick handler priority */ - NVIC_SetPriority(SysTick_IRQn, 0x00U); + /* setup systick timer for 1MHz interrupts */ + if (SysTick_Config(SystemCoreClock / 1000000U)) { + /* capture error */ + while(1); + } + + /* configure the systick handler priority */ + NVIC_SetPriority(SysTick_IRQn, 0x00U); +} + +/*! + \brief configure systick + \param[in] none + \param[out] none + \retval none +*/ +void systick_deinit(void) +{ + SysTick_Config(1); + + NVIC_SetPriority(SysTick_IRQn, priority_orig); } /*! diff --git a/MBL/platform/gdm32/systick.h b/MBL/platform/gdm32/systick.h index a2fca6e..b5b2ab7 100644 --- a/MBL/platform/gdm32/systick.h +++ b/MBL/platform/gdm32/systick.h @@ -39,6 +39,8 @@ OF SUCH DAMAGE. /* configure systick */ void systick_config(void); +/* Deinit systick */ +void systick_deinit(void); /* delay a time in milliseconds */ void delay_1us(uint32_t count); /* delay a time in milliseconds */ diff --git a/MBL/source_ns/drivers/CMT2310/0_Project/Uart_PingPong/main.c b/MBL/source_ns/drivers/CMT2310/0_Project/Uart_PingPong/main.c index 7a5f864..3ed62f9 100755 --- a/MBL/source_ns/drivers/CMT2310/0_Project/Uart_PingPong/main.c +++ b/MBL/source_ns/drivers/CMT2310/0_Project/Uart_PingPong/main.c @@ -22,6 +22,7 @@ #include "ebyte_core.h" #include "ebyte_kfifo.h" #include "ebyte_debug.h" +#include "systick.h" void Task_Transmit( void ); void Task_Button( void ); @@ -60,6 +61,7 @@ int ebyte_main( void ) { /* Init Systick */ systick_config(); +#if 0 /* 板载硬件资源 初始化 */ Ebyte_BSP_Init(); /* (可选) 串口中断接收FIFO 可根据需要自行处理 */ @@ -88,6 +90,8 @@ int ebyte_main( void ) } Ebyte_BSP_GlobalIntDisable(); +#endif + systick_deinit(); } /* !