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

正文內(nèi)容

嵌入式linux編程入門與開發(fā)實例-第3章-閱讀頁

2025-06-01 06:45本頁面
  

【正文】 s h中 運(yùn)行 程序S D R A M中 運(yùn) 行 程 序匯 編 代 碼 區(qū) C 代 碼 區(qū)圖 33 Bootloader系統(tǒng)啟動方案流圖 UBoot 分析與移植 UBoot ( Universal Bootloader) , 即通用 Bootloader, 是遵循 GPL條款的開放源碼項目 。 其前身是由德國 DENX 軟件工程中心的Wolfgang Denk基于 8xxROM的源碼創(chuàng)建的 PPCBOOT工程 。 其目前要支持的目標(biāo)操作系統(tǒng)是OpenBSD, NetBSD, FreeBSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。 ? 較高的可靠性和穩(wěn)定性 。 ? 上電自檢功能: SDRAM、 Flash大小自動檢測,SDRAM故障檢測, CPU型號。 UBoot源碼結(jié)構(gòu): 從網(wǎng)站上下載得到 UBoot源碼包,例如: UBoot,解壓就可以得到全部 UBoot源程序。這些目錄中所要存放的文件有其規(guī)則,可以分為 4類。 ? 第 4類目錄是 UBoot的應(yīng)用程序、工具或者文檔。 頂層目錄下的 Makefile首先可以設(shè)置開發(fā)板的定義 , 然后遞歸地調(diào)用各級子目錄下的 Makefile, 最后把編譯過的程序鏈接成 UBoot映像 。 因為 Bootloader是完全依賴硬件平臺的 , 所以在新電路板上需要移植 UBoot程序 。 ( 2)創(chuàng)建一個新目錄存放開發(fā)板相關(guān)的代碼,并且添加文件。在能夠編譯通過的基礎(chǔ)上,還要實現(xiàn) UBoot的以太網(wǎng)接口、 Flash擦寫等功能。 VIVI 分析 VIVI是韓國 MIZI Research公司為其開發(fā)的SMDK2410開發(fā)板編寫的一款 Bootloader。 在下載模式下 , VIVI為用戶提供一個命令行接口 , 通過該接口可以使用 VIVI提供的一些命令 , 見表 33。 make menuconfig。 配置并保存后 , 使用 make命令開始編譯 VIVI。 VIVI包括下面幾個目錄 。 ? drivers:其中包括了引導(dǎo)內(nèi)核需要的設(shè)備的驅(qū)動程序 ( mtd和串口 ) 。 ? init:這個目錄只有 。 ? lib:一些平臺公共的接口代碼,比如 的 udelay( )和 mdelay( )。 platform/定義了與開發(fā)板相關(guān)的資源配置參數(shù),我們往往只需修改這個文件就可以配置目標(biāo)板的參數(shù),如波特率、引導(dǎo)參數(shù)、物理內(nèi)存映射等。 通常編譯嵌入式Linux內(nèi)核都是通過不同的 make命令來實現(xiàn)的 ,它的執(zhí)行配置文件就是通常所說的 Makefile,而不同的 Makefile又通過互相的依賴關(guān)系構(gòu)成一個統(tǒng)一的整體去完成建立依存關(guān)系 、 建立內(nèi)核等功能 。當(dāng)需要選擇下一個進(jìn)程運(yùn)行時,由調(diào)度程序選擇最值得運(yùn)行的進(jìn)程。 Linux使用了比較簡單的基于優(yōu)先級的進(jìn)程調(diào)度算法選擇新的進(jìn)程。Linux的內(nèi)存管理支持虛擬內(nèi)存 , 即在計算機(jī)中運(yùn)行的程序 , 其代碼 , 數(shù)據(jù) , 堆棧的總量可以超過實際內(nèi)存的大小 , 操作系統(tǒng)只是把當(dāng)前使用的程序塊保留在內(nèi)存中 , 其余的程序塊則保留在磁盤中 。 內(nèi)存管理從邏輯上分為硬件無關(guān)部分和硬件有關(guān)部分 。 虛擬文件系統(tǒng)( VirtualFileSystem,VFS) 隱藏了各種硬件的具體細(xì)節(jié),為所有的設(shè)備提供了統(tǒng)一的接口, VFS提供了多達(dá)數(shù)十種不同的文件系統(tǒng)。邏輯文件系統(tǒng)指Linux所支持的文件系統(tǒng),如 ext2,fat等,設(shè)備驅(qū)動程序指為每一種硬件控制器所編寫的設(shè)備驅(qū)動程序模塊。網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)設(shè)備驅(qū)動程序負(fù)責(zé)與硬件設(shè)備通訊,每一種可能的硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動程序。 各個子系統(tǒng)之間的依賴關(guān)系如下: ? 進(jìn)程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個子系統(tǒng)互相依賴。 ? 進(jìn)程間通信與內(nèi)存管理的關(guān)系:進(jìn)程間通信子系統(tǒng)要依賴內(nèi)存管理支持共享內(nèi)存通信機(jī)制,這種機(jī)制允許兩個進(jìn)程除了擁有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。 ? 內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)支持交換 ,交換進(jìn)程 (swapd)定期由調(diào)度程序調(diào)度 ,這也是內(nèi)存管理依賴于進(jìn)程調(diào)度的唯一原因 。 內(nèi)核的配置 Linux內(nèi)核的配置系統(tǒng)由 3部分組成: ? ( 1) Makefile:分布在 Linux內(nèi)核源代碼中的Makefile,定義 Linux內(nèi)核的編譯規(guī)則; ? ( 2)配置文件( ):給用戶提供配置選擇的功能。 內(nèi)核配置方法有以下幾種: ( 1) make config: 基于文本的最為傳統(tǒng)的配置界面 , 進(jìn)入命令行 , 可以一行一行的配置 ,該方法較煩瑣。 ( 3) make xconfig: 基于圖形窗口模式的配置界面 , Xwindow下推薦使用。 內(nèi)核編譯的過程 make clean make dep) make zImage 注意:如果在配置內(nèi)核時選擇了對內(nèi)核模塊的支持,還需要使用如下命令單獨(dú)地編譯內(nèi)核模塊: ? make modules 內(nèi)核的移植 ? 使某個平臺的代碼運(yùn)行在其他平臺上的過程就叫做移植 。 ? linux內(nèi)核主要由 5個子系統(tǒng)組成:進(jìn)程調(diào)度 、內(nèi)存管理 、 虛擬文件系統(tǒng) 、 網(wǎng)絡(luò)接口和進(jìn)程間通信 。 Linux內(nèi)核源代碼的分布如下 。 ? arch:這個子目錄包含了此核心源代碼所支持的硬件體系結(jié)構(gòu)相關(guān)的核心代碼。 ? include:這個目錄包括了核心的大多數(shù)include文件。 ? init:此目錄包含核心啟動代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下,如對應(yīng)于 X86的就是arch/i386/mm/ 。它又進(jìn)一步劃分成幾類設(shè)備驅(qū)動,每一種也有對應(yīng)的子目錄,如聲卡的驅(qū)動對應(yīng)于drivers/sound。 ? modules:此目錄包含已建好可動態(tài)加載的模塊。不同的文件系統(tǒng)有不同的子目錄對應(yīng),如 ext2文件系統(tǒng)對應(yīng)的就是 ext2子目錄。同時與處理器結(jié)構(gòu)相關(guān)代碼都放在 arch/*/kernel目錄下。里面的每個子目錄對應(yīng)于網(wǎng)絡(luò)的一個方面。與處理器結(jié)構(gòu)相關(guān)庫代碼被放在 arch/*/lib/目錄下。 ? Documentation:此目錄是一些文檔,起參考作用。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1