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

正文內(nèi)容

基于arm9的智能家居(編輯修改稿)

2024-07-25 04:13 本頁面
 

【文章內(nèi)容簡介】 檔齊全,易于解決各種問題;Linux在內(nèi)核結(jié)構(gòu)的設(shè)計中考慮適應(yīng)系統(tǒng)的可裁剪性的要求。Linux主要特點如下:(1) Linux是開放源碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者又是Linux開發(fā)的強大技術(shù)后盾。(2) Linux的內(nèi)核小、功能強大、運行穩(wěn)定、系統(tǒng)健壯、效率高。(3) Linux易于定制裁剪,在價格上極具競爭力。(4) Linux不僅支持x86CPU,還可以支持其他數(shù)十種CPU芯片。(5) 有大量的且不斷增加的開發(fā)工具,這些工具為嵌入式系統(tǒng)的開發(fā)提供了良好的開發(fā)環(huán)境。(6) Linux沿用了Unix的發(fā)展方式,遵循國際標準,可以方便地獲得眾多第三方軟硬件廠商的支持。(7) Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,它提供了對十兆/百兆/千兆以太網(wǎng)、無線網(wǎng)絡(luò)、令牌網(wǎng)、光纖網(wǎng)、衛(wèi)星網(wǎng)等多種聯(lián)網(wǎng)方式的全面支持。(8) 在圖像處理、文件管理及多任務(wù)支持等諸多方面,Linux的表現(xiàn)也都非常出色,不僅可以充當嵌入式系統(tǒng)的開發(fā)平臺,本身也是嵌入式系統(tǒng)應(yīng)用開發(fā)的好工具。綜上所述,正是由于嵌入式Linux具有源碼開放、移植簡易、資源內(nèi)容豐富、免費等優(yōu)點,使它在嵌入式控制領(lǐng)域越來越流行。更重要的是,由于嵌入式Linux與PC機的Linux源于同一套內(nèi)核代碼。只是裁剪的程度不同,這使得很多為PC機的開發(fā)的軟件經(jīng)過了再次的編譯后,也可以直接在嵌入式控制設(shè)備上工作,這使得它的軟件資源極大的豐富。 tftp與NFS服務(wù)器配置嵌入式系統(tǒng)開發(fā)多采用交叉開發(fā)模式,其中產(chǎn)生嵌入式軟件的平臺稱為宿主機,通常為PC電腦,運行嵌入式軟件的平臺稱為目標機。宿主機一般通過網(wǎng)絡(luò),USB,JTAG等方式將軟件下載到目標機。 tftp服務(wù)器的配置TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的用來在客戶機與服務(wù)器之間進行簡單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開銷不大的文件傳輸服務(wù)。 TFTP這種簡單的基于UDP的文件傳輸協(xié)議,通常只能用于小文件的傳輸。并且它不具備通常的FTP的許多功能,它只能從文件服務(wù)器上獲得或?qū)懭胛募?,不能列出目錄,也不能進行認證。在嵌入式開發(fā)中,tftp服務(wù)常用于通過從PC機服務(wù)端的tftp目錄中下載鏡像文件到目標開發(fā)板中,以待燒寫或運行。使用這種方式下載文件,操作方便、并且速度也挺快。 NFS服務(wù)器配置NFS(網(wǎng)絡(luò)文件系統(tǒng))為兩臺Linux主機之間的通訊提供了類似于Windows上共享目錄一樣的服務(wù),在嵌入式Linux開發(fā)中,Linux目標機經(jīng)常通過NFS方式訪問Linux宿主機上的文件,為了實現(xiàn)這種訪問,首先需要在Linux搭建NFS服務(wù)器。配置NFS服務(wù)器:vi /etc/exports,在打開的文件中添加如下一行:/home/S5driver/lesson8/rootfs *(rw,sync,no_root_squash)。此配置是為了讓目標板在完成掛載,進行相關(guān)測試。下面是對這一行代碼的解釋。/home/S5driver/lesson8/rootfs:共享的目錄*:允許訪問共享目錄的主機IP(rw,sync,no_root_squash):訪問權(quán)限 安裝交叉編譯器交叉編譯,簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。同一個體系結(jié)構(gòu)可以運行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運行。舉例來說,我們常說的x86 Linux平臺實際上是Intel x86體系結(jié)構(gòu)和Linux for x86操作系統(tǒng)的統(tǒng)稱;而x86 WinNT平臺實際上是Intel x86體系結(jié)構(gòu)和Windows NT for x86操作系統(tǒng)的簡稱。交叉編譯出來的程序,所要運行的目標環(huán)境中,各種資源,都相對有限,所以很難進行直接的本地編譯最常見的情況是:在進行嵌入式開發(fā)時,目標平臺,即嵌入式開發(fā)板,比如是最大主頻200MHz的ARM的CPU,加上32M的RAM,加上1G的Nand Flash等等。在如此相對比較緊張的硬件資源的前提下,在已經(jīng)運行了嵌入式Linux的前提下,是沒法很方便的,直接在嵌入式Linux下,去本地編譯,去在ARM的CPU下,編譯出來,供ARM的CPU可以運行的程序的。因為編譯,開發(fā),都需要相對比較多的CPU,內(nèi)存,硬盤等資源,而嵌入式開發(fā)上的那點資源,只夠嵌入式(Linux)系統(tǒng)運行的,沒太多剩余的資源,供你本地編譯。本設(shè)計采用的S3C2440是ARM體系的架構(gòu),而Linux屬于X86的架構(gòu),因此,需要用交叉編譯器將程序進行編譯,移植到ARM9上才能正常運行。 第5章 監(jiān)控系統(tǒng)的實現(xiàn) Bootloader的移植1. Bootloader簡介Bootloader是嚴重依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的Bootloader幾乎是不可能的。盡管如此,我們?nèi)钥梢詫ootloader歸納出一些通用的概念,以指導(dǎo)用戶特定的Bootloader設(shè)計與實現(xiàn)。簡單地說,Bootloader就是在操作系統(tǒng)內(nèi)核運行之前的一段小程序,通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序,因此整個系統(tǒng)的家在啟動任務(wù)就完全由Bootloader來完成。在專用的嵌入式板子運行GNU/Linux系統(tǒng)已經(jīng)變得越來越流行。一個嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃樗膫€層次:(1) Bootloader用來加載內(nèi)核。(2) Kernel為特定嵌入式開發(fā)板的定制內(nèi)核以及控制內(nèi)核引導(dǎo)系統(tǒng)的參數(shù)。(3) rootfs包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備上的文件系統(tǒng)。文件系統(tǒng)提供管理的各種配置文件以及系統(tǒng)執(zhí)行用戶應(yīng)用程序的運算環(huán)境。(4) user特定于用戶的應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個嵌入式圖形用戶界面。2. 常見Bootloader介紹Bootloader的編寫依賴于硬件。每種不同體系結(jié)構(gòu)的處理器都有不同的Bootloader。不過Bootloader的發(fā)展也趨于支持多種體系結(jié)構(gòu),比如Uboot從最初的只支持PowerPC,到目前同時支持PowerPC、ARM、MIPS、X86等多種體系結(jié)構(gòu)。除了依賴于處理器的體系結(jié)構(gòu)外,Bootloader實際上也依賴于具體的嵌入式板級設(shè)備的配置,也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種處理器而構(gòu)建的,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,通常也都需要對Bootloader進行移植工作。下面是對常見Bootloader的簡介。(1) Uboot這是現(xiàn)在使用最多的bootloader之一,是sourceforge上的一個開源項目。支持ARM,MIPS,PowerPC,x86等處理器,同時支持linux,VxWorks,NetBSD,QNX等操作系統(tǒng)。(2) PPCBoot這是德國DENX小組開發(fā)的用于多種嵌入式CPU的Bootloader引導(dǎo)程序。目前支持ARM,MIPS,PowerPC等處理器。(3) RedBootRedhat公司隨ECOS發(fā)布的一個開源項目??梢酝ㄟ^串口和以太網(wǎng)口與GDB進行通信和調(diào)試應(yīng)用程序。(4) ARMBoot這也是sourceforge上的一個開源項目,設(shè)計只針對ARM的處理器結(jié)構(gòu),所以在ARM內(nèi)核的平臺上移植比較方便。(5) BlobBlob(Boot Loader Object)是由JanDerk Bakker and Erik Mouw發(fā)布的,是專門為StrongARM 構(gòu)架下的LART設(shè)計的Boot Loader。Blob支持SA1100的LART主板,但用戶也可以自行修改移植。Blob也提供兩種工作模式,在啟動時處于正常的啟動加載模式,但是它會延時 10 秒等待終端用戶按下任意鍵而將 Blob 切換到下載模式。如果在 10 秒內(nèi)沒有用戶按鍵,則 Blob 繼續(xù)啟動 Linux內(nèi)核。(6) Vivi韓國mizi公司開發(fā)的bootloader,適用于ARM9的處理器。3. Uboot分析uboot是一個開源項目,全稱Universal Boot Loader,從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來。Uboot除了支持PowerPC系列的處理器外,還能支持MIPS、X8ARM、NIOS、XScale等諸多常用系列的處理器。這兩個特點正是uboot項目的開發(fā)目標,即支持盡可能多的嵌入式處理器和嵌入式操作系統(tǒng)。4. Uboot的目錄結(jié)構(gòu)uboot源碼目錄、編譯形式與Linux內(nèi)核很相似。不少uboot源碼就是相應(yīng)的Linux內(nèi)核源程序的簡化,特別是一些設(shè)備的驅(qū)動程序。下面是uboot的目錄結(jié)構(gòu):* board目標板相關(guān)文件,主要包含SDRAM、FLASH驅(qū)動;* mon 獨立于處理器體系結(jié)構(gòu)的通用代碼,如內(nèi)存大小探測與故障檢測;* cpu 與處理器相關(guān)的文件。如mpc8xx子目錄下含串口、網(wǎng)口、LCD驅(qū)動及中斷初始化等文件;* driver 通用設(shè)備驅(qū)動,如CFI FLASH驅(qū)動(目前對INTEL FLASH支持較好)* doc UBoot的說明文檔;* examples可在UBoot下運行的示例程序;,;* include UBoot頭文件;尤其configs子目錄下與目標板相關(guān)的配置頭文件是移植過程中經(jīng)常要修改的文件;* lib_xxx 處理器體系相關(guān)的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結(jié)構(gòu)相關(guān)的文件;* net 與網(wǎng)絡(luò)功能相關(guān)的文件目錄,如bootp,nfs,tftp;* post上電自檢文件目錄。尚有待于進一步完善;* rtc RTC驅(qū)動程序;* tools 用于創(chuàng)建UBoot SRECORD和BIN鏡像文件的工具; 內(nèi)核的移植Linux是一個具有完整功能的Unix操作系統(tǒng),并試圖把Unix各版本的優(yōu)勢于一身。 Linux操作系統(tǒng)主要由進程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口、進程間通信等幾個部分組成。運行命令:make menuconfig,出現(xiàn)如下界面: 按照自己板子的具體情況進行相關(guān)配置。配置完后運行make進行編譯,編譯完后生成zImage。 根文件系統(tǒng)制作簡單來說,根文件系統(tǒng)就是一種目錄結(jié)構(gòu)。根文件系統(tǒng)和普通的文件系統(tǒng)的區(qū)別在于:根文件系統(tǒng)要包括Linux啟動時所必須的目錄和關(guān)鍵性的文件。Linux支持多種文件系統(tǒng)類型,在嵌入式上常用的有:ROMFS、JFFSNFS、CRAMFS、YAFFS、UBIFS等。Linux引入了虛擬文件系統(tǒng)VFS(Virtual File System),為各類文件系統(tǒng)提供一個統(tǒng)一的操作界面和應(yīng)用編程接口在Linux系統(tǒng)中是通過mount命令來掛載不同的文件系統(tǒng)。使用NFS掛載根文件系統(tǒng)在開發(fā)板的串口控制臺輸入如下命令:setenv bootargs noinitrd console=ttySAC0,115200 init=/linuxrc root=/dev/nfs rw nfsroot=:/home/S5driver/lesson8/rootfs ip=:::::eth0:off下面是對上面代碼的解釋。(1) initrd, noinitrd當你沒有使用ramdisk啟動系統(tǒng)的時候,你需要使用noinitrd這個參數(shù),但是如果使用了的話,就需要指定initrd=r_addr,size, r_addr表示initrd在內(nèi)存中的位置,size表示initrd的大小。(2) console:console=tty使用虛擬串口終端設(shè)備。console=ttyS[,options]使用特定的串口,options可以是這樣的形式bbbbpnx,這里bbbb是指串口的波特率,p是奇偶位(從來沒有看過使用過),n是指的bits。根據(jù)當前的環(huán)境,有時用ttyS,有時用ttySAC,網(wǎng)上有人說,這是跟內(nèi)核的版本有關(guān),,但實際情況是官方文檔中也是使用ttyS,所以應(yīng)該是跟內(nèi)核版本沒有關(guān)聯(lián)的??梢圆榭碊ocumentation/。(3) initinit指定的是內(nèi)核啟起來后,進入系統(tǒng)中運行的第一個腳本,一般init=/linuxrc,或者init=/etc/preinit,preinit的內(nèi)容一般是創(chuàng)建console,null設(shè)備節(jié)點,運行init程序,掛載一些文件系統(tǒng)等等操作。請注意,很多初學者以為init=/linuxrc是固定寫法,其實不然,/linuxrc指的是/目錄下面的linuxrc腳本,一般是一個連接罷了。如果內(nèi)核找不到linurc文件,將會依次搜索/sbin/init,/etc/init,/bin/init,/bin/sh。(4) root:用來指定rootfs的位置,常見的情況有:root=/dev/ram rw root=/dev/ram0 rw。掛載成功會出現(xiàn)如圖所示現(xiàn)象。 boa服務(wù)器的移植boa服務(wù)器是一個小巧高效的web服務(wù)器,是一個運行于unix或linux下的,支持CGI的、適合于嵌入式系統(tǒng)的單任務(wù)的服務(wù)器,源代碼開放、性能高。boa是一種非常小巧的Web服務(wù)器,其可執(zhí)行代碼只有大約60KB左右。作為一種單任務(wù)Web服務(wù)器,boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發(fā)連接請求。但boa支持CGI,能夠為CGI程序fork出一個進程來執(zhí)行。Boa的設(shè)計目標是速度和安全。:瀏覽器CGI部分Web服務(wù)器應(yīng)用程序驅(qū)動程序硬件設(shè)備 boa服務(wù)器工作原理Video4Linux簡稱V4L[5]主要為系統(tǒng)的外圍視頻設(shè)備(如攝像頭,視頻捕捉卡等)提供與視頻應(yīng)用相關(guān)的接口函數(shù),它相當于在系統(tǒng)中關(guān)于視頻設(shè)備的驅(qū)動。在Linux中,視頻設(shè)備可當作是設(shè)備文件[6],能夠像操作普通文件一樣對其進行訪問,攝像頭設(shè)備對應(yīng)的文
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1