打印

ucos延时问题

[复制链接]
2322|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nelson00|  楼主 | 2008-10-2 17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ucos, TI, tc, ic, pi
最近开始学习ucOS
用官方原代码自己建了一个IAR工程,只添加了一个任务,功能为I/O口高低电平延时跳变,延时OSTimeDlyHMSM(0,0,2,0)
但是,延时之后就一直不能回到任务中去,通过查看任务的TCB看到TCBDly已经减到0了就是不进任务,不知道是什么原因?
我的TickISR是这样写的,第一、第四句是后来加上去的,但不起作用
void OSTickISR(void)
{
    OSIntEnter();//1
    OSTimeTick();//2
    AT91C_BASE_PITC->PITC_PIVR;//3
    OSIntExit();//4
}

相关帖子

沙发
db10| | 2008-10-3 00:20 | 只看该作者

....

 有while(1)吗?

使用特权

评论回复
板凳
Swd21ic| | 2008-10-3 09:51 | 只看该作者

re

任务里若没有while(1)..有可能会出现预取指异常..

应该是任务切换的移植部分没搞好吧..
看你是用的AT的MCU.去UCOS官网下例程吧...每个系列都有

使用特权

评论回复
地板
nelson00|  楼主 | 2008-10-3 10:27 | 只看该作者

re

是at的,我用的代码是官方的ucos-ii,3个ports文件是从arm7例程上拷过来的,main及其他就是自己写的
确实是任务切换那里没搞好,现在把中断入口处理改用例程.s上的,以前我用的那个.s是没有任务切换的
但现在的问题是出现Spurious中断,不能第二次进入任务,估计是挂倒在中断处理那部分

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝