From 4db0d491f3d82ddea7b814e697d2af780a10b3cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Fri, 27 Dec 2024 10:03:03 +0000 Subject: [PATCH] update Port/Cortex-M/port_cmx.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- Port/Cortex-M/port_cmx.h | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/Port/Cortex-M/port_cmx.h b/Port/Cortex-M/port_cmx.h index 9e075c5c..77706eca 100644 --- a/Port/Cortex-M/port_cmx.h +++ b/Port/Cortex-M/port_cmx.h @@ -3,8 +3,8 @@ * @file port_cmx.h * @brief CMSIS Cortex-M Core Port File * @author 迟凯峰 - * @version V3.2.0 - * @date 2024.12.13 + * @version V3.3.0 + * @date 2024.12.27 ******************************************************************************/ #ifndef __PORT_CMX_H @@ -260,26 +260,24 @@ do{ \ #define mUsedTime_END \ do{ \ if(usedtime[0]){ \ - usedtime[0]--; \ - usedtime[1] += mSysTick_InitValue - counter; \ + s_task_current->usedtime[0] += usedtime[0] - 1; \ + usedtime[0] = 0; \ + usedtime[1] += mSysTick_InitValue - tick_counter; \ + } \ + else if(tick_counter >= usedtime[1]){ \ + usedtime[0] = ~0; \ + usedtime[1] += mSysTick_InitValue - tick_counter; \ } \ else{ \ - if(usedtime[1] >= counter){ \ - usedtime[1] -= counter; \ - } \ - else{ \ - usedtime[1] += mSysTick_InitValue - counter; \ - } \ + usedtime[1] -= tick_counter; \ } \ - s_task_current->usedtime[0] += usedtime[0]; \ s_task_current->usedtime[0] += (s_task_current->usedtime[1] + usedtime[1]) / mSysTick_Cycle; \ s_task_current->usedtime[1] = (s_task_current->usedtime[1] + usedtime[1]) % mSysTick_Cycle; \ }while(false) #define mUsedTime_INIT \ do{ \ - usedtime[0] = 0; \ - usedtime[1] = counter; \ + usedtime[1] = tick_counter; \ }while(false) #define mPendSV_FIFOLoad \