freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm信息發(fā)布平臺(tái)終端系統(tǒng)的構(gòu)建(編輯修改稿)

2025-07-15 16:57 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 從Flash上讀取數(shù)據(jù)與從RAM單元中讀取數(shù)據(jù)并沒(méi)有什么不同。 ⑤ 設(shè)置內(nèi)核啟動(dòng)參數(shù)在將內(nèi)核映像和根文件系統(tǒng)映像復(fù)制到RAM空間中后,就可以準(zhǔn)備啟動(dòng)linux內(nèi)核了。但是在調(diào)用內(nèi)核之前,應(yīng)該做一步準(zhǔn)備工作,即設(shè)置linux內(nèi)核的啟動(dòng)參數(shù)。(Tagged List)的形式來(lái)傳遞參數(shù)。啟動(dòng)參數(shù)標(biāo)記列表以標(biāo)記ATAG_CORE開(kāi)始,以標(biāo)記ATAG_NONE結(jié)束。每個(gè)標(biāo)記由被傳遞參數(shù)的tag_header結(jié)構(gòu)以及隨后的參數(shù)值數(shù)據(jù)結(jié)構(gòu)來(lái)組成。數(shù)據(jù)結(jié)構(gòu)tag和tag_header定義在linux內(nèi)核代碼的include/asm/。 ⑥ 調(diào)用內(nèi)核Bootloader調(diào)用linux內(nèi)核的方法是直接跳轉(zhuǎn)到內(nèi)核的第一條指令處,即直接跳轉(zhuǎn)到MEM_START+0X8000地址處。在跳轉(zhuǎn)時(shí),需要滿足以下條件。216。 CPU寄存器的設(shè)置:R0=0;R1=機(jī)器類(lèi)型ID;R2=啟動(dòng)參數(shù)標(biāo)記列表在RAM中的起始基地址。216。 CPU模式:必須禁止中斷,同時(shí)處理器必須為SVC模式。216。 Cache和MMU的設(shè)置:MMU必須關(guān)閉;指令Cache可以打開(kāi)也可以關(guān)閉;數(shù)據(jù)Cache必須關(guān)閉。 bootloader的種類(lèi)每種不同的CPU體系結(jié)構(gòu)都有不同的bootloader,通常bootloader與CPU之間是一對(duì)一的關(guān)系。但是,有些bootloader也同時(shí)支持多種體系結(jié)構(gòu)的CPU。目前l(fā)inux下開(kāi)放源碼的bootloader對(duì)各種體系結(jié)構(gòu)的支持情況。 bootloader支持的體系結(jié)構(gòu)名稱(chēng)說(shuō)明支持的體系結(jié)構(gòu)LILOLinux的磁盤(pán)引導(dǎo)加載程序X86LinuxBIOS以linux為基礎(chǔ)的BIOS替代品X86Blob來(lái)自LART計(jì)劃的引導(dǎo)程序ARMVIVI主要為S3C2410處理器引導(dǎo)linuxARMRedBoot以eCos為基礎(chǔ)的引導(dǎo)程序X86,ARM,MIPS,UBoot以PPCBoot和ARMBoot為基礎(chǔ)的通用引導(dǎo)程序X86,ARM,PowerPc uboot的介紹及移植最早是由DENX軟件工程中心的Wolfgang Denk基于8xxrom的源碼創(chuàng)建的PPCBOOT工程,并且不斷添加處理器的支持。后來(lái),Sysgo Gmbh把ppcboot移植到ARM平臺(tái)上,創(chuàng)建了ARMboot工程。然后以ppcboot工程和armboot工程為基礎(chǔ),創(chuàng)建了UBoot工程。 現(xiàn)在,UBoot作為通用的Bootloader,已經(jīng)成功地移植到包括PowerPC、ARM、X8MIPS體系結(jié)構(gòu)的上百種開(kāi)發(fā)板,已經(jīng)成為功能最多、靈活性最強(qiáng)并且開(kāi)發(fā)最積極的開(kāi)放源碼Bootloader。目前仍然由DENX的Wolfgang Denk維護(hù)。 uboot源碼結(jié)構(gòu)在uboot根目錄下有18個(gè)子目錄,分別存放和管理著不同的源程序。根據(jù)這些目錄存放的文件及其規(guī)則,可分為3類(lèi):第一類(lèi)目錄與處理器體系結(jié)構(gòu)和開(kāi)發(fā)板硬件直接相關(guān);如board,cpu,lib_x等等。第二類(lèi)目錄是一些通用的函數(shù)或者驅(qū)動(dòng)程序;如include,mon,drivers等等。第三類(lèi)目錄是uboot的應(yīng)用程序,工具或者文檔;如examples,tools,Doc等等。 uboot的配置,編譯和移植1  在頂層目錄Makefile中為開(kāi)發(fā)板添加新的配置選項(xiàng),mini2440_config : unconfig @$(MKCONFIG) $(@:_config=)arm arm920t mini2440 NULL s3c24x0arm: CPU的架構(gòu)(ARCH) arm920t: CPU的類(lèi)型(CPU),其對(duì)應(yīng)于cpu/arm920t子目錄。 mini2440: 開(kāi)發(fā)板的型號(hào)(BOARD),s3c24x0: 片上系統(tǒng)(SOC)。2  創(chuàng)建一個(gè)新目錄/board/mini2440存放開(kāi)發(fā)板的相關(guān)代碼,將/board/smdk2410/目錄下所有文件復(fù)制到/mini2440,并修改其中的相關(guān)文件,否則編譯會(huì)出錯(cuò)。cp rf /smdk2410/* /mini24403  為開(kāi)發(fā)板添加新的配置文件cp r include/configs/ /include/configs/4  配置開(kāi)發(fā)板make mini2440_config執(zhí)行該命令后。5  編譯ubootmake執(zhí)行該命令后,6  添加驅(qū)動(dòng)或者其他功能選項(xiàng)。,還不能在開(kāi)發(fā)板上啟動(dòng),也不能引導(dǎo)內(nèi)核,文件系統(tǒng);因此,還需添加一些驅(qū)動(dòng),完成uboot引導(dǎo)內(nèi)核和文件系統(tǒng)。添加Flash,SDRAM驅(qū)動(dòng),以太網(wǎng)口,usb,串口等驅(qū)動(dòng),以實(shí)現(xiàn)文件的下載,添加對(duì)文件系統(tǒng)的支持。7  調(diào)試uboot源代碼,直到uboot能夠在開(kāi)發(fā)板上正常啟動(dòng)并引導(dǎo)linux內(nèi)核。8  下載bootloader到開(kāi)發(fā)板, 所示,將打印bootloader,flash等信息,因?yàn)檫€沒(méi)有加載Linux內(nèi)核,所以停在booting Linux......處。 bootloader的啟動(dòng)信息4 linux內(nèi)核移植 linux內(nèi)核結(jié)構(gòu)Linux內(nèi)核主要由5個(gè)子系統(tǒng)組成:進(jìn)程調(diào)度,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)程間通信[6]。1  進(jìn)程調(diào)度(SCHED):控制進(jìn)程對(duì)CPU資源的使用。當(dāng)需要選擇下一個(gè)就緒進(jìn)程運(yùn)行時(shí),由調(diào)度進(jìn)程程序采取何時(shí)得調(diào)度策略,以保證個(gè)進(jìn)程能公平合理的訪問(wèn)CPU,同時(shí)保證內(nèi)核能響應(yīng)硬件操作。2  內(nèi)存管理(MM):允許多個(gè)進(jìn)程安全的共享主內(nèi)存區(qū)域。Linux的內(nèi)存管理支持虛擬內(nèi)存。既在計(jì)算機(jī)中運(yùn)行的程序,代碼,數(shù)據(jù),堆棧的總量可以超過(guò)實(shí)際內(nèi)存的大小,操作系統(tǒng)只是把當(dāng)前使用的程序塊保留在內(nèi)存中,其余的程序塊則保留在磁盤(pán)中。3  虛擬文件系統(tǒng)(VFS):用于支持對(duì)外部設(shè)備的驅(qū)動(dòng)和存儲(chǔ),其隱藏了各種硬件的具體細(xì)節(jié),為所有的設(shè)備提供了統(tǒng)一的借口。VFS提供了多達(dá)數(shù)十種不同的文件系統(tǒng),它可分為邏輯文件系統(tǒng)和設(shè)備驅(qū)動(dòng)程序。邏輯文件系統(tǒng)是指linux所支持的文件系統(tǒng),如ext2,fat等,設(shè)備驅(qū)動(dòng)程序指為每一種硬件控制器所編寫(xiě)的設(shè)備驅(qū)動(dòng)程序模塊。4  網(wǎng)絡(luò)接口(NET):提供了對(duì)各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的存取和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動(dòng)程序。網(wǎng)絡(luò)協(xié)議負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議;網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)與硬件設(shè)備通訊。每一種可能的硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動(dòng)程序。5  進(jìn)程間通信(IPC):用于支持多種進(jìn)程間相互通信。各個(gè)子系統(tǒng)間的關(guān)系如下:216。 進(jìn)程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個(gè)子系統(tǒng)互相依賴(lài)。在多道程序環(huán)境下,程序要運(yùn)行必須為之創(chuàng)建進(jìn)程,而創(chuàng)建進(jìn)程的第一件事情,就是將程序和數(shù)據(jù)裝入內(nèi)存。216。 進(jìn)程間通信與內(nèi)存管理的關(guān)系:進(jìn)程間通信子系統(tǒng)要依賴(lài)內(nèi)存管理支持共享內(nèi)存通信機(jī)制,這種機(jī)制允許兩個(gè)進(jìn)程除了擁有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。216。 虛擬文件系統(tǒng)與網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS),也利用內(nèi)存管理支持RAMDISK設(shè)備。216。 內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進(jìn)程(swapd)定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴(lài)于進(jìn)程調(diào)度的唯一原因。當(dāng)一個(gè)進(jìn)程存取的內(nèi)存映射被換出時(shí),內(nèi)存管理向文件系統(tǒng)發(fā)出請(qǐng)求,同時(shí),掛起當(dāng)前正在運(yùn)行的進(jìn)程。除了這些依賴(lài)關(guān)系外,內(nèi)核中的所有子系統(tǒng)還要依賴(lài)于一些共同的資源。這些資源包括所有子系統(tǒng)都用到的過(guò)程。例如:分配和釋放內(nèi)存空間的過(guò)程,打印警告或錯(cuò)誤信息的過(guò)程,還有系統(tǒng)的調(diào)試?yán)痰鹊取? Linux內(nèi)核結(jié)構(gòu) linux源碼結(jié)構(gòu),在頂層目錄下有許多子目錄,分別存放著各種內(nèi)核子系統(tǒng)或者文件。 Linux源碼目錄arch目錄包括所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU及與之相兼容體系結(jié)構(gòu)的子目錄。include目錄包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無(wú)關(guān)的頭文件在include/linux子目錄下。init目錄包含核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼)。這是研究核心如何工作的好起點(diǎn)。mm目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下。drivers目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。它又進(jìn)一步劃分成幾類(lèi)設(shè)備驅(qū)動(dòng),每一種有對(duì)應(yīng)的子目錄,如聲卡的驅(qū)動(dòng)對(duì)應(yīng)于drivers/sound。ipc目錄包含了核心進(jìn)程間的通信代碼。modules目錄存放了已建好的、可動(dòng)態(tài)加載的模塊。fs目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對(duì)應(yīng),如ext3文件系統(tǒng)對(duì)應(yīng)的就是ext3子目錄。Kernel內(nèi)核管理的核心代碼放在這里。同時(shí)與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。net目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面。lib目錄包含了核心的庫(kù)代碼,不過(guò)與處理器結(jié)構(gòu)相關(guān)的庫(kù)代碼被放在arch/*/lib/目錄下。scripts目錄包含用于配置核心的腳本文件。documentation目錄下是一些文檔,是對(duì)每個(gè)目錄作用的具體說(shuō)明。這兩個(gè)文件都是編譯時(shí)使用的輔助文件。仔細(xì)閱讀這兩個(gè)文件對(duì)弄清各個(gè)文件之間的聯(lián)系和依托關(guān)系很有幫助。另外有的目錄下還有Readme文件,它是對(duì)該目錄下文件的一些說(shuō)明,同樣有利于對(duì)內(nèi)核源碼的理解。 linux內(nèi)核的配置,編譯和移植Linux內(nèi)核配置系統(tǒng)可以生成內(nèi)核配置菜單,方便內(nèi)核配置。配置系統(tǒng)主要包括Makefile,Kconfig和配置工具,可以生成配置界面。配置界面是通過(guò)工具來(lái)生成的,工具通過(guò)Makefile編譯執(zhí)行,選項(xiàng)則是通過(guò)各級(jí)目錄的Kconfig文件來(lái)定義的[7]。Linux內(nèi)核配置命令有:make config,make menuconfig和make xconfig,分別是字符界面,ncurses光標(biāo)界面和Xwindow圖形窗口的配置界面。字符界面配置方式需要回答每一個(gè)選項(xiàng)提示,逐個(gè)回答內(nèi)核上千個(gè)選項(xiàng)幾乎是行不通的;圖形窗口的配置界面很好,光標(biāo)菜單也很實(shí)用。1  vi Linux/Makefileexport KBUILD_BUILDHOST := $(SUBARCH)ARCH ?= $(SUBARCH)CROSS_COMPILE ?=
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1