2009年3月9日 星期一

03/09

小考:
DOS可視為MC/OSII的boot loader
IVT的功能?內容物?機制?
1.當interrupt進來時, 用於中斷CUP目前正在執行的事, 轉而執行interrupt
2.一道指令或向量
3.借由一道指令或向量跳到ISR裡去執行interrupt

PC_VectSet()
要用什麼方法保護資料取決於該筆資料可能會由誰去讀

OSTaskCreate()
1.create TCB 放到 ready Q
2.
OSTaskCreate(
TaskStart, //第一到指令所在位置(function name)
(void*)0, //參數(被TaskStart用到)
&TaskStartStk[TASK_STK_SIZE-1], //stack開頭(與CPU設計有關, 跨平台需要修改, 設計上失敗, 但速度快)
0 //設定優先權
);

OSStart()
找出CPU中priority最高的task並將CPU控制權交給它
(never return)

return 定義
指執行ret這道組合語言

OSStart之後剛開始只有兩個task, 分別為TaskStart, idle task
因為idle task的priority=63...非常低, 所以由TaskStart先開始執行

OSTimeDLYhmsm 利用類似poling的方式去檢查有無按esc此鍵
若有則用longjmp指令回到boot loader(一般都直接關機不會回boot loader)
注意: 在此絕對不是return

沒有留言:

張貼留言