首页 新闻 会员 周边

uc/os-II里面的时钟节拍响应

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-16 17:11

我有些uc/os-II的代码,基于ARM7的,主要是想用板子来采集一些数据。首先我在main里面建立了开始任务,这个开始任务函数里面会创建其他的几个任务。可以下面的代码。但是在OSStatInit函数进去以后,就再也出不来了,内核停留在空闲任务的死循环里面。说明这个时候,没有任何其他高优先级的任务处于就绪状态。应该不至于啊,我设置了我的几个任务的优先级都比空闲任务高的。后面调试发现,系统没有响应OnTimeTick函数,为什么这个函数一次都执行不了?

int  main (void)
{
    BSP_IntDisAll();

    OSInit();  /* Initialize "uC/OS-II, The Real-Time Kernel" */

    err = OSTaskCreateExt(AppTaskStart,
                (void *)0,
                (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
                APP_TASK_START_PRIO,
                APP_TASK_START_PRIO,
                (OS_STK *)&AppTaskStartStk[0],
                APP_TASK_START_STK_SIZE,
                (void *)0,
                OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
    if(err != OS_NO_ERR) {
        return 0;
    }


     #if (OS_TASK_NAME_SIZE > 13)
         OSTaskNameSet(APP_TASK_START_PRIO, "Start Task", &err);
     #endif


     OSStart();
     return 0;
}

static  void  AppTaskStart (void *p_arg)
{
    (void)p_arg;
    p_arg = p_arg; //avoid warning
    BSP_Init();                /* Initialize BSP functions*/

    OSStatInit();           /* Determine CPU capacity*/

    AppTaskCreate();        /* Create application tasks */

    OSTimeDlyHMSM(0,0,0,10);

    OSTaskDel(OS_PRIO_SELF);
 }
钱吉的主页 钱吉 | 初学一级 | 园豆:123
提问于:2013-08-02 17:37
< >
分享
最佳答案
0

OnTimeTick是系统时钟节拍中断服务响应函数。如果没有执行,说明时钟设置有问题。后来也确实证明是这样的,因为我把原来工程代码里面,初始化时钟的一行代码注释掉了。

钱吉 | 初学一级 |园豆:123 | 2014-06-13 20:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册