【正文】
x 中存在壓縮過的內(nèi)核映像與沒有經(jīng)過壓縮的內(nèi)核映像兩種內(nèi)核映像,經(jīng)過壓縮的內(nèi)核叫做 Image,另外將 Image 經(jīng)過是壓縮后的叫做壓縮內(nèi)核 zImage。內(nèi)核編譯完成后,會在內(nèi)核的目錄 arch/arm/boot/下生成 zImage 內(nèi)核的映像文件。為了掛載文件系統(tǒng),必須要在目標(biāo)設(shè)備中指定一個掛載點在掛載之前。最簡單的方 法是將 rootfs 直接載入的內(nèi)存中。根文件系統(tǒng)是 Linux 操作系統(tǒng)中最為核心的部分,蘭州交通大學(xué)碩士學(xué)位論文 17 主要包括系統(tǒng)需要的軟件和庫,以及通過為用戶提供用戶使用的軟件和支持架構(gòu)等并作為存儲數(shù)據(jù)的區(qū)域 [11]。若是系統(tǒng)不能從指定的設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會報錯而退出啟動。 (2) /dev:驅(qū)動程序存放的目錄,包含外設(shè)的文件接口,可以再這里存放自己所編寫的驅(qū)動程序的代碼。 基于 ARM 遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計 18 (5) /mnt:用于掛載設(shè)備安裝的目錄。 嵌入式系統(tǒng)存儲設(shè)備及其管理機(jī)制分析 嵌入式系統(tǒng)的 Linux 文件系統(tǒng)的構(gòu)建過程中,首先要考慮到兩方面的問題,一個是選擇什么類型的文件系統(tǒng),選擇什么樣的文件系統(tǒng)關(guān)系倒系統(tǒng)的大小, 讀寫的性能等。 Flash 存儲器是嵌入式設(shè)備中被廣泛使用的存儲器。通過表中的比較數(shù)據(jù)可以看以出 NOR Flash 可以直接操做存儲在上面的數(shù)據(jù),應(yīng)用程序可以直接在芯片中運(yùn)行,以字節(jié)為單位操作傳輸速度很快。在嵌入式系統(tǒng)中,常用于存放引導(dǎo)程序、根文件系統(tǒng)等。 在構(gòu)建嵌入式 Linux 系統(tǒng)過程中,為了盡可能避免使用不同的工具針對不同的技術(shù)而引起錯誤, Linux 內(nèi)核引入了 MTD 子系 統(tǒng) (Memory Technology Device)[28]。而兩塊 Flash 芯片也可以在。使用 MTD 驅(qū)動程序在嵌入式系統(tǒng)中的主要優(yōu)點是對系統(tǒng)中存儲器而言,它對 Flash 型存儲器有更好的管理,擦除操作采用基于扇區(qū)的方式,簡單地讀 /寫操作接口,由此可以得出,內(nèi)存驅(qū)動技術(shù)是專門針對各種非易失性的存儲器以閃存為主而設(shè)計的。而且兩者擦除方式,擦除操作也不相同。在嵌入式系統(tǒng)中,常用于存放用戶文件系統(tǒng)等。 Flash 存儲器主要分為 NOR Flash 和 NAND Flash 兩種存儲類型。他關(guān)系到根文件系統(tǒng)所能提供的存儲容量大小及功能。是用戶用來臨時掛載文件系統(tǒng)的地方 (6) /sbin:系統(tǒng)管理員服務(wù)程序存放目錄其中最重要的是提供內(nèi)核出始化后執(zhí)行的進(jìn)程。 (3) /etc:用戶數(shù)據(jù)存放目錄以及特定機(jī)器的配置文件,在內(nèi)核運(yùn)行后其中所有的內(nèi)容通過 linuxrc 從 /mnt/etc 目錄中拷貝而得到。因此,一個系統(tǒng)中可以同時存在不同的文件系統(tǒng)。選擇合適的文件系統(tǒng)可以有效的解決這個問題。 在操作系統(tǒng)中,用來管理用戶文件的內(nèi)核軟件層稱為文件系統(tǒng)。在普通計算機(jī)上有直接掛載硬盤和 ramdisk 上的根文件系統(tǒng)。在一個可應(yīng)用的存儲設(shè)備中可以包含一個或者多個文件系統(tǒng)。 zImage 內(nèi)核映像是內(nèi)核是經(jīng)過壓縮后形成的內(nèi)核映像,因此它在存儲系統(tǒng)中所占空間比沒有經(jīng)過壓縮的內(nèi)核要小,但是為了使經(jīng)過壓縮內(nèi)核能夠正常啟動,必須要在系統(tǒng)起動的時候加上解壓縮內(nèi)核的代碼,將經(jīng)過壓縮后的內(nèi)核解壓出之后才能夠正確執(zhí)行。這一步是必須要進(jìn)行的,否則,即使是內(nèi)核的配置改動過,編譯內(nèi)核的時侯還是按照原來生成的目標(biāo)文件進(jìn)行連接,而不是生成改動后的文件。 make dep 的作用是讀取配置文件在配置過程生成的,通過配置文件創(chuàng)建相應(yīng)的內(nèi)核的依賴關(guān)系,從而根據(jù)依賴關(guān)系決定內(nèi)核要編譯的相關(guān)模塊。 編譯嵌入式 Linux內(nèi)核 編譯內(nèi)核需要遵守 以下步驟: 基于 ARM 遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計 16 (1) make dep。如果你覺得查閱郵箱中的郵件列表耗費太多時間,那么至少每周訪問所關(guān)心的相關(guān)內(nèi)核網(wǎng)站,并閱讀 Kernel Traffic 提供的過去一周中在內(nèi)核郵件清單中發(fā)生的重要的摘要,網(wǎng)址為 這樣就可以得到相關(guān) Linux 內(nèi)核的最新信息。實際應(yīng)用,內(nèi)核下載站點中所提供的內(nèi)核往往只是不同處理器體系結(jié)構(gòu)補(bǔ)丁而已,我們只需要下載內(nèi)核補(bǔ)丁,對內(nèi)核進(jìn)行打補(bǔ)丁而使得新內(nèi)核可以支持我們的嵌入式系統(tǒng)的開發(fā)。在實際應(yīng)用中,有些內(nèi)核版并不是為一些嵌入式設(shè)備而準(zhǔn)備的?!癝UBLEVEL”稱之為次版本號,它不分奇偶,順序遞增,每隔 1~2 個月會發(fā)布一個穩(wěn)定版本。 Linux 內(nèi)核的版本號可以從源代碼的最頂層目錄下的 Makefile 中看到,比如在 內(nèi)核的 Makefile 中: VERSION=2 PATCHLEVEL=6 SUBLEVEL=27 EXTRAVERSION=2 其中的 “VERSION”和 “PATCHLEVEL”這兩個組成 Linux內(nèi)核的主版本號,例如 、 等。但是由于在 Flash 中執(zhí)行代碼會有種種的限制,而且執(zhí)行速度也遠(yuǎn)遠(yuǎn)不及在 RAM 中快,所以一般在嵌入式系統(tǒng)中都是將Linux 內(nèi)核拷貝到 RAM 中,然后跳轉(zhuǎn)到 RAM 中去執(zhí)行。中間 段可以根據(jù)需要加入其他的列表。其中 struct param_struct 是一種比較老的參數(shù)傳遞方式,在 Linux 版本以前的內(nèi)核中使用這種方式較多。 (3) 檢測處理器的類型,系統(tǒng)的 BootLoader 在調(diào)用 Linux 內(nèi)核之前必須要檢測系統(tǒng)的處理器的類型,并且將其保存到某個常量中以便提供給 Linux 內(nèi)核使用。初始化 RAM 的主要任務(wù)包括設(shè)置 CPU 的控制寄存器參數(shù),以便能夠正常使用 RAM以及可以檢測 RAM 大小等。而 Nand Flash并不支持 XIP,所以如果要想執(zhí)行 Nand Flash 上的代碼,必須先將其拷貝 到 RAM 中去,然后跳到 RAM 中去執(zhí)行。對于一般的嵌入式系統(tǒng),通常把 Flash 等非易失性存儲器映射到這個地址處,而 BootLoader 就位于該存儲器的最前端,所以系統(tǒng)在上電或者復(fù)位后執(zhí)行的第一段程序便是 BootLoader[1]。因此,在嵌入式系統(tǒng)幾乎不可能建立一個通用的 Bootloader,不同的處理器架構(gòu)都需要使用不同的 Bootloader來引導(dǎo)。在以 ARM 體系為結(jié)構(gòu)的系統(tǒng)中,當(dāng)系統(tǒng)上電或著系統(tǒng)復(fù)位的時侯, 0x00000000 處為程序開始執(zhí)行的地址,在這個位置存放的通常就是嵌入式系統(tǒng)的引導(dǎo)程序 BootLoader。我們所熟知的普通計算機(jī)中的引導(dǎo)程序一般都是由 BIOS 程序來引導(dǎo)。 ⑤ Linux 驅(qū)動豐富支持大量的周邊硬件設(shè)備。這意味著 Linux 操作系統(tǒng)在不同平臺間具有良好的可移植性。同時 Linux 內(nèi)核易于裁剪,嵌入式設(shè)備適合采用 Linux 作為所開發(fā)系統(tǒng)的操作系統(tǒng)。為了進(jìn)一步促進(jìn)這方面的應(yīng)用,在 內(nèi)核中,引入了很多非常有利于嵌入式應(yīng)用的功能。 (3) 選用 Linux 作為嵌入式系統(tǒng)的操作系統(tǒng)的優(yōu)勢。 內(nèi)存管理(軟件相關(guān),硬件相關(guān)) 進(jìn)程調(diào)度 網(wǎng)絡(luò)(網(wǎng)絡(luò)協(xié)議,硬件驅(qū)動) 虛擬文件系統(tǒng) 進(jìn)程間通信 蘭州交通大學(xué)碩士學(xué)位論文 11 ⑤ 進(jìn)程間通信: Linux 內(nèi)核提供了多種通信機(jī)制。 ④ 網(wǎng)絡(luò)接口:網(wǎng)絡(luò)接口提供了對各種網(wǎng)絡(luò)硬件設(shè)備的支持和對各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議的存取。 提供了一個統(tǒng)一的系統(tǒng)接口為硬件設(shè)備,虛擬文件系統(tǒng)還支持多種不同的文件系統(tǒng),這也是 Linux 操作系統(tǒng)一個比較獨特的特性。 圖 Linux 內(nèi)核功能結(jié)構(gòu) ② 內(nèi)存管理:可以允許多個進(jìn)程同時安全地共享內(nèi)存中的數(shù)據(jù)。操作系統(tǒng)內(nèi)核賴以生存的物質(zhì)條件為系統(tǒng)的硬件設(shè)備。 圖 Linux 內(nèi)核在操作系統(tǒng)中的位置。下面我們將詳細(xì)分析嵌入式 Linux 操作系統(tǒng)的特性,并闡述在智能家居控制中選擇嵌入式 Linux 作為操作系統(tǒng)的原因。對網(wǎng)絡(luò)功能的支持。這樣一方面不僅保證了系統(tǒng)安全運(yùn)行,同時也控制了系統(tǒng)的成本。 (3)嵌入式設(shè)備的系統(tǒng)要求系統(tǒng)開發(fā)具有高質(zhì)量、穩(wěn)定性等特點的程序代碼。為了 高程序的執(zhí)行速度和系統(tǒng)的穩(wěn)定性,嵌入式設(shè)備的操作系統(tǒng)一般固化于系統(tǒng)的存儲芯片中如 Nand Flash 或 Nor Flash 中等。通常在具有相當(dāng)豐富的人機(jī)接口在通用的計 算機(jī)上所運(yùn)行的一般操作系,因此在上面可以方便的開發(fā)應(yīng)用程序,甚至包括對計算機(jī)系統(tǒng)本身與計算機(jī)上操作系統(tǒng)的開發(fā)。其驅(qū)動使用串口的驅(qū)動程序,主要工作就是編寫串口的應(yīng)用程序,來實現(xiàn)短信息的接受和發(fā)送并存儲短信 息等功能。智能家居控制系統(tǒng) BootLoader 的移植,基于嵌入式的 內(nèi)核裁剪、移植?;谇度胧?Linux 操作系統(tǒng)出了本身體積較小特點以外,同時繼承了 Linux 操作系統(tǒng)一個重要的特性:采用模塊化的內(nèi)核,用戶可以選擇特定的內(nèi)核模塊根據(jù)不同的任務(wù),用戶可以根據(jù)自己需要裁減內(nèi)核,可以將不需要的部分去掉,減少內(nèi)核體積,從而從根本上解決了體積和功能的矛盾。 Linux 有著一套免費的完整開發(fā)和調(diào)試工具,通過 GUN 的 C 編譯器來對源程序進(jìn)行編譯,程序調(diào)試通過使用 GDB調(diào)試器來進(jìn)行調(diào)試。 (3) 實時性的要求 在嵌入式系統(tǒng)中重要的特性是要求操作系統(tǒng)要具有實時性。現(xiàn)在有很多家電業(yè)的芯片制造的廠家,都開始做基于 Linux 系統(tǒng)移植的工作,使自己的芯片可以很好支持 Linux 操作系統(tǒng)。 Linux 操做系統(tǒng)的優(yōu)點主要有: (1)免費獲取,源代碼公開 用戶不但可以通過網(wǎng)絡(luò), Linux 開源網(wǎng)站免費下載 Linux 操作系統(tǒng)源代碼使用,而且都能從許多開源的網(wǎng)站, Linux社區(qū)免費得到基于 Linux操作系的多數(shù)應(yīng)用程序。 Linux 從 1991 年問世到現(xiàn)在,己經(jīng)發(fā)展成為一個功能強(qiáng)大、設(shè)幾完善的操作系統(tǒng), Linux 操作系統(tǒng)已經(jīng)成為Microsoft 公司的 Windows 操作系統(tǒng)的強(qiáng)有力的競爭者。 TQ2410蘭州交通大學(xué)碩士學(xué)位論文 5 開發(fā)板支持 內(nèi)核。時鐘源采用 CPU 內(nèi)部的實時時鐘,帶有后備的鋰電池。兩個 RS232 串口。 主控系統(tǒng) ( S3C2410) GPRS 手機(jī) 攝像頭 SD 卡 溫度傳感器 紅外傳感器 INTERNET 個人 PC 基于 ARM 遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計 4 此遠(yuǎn)程家居智能控制系統(tǒng)中硬件上選用以 S3C2410A 為核心處理器的 TQ2410 開發(fā)板。 (3) 便捷的用戶監(jiān)控:用戶可以方便進(jìn)行遠(yuǎn)程監(jiān)控操作無論是在工作還是其他場所,用戶只需要一部手機(jī)或者一臺接入網(wǎng)絡(luò)的普通計算機(jī),便可以實現(xiàn)對系統(tǒng)中各個設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控的操作。 遠(yuǎn)程家居智能控制系統(tǒng)總體框圖如圖 所示。 (2)本地控制:用戶可以通過系統(tǒng)中的觸摸屏和鍵盤,來設(shè)定家庭中的各種設(shè)備的參數(shù),達(dá)到對家中各種設(shè)備本地監(jiān)控的目的。該智能家居控制系統(tǒng)保留了豐富的功能擴(kuò)展接口,通過對這些擴(kuò)展接口的擴(kuò)展,將來我們還可以實現(xiàn)安家電控制、安防和智能抄表等的實際應(yīng)用。然后,通過嵌入式系統(tǒng)的系統(tǒng)總線管理和控制系統(tǒng)中的各個可控終端設(shè)備 ,并且進(jìn)行數(shù)據(jù)處理、調(diào)節(jié)和設(shè)備自動控制。對于使用用戶來說,通過網(wǎng)絡(luò)登陸系統(tǒng),便可以對家中的各種情況進(jìn)行方便的監(jiān)控。該系統(tǒng)同時還具有以下優(yōu)點: 系統(tǒng)布控的區(qū)域廣闊,基于嵌入式 Web 服務(wù)器的視頻監(jiān)控系統(tǒng)是通過把 Web 服務(wù)器直接連接網(wǎng)絡(luò),沒有信號衰減和布線長度的限制,同時因為網(wǎng)絡(luò)是沒有距離限制概念的,因此拋棄了地域不同的概念,擴(kuò)大了布控的區(qū)域,使系統(tǒng)具備了可以幾乎無縫的無限擴(kuò)展的能力。但是隨著基于 PC 機(jī)的視頻監(jiān)控系統(tǒng)的發(fā)展,在實際應(yīng)用的過程中,也暴露出了一些系統(tǒng)方面的不足,主要是系統(tǒng)工作的不穩(wěn)定性等。s everincreasing pace of life today, there is a growing care home to us the convenience of smart, enjoy the hightech achievements. Therefore, how to apply information technologies to the home control, to bring mankind to provide a simple and stylish hightech modern life, has bee a new topic. This paper proposes a Samsung S3C2410 processor, embedded processor core, embedded LINUX operating system built home based on intelligent management platform. Design of an intelligent home control system, users INTERNET work or wireless access technologies such as mobile phones to access the family39。