barton
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2008-12-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望52点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:1558回复:4

uc/os II 系统级中断的问题

楼主#
更多 发布于:2004-02-17 12:08
我在8051上移植成功了uc/os ii 操作系统,编译环境为keil c51 7.0版本。为了提高中断相应速度,我决定将某个很频繁的中断设置成系统级中断,也就是此中断不引起任务切换。可是,却总是发现程序跑飞。我的程序中,中断源有好几个。
不知跑飞的原因是什么?郁闷得紧!
在此系统级中断中,需要将变量OSIntNesting加一吗?
 :mad:
清风拂柳
simonru
驱动牛犊
驱动牛犊
  • 注册日期2002-01-18
  • 最后登录2006-03-22
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-17 19:20
再你的irq例程之前要调void OSIntEnter (void)
结束要调OSIntexit
barton
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2008-12-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望52点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-18 10:28
一般的中断是应该调用OSIntEnter和OSIntExit,可是,我不想在这么频繁的中断里进行任务切换,当然就不需要调用了。有没有可能是中断嵌套的问题?
清风拂柳
barton
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2008-12-18
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望52点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-18 10:32
说具体点,我采用了82525作为HDLC控制器,由于收包和发包太频繁,而在51上进行任务切换,太耗费时间,所以想在82525产生的中断里退出时不进行任务切换。我现在有两个任务,一个收,一个发。发现发到第三个包之后,系统死了,每次都这样,不知是什么原因,已经郁闷了2天啦~~ ;) ;) ;)
清风拂柳
simonru
驱动牛犊
驱动牛犊
  • 注册日期2002-01-18
  • 最后登录2006-03-22
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-19 11:02
首先,你的想法应该可以实现,最多损失一点实时性,但是我建议你跟踪一下程序,看看是调度的问题,还是内存的问题导致死机.
游客

返回顶部