hy5239 发表于 2010-5-16 22:42:32

关于AVR上移植uC/OS-2的一个简单问题

用Proteus进行仿真,并且用AVR STUDIO进行了调试。可是总是有错误,最终发现问题出在:
以下程序,Task5执行完之后直接返回主函数,而非函数调用的地方,我还是头一次遇
到这种问题,请高手帮忙,多谢。附件里有程序和PROTEUS仿真。
void Task4(void *pdata)
{
pdata=pdata;

while(1)
{
show(4,2);
OSTimeDly(100);
}       
}
void Task5(void *pdata)
{
show(5,3);
}
int main(void)
{
OSInit();
OSTaskCreate(Task1,0,&Task1Stk,1);
OSTaskCreate(Task2,0,&Task2Stk,2);
OSTaskCreate(Task3,0,&Task3Stk,3);
OSTaskCreate(Task4,0,&Task4Stk,5);
OSTaskCreate(Task5,0,&Task5Stk,4);
OSStart();
while(1)
{
       show(9,0);
        }
}

hy5239 发表于 2010-5-16 22:47:44

回复【楼主位】hy5239
-----------------------------------------------------------------------

用Uedit打开os2yizhi.prj工程就可以看到程序。用main.hex可以进行仿真。
点击此处下载 ourdev_554730.rar(文件大小:470K) (原文件名:os2_uedit_avrstudio.rar)

ralfak 发表于 2010-5-24 15:52:41

void Task5(void *pdata)
{
show(5,3);
}

教你一个基本的常识
每个任务都应该是一个死循环
千万别让它返回了
正确做法
可以加点延时,也可以不加
void Task5(void *pdata)
{
while(1)
{
show(5,3);
}
}

tom919 发表于 2010-7-7 15:25:49

不知hy5239朋友的这个问题解决了没有?如何解决的?
说出来,好让大家学习一下。
先谢了。
页: [1]
查看完整版本: 关于AVR上移植uC/OS-2的一个简单问题