OS: FreeRTOS
MCU:S32K118
计算以1秒钟为时间单位的MCU Usage
--->由SysTick_Handler处理的周期为1ms,所以vApplicationTickHook的回调周期为1ms。1ms累加1次,完成1000次的累加之后归0。同时在完成1000的累加之后,将每一个1ms内的idle time叠加1000次,此处的Idle time的运算,为了保证足够高的精度,用到了0xe000e018处的SysTick的current_value,用于精确的计算每一个1ms内的idle time的长度。在用每一个Idletask退出时的current_value减去这个Idletask进入时的值就是当前这个idletask占用时间对应的时间,把1000次的值相加得到1s内总的Idle time的总时间对应的值,然后比上1s时间对应的值,然后用1去减,就是1s内的MCU Usage。
计算以10ms秒钟为时间单位的MCU Usage
--->方法思路同上。
计算以10ms秒钟为时间单位的MCU Usage的最大MCU Usage
--->寻10ms MCU Usage的最大值,如果新获得的大于已有的,新获得的替换掉已有的,作为到目前位置的最大值。否则保持已有的值继续作为最大值。