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 \