QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2577|回复: 5

求教:ucosii移植时,中断处理问题

[复制链接]
发表于 2005-7-26 15:40:39 | 显示全部楼层 |阅读模式
最近往44b0上移植ucosii,关于中断处理方法一直没弄明白,还望各位朋友点拨一下,谢谢。

在ucosii中,只处理了系统时钟中断,那么对于具体的某个处理器,例如44b0,它还有其它很多中断如timer中断、uart发送接收中断、adc中断,这时ucosii如何识别和处理???例如来了一个ADC中断,ucos怎么识别它???

而且,OsIntNesting只和时钟节拍中断有关,万一有中断嵌套怎么办,例如在处理timer中断时,又来了一个adc中断,这时是不是要自己增加一个变量来标识嵌套关系???

看了一些例程,基本上都有一个ISR_Install函数,但我看主函数里,基本上只安装了tick中断处理函数,其它的中断处理函数都没有安装,这是怎么回事呢,难道其它中断都不管了???

一直没弄明白,很纳闷,请有移植过的或者对此有什么看法的,都发发话吧,谢谢啦!
 楼主| 发表于 2005-7-26 15:41:42 | 显示全部楼层
版主,这个问题你应该比较清楚吧

我是按照你们往skyeye上移植的例程改的,呵呵

指点指点吧
回复

使用道具 举报

 楼主| 发表于 2005-7-26 21:45:53 | 显示全部楼层
比如说,我现在有以下几个任务:

一个任务进行ADC数据采集
一个任务将采集的数据在lcd上显示
另外一个监控按键是否有按下,如果有按下 ,则响应按键中断

我的adc进行三通道的采集,在某个通道采集结束后,在adc 中断处理函数里面通知进行通道转换,启动下一个通道的采集。

显然,这里除了系统时钟tick中断,还有adc转换结束中断,按键中断(实际上是外部中断)
那么这几个中断如何处理呢?这些中断发生时显然会打乱多任务的运行,所以这几个中断处理函数是不是又要用汇编程序来写,然后在汇编程序中保存任务上下文呢?另外,如果在adc中断处理程序中,又来了一个tick中断怎么办?这时就发生了中断嵌套。

请李老师指教,谢谢
回复

使用道具 举报

发表于 2005-7-27 15:41:12 | 显示全部楼层
我目前还没有用 ucos 处理过中断嵌套问题。 我的处理办法是尽量让中断处理程序执行时间短小高效,通常是设置一个标准位就退出。 其他的工作(后半部)留在任务空间完成。
一般中断 pending 只要你不去主动处理,都会一直 pending 着,如果不嵌套,就是延迟处理一会。是否可以这么处理就看你的系统实时性要求了。
回复

使用道具 举报

 楼主| 发表于 2005-7-27 18:54:45 | 显示全部楼层
3x!
正在看这方面的书籍,相信很快有解决办法的,呵呵
不过还是很感谢你,版主
回复

使用道具 举报

 楼主| 发表于 2005-7-27 21:56:54 | 显示全部楼层
弄明白如何处理其它中断了,和tick类似

如果要处理中断嵌套的话,比较麻烦,感觉还是关中断好点,不过这种情况下

中断处理程序应该设计得短小精悍,免得中断延迟太长,甚至丢失中断,影响

实时性.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-11 04:25 , Processed in 0.091126 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表