任務切換巨集os_task_sw()的主要工作就是進行任務切換。
任務切換就是中止正在執行的任務,轉去執行另外乙個任務(就緒表中優先順序最高的任務)。
任務切換的工作是靠osctxsw()來完成的。
osctxsw()要依次做如下7項工作:
1)把終止任務的斷電指標儲存到任務堆疊
2)把cpu通用暫存器入棧
3)把中止任務的任務堆疊指標當前值儲存到任務控制塊ostcbstkptr中
4)獲得待執行任務的任務控制塊
5)使cpu通過任務控制塊獲得待執行任務的任務堆疊指標
6)通用暫存器出棧
7)pc出棧
ucosii總是把當前正在執行的任務控制塊的指標存放在乙個指標變數ostcbcur中
可知2-6項工作很容易完成。
但是1,7項工作有一些麻煩,目預處理器一般沒有pc出棧入棧的指令。所以只能用其他指令變通一下。
例如: 將任務切換巨集os_task_sw()中封裝乙個軟中斷,osctxsw()就是中斷服務函式,利用進中斷pc入棧和iret中斷返回的pc出棧。
如果處理器不提供軟中斷就要call指令來變通。
工作方式問題
連續幾天的開發培訓終於結束了,明天開始就要實踐了。今天的活動是一團糟。離開公司之前將thunderbird的郵件備份,僅是把原來備份的資料夾複製到預設目錄下,但是卻生成了幾個帶亂碼的收件箱資料夾,非常亂,還不能刪除。後來看了下,是自己把這個資料夾儲存成唯讀的。刪了原來的帳戶,重新新增,結果更是麻煩。...
OKR工作方式
1.okr的定義 okr,英文全稱 objectives and key results 中文意為 目標和關鍵成果 okr是一種工作方式和工作系統,據說可以讓目標管理從上到下貫穿到基層。這套方法和系統是由英特爾的老總安迪 葛洛夫 andy grove,只有偏執狂才能成功 的作者 發明的。隨後被由約翰...
GPIO工作方式
1 浮空 顧名思義就是浮在空中,上面用繩子一拉就上去了,下面用繩子一拉就沉下去了.2 開漏 就等於輸出口接了個npn三極體,並且只接了e,b.c極 是開路的,你可以接乙個電阻到3.3v,也可以接乙個電阻到5v,這樣,在輸出1的時候,就可以是5v電壓,也可以是3.3v電壓了.但是不接電阻上拉的時候,這...