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

正文內容

基于arm遠程家居智能控制系統(tǒng)設計-資料下載頁

2024-11-10 03:56本頁面

【導讀】究成果,也不包含獲得蘭州交通大學或其他教育機構的學位或證書而使用過的材料。本學位論文作者完全了解蘭州交通大學有關保留、使用學位論文的規(guī)定。印、縮印或掃描等復制手段保存、匯編以供查閱和借閱。同意學校向國家有關部門或機。構送交論文的復印件和磁盤。電子信息技術推動了人類文明的巨大進步。化程度的提高,我們無時無刻不在享受科學技術給我們的生活帶來的方便。因此如何將信息技術應用到家居控制中,為人類提供高科技帶來的簡便而時。尚的現代生活,成為了一個新的課題。本文提出以三星S3C2410嵌入式處理器為核心處。設計了一種智能家居。從而實現了用戶對家居環(huán)境的智能無線監(jiān)控、遠程查詢、集中管理和遠程控制。智能家居控制平臺的搭建,嵌入式控制器及其外圍電路以及GPRS模塊做了詳細介紹。通過遠程家居智能控制系統(tǒng)不僅能實時監(jiān)控和查看用戶房屋內各。這樣不僅消除了存在和潛在的安全隱患,還可以節(jié)省能源的消耗,與國家提倡。的建設資源節(jié)約型社會相對應。

  

【正文】 的處理器的類型,并且將其保存到某個常量中以便提供給 Linux 內核使用。 Linux 內核在啟動的過程中會根據該處理器類型調用相應的初始化程序。 (4) 設置 Linux 的啟動參數, BootLoader 在執(zhí)行的過程中必須初始化和設置 Linux內核的啟動參數。目前給內核傳遞啟動參數主要采用兩種方式:即通過 struct 基于 ARM 遠程家居智能控制系統(tǒng)設計 14 param_struct 和 struct tag 這兩種結構傳遞 [8]。其中 struct param_struct 是一種比較老的參數傳遞方式,在 Linux 版本以前的內核中使用這種方式較多。從 版本以后的 Linux 內核基本上都采用標記列表的方式。但為了保持和以前版本的兼容性,它仍然支持 struct param_struct 參數傳遞的方式,只不過在內核啟動過程中它將被轉換成標記列表的方式。標記列表方式是一種比較新的參數傳遞方式,它必須以 ATAG_CORE 開始,并且以 ATAG_NONE 結尾。中間 段可以根據需要加入其他的列表。 Linux 內核在啟動過程中會根據設置的該啟動參數進行相應的初始化工作。 (5) 調用 Linux 內核映像,系統(tǒng)中 Bootloader 完成的最后一項工作便是調用 Linux的內核。如果 Linux 內核是存放在 Flash 中,并且可直接在上面運行,這里的 Flash 指Nor Flash,那么就可以直接跳轉到內核中去執(zhí)行。但是由于在 Flash 中執(zhí)行代碼會有種種的限制,而且執(zhí)行速度也遠遠不及在 RAM 中快,所以一般在嵌入式系統(tǒng)中都是將Linux 內核拷貝到 RAM 中,然后跳轉到 RAM 中去執(zhí)行。 不論是 哪種情況,在跳到 Linux 的內核執(zhí)行之前 CPU 的寄存器必須滿足以下條件:r0= 0, r1=處理器類型, r2=標記列表在 RAM 中的地址。 內核移植 Linux內核基礎知識 我們在進行 Linux 內核移植之前,非常有必要對 Linux 內核進行一下深入的了解,了解 Linux 內核在整個嵌入式系統(tǒng)中非常重要。接下來我們從 Linux 內核的版本和分類說起。 Linux 內核的版本號可以從源代碼的最頂層目錄下的 Makefile 中看到,比如在 內核的 Makefile 中: VERSION=2 PATCHLEVEL=6 SUBLEVEL=27 EXTRAVERSION=2 其中的 “VERSION”和 “PATCHLEVEL”這兩個組成 Linux內核的主版本號,例如 、 等。穩(wěn)定版本的主版本號用偶數來表示。比如 的內核就是 內核的穩(wěn)定版本。開發(fā)中的版本號用奇數表示,比如 它是下一個穩(wěn)內定版本內核的前身。“SUBLEVEL”稱之為次版本號,它不分奇偶,順序遞增,每隔 1~2 個月會發(fā)布一個穩(wěn)定版本。 “EXTRAVERSION”稱為擴展版本號,它不分奇偶,順序遞增 ,每周發(fā)布幾次擴展本版號 [19]。 蘭州交通大學碩士學位論文 15 什么是標準內核 按照資料上的習慣說法,標準內核或稱基礎內核,就是指主要是在 Linux 內核也是與平臺架構相關的[25]。這些 Linux 內核并不總是適用于所有 Linux 所支持的體系結構。在實際應用中,有些內核版并不是為一些嵌入式設備而準備的。并且也很少可以運行在某種嵌入式 Linux系統(tǒng)上。這些內核首先保證的是在基于 Intel X86 的體系結構上能夠正常的運行啟動,這些內核基于 X86 處理器的體系結構,比如對 內核的進行 make menuconfig配置的時侯我們就可以看到, Processor type and features中只有 38 48 58PentiumMMX、 PentiumClassic、 PentiumPro/Celeron/PentumII、 PentiumIII/Celeron、Pentium Athlon/Elan、 Crisoe、 WinchipC Winchip2A、 CyrixIII/C3 選項,其選項中并沒有像 S3C2410 等這樣芯片結構的支持。只有對內核進行補丁,才可以將其用在其它特定體系結構的處理器平臺上,構成新的支持嵌入式設備的內核。實際應用,內核下載站點中所提供的內核往往只是不同處理器體系結構補丁而已,我們只需要下載內核補丁,對內核進行打補丁而使得新內核可以支持我們的嵌入式系統(tǒng)的開發(fā)。因此原先在 x86平臺下的內核就被稱之為基礎內核,即標準內核了。 Linux內核的選擇 依據不同的體系結構選擇內核的版本是很困難的,應該與負責維護該 內核的小組時常保持聯系,方法是通過訂閱一些合適的郵件列表 maillist,并且查看郵件中相關的重要新聞,以及瀏覽一些關于內核的主要站點,可以得到該內核的最新發(fā)展動態(tài)。比如針對ARM 的 Linux 內核,可以訪問 并且訂閱該網站上提供的maillist 就可以了。如果你覺得查閱郵箱中的郵件列表耗費太多時間,那么至少每周訪問所關心的相關內核網站,并閱讀 Kernel Traffic 提供的過去一周中在內核郵件清單中發(fā)生的重要的摘要,網址為 這樣就可以得到相關 Linux 內核的最新信息。 并不是 Linux 內核的每個版本都適合做 ARMLinux 的移植,因此可以加入其郵件列表,以獲得內核版本所支持硬件的相關信息,列表中列出的資源可以幫你找到哪些沒有列出的功能以及可以被你的系統(tǒng)支持。 ARM Linux 的移植,建議使用 或 版本。 Linux 內核補丁可以到 ARM Linux 的 ftp( )下載。 編譯嵌入式 Linux內核 編譯內核需要遵守 以下步驟: 基于 ARM 遠程家居智能控制系統(tǒng)設計 16 (1) make dep。 make dep 的意思就是說,如果你使用程序 X,比如支持特殊設備,而需用到 Y,比如 Y 是 X 的一個模塊 /子程序。然而你在做 make config 的時候將一個設備的驅動程序由內核支持改變?yōu)?module 或者取消其支持,這樣將可能影響到 Y 的一個參數的設置,這時就需要重新編譯 Y,重新編譯或連接 X。如果程序數量非常多,你是很難手工完全做好此工作的。 make dep 的作用是讀取配置文件在配置過程生成的,通過配置文件創(chuàng)建相應的內核的依賴關系,從而根據依賴關系決定內核要編譯的相關模塊。因此 ,要執(zhí)行 make dep 命令一下在編譯內核的時候。 (2) make clean 。此命令的作用是清除一些以前留下的文件,例如以前編譯生成的目標文件等。這一步是必須要進行的,否則,即使是內核的配置改動過,編譯內核的時侯還是按照原來生成的目標文件進行連接,而不是生成改動后的文件。 (3) make zImage 生成內核的映像。在 Linux 中存在壓縮過的內核映像與沒有經過壓縮的內核映像兩種內核映像,經過壓縮的內核叫做 Image,另外將 Image 經過是壓縮后的叫做壓縮內核 zImage。根據是否是壓縮內核, Linux 內核的啟動的方式、過程也是不同的。 zImage 內核映像是內核是經過壓縮后形成的內核映像,因此它在存儲系統(tǒng)中所占空間比沒有經過壓縮的內核要小,但是為了使經過壓縮內核能夠正常啟動,必須要在系統(tǒng)起動的時候加上解壓縮內核的代碼,將經過壓縮后的內核解壓出之后才能夠正確執(zhí)行。但是嵌入式設備系統(tǒng)的一般存儲空間容量都比較小,對嵌入式設備來說采用壓縮內核可以占用相對較少的存儲空間,所以在嵌入式設備系統(tǒng)中大部分采用壓縮內核的方式。內核編譯完成后,會在內核的目錄 arch/arm/boot/下生成 zImage 內核的映像文件。 文件系統(tǒng)的移植 什么是文件系統(tǒng) 文件系統(tǒng)是包括在一個磁盤,包括光盤,閃盤,軟盤以及其他存儲設備或者分區(qū)中的目錄結構 [26]。在一個可應用的存儲設備中可以包含一個或者多個文件系統(tǒng)。如果想進入文件系統(tǒng),首先要做的是要先將文件系統(tǒng)掛載目標設備中。為了掛載文件系統(tǒng),必須要在目標設備中指定一個掛載點在掛載之前。 嵌入式系統(tǒng)中主要采用的文件系統(tǒng),在 Linux 中, rootfs 是最基本的根文件系統(tǒng)。在普通計算機上有直接掛載硬盤和 ramdisk 上的根文件系統(tǒng)。在嵌入式設備中一般從Flash 起動。最簡單的方 法是將 rootfs 直接載入的內存中。在就是從 Flash 直接讀取,并創(chuàng)建 YAFFS 等文件系統(tǒng)。 在操作系統(tǒng)中,用來管理用戶文件的內核軟件層稱為文件系統(tǒng)。用戶文件可能存放在網絡、磁盤或著是一些虛擬的文件。根文件系統(tǒng)是 Linux 操作系統(tǒng)中最為核心的部分,蘭州交通大學碩士學位論文 17 主要包括系統(tǒng)需要的軟件和庫,以及通過為用戶提供用戶使用的軟件和支持架構等并作為存儲數據的區(qū)域 [11]。由于嵌入式系統(tǒng)中存儲資源有限,如何有效利用存儲空間是在開發(fā)過程中所要考慮的。選擇合適的文件系統(tǒng)可以有效的解決這個問題。 Linux 操作系統(tǒng)中文件系統(tǒng)結構如圖 所示: 圖 Linux 文件系統(tǒng)結構 在 Linux 啟動的時侯,系統(tǒng)第一個必須掛載的是根文件系統(tǒng)。若是系統(tǒng)不能從指定的設備上掛載根文件系統(tǒng),則系統(tǒng)會報錯而退出啟動。之后可以自動或者手動掛載其它的文件系統(tǒng)。因此,一個系統(tǒng)中可以同時存在不同的文件系統(tǒng)。 可以被 Linux 操作系統(tǒng)所使用的文件系統(tǒng)一般包括以下幾個目錄,下 面分別對各個目錄在系統(tǒng)中的作用進行介紹: (1) /bin:引導啟動系統(tǒng)所需要的命令或用戶可能用的命令。 (2) /dev:驅動程序存放的目錄,包含外設的文件接口,可以再這里存放自己所編寫的驅動程序的代碼。在 Linux 操作系統(tǒng)中,系統(tǒng)中的每個設備都在 /dev 里有存在一個對應的設備文件。 (3) /etc:用戶數據存放目錄以及特定機器的配置文件,在內核運行后其中所有的內容通過 linuxrc 從 /mnt/etc 目錄中拷貝而得到。 (4) /lib:文件系統(tǒng)上的程序所需要的動態(tài)庫,存放系統(tǒng)最基本的庫文件。 基于 ARM 遠程家居智能控制系統(tǒng)設計 18 (5) /mnt:用于掛載設備安裝的目錄。通過 /mnt/etc/。是用戶用來臨時掛載文件系統(tǒng)的地方 (6) /sbin:系統(tǒng)管理員服務程序存放目錄其中最重要的是提供內核出始化后執(zhí)行的進程。系統(tǒng)起動時有 init 解析并執(zhí)行 /etc/inittab, inittab 會去調用一個系統(tǒng)初始化的程序。 嵌入式系統(tǒng)存儲設備及其管理機制分析 嵌入式系統(tǒng)的 Linux 文件系統(tǒng)的構建過程中,首先要考慮到兩方面的問題,一個是選擇什么類型的文件系統(tǒng),選擇什么樣的文件系統(tǒng)關系倒系統(tǒng)的大小, 讀寫的性能等。選擇合適的根文件系統(tǒng)。他關系到根文件系統(tǒng)所能提供的存儲容量大小及功能。嵌入式設備采用的是專門為嵌入式系統(tǒng)設計的存儲設備如存儲卡, Flash 芯片等。 Flash 存儲器是嵌入式設備中被廣泛使用的存儲器。他的主要特點事扇區(qū)整天擦除并且以字節(jié)為單位進行編程。 Flash 存儲器主要分為 NOR Flash 和 NAND Flash 兩種存儲類型。 表 NOR 閃存與 NAND 閃存比較 在 NAND Flash 和 NOR Flash 兩種技術中,比較結果如表 所示。通過表中的比較數據可以看以出 NOR Flash 可以直接操做存儲在上面的數據,應用程序可以直接在芯片中運行,以字節(jié)為單位操作傳輸速度很快。 NAND Flash 數據通過將塊為單位進行存NAND Flash NOR Flash 擦除速度快 接口時序同 SRAM,易使用 地址 /數據線復用,數據位較窄 讀取速度較快 讀取速度較慢 擦除速度慢 擦除速度快 寫入速度慢 順序讀取速度較快,隨機存取速度慢,適用于數據存儲 (如大容量的多媒體應用 )。在嵌入式系統(tǒng)中,常用于存放用戶文件系統(tǒng)等。 單片容量 小, 一般 132MB 單片容量 大, 8128MB,提高了單元密度 支持 XIP(eXecute In Place,芯片內執(zhí)行 ),適用于代碼存儲。在嵌入式系統(tǒng)中,常用于存放引導程序、根文件系統(tǒng)等。 蘭州交通大學碩士學位論文 19 儲,數據線跟地址線分離開來。而且兩者擦除方式,擦除操作也不相同。因此,必須針對 Flash 的硬件特性選擇,設計符合應用要求的文件系統(tǒng)必須充分考慮系統(tǒng)的需求,硬件設備等否則用作 Flash 的文件系統(tǒng)會有諸多弊端。 在構建嵌入式 Linux 系統(tǒng)過程中,為了盡可能避免使用不同的工具針對不同的技術而引起錯誤, Linux 內核引入了 MTD 子系 統(tǒng) (Memory Technology Device)[28]。通過 MTD提供了一個一致且統(tǒng)一的抽象接口在底層硬件和上層文件系統(tǒng)之間,即運行 Flash 存儲介質上的文件系統(tǒng)都是 MTD 驅動層基礎上的。使用 MTD 驅動程序在嵌入式系統(tǒng)中的主要優(yōu)點是對系統(tǒng)中存儲器而言,它對 Flash 型存儲器有更好的管理,擦除操作采用基于扇區(qū)的方式,簡單地讀 /寫操作接口,由此可以得出,內存驅動技術是專門針對各種非易失性的存儲器以閃存為主而設計的。 MTD 驅動可以支持將一塊 Flash 芯片上劃分為多個存儲分區(qū),可以為各個存儲分區(qū)建立不同的 文件系統(tǒng)格式。而兩塊 Flash 芯片也
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1