新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μC/OS-II在PC機上移植的設計與實現

        μC/OS-II在PC機上移植的設計與實現

        作者: 時間:2012-03-22 來源:網絡 收藏

        2.2 LOADER的設計

        2.2.1

        在DOS或Windows環境中,μC/OS-II使用BORLAND C++開發工具,因此,μC/OS-II應用系統的文件采用DOS的EXE格式,在裝入μC/OS-II應用系統時,引導程序將按的要求將內核加載到內存中。EXE文件由兩部分組成:文件首部和程序主體。文件首部包含重定位信息和控制信息,它由編譯器和連接程序自動生成;程序主體包含代碼段、棧段、數據段等,它由EXE啟動代碼和程序員編的程序構成,它是程序實際運行部分。EXE文件首部內容如表1所示。

        表1 EXE文件首部

        偏 移

        說 明

        00-01

        EXE型程序標志“MZ”

        02-03

        文件長度除以512的余數

        04-05

        文件長度除512的商

        06-07

        重定位項數

        08-09

        文件首部長度(單位為節,每16字節為一節)

        0A-0B

        程序裝入后要求高地址內存的最小節數

        0C-0D

        程序裝入后要求高地址內存的最大節數

        0E-0F

        堆棧段SS的值

        10-11

        SP的初值

        12-13

        文件校驗和

        14-15

        IP的初值

        16-17

        代碼段CS的值

        18-19

        第一個重定位項的位置

        1A-1B

        覆蓋號

        1C-

        保留

        [18-19]-

        重定位表

        2.2.2 LOADER程序的設計

        LOADER程序實現的主要功能是負責將內核裝入到內存指定位置。假定TEST.EXE為帶μC/OS-II內核的應用程序的文件名,LOADER 裝入程序將首先在磁盤中查找TEST.EXE文件,若找到,將其讀入內存地址0x10000開始的空間中。LOADER根據EXE文件首部的重定位表對加載到內存中的程序進行地址重定位后,初始化運行環境,然后轉到程序主體的入口處運行。LOADER程序算法描述如下:

        (1) 軟驅復位,然后在軟盤目錄表中查找文件TEST.EXE,若找到轉(3);

        (2) 在軟盤中沒有找到TEST.EXE文件,顯示信息“Kernel file do not exist!”,關閉軟驅馬達,程序進入死循環;

        (3) 將TEST.EXE程序讀到內存0x10000h處;

        (4) 根據重定位表對裝入內存中的TEST.EXE相關內容進行調整;

        (5) 初始化TEST.EXE的運行環境;

        (6) 轉TEST.EXE入口處,開始運行TEST.EXE;

        (7) 結束。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 道孚县| 大宁县| 桑植县| 大石桥市| 军事| 连南| 昌都县| 阳江市| 延津县| 凤台县| 嘉黎县| 绥化市| 阆中市| 海门市| 正阳县| 皮山县| 沽源县| 芮城县| 宁波市| 临漳县| 澄城县| 菏泽市| 株洲县| 柞水县| 宜良县| 射洪县| 安平县| 塘沽区| 聂拉木县| 蕲春县| 泗阳县| 西盟| 鲁甸县| 宜州市| 昆山市| 信宜市| 蒙自县| 凤翔县| 英吉沙县| 广宁县| 呼图壁县|