Board logo

标题: 关于用XGATE协处理器来实现ucos时钟节拍 [打印本页]

作者: yellowjump    时间: 2009-8-11 08:48     标题: 关于用XGATE协处理器来实现ucos时钟节拍

最近在学习ucos,并在mc9s12xdg128上移植跑了几个任务。看了《用XGATE协处理器提高μC/OS-II的实时性》文章,也想用XGATE协处理器来实现ucos时钟节拍,由于文章说得不太清楚,所以自己摸索着做,但调试时出现了点运行,程序就跑飞的现象。[font]010哪位大侠知道原因,望指教,谢谢!在xgate.cxgate文件中的RTI中断程序如下:

interrupt void RTI_Handler(int data)
{
CRGFLG |= 0x80;
asm
{
LOOP1: SSEM #2
BCC LOOP1
}
tcb_x = (volatile OS_TCB *)((int)OSTCBList+0xC000); //任务C
if (tcb_x->OSTCBDly != 0)
{
if (--(tcb_x->OSTCBDly) == 0)
{
if ((tcb_x->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY)
{
OSRdyGrp |= tcb_x->OSTCBBitY;
OSRdyTbl[tcb_x->OSTCBY] |= tcb_x->OSTCBBitX;
count++;
}
else
{
tcb_x->OSTCBDly = 1;
}
}
}

//任务B
tcb_x = (volatile OS_TCB *)((int)tcb_x-0x0023);//(volatile OS_TCB *)((int)(tcb_x->OSTCBNext)+0xc000);
//屏蔽下面这段,程序可以切换任务C和A,
//只要加上下面这段,点运行程序就飞了,不知什么原因,
/* if (tcb_x->OSTCBDly != 0)
{
if (--(tcb_x->OSTCBDly) == 0)
{
if ((tcb_x->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY)
{
OSRdyGrp |= tcb_x->OSTCBBitY;
OSRdyTbl[tcb_x->OSTCBY] |= tcb_x->OSTCBBitX;
count++;
}
else
{
tcb_x->OSTCBDly = 1;
}
}
} */

//任务A
tcb_x = (volatile OS_TCB *)((int)tcb_x-0x0023);//(volatile OS_TCB *)((int)(tcb_y->OSTCBNext)+0xc000);
//本来是在这里用while语句遍历链表的,但不行,点运行程序就飞了。
//所以我试着拆开,看问题出在哪,见上面文字 ,还有在这里观测到的当前任务OSTCBCur老是空闲任务,不解,,,
// while (tcb_x->OSTCBPrio != OS_IDLE_PRIO)
// {
if (tcb_x->OSTCBDly != 0)
{
if (--(tcb_x->OSTCBDly) == 0)
{
if ((tcb_x->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY)
{
OSRdyGrp |= tcb_x->OSTCBBitY;
OSRdyTbl[tcb_x->OSTCBY] |= tcb_x->OSTCBBitX;
count++;
}
else
{
tcb_x->OSTCBDly = 1;
}
}
}
// dly = *(INT16U *)((int)tcb_x + 0x001A);
// prio=*(INT8U *)((int)tcb_x + 0x001D);
//}
asm CSEM #2;


asm SIF;
}

[此贴子已经被作者于2009-8-11 8:49:02编辑过]


作者: xuejian8824    时间: 2010-11-19 13:28

版主在哪呀?这个问题怎么解决呀?我也碰到这个情况了,求助呀!!!
作者: nickzmj    时间: 2010-11-19 14:09

兄弟,你们在用UCOS这个系统觉得稳定吗?,我在用ucos for DG128 的实验中一开始觉得很好用,后来我改变了延时时间的长短,OSTimeDly(61);改成OSTimeDly(10);系统就很容易死机了,不知到什么原因!
作者: xuejian8824    时间: 2010-11-20 19:42

我觉得挺好用的,现在就是碰到这个问题,将ucos的tick用xgate解决就会出现程序跑飞了,这个论坛的人气不行呀。
作者: xiaoqi050222    时间: 2010-11-26 15:41

我也碰到了这个问题,还请各位大侠帮忙解决一下。
作者: 电子工匠    时间: 2010-11-26 19:31

期待高手来解答 我也想知道因为所以




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0