最近刚学ucos,在中断函数这里有个问题。以前用硬件中断都是直接用XXX_CallbackInstall(.....)直接安装一个中断函数,就是往中断向量表里弄个中断函数(原谅我不知道该怎么正确表达,就是这么个意思),然后控制中断开关就行了。不过现在看ucos-iii操作系统那个第九章中断管理,好像还需要在开始处写汇编,末尾写OSIntExit()。网上查了一下,貌似只要开头写
OS_ENTER_CRITICAL();
OSIntNesting++;
OS_EXIT_CRITICAL();
结尾写OSIntExit()就行,不过我还是不太理解。就是以往的硬件中断比如PIT、UART中断函数是不是都要这么写以便进行任务调度,如果不需要那我该怎么把这些硬件中断与task比较优先级,还是像第七章说的那样ISR发布消息给特定任务或切换到更高优先级的就绪态的task?好吧有点晕了,就这样子问吧,第一硬件中断需不需要内核参与?第二如果我想内核参与硬件中断,函数相比原来该怎么写,还是就像上面说的添加好了就行? |