CMSIS V2 里面的 osTimerStart 函数如下,判断了是否在硬件中断调用,但是,如果在中断调用就直接退出,没有调用ISR函数, CMSIS V1是有调用ISR函数的,是什么原因?
osStatus_t osTimerStart (osTimerId_t timer_id, uint32_t ticks) {
TimerHandle_t hTimer = (TimerHandle_t)timer_id;
osStatus_t stat;
if (IS_IRQ()) {
stat = osErrorISR;
}
else if (hTimer == NULL) {
stat = osErrorParameter;
}
else {
if (xTimerChangePeriod (hTimer, ticks, 0) == pdPASS) {
stat = osOK;
} else {
stat = osErrorResource;
}
}
return (stat);
}