xuefeihumei 发表于 2011-3-1 16:54:46

弱弱的问一下关于UCOS的中断管理

接触了UCOS 但是有一方面没整明白。
在UCOS里系统靠定时器中断维持任务调度 任务切换,但是如何再加入其它中断,比如说串口中断,外部中断等等。那么如果加入了其它中断,应该把定时器中断优先级设为最高吗?如果不设为最高,那么系统的时钟有可能被其他中断打乱,对此事 小弟不明 请各位赐教,感激!

xuefeihumei 发表于 2011-3-1 17:03:03

期待各位解答 不胜感激

ba_wang_mao 发表于 2011-3-1 17:29:06

回复【楼主位】xuefeihumei
接触了ucos 但是有一方面没整明白。
在ucos里系统靠定时器中断维持任务调度 任务切换,但是如何再加入其它中断,比如说串口中断,外部中断等等。那么如果加入了其它中断,应该把定时器中断优先级设为最高吗?如果不设为最高,那么系统的时钟有可能被其他中断打乱,对此事 小弟不明 请各位赐教,感激!
-----------------------------------------------------------------------

   看来你还属于“操作系统”方面的菜鸟。

   1、在 ucos 中不是只靠定时中断维持任务调度的。
      正确的理解是:
             ucos中任务调度分两种:任务级任务调度和中断级任务调度。
            
   2、任务级切换可以通过以下系统函数调度
         (1)、创建任务OSTaskCreate()
         (2)、延时节拍函数 OSTimeDly()
         (3)、等待信号量
         (4)、OSStart() uCOS/II启动
         (5)、OSTaskSuspend()挂起任务
         (6)、OSTaskResume()恢复任务
          OSTimeDly()/OSTimeDlyHMSM()、等待一个事件的发生(包括OSSemPend(), OSMutexPend, OSFlagPend, OSMboxPend(), OSQPend(),
         等等

   3、中断级任务切换
         是通过OSIntExit()进行任务调度的
                        
            
   4、并非只能通过定时中断进行“中断级任务切换”
         ucos 建议所有的中断都应该由 ucos管理,因此所有的中断服务程序都可以进行“中断级任务切换”

   5、在ucos 中定时中断的称呼不太好,应该叫“节拍中断”

xuefeihumei 发表于 2011-3-1 19:30:30

回复【2楼】ba_wang_mao
-----------------------------------------------------------------------

那请问是不是把串口中断等类似的中断的服务程序当做一个普通任务来执行?

wangshaosh 发表于 2011-3-18 11:30:38

原来咋写现在也咋写写任务的时候主要要注意两个问题
1是别一直占用CPU,其他任务不能正常运行
2是有些程序必须一严格的时序,不能被打断

liuhui_work 发表于 2011-5-10 16:00:19

回复【2楼】ba_wang_mao
-----------------------------------------------------------------------

我是名副其实的“操作系统”方面的菜鸟,看了你的贴子,感觉你是牛人。有个问题想请教您:我想让一个LED指示灯每秒反转一次(做成任务),想用定时中断来做(在中断中只给出时间标志),这个定时中断要受os的管理吗?如果方便的话,加我QQ:583832361,谢谢
页: [1]
查看完整版本: 弱弱的问一下关于UCOS的中断管理