新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于S3C44B0芯片的uClinux內核引導過程分析

        基于S3C44B0芯片的uClinux內核引導過程分析

        作者: 時間:2012-04-20 來源:網絡 收藏

        加載鏡像

        加載工作實際上是完成將Flash中代碼拷貝到RAM指定地址單元的工作,在拷貝前必須在第二階段RAM啟動代碼和該部分代碼之間預留一定的空間,用來存放uClinux的全局結構變量,如: 啟動參數(shù)、內核頁表、ARM的頁目錄等信息。全地址空間的分配情況可參看本開發(fā)板地址空間分配示意圖1。

        45.jpg
        圖1 地址空間分配示意圖

        配置內核啟動參數(shù)

        uClinux 內核啟動中,支持參數(shù)傳入。在嵌入式系統(tǒng)中,啟動參數(shù)的傳入主要靠bootloader程序向標記列表( tagged list)的相關域中填寫對應的值來完成,常見的參數(shù)如有ATAG_CORE、ATAG_MEM、ATAG_CMDL INE、ATAG_RAMD ISK、ATAG_ IN ITRD等。

        uClinux內核

        在初始化階段完成uClinux啟動參數(shù)設置后,控制權交由uClinux內核接管,并調用解壓內核函數(shù)( decomp ress_kernel) ,對拷貝到SDRAM的內核映像文件進行解壓縮,然后跳轉到內核調用函數(shù)( call_ kernel) ,該函數(shù)實際上是執(zhí)行start_kernel ( ) ,其中包括了處理器結構的初始化、中斷的初始化、進程相關的初始化以及內存初始化等重要工作。最后,將控制權交給解壓后的uClinux系統(tǒng),進而完成整個uClinux內核,參看以下偽碼: If (啟動參數(shù)配置正確)調用decomp ress_kernel ( )調用call_kernel ( )else提示啟動失敗decomp ress_kernel( ){解壓內核鏡像文件}call_kernel ( ){ start_kernel( ) ;}

        小 結

        對于嵌入式系統(tǒng)開發(fā)人員來說,針對某一特定的嵌入式硬件平臺,移植開發(fā)uClinux操作系統(tǒng)的應用產品時,往往需要自己動手編寫或修改已有的啟動代碼,而為uClinux內核啟動準備合適的工作環(huán)境,占據了大部分工作量。至于uClinux,在設置好啟動參數(shù)后則是由編譯好的內核鏡像自動完成,對于系統(tǒng)開發(fā)人員來說基本上是透明的。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 军事| 胶南市| 青冈县| 崇信县| 达尔| 罗源县| 浦县| 阜平县| 南京市| 池州市| 天台县| 讷河市| 崇仁县| 闽清县| 永安市| 湘潭市| 山东省| 漠河县| 井陉县| 尼木县| 永清县| 江华| 信阳市| 宜城市| 盘锦市| 固原市| 洪江市| 吉林市| 定远县| 钦州市| 贡觉县| 南宫市| 赣州市| 上犹县| 清水县| 辽源市| 庆元县| 阿尔山市| 肥城市| 渝中区| 汉阴县|