<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式操作系統UC/OSII的內核結構及介紹

嵌入式操作系統UC/OSII的內核結構及介紹

作者: 時(shí)間:2010-12-12 來(lái)源:網(wǎng)絡(luò ) 收藏

  
是多任務(wù)的,任務(wù)切換是其核心技術(shù),由匯編語(yǔ)言編寫(xiě)。任務(wù)切換函數OS_TASK_SW( )被設置成中斷函數,調用時(shí)使用的是軟件中斷指令,這樣在進(jìn)入中斷程序之前,當前任務(wù)的代碼地址和狀態(tài)字就自動(dòng)保存在當前任務(wù)的堆棧頂部。下面用8086的程序舉例切換函數:
  
(1) _OS_TASK_SW(或_OSIntCtxSw)PROC FAR中斷程序。
  
(2) PUSH指令該指令針對_OS_TASK_SW,保存當前任務(wù)寄存器到該任務(wù)的堆棧,代碼地址已經(jīng)保存。
  
(3) ADD SP,n該指令針對_OSIntCtxSw,因為該函數由中斷程序調用,運行他之前曾調用一些函數,堆棧發(fā)生變化,所以需要調整,去掉前幾個(gè)函數的保存地址和參數,而代碼地址在發(fā)生中斷時(shí)就已經(jīng)保存。

(4) 保存該任務(wù)的當前堆棧地址到該任務(wù)控制塊OS_TCB,即保存SS和SP。
  
(5) 調入已就緒最高優(yōu)先級任務(wù)控制塊,取出其原來(lái)保存的任務(wù)堆棧地址,即賦值給SS和SP。
  
(6) POP指令恢復新任務(wù)的寄存器。
  
(7) IRET中斷指令返回時(shí),CPU從堆棧頂部即SS:SP指向的位置取出以前所保存的代碼地址和狀態(tài)字,并從此地址恢復原來(lái)任務(wù)的運行。
  
5 程序舉例
  
一個(gè)最簡(jiǎn)單的8086程序例子:在主程序運行完畢后,各任務(wù)開(kāi)始輪流執行。


  
6 結語(yǔ)
  
還有時(shí)間管理、內存分配的功能,并且使用了信號量、郵箱和信息隊列,使各任務(wù)之間可以互相通訊,協(xié)調對各種事務(wù)的管理,適用于小型的高端CPU。已經(jīng)有許多公司以其為核心,進(jìn)行功能擴展,從而開(kāi)發(fā)自己的,并且由于其代碼簡(jiǎn)練,JEAN J.LABROSSE專(zhuān)門(mén)寫(xiě)書(shū)對其講解,也可以非常好地用于教學(xué)。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>