




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、附件C:譯文基于ARM的嵌入式Linux關(guān)鍵技術(shù)研究摘要:目前,嵌入式Linux已經(jīng)成為嵌入式系統(tǒng)領(lǐng)域研究的重點(diǎn)。在本文中,我們著重對Linux內(nèi)核進(jìn)行分析。在分析的基礎(chǔ)上研究和探討嵌入式Linux的關(guān)鍵技術(shù),如基于ARM的Linux的移植方法,Linux實(shí)時性的提升,Linux設(shè)備驅(qū)動的開發(fā)技術(shù)等。通過關(guān)鍵技術(shù)的研究,我們建立自己的體系,為Linux應(yīng)用開發(fā)的打下一個良好的基礎(chǔ)。關(guān)鍵詞:嵌入式Linux;關(guān)鍵技術(shù);移植;實(shí)時性;設(shè)備驅(qū)動。I. 引言近年來,隨著信息技術(shù)的發(fā)展,嵌入式系統(tǒng)已被廣泛應(yīng)用于社會生活的各個方面,如移動計(jì)算設(shè)備,網(wǎng)絡(luò)設(shè)備,家電,儀器等。在各種嵌入式操作系統(tǒng)中,Linux
2、憑借其獨(dú)特的優(yōu)勢,在嵌入式領(lǐng)域占據(jù)著巨大份額,并已成為世界上第二大操作系統(tǒng)。Linux擁有開源和豐富的軟件資源,支持多線程,多用戶,多進(jìn)程,具有良好的可移植性,功能強(qiáng)大而穩(wěn)定。它支持許多的微處理器架構(gòu),硬件設(shè)備,圖形支持和通信協(xié)議等1。Linux作為可以修改的底層操作系統(tǒng),能滿足特定應(yīng)用的不同要求。Linux在嵌入式領(lǐng)域有很大的潛力,深受許多企業(yè)和科研單位的青睞。在嵌入式領(lǐng)域,Linux的研究涉及諸多關(guān)鍵技術(shù),如Linux內(nèi)核的分析和修改,Linux在不同的微處理器上的移植。由于Linux本身的特點(diǎn),它的實(shí)時性是不夠的,但在很多嵌入式領(lǐng)域,實(shí)時性能的要求都非常高,這就需要對Linux的實(shí)時性進(jìn)
3、行提升,所以實(shí)時技術(shù)是一種實(shí)用且意義重大研究課題。此外,還有嵌入式Linux設(shè)備驅(qū)動程序開發(fā)技術(shù)。Linux的這些技術(shù)的成熟直接影響有關(guān)領(lǐng)域的具體應(yīng)用,因此,嵌入式Linux技術(shù)的研究具有很好的價值和實(shí)際意義。II. Linux的內(nèi)核架構(gòu)Linux內(nèi)架結(jié)構(gòu)主要包括五個子系統(tǒng),進(jìn)程調(diào)度模塊,內(nèi)存管理模塊,文件系統(tǒng)模塊,進(jìn)程間通信模塊,網(wǎng)絡(luò)接口模塊,如圖1所示。圖1. Linux內(nèi)核模塊和關(guān)系圖圖1描述了各子系統(tǒng)之間的關(guān)系2。由于每個子系統(tǒng)需要依靠進(jìn)程調(diào)度來掛起或恢復(fù)進(jìn)程,所以進(jìn)程調(diào)度在模塊的中心。 進(jìn)程調(diào)度和內(nèi)存管理之間的關(guān)系:進(jìn)程調(diào)度和內(nèi)存管理之間的相互依存,在多道程序設(shè)計(jì)環(huán)境,進(jìn)程必須建立以
4、確保程序的運(yùn)行,進(jìn)程的創(chuàng)建需要首先將程序和數(shù)據(jù)裝入內(nèi)存。 進(jìn)程間通信和內(nèi)存管理之間的關(guān)系:進(jìn)程間通信子系統(tǒng)依賴內(nèi)存管理子系統(tǒng)以支持內(nèi)存共享通信機(jī)制,它允許兩個進(jìn)程不僅有一個私有空間,還可以存取共同的內(nèi)存區(qū)域。 虛擬文件系統(tǒng)和網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)使網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS),使內(nèi)存管理支持RAMDISK設(shè)備。 虛擬文件系統(tǒng)和內(nèi)存管理之間的關(guān)系:內(nèi)存管理使虛擬文件系統(tǒng)支持交換,交換進(jìn)程被調(diào)度器周期性調(diào)度。當(dāng)進(jìn)程訪問的內(nèi)存映像快要溢出時,內(nèi)存管理將請求發(fā)送到文件系統(tǒng),并掛起目前正在運(yùn)行的進(jìn)程。III. Linux內(nèi)核的移植嵌入式Linux移植分以下步驟:獲得源代碼;建設(shè)交叉編譯環(huán)
5、境;移植的Linux引導(dǎo)程序(UBOOT或VIVI),然后配置和編譯內(nèi)核,移植和加載嵌入式文件系統(tǒng),開發(fā)和調(diào)試應(yīng)用程序,下載程序;在本文中,主要介紹Linux內(nèi)核的移植。A. 修改Makefile修改內(nèi)核源代碼根目錄下的makefile文件,從而指定要為ARM架構(gòu)編譯的目標(biāo)代碼需,編譯使用的是ARM-LINUX交叉編譯器。在設(shè)計(jì)時,可以修改makefile文件,在其中添加以下兩行代碼。ARCH?=armCROSS COMPILE?= arm-linux-然后,設(shè)置PATH環(huán)境變量來尋找交叉編譯器工具鏈,然后將其添加/.bashrc。#Vi /.bashrcexport PATH =/bin:$
6、PATHB. 設(shè)置閃存分區(qū)閃存分區(qū)的支持是成功移植Linux內(nèi)核的關(guān)鍵。我們需要修改如下三個文件:1) 添加以下內(nèi)容到文件arc/arm/machs3c2410/devs.c中。#include<linuxlmtdlpartitions.h>#include <linuxlmtdlnand.h>#include <asmlarchlnand.h>建立NAND閃存的分區(qū)表,該表分為四個區(qū)域,分別存儲引導(dǎo)程序,內(nèi)核,rootfs和用戶文件系統(tǒng);添加NAND閃存分區(qū),并同時建立NAND閃存芯片的支持,最后,NAND閃存芯片添加完成并支持了NAND閃存驅(qū)動。另外,還
7、要修改arch/arm/machs3c2410/devs.C文件中的s3c_device_nand結(jié)構(gòu)體變量,同時添加對dev成員的賦值。2) 指定啟動時初始化內(nèi)核啟動時,可以依據(jù)對分區(qū)的設(shè)置進(jìn)行初始配置,然后修改arch/am4mach-s3c2410/machsmdk2410.e文件下的smdk2410_devices,指明初始化時包括在前面所設(shè)置的flash分區(qū)信息,并添加如下語句:&s3c_device_nand。3) 禁止Flash ECC校驗(yàn)內(nèi)核一般都是通過UBOOT寫到Nand Flash的。UBOOT則通過軟件ECC算法來產(chǎn)生ECC校驗(yàn)碼,這與內(nèi)核校驗(yàn)的ECC碼不一樣,
8、內(nèi)核中的ECC碼是由S3C2410中Nand Flash控制器產(chǎn)生的。所以這里選擇禁止內(nèi)核ECC校驗(yàn)。修改drivers/mtd/nand/s3c2410.c下的s3c2410_nand_init_chip()函數(shù),可在該函數(shù)體最后加上如下一條語句:chip->eccmode=NAND_ECC_NONE;C. 配置內(nèi)核配置內(nèi)核時,配置必要的功能和移除不必要的模塊1) 添加devfs配置當(dāng)內(nèi)核啟動時,為了使內(nèi)核支持devfs,且在/sbin/init運(yùn)行之前能自動掛載/dev為devfs文件系統(tǒng),應(yīng)修改fs/Keonfig文件,找到menu"Pseudo filesystems&
9、quot;并添加如下語句:config DEVFS_FSbool " Idev file system support (OBSOLETE)"default yconfig DEVFS_MOUNTbool "Automatically mount at boot"default ydepends on DEVFS_FS2) 內(nèi)核配置選項(xiàng)配置Linux內(nèi)核有好幾種方法,比如:make config, make menuconfig, make xconfig. 在本文中,我們采取“make menuconfig”來配置內(nèi)核。配置時,選擇的原則是編譯很少使用
10、的功能代碼成可裝載模塊,以減少內(nèi)核的長度和內(nèi)存消耗。經(jīng)常使用和與內(nèi)核密切相關(guān)的函數(shù)代碼可以直接編譯進(jìn)內(nèi)核。運(yùn)行“make menuconfig命令”,我們在smdk2410_defconfig的基礎(chǔ)之上配置內(nèi)核。S3C2410開發(fā)板,有幾個關(guān)鍵的配置,如配置可加載模塊,配置MTD子系統(tǒng),配置文件系統(tǒng)等3。D. 內(nèi)核的編譯和下載1) 內(nèi)核編譯內(nèi)核配置好后,就可以編譯內(nèi)核了。在編譯內(nèi)核之前,我們可以使用命令“make clean”,以清除以前編譯的殘留文件,例如目標(biāo)文件,模塊文件和臨時文件,然后使用命令“make dep”,該命令為Linux搜索并輸出源代碼的依賴,從而生成依賴文件,然后使用命令“
11、make zImage”編譯內(nèi)核。# make zImage編譯完成后,兩個內(nèi)核映像文件“Image”和“zImage”將在arch/arm/boot目錄生成,Image是正常大小的映像文件,zImage是壓縮后的映像文件。2) 內(nèi)核下載下載內(nèi)核之前,確保引導(dǎo)程序已被下載到ARM開發(fā)板。我們使用USB方式下載,用DNW啟動目標(biāo)板。輸入的命令“vivi>loadflash kernel u”,然后選擇zImage,就可以完成下載過程。IV. 實(shí)時性的改進(jìn)A Linux的實(shí)時性問題一般的Linux不是實(shí)時操作系統(tǒng),應(yīng)用程序缺乏實(shí)時性會是一個嚴(yán)重的問題。約束Linux操作系統(tǒng)實(shí)時性的因素,主要
12、包括以下幾點(diǎn)(4, 5)。1) 非搶占的內(nèi)核搶占可描述為以下過程,當(dāng)出現(xiàn)一個別比目前系統(tǒng)中正在運(yùn)行進(jìn)程更高優(yōu)先級的進(jìn)程時,系統(tǒng)會立即中斷正在運(yùn)行的進(jìn)程,并切換到高優(yōu)先級的進(jìn)程。2) 進(jìn)程同步和互斥Linux使用信號的方法來確保進(jìn)程同步與互斥。由于頻繁的鎖定和解鎖信號的操作會影響系統(tǒng)的整體性能,因此Linux采用粗糙的時鐘粒度的策略。信號的鎖定和解鎖操作會造成一個更長的時間間隔,所以系統(tǒng)往往不能滿足許多所需的硬實(shí)時應(yīng)用。3) 優(yōu)先級反轉(zhuǎn)Linux操作系統(tǒng)不提供優(yōu)先級繼承策略,所以優(yōu)先級反轉(zhuǎn)現(xiàn)象會使得高優(yōu)先級的實(shí)時進(jìn)程被低優(yōu)先級的進(jìn)程阻塞,從而導(dǎo)致執(zhí)行時間的不確定性。4) 時鐘粒度粗糙時鐘管理是操
13、作系統(tǒng)的脈搏,Linux任務(wù)調(diào)度器的時間精度不能滿足一些對時間精度要求嚴(yán)格的實(shí)時應(yīng)用。Linux的時鐘頻率是100Hz,時鐘周期為10ms,時鐘精度粗糙,這些都不能滿足實(shí)時性要求。5) 中斷處理在系統(tǒng)調(diào)用過程中,Linux經(jīng)常關(guān)閉中斷很長一段時間,以保護(hù)關(guān)鍵資源。這將增加中斷的延遲時間,阻塞要立即處理的高優(yōu)先級進(jìn)程,導(dǎo)致實(shí)時任務(wù)不能按計(jì)劃及時的執(zhí)行??傊琇inux是作為一個分時操作系統(tǒng),必須修改才后才能滿足實(shí)時性。B Linux內(nèi)核實(shí)時性的改進(jìn)目前,許多方法被用來實(shí)現(xiàn)Linux的實(shí)時性。在本文中,通過兩個方面改進(jìn)Linux的實(shí)時性:增加內(nèi)核的實(shí)時調(diào)度策略5。1) 雙內(nèi)核的方法在這種方法中,我
14、們采用兩個內(nèi)核,它們可以一起工作在相同的硬件平臺上,即,在硬件和普通Linux內(nèi)核之間添加一個小的實(shí)時內(nèi)核,它可以管理中斷,并提供一些必要的功能,比如建立低級別的任務(wù),中斷服務(wù)程序等。如圖2所示。圖2. Linux實(shí)時性支持的雙內(nèi)核結(jié)構(gòu)實(shí)時內(nèi)核層負(fù)責(zé)硬件管理,并提供實(shí)時任務(wù)管理,普通Linux內(nèi)核則作為實(shí)時內(nèi)核調(diào)度的最低優(yōu)先級任務(wù)(即空閑任務(wù))6。實(shí)時任務(wù)直接運(yùn)行在實(shí)時內(nèi)核上。沒有實(shí)時任務(wù)運(yùn)行時,調(diào)度普通Linux內(nèi)核。作為實(shí)時內(nèi)核,它并不總是關(guān)閉硬件中斷或接收中斷信號。當(dāng)需要處理的中斷信號時,實(shí)時進(jìn)程將搶占Linux內(nèi)核。如果需要通過普通的Linux內(nèi)核處理中斷信號,那么實(shí)時內(nèi)核將通過狀態(tài)標(biāo)
15、志位和中斷標(biāo)志捕獲中斷,然后傳遞中斷信號給普通Linux內(nèi)核。根據(jù)雙內(nèi)核結(jié)構(gòu),Linux內(nèi)核的修改主要包括幾個方面。添加控制點(diǎn)到內(nèi)核的實(shí)時性受影響的位置,從而Linux內(nèi)核可以被搶占且內(nèi)核搶占延遲減少。分解系統(tǒng)需要執(zhí)行較長時間,從而使實(shí)時任務(wù)隨時中斷非實(shí)時任務(wù)。2) 實(shí)時任務(wù)的調(diào)度策略針對不同的應(yīng)用程序采取不同的實(shí)時調(diào)度策略。因此,RTOS的調(diào)度類型直接關(guān)系到其應(yīng)用范圍。下面是普片的實(shí)時調(diào)度算法(5,6)。PD:基于優(yōu)先級的調(diào)度算法。TD:基于時間的進(jìn)程調(diào)度算法。SD:基于比例共享調(diào)度算法?;趦?yōu)先級的調(diào)度算法(PD):調(diào)度器在優(yōu)先級的基礎(chǔ)上尋找下一個需要執(zhí)行的任務(wù),調(diào)度算法可以劃分成以下兩種
16、類型:靜態(tài)優(yōu)先級調(diào)度算法和動態(tài)優(yōu)先級調(diào)度算法。靜態(tài)優(yōu)先級調(diào)度算法:這種算法給那些系統(tǒng)中得到運(yùn)行的所有進(jìn)程都靜態(tài)地分配一個優(yōu)先級。靜態(tài)優(yōu)先級的分配可以根據(jù)應(yīng)用的屬性來進(jìn)行,比如任務(wù)的周期,用戶優(yōu)先級,或者其它的預(yù)先確定的策略。動態(tài)優(yōu)先級調(diào)度算法:這種算法根據(jù)任務(wù)的資源需求來動態(tài)地分配任務(wù)的優(yōu)先級。EDF算法(最早截止期限優(yōu)先)是一種典型的動態(tài)優(yōu)先級調(diào)度算法,該算法根據(jù)就緒隊(duì)列中的各個任務(wù)的截止期限來分配優(yōu)先級,具有最近的截止期限的任務(wù)具有最高的優(yōu)先級?;跁r間的進(jìn)程調(diào)度算法(TD):這種調(diào)度算法本質(zhì)上是一種設(shè)計(jì)時就確定下來的離線的靜態(tài)調(diào)度方法。在系統(tǒng)設(shè)計(jì)階段,每一項(xiàng)任務(wù)的開始,切換以及結(jié)束時間等
17、,都必須事先做出明確的安排和設(shè)計(jì)?;诒壤墓蚕碚{(diào)度算法(SD):SD的基本思想可以描述如下:按照一定的權(quán)重(使用的CPU比例)調(diào)度一組需要調(diào)度的任務(wù),讓它們的執(zhí)行時間與它們的權(quán)重成正比。我們可以通過兩種方法實(shí)現(xiàn)基于比例的共享調(diào)度算法:當(dāng)各種就緒進(jìn)程出現(xiàn)在當(dāng)前調(diào)度隊(duì)列時,我們規(guī)范隊(duì)列的第一個頻率,并調(diào)度隊(duì)列中的進(jìn)程執(zhí)行。先后調(diào)度就緒隊(duì)列中的各個進(jìn)程以使其運(yùn)行,并根據(jù)每個進(jìn)程權(quán)重的分配指定運(yùn)行時間片。三種調(diào)度策略的綜合算法?,F(xiàn)在我們同時采用三種算法:基于優(yōu)先級的調(diào)度算法,基于時間的進(jìn)程調(diào)度算法和基于比例的共享調(diào)度算法。添加幾個任務(wù)調(diào)度屬性到每個任務(wù),如任務(wù)的優(yōu)先級別,任務(wù)的開始和完成時間,我們采
18、取這些屬性作為進(jìn)程調(diào)度的基礎(chǔ)5,再實(shí)現(xiàn)一個普通的調(diào)度框架,它支持各種調(diào)度算法,如圖3所示。圖3. 調(diào)度結(jié)構(gòu)從圖3我們可以看到,調(diào)整這些屬性的值,并且依據(jù)某種優(yōu)先級使用這些屬性值,調(diào)度器以其各自的優(yōu)勢來運(yùn)用這些類型的調(diào)度算法。這三種調(diào)度算法可以無縫集成在一起,首先為每個實(shí)時任務(wù)定義四個調(diào)度屬性,如優(yōu)先級,開始時間,結(jié)束時間和預(yù)算,不同的屬性對應(yīng)不同的調(diào)度策略。整個結(jié)構(gòu)分兩個模塊,調(diào)度屬性模塊和調(diào)度選項(xiàng)模塊6。屬性調(diào)度模塊分配多個屬性值給每個實(shí)時任務(wù),并通過這幾個屬性的值決定屬性優(yōu)先級,然后根據(jù)優(yōu)先級別選擇不同的調(diào)度策略去執(zhí)行任務(wù)。V. 設(shè)備驅(qū)動程序開發(fā)技術(shù)A. Linux設(shè)備驅(qū)動程序的分類和通用
19、性1) Linux設(shè)備驅(qū)動程序的分類Linux支持三種類型的硬件設(shè)備:字符設(shè)備,塊設(shè)備和網(wǎng)絡(luò)設(shè)備7。字符設(shè)備通常直接傳輸來自用戶進(jìn)程的不帶緩存的數(shù)據(jù)。塊設(shè)備的讀寫則以塊為單位,塊可以被隨機(jī)訪問。網(wǎng)絡(luò)設(shè)備在Linux中有著特殊的處理,它沒有被映射到文件系統(tǒng)的設(shè)備節(jié)點(diǎn),但要通過套接字接口獲取。字符設(shè)備和塊設(shè)備的主要不同在于,當(dāng)發(fā)送讀/寫請求給字符設(shè)備時,實(shí)際硬件I/O的操作立即發(fā)生;塊設(shè)備使用一個系統(tǒng)內(nèi)存作為操作實(shí)際I/O的緩沖存儲。2) Linux設(shè)備驅(qū)動程序的通用性實(shí)際上,所有的嵌入式Linux設(shè)備驅(qū)動程序都有一些共同特征。主要包括以下幾點(diǎn)7。讀/寫。幾乎所有的設(shè)備都有數(shù)據(jù)輸入和輸出。每個驅(qū)動
20、必須負(fù)責(zé)讀/寫操作,而讀/寫由驅(qū)動程序完成。OS定義讀/寫接口后,驅(qū)動程序就能完成特定的功能。當(dāng)驅(qū)動需要實(shí)現(xiàn)時,接口的讀/寫功能需要注冊到OS。中斷。操作系統(tǒng)必須提供響應(yīng)驅(qū)動中斷的能力。首先我們必須注冊中斷處理到系統(tǒng),在硬件中斷發(fā)生后,操作系統(tǒng)將調(diào)用驅(qū)動的處理程序。時鐘。在開發(fā)設(shè)備驅(qū)動時,經(jīng)常用到時鐘,操作系統(tǒng)必須為驅(qū)動提供計(jì)時機(jī)制,經(jīng)過預(yù)訂時間后,已注冊的時鐘函數(shù)將被調(diào)用。B. 嵌入式Linux設(shè)備驅(qū)動的元素驅(qū)動程序的開發(fā)是Linux內(nèi)核的開發(fā)。在完成一個設(shè)備驅(qū)動后,用戶可以動態(tài)加載或不加載設(shè)備驅(qū)動到內(nèi)核8。1) 模塊初始化函數(shù):Init_module()。該函數(shù)是一個默認(rèn)函數(shù),在各個內(nèi)核模
21、塊加載后會首先調(diào)用,它是模塊的一個入口點(diǎn)。Init_module()的作用是為稍后調(diào)用模塊函數(shù)作準(zhǔn)備。一般來說,設(shè)備的注冊在此函數(shù)內(nèi)完成,模塊加載后,內(nèi)核會知道設(shè)備的存在。2) 模塊卸載函數(shù)Cleanup_module()。該函數(shù)在模塊從內(nèi)核卸載時會調(diào)用,它將卸載之前注冊的函數(shù)。Cleanup_module()必須完全卸載內(nèi)核里注冊的功能函數(shù),此函數(shù)會撤銷所有init_module()的完成的事件。否則,當(dāng)下次調(diào)用這個模塊時,會造成重復(fù)函數(shù)名稱的錯誤。3) 設(shè)備驅(qū)動接口:file_operations。操作系統(tǒng)使用file_operations 結(jié)構(gòu)體來訪問設(shè)備驅(qū)動函數(shù),控制硬件。于各個設(shè)備操
22、作,設(shè)備驅(qū)動包含本身對應(yīng)的函數(shù)入口。結(jié)構(gòu)體file_operations 主要包含幾個功能諸如打開、讀、寫、釋放以及其他功能成員。C. 設(shè)備驅(qū)動的框架和開發(fā)流程1) 設(shè)備驅(qū)動框架在Linux設(shè)備驅(qū)動和內(nèi)核之間的接口可以分為三個部分:系統(tǒng)的啟動代碼,設(shè)備接口和內(nèi)核接口。如圖4所示。圖4. 設(shè)備驅(qū)動框架根據(jù)圖4(8,9),我們可以看出驅(qū)動與內(nèi)核之間的接口通過數(shù)據(jù)結(jié)構(gòu)“file_operations” 實(shí)現(xiàn)的;驅(qū)動與系統(tǒng)啟動之間的接口使用驅(qū)動來初始化各種設(shè)備;設(shè)備接口描述了驅(qū)動與設(shè)備之間如何交互。驅(qū)動程序有用一個數(shù)據(jù)結(jié)構(gòu)“file_operations”,其中包含的多數(shù)指針指向驅(qū)動。在啟動系統(tǒng)時,內(nèi)
23、核調(diào)用每個驅(qū)動的初始化函數(shù)來傳輸驅(qū)動的主要設(shè)備號和內(nèi)核程序中的地址結(jié)構(gòu)體指針。然后內(nèi)核通過主要的設(shè)備驅(qū)動號索引和訪問驅(qū)動的子程序,完成open(),read(),write()或其他操作。2) 嵌入式Linux設(shè)備驅(qū)動程序的開發(fā)流程。通常使用以下的開發(fā)流程。定義主設(shè)備號和次設(shè)備號,也可以動態(tài)得到它們。執(zhí)行驅(qū)動程序的初始化和刪除功能,如果驅(qū)動程序使用模塊的風(fēng)格,它會執(zhí)行模塊初始化和刪除功能。設(shè)計(jì)需要實(shí)現(xiàn)的文件操作,定義文件操作結(jié)構(gòu)。執(zhí)行所需的文件操作調(diào)用,如讀,寫等。執(zhí)行中斷服務(wù),把“equest_irq”注冊到內(nèi)核。編譯驅(qū)動程序到內(nèi)核中且使用命令“insmod”加載。生成設(shè)備節(jié)點(diǎn)文件。VI.
24、結(jié)論Linux操作系統(tǒng)已經(jīng)被成功地應(yīng)用于嵌入式領(lǐng)域,憑借著其強(qiáng)大的功能,開源等優(yōu)點(diǎn),成為嵌入式領(lǐng)域中的熱點(diǎn)。本文已經(jīng)深入分析了Linux內(nèi)核,討論了基于ARM平臺的內(nèi)核移植技術(shù)。根據(jù)Linux的實(shí)時性的一些問題,我們提出了一些項(xiàng)目的改進(jìn);此外,還討論了Linux設(shè)備驅(qū)動程序的通用性和開發(fā)流程。參考文獻(xiàn)1 Chen Lijun,"Understanding Linux kernel source code deeply"M,Beijing: Posts & Telecom Press. 2002.2 KAMAL R,"Embedded Systems Arc
25、hitecture,Programming andDesign" M,The McGraw2HiIl Companies.2006.3 Yang shuiqing,"Embedded Linux System Development for ARM"M,Publishing House of Electronics industry.2009.4 David Kalinsky,"Basic Concepts of Real-Time Operating Systems",D.Kalinsky Associates.2003.11.5 RED-Linux:for Real-Time and Embe
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何科學(xué)護(hù)理老年認(rèn)知障礙
- 針對工業(yè)互聯(lián)網(wǎng)平臺的2025年入侵檢測系統(tǒng):異常行為分析與優(yōu)化實(shí)踐報告
- 智能化升級改造對城市污水處理廠設(shè)備壽命影響研究報告
- 2025年農(nóng)業(yè)機(jī)械化智能化發(fā)展中的農(nóng)業(yè)產(chǎn)業(yè)結(jié)構(gòu)優(yōu)化與升級報告
- 2025年餐飲業(yè)會員營銷活動效果評估與客戶忠誠度增長報告
- 2025年“健康中國”戰(zhàn)略下醫(yī)療健康產(chǎn)業(yè)投資策略與風(fēng)險控制研究報告
- 量子計(jì)算技術(shù)在金融風(fēng)險模擬中的大數(shù)據(jù)分析與風(fēng)險管理研究報告
- 數(shù)字孿生在城市公共空間規(guī)劃中的互動體驗(yàn)設(shè)計(jì)報告
- 2025細(xì)胞治療臨床試驗(yàn)與審批流程中的臨床試驗(yàn)倫理審查倫理學(xué)案例報告
- 2025年旅游地產(chǎn)項(xiàng)目區(qū)域特色規(guī)劃與生態(tài)保護(hù)研究報告
- 學(xué)前兒童發(fā)展心理學(xué)-情感
- 二年級下冊數(shù)學(xué)教案 《生活中的大數(shù)》練習(xí)課 北師大版
- GB∕T 16762-2020 一般用途鋼絲繩吊索特性和技術(shù)條件
- 電網(wǎng)施工作業(yè)票模板
- 精選天津市初中地理會考試卷及答案
- T∕CAEPI 31-2021 旋轉(zhuǎn)式沸石吸附濃縮裝置技術(shù)要求
- 國家級高技能人才培訓(xùn)基地建設(shè)項(xiàng)目實(shí)施管理辦法
- 彩盒成品檢驗(yàn)標(biāo)準(zhǔn)
- 落地單排腳手架
- 高層購物中心AAC墻體板材施工方案
- 人教精通版小學(xué)英語五年級下冊期末測試
評論
0/150
提交評論