wangyan915205 发表于 2016-7-29 13:27:13

ucos操作系统OSTickISR()函数找不到

最近在看ucosii操作系统资料,很多资料中提到时钟节拍中断服务函数:OSTickISR();可是在源代码中怎么也找不到OSTickISR()函数。根据资料的介绍,OSTickISR()函数的功能应该是被如下代码取代了:

//systick中断服务函数,使用ucos时用到
void SysTick_Handler(void)
{       
        if(osrunning==1)                                                //OS开始跑了,才执行正常的调度处理
        {
                OSIntEnter();                                                        //进入中断
                OSTimeTick();                                               //调用ucos的时钟服务程序               
                OSIntExit();                                                      //触发任务切换软中断
        }
}

或者被如下代码取代了:

voidOS_CPU_SysTickHandler (void)
{
    OS_CPU_SRcpu_sr;


    OS_ENTER_CRITICAL();                         /* Tell uC/OS-II that we are starting an ISR          */
    OSIntNesting++;
    OS_EXIT_CRITICAL();

    OSTimeTick();                              /* Call uC/OS-II's OSTimeTick()                     */

    OSIntExit();                                 /* Tell uC/OS-II that we are leaving the ISR          */
}

不知道我的理解对不对?


bangbangji 发表于 2016-7-29 22:18:03

对的。。你把启动代码的汇编文件也看看,有的在移植时在那里把函数名重新定义了。

wangyan915205 发表于 2016-7-30 08:41:22

整个文件查遍了,就是没有那玩意

security 发表于 2016-7-30 09:02:43

wangyan915205 发表于 2016-7-30 08:41
整个文件查遍了,就是没有那玩意

从字面上来看,我想你的猜测是对的,不用再怀疑了{:lol:}
页: [1]
查看完整版本: ucos操作系统OSTickISR()函数找不到