中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式操作系統(tǒng)UC/OSII的內(nèi)核結(jié)構(gòu)及介紹

        嵌入式操作系統(tǒng)UC/OSII的內(nèi)核結(jié)構(gòu)及介紹

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

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

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


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

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

        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉