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,本身就是空的大括號。
2009-04-29
2009-04-13
2009-04-08
4/08 OS上課筆記
p.34~35
全部都放在critical section內一定不會出錯(沒保護到),但是在多序執行時速度會變慢,網路傳輸狀況就是封包會掉。
這邊的保護可否用semephor來取代?
DI semlock EI semunlock
台灣的劉小姐:最好不要,因為.....
重點:要保護的東西在哪?有誰會讀取?
這邊的物件在ready queue內,只有ap本身可以存取。
後面這邊(p.35)
老師認為不可以
ISR結束後會去抓,.....
Linux:比較短的寫在前面,比較長的寫後面。方便閱讀。
p.36
Ready Queue
p.37
電腦如何知道在表中找到ready(1)者?
1)for loop
p.40 41
會考算法,必考。
全部都放在critical section內一定不會出錯(沒保護到),但是在多序執行時速度會變慢,網路傳輸狀況就是封包會掉。
這邊的保護可否用semephor來取代?
DI semlock EI semunlock
台灣的劉小姐:最好不要,因為.....
重點:要保護的東西在哪?有誰會讀取?
這邊的物件在ready queue內,只有ap本身可以存取。
後面這邊(p.35)
老師認為不可以
ISR結束後會去抓,.....
Linux:比較短的寫在前面,比較長的寫後面。方便閱讀。
p.36
Ready Queue
p.37
電腦如何知道在表中找到ready(1)者?
1)for loop
p.40 41
會考算法,必考。
訂閱:
文章 (Atom)