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

正文內(nèi)容

基于arm遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計(jì)(參考版)

2024-11-14 03:56本頁(yè)面
  

【正文】 而兩塊 Flash 芯片也可以在。使用 MTD 驅(qū)動(dòng)程序在嵌入式系統(tǒng)中的主要優(yōu)點(diǎn)是對(duì)系統(tǒng)中存儲(chǔ)器而言,它對(duì) Flash 型存儲(chǔ)器有更好的管理,擦除操作采用基于扇區(qū)的方式,簡(jiǎn)單地讀 /寫(xiě)操作接口,由此可以得出,內(nèi)存驅(qū)動(dòng)技術(shù)是專門針對(duì)各種非易失性的存儲(chǔ)器以閃存為主而設(shè)計(jì)的。 在構(gòu)建嵌入式 Linux 系統(tǒng)過(guò)程中,為了盡可能避免使用不同的工具針對(duì)不同的技術(shù)而引起錯(cuò)誤, Linux 內(nèi)核引入了 MTD 子系 統(tǒng) (Memory Technology Device)[28]。而且兩者擦除方式,擦除操作也不相同。在嵌入式系統(tǒng)中,常用于存放引導(dǎo)程序、根文件系統(tǒng)等。在嵌入式系統(tǒng)中,常用于存放用戶文件系統(tǒng)等。通過(guò)表中的比較數(shù)據(jù)可以看以出 NOR Flash 可以直接操做存儲(chǔ)在上面的數(shù)據(jù),應(yīng)用程序可以直接在芯片中運(yùn)行,以字節(jié)為單位操作傳輸速度很快。 Flash 存儲(chǔ)器主要分為 NOR Flash 和 NAND Flash 兩種存儲(chǔ)類型。 Flash 存儲(chǔ)器是嵌入式設(shè)備中被廣泛使用的存儲(chǔ)器。他關(guān)系到根文件系統(tǒng)所能提供的存儲(chǔ)容量大小及功能。 嵌入式系統(tǒng)存儲(chǔ)設(shè)備及其管理機(jī)制分析 嵌入式系統(tǒng)的 Linux 文件系統(tǒng)的構(gòu)建過(guò)程中,首先要考慮到兩方面的問(wèn)題,一個(gè)是選擇什么類型的文件系統(tǒng),選擇什么樣的文件系統(tǒng)關(guān)系倒系統(tǒng)的大小, 讀寫(xiě)的性能等。是用戶用來(lái)臨時(shí)掛載文件系統(tǒng)的地方 (6) /sbin:系統(tǒng)管理員服務(wù)程序存放目錄其中最重要的是提供內(nèi)核出始化后執(zhí)行的進(jìn)程。 基于 ARM 遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計(jì) 18 (5) /mnt:用于掛載設(shè)備安裝的目錄。 (3) /etc:用戶數(shù)據(jù)存放目錄以及特定機(jī)器的配置文件,在內(nèi)核運(yùn)行后其中所有的內(nèi)容通過(guò) linuxrc 從 /mnt/etc 目錄中拷貝而得到。 (2) /dev:驅(qū)動(dòng)程序存放的目錄,包含外設(shè)的文件接口,可以再這里存放自己所編寫(xiě)的驅(qū)動(dòng)程序的代碼。因此,一個(gè)系統(tǒng)中可以同時(shí)存在不同的文件系統(tǒng)。若是系統(tǒng)不能從指定的設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會(huì)報(bào)錯(cuò)而退出啟動(dòng)。選擇合適的文件系統(tǒng)可以有效的解決這個(gè)問(wèn)題。根文件系統(tǒng)是 Linux 操作系統(tǒng)中最為核心的部分,蘭州交通大學(xué)碩士學(xué)位論文 17 主要包括系統(tǒng)需要的軟件和庫(kù),以及通過(guò)為用戶提供用戶使用的軟件和支持架構(gòu)等并作為存儲(chǔ)數(shù)據(jù)的區(qū)域 [11]。 在操作系統(tǒng)中,用來(lái)管理用戶文件的內(nèi)核軟件層稱為文件系統(tǒng)。最簡(jiǎn)單的方 法是將 rootfs 直接載入的內(nèi)存中。在普通計(jì)算機(jī)上有直接掛載硬盤和 ramdisk 上的根文件系統(tǒng)。為了掛載文件系統(tǒng),必須要在目標(biāo)設(shè)備中指定一個(gè)掛載點(diǎn)在掛載之前。在一個(gè)可應(yīng)用的存儲(chǔ)設(shè)備中可以包含一個(gè)或者多個(gè)文件系統(tǒng)。內(nèi)核編譯完成后,會(huì)在內(nèi)核的目錄 arch/arm/boot/下生成 zImage 內(nèi)核的映像文件。 zImage 內(nèi)核映像是內(nèi)核是經(jīng)過(guò)壓縮后形成的內(nèi)核映像,因此它在存儲(chǔ)系統(tǒng)中所占空間比沒(méi)有經(jīng)過(guò)壓縮的內(nèi)核要小,但是為了使經(jīng)過(guò)壓縮內(nèi)核能夠正常啟動(dòng),必須要在系統(tǒng)起動(dòng)的時(shí)候加上解壓縮內(nèi)核的代碼,將經(jīng)過(guò)壓縮后的內(nèi)核解壓出之后才能夠正確執(zhí)行。在 Linux 中存在壓縮過(guò)的內(nèi)核映像與沒(méi)有經(jīng)過(guò)壓縮的內(nèi)核映像兩種內(nèi)核映像,經(jīng)過(guò)壓縮的內(nèi)核叫做 Image,另外將 Image 經(jīng)過(guò)是壓縮后的叫做壓縮內(nèi)核 zImage。這一步是必須要進(jìn)行的,否則,即使是內(nèi)核的配置改動(dòng)過(guò),編譯內(nèi)核的時(shí)侯還是按照原來(lái)生成的目標(biāo)文件進(jìn)行連接,而不是生成改動(dòng)后的文件。 (2) make clean 。 make dep 的作用是讀取配置文件在配置過(guò)程生成的,通過(guò)配置文件創(chuàng)建相應(yīng)的內(nèi)核的依賴關(guān)系,從而根據(jù)依賴關(guān)系決定內(nèi)核要編譯的相關(guān)模塊。然而你在做 make config 的時(shí)候?qū)⒁粋€(gè)設(shè)備的驅(qū)動(dòng)程序由內(nèi)核支持改變?yōu)?module 或者取消其支持,這樣將可能影響到 Y 的一個(gè)參數(shù)的設(shè)置,這時(shí)就需要重新編譯 Y,重新編譯或連接 X。 編譯嵌入式 Linux內(nèi)核 編譯內(nèi)核需要遵守 以下步驟: 基于 ARM 遠(yuǎn)程家居智能控制系統(tǒng)設(shè)計(jì) 16 (1) make dep。 ARM Linux 的移植,建議使用 或 版本。如果你覺(jué)得查閱郵箱中的郵件列表耗費(fèi)太多時(shí)間,那么至少每周訪問(wèn)所關(guān)心的相關(guān)內(nèi)核網(wǎng)站,并閱讀 Kernel Traffic 提供的過(guò)去一周中在內(nèi)核郵件清單中發(fā)生的重要的摘要,網(wǎng)址為 這樣就可以得到相關(guān) Linux 內(nèi)核的最新信息。 Linux內(nèi)核的選擇 依據(jù)不同的體系結(jié)構(gòu)選擇內(nèi)核的版本是很困難的,應(yīng)該與負(fù)責(zé)維護(hù)該 內(nèi)核的小組時(shí)常保持聯(lián)系,方法是通過(guò)訂閱一些合適的郵件列表 maillist,并且查看郵件中相關(guān)的重要新聞,以及瀏覽一些關(guān)于內(nèi)核的主要站點(diǎn),可以得到該內(nèi)核的最新發(fā)展動(dòng)態(tài)。實(shí)際應(yīng)用,內(nèi)核下載站點(diǎn)中所提供的內(nèi)核往往只是不同處理器體系結(jié)構(gòu)補(bǔ)丁而已,我們只需要下載內(nèi)核補(bǔ)丁,對(duì)內(nèi)核進(jìn)行打補(bǔ)丁而使得新內(nèi)核可以支持我們的嵌入式系統(tǒng)的開(kāi)發(fā)。這些內(nèi)核首先保證的是在基于 Intel X86 的體系結(jié)構(gòu)上能夠正常的運(yùn)行啟動(dòng),這些內(nèi)核基于 X86 處理器的體系結(jié)構(gòu),比如對(duì) 內(nèi)核的進(jìn)行 make menuconfig配置的時(shí)侯我們就可以看到, Processor type and features中只有 38 48 58PentiumMMX、 PentiumClassic、 PentiumPro/Celeron/PentumII、 PentiumIII/Celeron、Pentium Athlon/Elan、 Crisoe、 WinchipC Winchip2A、 CyrixIII/C3 選項(xiàng),其選項(xiàng)中并沒(méi)有像 S3C2410 等這樣芯片結(jié)構(gòu)的支持。在實(shí)際應(yīng)用中,有些內(nèi)核版并不是為一些嵌入式設(shè)備而準(zhǔn)備的。 蘭州交通大學(xué)碩士學(xué)位論文 15 什么是標(biāo)準(zhǔn)內(nèi)核 按照資料上的習(xí)慣說(shuō)法,標(biāo)準(zhǔn)內(nèi)核或稱基礎(chǔ)內(nèi)核,就是指主要是在 Linux 內(nèi)核也是與平臺(tái)架構(gòu)相關(guān)的[25]。“SUBLEVEL”稱之為次版本號(hào),它不分奇偶,順序遞增,每隔 1~2 個(gè)月會(huì)發(fā)布一個(gè)穩(wěn)定版本。比如 的內(nèi)核就是 內(nèi)核的穩(wěn)定版本。 Linux 內(nèi)核的版本號(hào)可以從源代碼的最頂層目錄下的 Makefile 中看到,比如在 內(nèi)核的 Makefile 中: VERSION=2 PATCHLEVEL=6 SUBLEVEL=27 EXTRAVERSION=2 其中的 “VERSION”和 “PATCHLEVEL”這兩個(gè)組成 Linux內(nèi)核的主版本號(hào),例如 、 等。 內(nèi)核移植 Linux內(nèi)核基礎(chǔ)知識(shí) 我們?cè)谶M(jìn)行 Linux 內(nèi)核移植之前,非常有必要對(duì) Linux 內(nèi)核進(jìn)行一下深入的了解,了解 Linux 內(nèi)核在整個(gè)嵌入式系統(tǒng)中非常重要。但是由于在 Flash 中執(zhí)行代碼會(huì)有種種的限制,而且執(zhí)行速度也遠(yuǎn)遠(yuǎn)不及在 RAM 中快,所以一般在嵌入式系統(tǒng)中都是將Linux 內(nèi)核拷貝到 RAM 中,然后跳轉(zhuǎn)到 RAM 中去執(zhí)行。 (5) 調(diào)用 Linux 內(nèi)核映像,系統(tǒng)中 Bootloader 完成的最后一項(xiàng)工作便是調(diào)用 Linux的內(nèi)核。中間 段可以根據(jù)需要加入其他的列表。但為了保持和以前版本的兼容性,它仍然支持 struct param_struct 參數(shù)傳遞的方式,只不過(guò)在內(nèi)核啟動(dòng)過(guò)程中它將被轉(zhuǎn)換成標(biāo)記列表的方式。其中 struct param_struct 是一種比較老的參數(shù)傳遞方式,在 Linux 版本以前的內(nèi)核中使用這種方式較多。 (4) 設(shè)置 Linux 的啟動(dòng)參數(shù), BootLoader 在執(zhí)行的過(guò)程中必須初始化和設(shè)置 Linux內(nèi)核的啟動(dòng)參數(shù)。 (3) 檢測(cè)處理器的類型,系統(tǒng)的 BootLoader 在調(diào)用 Linux 內(nèi)核之前必須要檢測(cè)系統(tǒng)的處理器的類型,并且將其保存到某個(gè)常量中以便提供給 Linux 內(nèi)核使用。 Linux 在啟動(dòng)過(guò)程中可以將系統(tǒng)信息通過(guò)串口輸出,這樣便可恨清楚的了解 Linux 的啟動(dòng)過(guò)程。初始化 RAM 的主要任務(wù)包括設(shè)置 CPU 的控制寄存器參數(shù),以便能夠正常使用 RAM以及可以檢測(cè) RAM 大小等。也可以設(shè)計(jì)得很簡(jiǎn)單,只是完成最基本的功能。而 Nand Flash并不支持 XIP,所以如果要想執(zhí)行 Nand Flash 上的代碼,必須先將其拷貝 到 RAM 中去,然后跳到 RAM 中去執(zhí)行。 嵌入式系統(tǒng)中廣泛采用的非易失性存儲(chǔ)器通常是 Flash,而 Flash 又分為 Nor Flash和 Nand Flash 兩種。對(duì)于一般的嵌入式系統(tǒng),通常把 Flash 等非易失性存儲(chǔ)器映射到這個(gè)地址處,而 BootLoader 就位于該存儲(chǔ)器的最前端,所以系統(tǒng)在上電或者復(fù)位后執(zhí)行的第一段程序便是 BootLoader[1]。對(duì)于兩塊不同的嵌入式的板來(lái)說(shuō),即使使用統(tǒng)一種處理器,要想使一塊板上的 Bootloader能夠在另一塊板上運(yùn)行,一般也都需要修改 Bootloader 的源代碼。因此,在嵌入式系統(tǒng)幾乎不可能建立一個(gè)通用的 Bootloader,不同的處理器架構(gòu)都需要使用不同的 Bootloader來(lái)引導(dǎo)。 換而言之,通過(guò)執(zhí)行系統(tǒng)中 Bootloader 這段小程序,我們可以將系統(tǒng)中的硬件設(shè)備進(jìn)行初始化、建立內(nèi)存空間的映射表,從而建立適當(dāng)?shù)南到y(tǒng)軟硬件環(huán)境將系統(tǒng)的軟硬件環(huán)境設(shè)置到一個(gè)適合的狀態(tài),并為最終調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備,起到真正達(dá)到引導(dǎo)和加載內(nèi)核的目的。在以 ARM 體系為結(jié)構(gòu)的系統(tǒng)中,當(dāng)系統(tǒng)上電或著系統(tǒng)復(fù)位的時(shí)侯, 0x00000000 處為程序開(kāi)始執(zhí)行的地址,在這個(gè)位置存放的通常就是嵌入式系統(tǒng)的引導(dǎo)程序 BootLoader。一般的是將 BootLoader 程序裝進(jìn) RAM 中,然后在RAM 中執(zhí)行程序,這有點(diǎn)類似于 BIOS,但是功能方面比 BIOS 要弱的很多 [28]。我們所熟知的普通計(jì)算機(jī)中的引導(dǎo)程序一般都是由 BIOS 程序來(lái)引導(dǎo)。 智能家居系統(tǒng)中 Bootloader 的移植 Bootloader 的基本概念 開(kāi)發(fā)一個(gè)基與嵌入式 Linux操作系統(tǒng)的系統(tǒng)從軟件看通常可以將系統(tǒng)分成為四個(gè)步驟:引導(dǎo)加載程序、 Linux 內(nèi)核、文件系統(tǒng)、用戶應(yīng)用程序 [32]。 ⑤ Linux 驅(qū)動(dòng)豐富支持大量的周邊硬件設(shè)備。 Linux 繼承了 UNIX 操作系統(tǒng)的特點(diǎn),所以這確保了它所支持的所有標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議并且可以開(kāi)發(fā)成為基于嵌入式的 TCP/IP 網(wǎng)絡(luò)協(xié)議棧利用 Linux 的網(wǎng)絡(luò)協(xié)議棧。這意味著 Linux 操作系統(tǒng)在不同平臺(tái)間具有良好的可移植性。 Linux 無(wú)論是在 CISC 還是 SISC 體系結(jié)構(gòu)下, 32位或者 64 位的處理器上 Linux 都可以運(yùn)行 [17]。同時(shí) Linux 內(nèi)核易于裁剪,嵌入式設(shè)備適合采用 Linux 作為所開(kāi)發(fā)系統(tǒng)的操作系統(tǒng)。 ② Linux 有功能強(qiáng)大的內(nèi)核,而且內(nèi)核的性能穩(wěn)定、高效、多任務(wù)。為了進(jìn)一步促進(jìn)這方面的應(yīng)用,在 內(nèi)核中,引入了很多非常有利于嵌入式應(yīng)用的功能。 Linux 上的有十分豐富的軟件資源,并且軟件每天都在 更新。 (3) 選用 Linux 作為嵌入式系統(tǒng)的操作系統(tǒng)的優(yōu)勢(shì)。 Linux 操作系統(tǒng),可以支持多種不通的進(jìn)程值間的通信機(jī)制。 內(nèi)存管理(軟件相關(guān),硬件相關(guān)) 進(jìn)程調(diào)度 網(wǎng)絡(luò)(網(wǎng)絡(luò)協(xié)議,硬件驅(qū)動(dòng)) 虛擬文件系統(tǒng) 進(jìn)程間通信 蘭州交通大學(xué)碩士學(xué)位論文 11 ⑤ 進(jìn)程間通信: Linux 內(nèi)核提供了多種通信機(jī)制。負(fù)責(zé)系統(tǒng)與具體的硬件設(shè)備進(jìn)行相互的通信是網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,每一種硬件設(shè)備都存 在與之相互對(duì)應(yīng)的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序。 ④ 網(wǎng)絡(luò)接口:網(wǎng)絡(luò)接口提供了對(duì)各種網(wǎng)絡(luò)硬件設(shè)備的支持和對(duì)各種網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議的存取。設(shè)備驅(qū)動(dòng)程序是指特定編寫(xiě)的設(shè)備驅(qū)動(dòng)程序模塊為某一硬件的支持。 提供了一個(gè)統(tǒng)一的系統(tǒng)接口為硬件設(shè)備,虛擬文件系統(tǒng)還支持多種不同的文件系統(tǒng),這也是 Linux 操作系統(tǒng)一個(gè)比較獨(dú)特的特性。硬件無(wú)關(guān)部分主要提供了進(jìn)程間的映射和虛擬內(nèi)存技術(shù),硬件相關(guān)部分主要為系統(tǒng)管理硬件設(shè)備提供虛擬接口,可以簡(jiǎn)化系統(tǒng)對(duì)硬件的操作。 圖 Linux 內(nèi)核功能結(jié)構(gòu) ② 內(nèi)存管理:可以允許多個(gè)進(jìn)程同時(shí)安全地共享內(nèi)存中的數(shù)據(jù)。 (2) Linux 內(nèi)核由 5 個(gè)功能相互聯(lián)系的主要的子模塊構(gòu)成,如圖 所示為 Linux 內(nèi)核功能結(jié)構(gòu): ① 進(jìn)程調(diào)度:控制著各個(gè)進(jìn)程 對(duì) CPU 的訪問(wèn),由進(jìn)程調(diào)度程序選擇優(yōu)先級(jí)高的進(jìn)程根據(jù)系統(tǒng)設(shè)置的進(jìn)程調(diào)度算法。操作系統(tǒng)內(nèi)核賴以生存的物質(zhì)條件為系統(tǒng)的硬件設(shè)備。我們之所以將用戶進(jìn)程也那入操作系統(tǒng)的范圍是因?yàn)椴僮飨到y(tǒng)于用戶進(jìn)程的運(yùn)行狀態(tài)有著密切的聯(lián)系。 圖 Linux 內(nèi)核在操作系統(tǒng)中的位置。 Linux 操作系統(tǒng)的內(nèi)核主要包含五大部分內(nèi)容:進(jìn)程調(diào)度、進(jìn)程間通信、內(nèi)存管理、虛擬文件系統(tǒng)和網(wǎng)絡(luò)接口,我們也稱之為 Linux 操作系統(tǒng)的五個(gè)子系統(tǒng) [6]。下面我們將詳細(xì)分析嵌入式 Linux 操作系統(tǒng)的特性,并闡述在智能家居控制中選擇嵌入式 Linux 作為操作系統(tǒng)的原因。系統(tǒng)中應(yīng)用軟件的可靠性以及其執(zhí)行效率性能等等。對(duì)網(wǎng)絡(luò)功能的支持。典型的嵌入式操作系統(tǒng)有windowsCE, PowerPc、 PalmOS, Vxworks, uClin
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1