[uCOS/uCGUI] uCos-ii 奇怪的问题

whaidong123   2012-7-4 21:20 楼主
uCos-ii 奇怪的问题

小弟正在学uCos系统,只是初学,现在只是想学习移植看一下效果,循环点亮LED灯任务,uCos文件都是使用的现成的,
对uCos那几个代码不是很熟悉。
进入正题,我遇到的问题是:我已经验证裸机程序运行时没有问题的,验证方法是在Main中加while(1)语句,里面点亮LED灯,裸机程序运行正常。如果将裸机代码注释掉活改为while(0),运行uCos操作系统的话,但不执行可知道程序运行到Main中的
OSInit ()就停了,不能再往下调试了。跳进OSInit ()这个函数中发现,程序是停在OS_InitMisc()这个函数就不能再往下调试了,
我试着将这个函数注释掉,发现程序还是会在下一个函数OS_InitRdyList()停下不能往下调试了。
各位大侠帮帮忙抽空看看想想是什么原因,开始我以为是底层没有初始化好,所以加了裸机部分运行,裸机可以正常运行,说明底层已经初始化成功了吧,而uCos那些源文件的函数也不可能出问题啊,这个找了好几天,在网上也没有找到现成的用MDK的例子,我的学习板是S3C2440的。如有建议请提出,大家共同学习共同进步~~
以下代码是Main函数:
void Main(void)
{
int i,j;
TargetInit();
//while(1)里的程序为测试裸机功能是否完好,测试uCos-ii时将while(1) 改为 while(0)
while(1)
{
rGPBDAT = 0xefe;
for(i=0;i<500;i++)
for(j=0;j<50000;j++);
rGPBDAT = 0xf7e;
for(i=0;i<500;i++)
for(j=0;j<50000;j++);
rGPBDAT = 0xfbe;
for(i=0;i<500;i++)
for(j=0;j<50000;j++);
rGPBDAT = 0xfde;
for(i=0;i<500;i++)
for(j=0;j<50000;j++);
}

//初始化uC/OS
OSInit ();
//初始化系统时基
OSTimeSet(0);
//创建系统初始任务
OSTaskCreate (MainTask,(void *)0, &MainTaskStk[MainTaskStkLengh - 1], MainTaskPrio); OSStart ();
}

回复评论 (2)

uCos-ii 奇怪的问题

怎么没有高人指点指点吗,我觉得像S3C2440的开发板用的人应该很多吧,ADS的例程的很多,但是用Keil的例程很少.....
点赞  2012-7-5 20:56

uCos-ii 奇怪的问题

有点失望了,没有遇到过吗  或者帮忙解决的    已经看了很多天了   现在还是没有解决啊     哎
点赞  2012-7-22 13:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复