阅读:1639回复:4
uc/os II 系统级中断的问题
我在8051上移植成功了uc/os ii 操作系统,编译环境为keil c51 7.0版本。为了提高中断相应速度,我决定将某个很频繁的中断设置成系统级中断,也就是此中断不引起任务切换。可是,却总是发现程序跑飞。我的程序中,中断源有好几个。
不知跑飞的原因是什么?郁闷得紧! 在此系统级中断中,需要将变量OSIntNesting加一吗? :mad: |
|
|
沙发#
发布于:2004-02-17 19:20
再你的irq例程之前要调void OSIntEnter (void)
结束要调OSIntexit |
|
板凳#
发布于:2004-02-18 10:28
一般的中断是应该调用OSIntEnter和OSIntExit,可是,我不想在这么频繁的中断里进行任务切换,当然就不需要调用了。有没有可能是中断嵌套的问题?
|
|
|
地板#
发布于:2004-02-18 10:32
说具体点,我采用了82525作为HDLC控制器,由于收包和发包太频繁,而在51上进行任务切换,太耗费时间,所以想在82525产生的中断里退出时不进行任务切换。我现在有两个任务,一个收,一个发。发现发到第三个包之后,系统死了,每次都这样,不知是什么原因,已经郁闷了2天啦~~ ;) ;) ;)
|
|
|
地下室#
发布于:2004-02-19 11:02
首先,你的想法应该可以实现,最多损失一点实时性,但是我建议你跟踪一下程序,看看是调度的问题,还是内存的问题导致死机.
|
|