日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

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

          嵌入式操作系統(tǒng)UC/OSII的內核結構及介紹

          作者: 時間:2010-12-12 來源:網絡 收藏

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

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


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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉