主题 : 调用OSTaskQuery获取任务信息函数出错~~~~~ 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 75808
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2012-08-13
最后登录: 2013-01-10
楼主  发表于: 2012-10-04 12:28

 调用OSTaskQuery获取任务信息函数出错~~~~~

我用的是周立功的UC/OS-II工程模板,程序运行很正常,但是一调用OSTaskQuery(OS_PRIO_SELF,&task_data);//试图得到任务的状态,,程序就会出错,丢进了未定义死盾环。查了很久都没有找到原因,清大家指点,或者给个例程来参考一下!,3Q

///////////////////
#include "config.h"
#include "stdlib.h"
#include <stdio.h>                /* prototype declarations for I/O functions */
#include <LPC21XX.H>              /* LPC21xx definitions                      */
#include "Main.h"
#define    Task0StkLengh    32            //Define the Task0 stack length 定义用户任务0的堆栈长度
OS_STK    Task0Stk [Task0StkLengh];        //Define the Task0 stack 定义用户任务0的堆栈
void Task0(void *pdata)
{      
    OS_TCB task_data;
    UINT8 err;
    pdata=pdata;
    TargetInit(); //初始化时钟
    GPIO_init(LED1);            //设置端口为GPIO
    GPIO_inout(LED1,OUTPUT);    //设置端口为输出模式
    while(1)
    {
        /*下面的这条语句,如果去丢程序就会正常运行,如果不去调程序就会跳到未定义Undefined,导致程序死盾环*/
        err=OSTaskQuery(OS_PRIO_SELF,&task_data);//试图得到任务的状态

        if(GPIO_READ(LED1))      //取反LED
        {
         GPIO_SET(LED1,LOW);    
        }
        else
        {
          GPIO_SET(LED1,HIGH);
        }
        OSTimeDly(20);//延时
    }
}
int main(void)
{
    OSInit(); //初始化OS
    OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], 2);//创建任务
    OSStart ();     //启动OS
    return 0;
}




uCOS_II - KEIL.rar (428 K) 下载次数:0