2009-04-29

4/29 OS上課筆記

interrupt under uC/OSII

p.62

這個地方用驅動程式底層當例子。

基本上很難看出有interrupt過,除非詳細看過時間。

使中斷enable的code出現在程式開始沒多少。


水藍色:

橘紅色:



(2)的OSInNesting是因為中斷可巢狀,但在OSInNesting==1才需要寫irt。

排程器如果發現目前task和要切過去的task相同,則直接return,不動作。跳(8)

(5)中斷

(6)沒有這行就不能巢狀中斷

同一類的中斷不要用nesting發生第二次,會rest condition。因為重要性一樣,就FIFO就好了。


巢狀是為了在優先權低的中斷發生時,讓高權重的中斷可以搶先。

通常低優先權的中斷不能在高優先權中段時搶先,不論軟硬體皆然。不過也只是"通常"。

例外:Timer沒那麼重要,但是對系統架構很重要,所以可搶先。



窩窩窩喔喔 ch3結束



ch4開始


規定"ISR內不可以create task"

OSTCBInit()用來填參數,沒有就塞0。

OSTaskCreatHook() 方便大家使用的plug-in,本身就是空的大括號。

沒有留言:

張貼留言

Check for typo before sending