版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Linux在ARM上的移植一、什么是移植?二、Linux內(nèi)核代碼三、Linux內(nèi)核編譯9/14/2022一、什么是移植?移植就是讓一個平臺的代碼能夠在其它平臺上運(yùn)行。將Linux運(yùn)行在ARM上,即稱為Linux在ARM上的移植。移植大致分3個層次:體系結(jié)構(gòu)、處理器和板級移植。通常所說的移植指的是Linux內(nèi)核移植,而不是發(fā)行版本的移植。9/14/2022一、什么是移植?將Linux移植到ARM的前提:熟悉Linux系統(tǒng)運(yùn)行機(jī)理、熟悉Linux內(nèi)核代碼結(jié)構(gòu)、掌握ARM體系結(jié)構(gòu)、目標(biāo)處理器、目標(biāo)系統(tǒng)相關(guān)、掌握GNU匯編和C編程以及Linux下腳本編程。通常僅需要作板級移植,有必要時進(jìn)行處理器級移植
2、。參考現(xiàn)有的移植。9/14/2022二、Linux內(nèi)核代碼Linux內(nèi)核由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)接口、進(jìn)程間通信、設(shè)備驅(qū)動等模塊組成。Linux內(nèi)核代碼包含這些目錄:arch Documentation include kernel scripts drivers init lib mmfs ipc net9/14/2022二、Linux內(nèi)核代碼/arch目錄包含各體系結(jié)構(gòu)特定的代碼,如ARM、i386、PPC、MIPS等。*/Documentation目錄存放相關(guān)說明文檔。/include目錄存放相關(guān)頭文件。*/kernel目錄包含Linux內(nèi)核管理代碼/srcipts目錄存放一
3、些腳本文件/drivers目錄包含Linux內(nèi)核所有設(shè)備驅(qū)動9/14/2022二、Linux內(nèi)核代碼/init目錄包含內(nèi)核初始化代碼/lib目錄包含一些庫文件/mm目錄存放內(nèi)存管理代碼/fs目錄存放所有文件系統(tǒng)代碼/ipc目錄存放進(jìn)程間通信代碼/net目錄存放網(wǎng)絡(luò)相關(guān)代碼9/14/2022二、Linux內(nèi)核代碼/arch目錄包含各體系結(jié)構(gòu)特定的代碼,在每個體系結(jié)構(gòu)目錄下都有:boot 內(nèi)核需要的特定平臺代碼kernel 體系結(jié)構(gòu)特有的代碼lib 通用函數(shù)在特定體系結(jié)構(gòu)的實(shí)現(xiàn)math-emu 模擬FPU的代碼,在ARM 中,使用mach-xxx代替*mm 特定體系結(jié)構(gòu)的內(nèi)存管理實(shí)現(xiàn)9/14/20
4、22二、Linux內(nèi)核代碼/include目錄存放體系結(jié)構(gòu)特定的頭文件,里面包含如asm-arm、asm-i386等目錄,在其中才存放相關(guān)頭文件。*9/14/2022二、Linux內(nèi)核移植Linux在ARM上的移植涉及目錄和文件/根目錄:Makefile文件/arch/arm目錄:Makefile、config.in文件/arch/arm/boot目錄:Makefile文件/arch/arm/boot/compressed目錄:Makefile、head-xxx.S文件9/14/2022二、Linux內(nèi)核移植Linux在ARM上的移植涉及目錄和文件/arch/arm/kernel目錄:Make
5、file、debug-armv.S、entry-armv.S、setup.c/arch/arm/mm目錄:mm-armv.c文件其它目錄如/arch/arm/def-configs目錄,用于存放目標(biāo)板的默認(rèn)配置等。9/14/2022二、Linux內(nèi)核移植/根目錄Makefile文件 修改該Makefile文件,指定目標(biāo)平臺和交叉編譯器。指定ARCH=目標(biāo)平臺移植前:#ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)移植后:ARCH := arm9
6、/14/2022二、Linux內(nèi)核移植/根目錄Makefile文件 指定交叉編譯器:指定CROSS_COMPILE=交叉編譯器移植前:CROSS_COMPILE = 移植后:CROSS_COMPILE = arm-linux-指定使用arm-linux-gcc交叉編譯器9/14/2022二、Linux內(nèi)核移植/arch/arm目錄Makefile文件 指定內(nèi)核起始運(yùn)行地址,和硬件相關(guān)。例如:ifeq ($(CONFIG_ARCH_xxx),y)TEXTADDR = 0 xC0008000MACHINE = xxxendifCONFIG_ARCH_xxx在config.in中。9/14/2022
7、二、Linux內(nèi)核移植/arch/arm目錄config.in文件 修改配置菜單,增加平臺配置選項(xiàng)。choice ARM system type xxx-based CONFIG_ARCH_xxx Shark CONFIG_ARCH_SHARK RiscPC9/14/2022二、Linux內(nèi)核移植if $CONFIG_ARCH_xxx = y ; thencomment xxx Implementationdep_bool SMDK (MERI TECH BOARD) CONFIG_xxx_SMDK $CONFIG_ARCH_xxxfi # /* CONFIG_ARCH_xxx */9/14/
8、2022二、Linux內(nèi)核移植還有其它配置選項(xiàng),可以根據(jù)自己的需要進(jìn)行添加或者修改,具體參考已經(jīng)移植的代碼。添加的信息將會在make menuconfig的菜單中出現(xiàn)。9/14/2022二、Linux內(nèi)核移植/arch/arm/bootMakefile文件解壓縮器從這里調(diào)用內(nèi)核:ifeq ($(CONFIG_ARCH_xxx),y)ZTEXTADDR = 0 xXXXX8000EndifZTEXTADDR:解壓縮器的起始地址.需要根據(jù)硬件進(jìn)行設(shè)定。9/14/2022二、Linux內(nèi)核移植/arch/arm/boothead-xxx.S新增該文件,初始化處理器。編寫這段代碼需要非常熟悉處理器。源
9、代碼參考內(nèi)核。9/14/2022二、Linux內(nèi)核移植/arch/arm/boot/compressdMakefile文件增加head-xxx.S的編譯。ifeq ($(CONFIG_ARCH_xxx),y)OBJS += head-xxx.oendif9/14/2022二、Linux內(nèi)核移植/arch/arm/kernelMakefile文件增加處理器和其它功能支持:no-irq-arch := $(CONFIG_ARCH_INTEGRATOR) $(CONFIG_ARCH_CLPS711X) $(CONFIG_FOOTBRIDGE) $(CONFIG_ARCH_EBSA110) $(CON
10、FIG_ARCH_SA1100) $(CONFIG_ARCH_CAMELOT) $(CONFIG_ARCH_S3C2400) $(CONFIG_ARCH_xxx) 9/14/2022二、Linux內(nèi)核移植/arch/arm/kerneldebug-armv.S、entry-armv.S、setup.c增加代碼,對芯片進(jìn)行初始化和中斷處理,以及體系結(jié)構(gòu)相關(guān)初始化/arch/arm/mmmm-armv.c和平臺相關(guān)的內(nèi)存管理9/14/2022二、Linux內(nèi)核移植其它目錄如/arch/arm/mach-xxx其它文件和代碼,請參考現(xiàn)成的移植。/driver目錄板級移植時,一些必要的驅(qū)動程序如以太網(wǎng)
11、等。9/14/2022三、Linux內(nèi)核編譯需要正確安裝交叉編譯器如arm-linux-gcc相關(guān)命令make menuconfig菜單界面make dep依賴關(guān)系make zImage得到內(nèi)核make mrproper干凈的源碼make distclean去除文件9/14/2022三、Linux內(nèi)核編譯進(jìn)入配置菜單/界面make config文本界面make menuconfig菜單界面*makexconfig圖形界面常用make menuconfig命令進(jìn)行。進(jìn)入Linux內(nèi)核源代碼目錄,執(zhí)行該命令,得到Linux內(nèi)核配置主界面。9/14/2022三、Linux內(nèi)核編譯對各項(xiàng)進(jìn)行配置,包括系統(tǒng)類型、存儲器、網(wǎng)絡(luò)等??梢匝b載某開發(fā)板的默認(rèn)配置,如MagicARM2410默認(rèn)配置文件為ZY2410 x。9/14/2022三、Linux內(nèi)核編譯裝載默認(rèn)配置后,可修改或者不修改。配置完畢選擇退出并保存。9/14/2022三、Linux內(nèi)核編譯配置完畢,需要先建立依賴關(guān)系:make dep如果沒有錯誤,即可編譯內(nèi)核:make zImage如果編譯無錯,在arch/arm/boot目錄下將生成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年武漢車都建設(shè)投資有限公司招聘筆試參考題庫含答案解析
- 2025年度電子產(chǎn)品分期購買與售后服務(wù)合同
- 2025年度人事代理與員工薪酬福利調(diào)整服務(wù)協(xié)議3篇
- 2025年高新技術(shù)企業(yè)授權(quán)合同簽訂委托書規(guī)范3篇
- 2025版新能源汽車租賃與智能交通控制系統(tǒng)合作框架協(xié)議3篇
- 2025年全球及中國垂直旋轉(zhuǎn)模塊行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國TGV玻璃芯基材行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025版城市更新項(xiàng)目土地使用權(quán)作價(jià)出資合作協(xié)議3篇
- 二零二五年度成都市二手房交易合同范本 正版官方規(guī)范修訂3篇
- 二零二五年度車隊(duì)運(yùn)輸保險(xiǎn)合作協(xié)議3篇
- 2025年中國南方航空股份有限公司招聘筆試參考題庫含答案解析
- 商務(wù)部發(fā)布《中國再生資源回收行業(yè)發(fā)展報(bào)告(2024)》
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測 (一)化學(xué)試題(含答案)
- 2025年福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版【初中數(shù)學(xué)】知識點(diǎn)總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學(xué)2023-2024學(xué)年七上期末數(shù)學(xué)試題(解析版)
- 咨詢公司績效工資分配實(shí)施方案
- 2024-2025學(xué)年人教版七年級英語上冊各單元重點(diǎn)句子
- 2025新人教版英語七年級下單詞表
- 公司結(jié)算資金管理制度
- 2024年小學(xué)語文教師基本功測試卷(有答案)
評論
0/150
提交評論