在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于XIP技術(shù)的ARM Linux系統(tǒng)的研究與移植

            基于XIP技術(shù)的ARM Linux系統(tǒng)的研究與移植

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

              1 研究背景

            本文引用地址:http://www.biyoush.com/article/217881.htm

               Linux 嵌入式系統(tǒng)在不同應(yīng)用領(lǐng)域應(yīng)用的日趨廣泛,它們存儲(chǔ)容量相對(duì)較小、系統(tǒng)的電能消耗及啟動(dòng)速度要求嚴(yán)格。為了滿足它們對(duì)啟動(dòng)速度和低能耗的要求,本文采用內(nèi)核XIP 方式運(yùn)行 Linux 系統(tǒng),避免把內(nèi)核從Nor Flash 拷貝到主存SDRAM 空間,讓內(nèi)核運(yùn)行在低功耗的NOR Flash 上,節(jié)省系統(tǒng)啟動(dòng)時(shí)間,降低系統(tǒng)對(duì)SDRAM 的需要,減少電能消耗,使產(chǎn)品能夠持續(xù)使用更長(zhǎng)時(shí)間。

              2 開(kāi)發(fā)工具及相關(guān)技術(shù)介紹

              2.1 硬件平臺(tái)

              本文選擇深圳億道公司的XSBase255 開(kāi)發(fā)板,其處理器采用的是Intel? XScalePXA255,400MHz,SDRAM 為Samsung 64Mbyte,Flash 為Intel? strata flash 32Mbyte。

              2.2 軟件工具

              Linux-2.6.12 linux-2.6.13-kgdb-2.3 Cramfs-linear-xip-4-patch busybox-1.10.0 ramust-arm2.3XIP 技術(shù)介紹XIP 全稱eXecute-In-Place(就地執(zhí)行),是一種代碼執(zhí)行方式,分為Kernel XIP[1]和Application XIP[2]兩種。Kernel XIP 適用于操作系統(tǒng)啟動(dòng)過(guò)程,而Application XIP 主要用于系統(tǒng)啟動(dòng)后應(yīng)用程序的執(zhí)行。

              Kernel XIP 原理如下,內(nèi)核映像在Flash 設(shè)備上執(zhí)行以后,只把映像中要讀寫(xiě)的.data和.bss 拷貝到SDRAM 主存中,同時(shí)設(shè)置好系統(tǒng)的MMU,內(nèi)核運(yùn)行過(guò)程中,代碼段.text 指向Flash 空間,.data 和.bss 指向SDRAM 主存空間。相對(duì)于全映射的執(zhí)行方式,系統(tǒng)節(jié)省了解壓縮和拷貝代碼段的時(shí)間,節(jié)省了代碼段占用的RAM 主存空間。


              Application XIP 原理與Kernel XIP 類(lèi)似,管理NOR Flash 空間的文件系統(tǒng)必須具有線性的一致的地址空間,可執(zhí)行的應(yīng)用程序的代碼段在NOR Flash 中線性連續(xù),且地址能夠從文件系統(tǒng)知曉。操作系統(tǒng)執(zhí)行應(yīng)用程序時(shí),系統(tǒng)的程序加載器(loader)在建立虛擬進(jìn)程空間后,只需要把應(yīng)用程序的數(shù)據(jù)段和未初始化段等要讀寫(xiě)的段裝入SDRAM 主存空間,并建立好映射,而對(duì)于可執(zhí)行文件的只讀的代碼段空間則無(wú)需裝入,直接映射到NOR Flash 設(shè)備上應(yīng)用程序文件的代碼段,程序執(zhí)行時(shí)直接從NOR Flash 設(shè)備上獲取代碼執(zhí)行。

              3 Linux 啟動(dòng)過(guò)程分析

              開(kāi)發(fā)板上電啟動(dòng)后,首先執(zhí)行Bootloader 程序,Bootloader 進(jìn)行初步的環(huán)境初始化并準(zhǔn)備好內(nèi)核參數(shù)。對(duì)于本文采用的內(nèi)核XIP 執(zhí)行方式,Bootloader 不需要從Flash 設(shè)備中解壓拷貝內(nèi)核映像到SDRAM主存中,運(yùn)行內(nèi)核映像后,把需要讀寫(xiě)操作的數(shù)據(jù)段拷貝到SDRAM主存的適當(dāng)位置,并進(jìn)行片級(jí)初始化、板級(jí)初始化等內(nèi)核運(yùn)行的硬件環(huán)境初始化工作,最后是根據(jù)內(nèi)核參數(shù)執(zhí)行內(nèi)核各個(gè)子系統(tǒng)的初始化。

              3.1 執(zhí)行映像生成過(guò)程及關(guān)系

              生成內(nèi)核映像的一般過(guò)程是,使用 make menuconfig 配置內(nèi)核,再使用make zImage 或make bzImage 生成壓縮的內(nèi)核映像zImage 或bzImage,這樣生成的是壓縮的內(nèi)核映像。本文通過(guò)配置CONFIG_XIP_KERNEL,使系統(tǒng)生成xipImage,其生成圖如圖2 所示:


              3.2 獲得內(nèi)核啟動(dòng)過(guò)程函數(shù)關(guān)系調(diào)用圖

              這里使用 KFT 工具來(lái)獲得。KFT 全稱Kernel Function Trace[3],主要功能是跟蹤函數(shù)調(diào)用事件。KFT 收集調(diào)用數(shù)據(jù)后,把數(shù)據(jù)保存在/proc/kft_data,在XScale 平臺(tái)上配置KFT 時(shí),KFT 需要使用cmpxchg 函數(shù),而原始內(nèi)核不支持,所以需要修改源代碼,添加__cmpxchg_u3和__cmpxchg 函數(shù)的聲明和定義,以及宏cmpxchg 和arch_align_stack(x)。準(zhǔn)備工作完成后,下載到開(kāi)發(fā)板上運(yùn)行并獲取原始跟蹤數(shù)據(jù)。然后,調(diào)用addr2sym 工具對(duì)原始跟蹤數(shù)據(jù)進(jìn)行格式化,可以獲取函數(shù)調(diào)用順序圖,再使用kd 工具將獲得的內(nèi)容格式化為樹(shù)狀關(guān)系圖,最終獲得內(nèi)核啟動(dòng)過(guò)程函數(shù)關(guān)系調(diào)用圖kft.tree,為下面的工作提供很好的指引和幫助。


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

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉