|
发表于 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 中定时中断的称呼不太好,应该叫“节拍中断” |
|