在uCOS的移植中有两个函数是移植工作的核心,相当于将裸机程序与操作系统的“神经”搭在一起,使得操作系统得以运行,这两个系统中断分别为:
1.SysTick_Handler:滴答定时器中断,这个中断相当于操作系统的心脏,给操作系统提供心跳,滴答定时器会一直不停的不断触发中断,在它的中断服务函数中,提供进程/任务的上下文切换,和任务调度的工作,简单描述如下图:
这是最简单的调度模式,如果在滴答定时器中断的过程中,发生了其他的中断,该怎么办?很显然,对于一个实时操作系统,中断的优先级必然是高的,不能为了任务切换而延迟响应其他的中断,所以早期的操作系统大多检测当前是否有中断在活跃,只有在没有任何中断需要响应时,才执行上下文切换,显然这样是不太好的,毕竟中断是有突发性的。这样就引入了PendSV,叫可挂起系统中断。
|