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

正文內(nèi)容

基于嵌入式的網(wǎng)絡視頻監(jiān)控系統(tǒng)研究(編輯修改稿)

2025-07-16 12:59 本頁面
 

【文章內(nèi)容簡介】 被禁止,為此NAND Flash存儲器的最開始的4KByte空間必須是連續(xù)沒有壞塊的。 SBC2410硬件資源SBC2410開發(fā)板是基于三星公司的ARM處理器S3C2410X,采用6層板設計。開發(fā)板集成了64M SDRAM、64M Nand Flash、1M Boot Flash、RJ45網(wǎng)卡、音頻輸入與輸出、USB Host、USB slave、標準串口、SD卡插座、用戶按鍵和一些用戶燈等設備接口,并且引出CPU的大部分信號引腳。核心板上同時具有Nor Flash和Nand Flash,可以通過調(diào)線BOOT SEL選擇啟動方式(Nor Fl ash啟動或Nand Fl ash啟動),對應的硬件資源[8]。 SBC2410硬件資源表 主機開發(fā)環(huán)境的搭建進行嵌入式開發(fā),首先要搭建一套完善的開發(fā)環(huán)境,這套開發(fā)環(huán)境包括操作系統(tǒng)以及連接器、編譯器和調(diào)試器在內(nèi)的軟件開發(fā)工具。由于在嵌入式開發(fā)板上資源有限,不能在開發(fā)板上運行開發(fā)工具和調(diào)試工具,因而采用一種交叉編譯調(diào)試環(huán)境,即在宿主機(通常是PC主機)上建立交叉編譯調(diào)試環(huán)境,生成可執(zhí)行文件,然后下載到目標板上運行。: 系統(tǒng)開發(fā)環(huán)境搭建圖圖中宿主機是指X86結(jié)構(gòu)的計算機,在宿主機上安裝的操作系統(tǒng)有RedHat Enterprise Linux AS4和Windows XP。嵌入式目標板就是友善之臂SBC2410開發(fā)板,宿主機與目標板的通信方式有JTAG并口通信、串口通信、USB接口通信和通過網(wǎng)線通信的方式。JTAG口主要下載vivi可執(zhí)行代碼到目標板,串口主要用來控制vivi命令和調(diào)試系統(tǒng),有時也用來下載vivi可執(zhí)行代碼。Linux內(nèi)核映像和根文件系統(tǒng)映像是由串口控制的通過USB接口下載的,網(wǎng)口主要負責把應用程序的可執(zhí)行代碼下載到標板。 串口環(huán)境的搭建串口環(huán)境的搭建是通過設置超級終端參數(shù)建立的,主要設置可用串口,波特率等。Xp系統(tǒng)下串口環(huán)境的設置相對來說很簡單,只需要打開超級終端設置可用串口為COM1,波特率為115200就行了。Linux環(huán)境下的串口的設置是通過設置mini實現(xiàn)的,mini是Linux下常用的終端仿真程序,它類似windows下的超級終端。: mini設置Mini窗口的打開是通過命令#mini s實現(xiàn)的,圖中/dev/ttyS0表示使用的是串口1。Exit退出后,設置文件就保存到/etc/。設置完畢,打開目標板上上的電源開關,就可以看到vivi的啟動信息了。 USB接口環(huán)境的搭建USB接口環(huán)境的搭建是在windows環(huán)境下建立的,USB接口主要負責Linux內(nèi)核映像文件和根文件系統(tǒng)映像文件的下載到開發(fā)板上,這種下載的速度快,節(jié)約了開發(fā)時間。這種下載方式與超級終端協(xié)作完成。首先打開超級終端進入vivi指令,然后按照vivi的命令下載。內(nèi)核映像的下載命令:vivi load flash kernel u根文件系統(tǒng)的下載命令:vivi loadyaffs e root u然后出現(xiàn)USB host is connected. Waiting a download提示符,打開USB下載界面,選擇要下載的映像文件。串口打印出下載的過程,如下所示下載根文件系統(tǒng)串口的打印過程:Now, Downloading [ADDRESS:30000000h,TOTAL:38162266]Downloaded file at 0x30000000, size = 38162256 bytesFlash params: oobsize = 16, oobblock = 512, erasesize = 16384,partition size =64667648Erasing and programming NAND with yaffs image Blockerasing(addr/count) Block bad(addr/count) All count0x01348000/01086 0x00ef0000/00001 01087 NFS環(huán)境的搭建網(wǎng)絡文件系統(tǒng)NFS最早是SUN開發(fā)的一種文件系統(tǒng)。NFS允許一個系統(tǒng)在網(wǎng)絡上共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統(tǒng)的文件。Linux系統(tǒng)支持NFS,使用NFS的這種功能,就能很輕松地將宿主機上地文件掛載到嵌入式開發(fā)系統(tǒng)上去,這樣不僅方便了嵌入式開發(fā)板對主機上文件地訪問,而且極大地提高了嵌入式開發(fā)系統(tǒng)中應用程序地開發(fā)和調(diào)試效率。配置NFS,需要添加/etc/exports文件。/etc/exports文件格式以及說明如下:共享目錄主機名稱1(參數(shù)1,參數(shù)2) 主機名2(參數(shù)3,參數(shù)4)共享目錄:是宿主機上要向外輸出的以后目錄主機名稱:是允許按照指定的權(quán)限訪問這個共享目錄的遠程主機參數(shù):是定義了各種港問權(quán)限:在我的開發(fā)板上exports配置如下: exports配置文件參數(shù)說明/FriendlyARM/root *(rw,sync,no_root_squash)這種配置表示輸出共享/FriendlyARM/root目錄,并且所有的IP都可以訪問。在完成/etc/exports這個配置文件后就可以啟動NFS服務了,用service命令啟動。service portmap startservice nfs startservice iptables stop開發(fā)板要共享宿主機上的文件/FriendlyARM/root,只需要運行文件的掛載命令就可以了。和掛載本地文件系統(tǒng)時唯一不同的地方在于要掛載的文件系統(tǒng)的描述前加上遠程文件系統(tǒng)的主機名或IP地址。掛載語法如下:mount t nfs :/FriendlyARM/root /mnt掛載成功后,就可以把要調(diào)試的應用程序拷貝到宿主機/FriendlyARM/root下進行掛載調(diào)試,調(diào)試成功后就可以下載到開發(fā)板上永久保存。 交叉編譯工具的搭建交叉編譯工具的搭建是整個系統(tǒng)很關鍵的一個步驟,這種工具的搭建是在宿主機Linux系統(tǒng)下完成的,主要給交叉編譯工具指定路徑,使其在編譯代碼時能夠工作。本系統(tǒng)針對ARM平臺的,現(xiàn)在有不少站點可以免費下載到針對ARM體系結(jié)構(gòu)的交叉編譯器。當前交叉編譯器有多種版本,為了使用方便把這些工具路徑加入到環(huán)境變量PATH中,只需要修改/etc/profile文件,修改如下: Path manipulationif [ `id u` = 0 ]。 thenpathmunge /sbinpathmunge /usr/sbinpathmunge /usr/local/sbinpathmunge /usr/local/arm/最后一行使把編譯器路徑加入到PATH,,,其他版本的編譯器在編譯busybox的時不通過。交叉編譯工具的搭建完畢就可以針對ARM平臺進行本系統(tǒng)的移植工作,包括vivi的移植,Linux內(nèi)核的移植,根文件系統(tǒng)的制作等。 本章小結(jié)本章主要完成了系統(tǒng)的整體設計方案,針對這個方案的需求完成硬件的選型,并簡單的介紹了硬件的資源和結(jié)構(gòu)。重點介紹了主機開發(fā)環(huán)境的搭建,包括串口,USB接口、網(wǎng)絡接口和交叉編譯工具的搭建,這是系統(tǒng)開發(fā)所必需的,隨后的移植工作和用戶應用程序的開發(fā)都是在這個環(huán)境下設計并完成的。第三章 嵌入式Linux操作系統(tǒng)的移植嵌入式Linux操作系統(tǒng)能夠有效的管理復雜的系統(tǒng)資源,同時提供了庫函數(shù)、驅(qū)動程序、工具集和基本的應用程序,為設計工作帶來諸多方便。為了能使用Linux自帶的資源還需要把Linux操作系統(tǒng)移植到本系統(tǒng)使用的ARM開發(fā)平臺上。目標板上Linux系統(tǒng)的運行需要經(jīng)過幾個步驟才能出現(xiàn)系統(tǒng)提示符或運行用戶應用程序。系統(tǒng)加電后。首先從0x00地址開始取的Boot Loader 程序,然后判斷系統(tǒng)是否要啟動Linux內(nèi)核映像,如果不啟動則進入Boot Loader命令操作,如果啟動內(nèi)核,則載入內(nèi)核映像,內(nèi)核對各種硬件設備進行初始化,掛載根文件系統(tǒng),執(zhí)行init進程,并從/etc/inittab取得配置文件,最后提示用戶登陸或執(zhí)行用戶應用程序。 目標板上Linux系統(tǒng)的啟動流程嵌入式Linux系統(tǒng)從軟件的角度看通常可以分為4個層次[17](1)引導加載程序。包括固化在固件(175。rmware)中的啟動代碼和Boot loader兩大部分。(2)內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及控制內(nèi)核引導系統(tǒng)的參數(shù)。(3)文件系統(tǒng)。文件系統(tǒng)包括根文件系統(tǒng)和建立于Flash內(nèi)核設備上的文件系統(tǒng)。通常用RAMDISK作為根文件系統(tǒng)。它是提供管理系統(tǒng)的各種配置文件以及系統(tǒng)執(zhí)行應用程序的良好環(huán)境的載體。(4)用戶應用程序。特定于用戶的應用程序。有時在用戶應用程序和內(nèi)核之間可能還會包括一個嵌入式圖形用戶界面。從軟件分層的角度來看,本系統(tǒng)完成的主要工作有:Boot Loader的移植,這里移植的是VIVI;Linux內(nèi)核的移植,;文件系統(tǒng)的移植,這里移植的是yaffs文件系統(tǒng);根文件系統(tǒng)的建立。用戶應用程序的設計在下一章完成。下面就從這個角度展開具體的移植工作。 Boot Loader移植實現(xiàn) Boot Loader的簡介Boot Loader (引導加載程序)是系統(tǒng)加電后運行的第一段代碼。一般它只在系統(tǒng)啟動時運行非常短的時間,對嵌入式來說,這是一個非常重要的系統(tǒng)組成部分。整個系統(tǒng)的加載啟動任務由Boot Loader來完成。在一個基于ARM的嵌入式系統(tǒng)中,系統(tǒng)在上電或復位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的Boot Loader,通過這段小程序可以初始化硬件設備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。 Loader、內(nèi)核啟動參數(shù)、內(nèi)核映像和根文件系統(tǒng)的典型固態(tài)存儲設備的空間分配結(jié)構(gòu)示意圖。 空間分配結(jié)構(gòu)圖大多數(shù)Boot Loader 都包含兩種不同的操作模式:啟動加載模式和下載模式[18]。啟動加載模式是從目標機上的某個固態(tài)存儲設備上將操作系統(tǒng)加載到RAM 中運行。在下載模式下,目標機上的Boot Loader 將通過串口連接或網(wǎng)絡連接等通信手段從主機(Host)下載文件。Boot Loader是嚴重依賴于硬件而實現(xiàn)的,每種不同的體系結(jié)構(gòu)的處理器都有不同的Boot Loader。不過Boot Loader的發(fā)展也趨于支持多種體系結(jié)構(gòu)。比如UBoot從最初支持PowerPC到目前同時支持PowerPC,ARM,MIPS,X86等多種體系結(jié)構(gòu)。除了依賴處理器體系結(jié)構(gòu)外,Boot Loader實際上也依賴于具體的嵌入式板級設備的配置,也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種處理器而構(gòu)建的,要想讓其運行在一塊板子上的Boot Loader也運行在另一塊板子上,通常都需要對BootLoader進行移植工作。所以在嵌入式世界里要想建立一個通用的Boot Loader幾乎不可能,于是出現(xiàn)了多種引導加載程序,如Blob、Red Boot、VIVI、UBoot等。本節(jié)要做的工作就是移植適合自己板上的Boot Loader,即VIVI的移植。 VIVI的啟動分析VIVI 是由MIZI 公司為ARM 處理器系列設計的一個boot Loader,可用于ARM9處理器的引導。VIVI利用串行通信為用戶提供接口,為連接VIVI,首先利用串口電纜連接宿主機和目標板,然后在主機上通過串口通信程序,并在目標板上正確設置VIVI以支持串口。VIVI也有前面說過的兩種工作模式,啟動模式和下載模式。啟動模式可以在一段時間后自行啟動Linux內(nèi)核,這是VIVI的默認方式。下載模式是在出現(xiàn)上述信息后,按任意鍵即可。在下載模式下,VIVI為用戶提供了一個命令接口,通過該接口可以使用VIVI提供的一些命令。: vivi的常用命令VIVI作為一種Boot Loader,其運行過程大概分成兩個階段[20]。第一階段的代碼是在vivi/arch/s3c2410/,大小不超過10 KB,它包括的內(nèi)容是從系統(tǒng)上電后在0x00000000地址開始執(zhí)行的部分。這部分代碼運行在Flash中,它包括對S3C2410一些寄存器、時鐘等初始化并跳轉(zhuǎn)到第二階段執(zhí)行。第二階段的代碼在vivi/init/,主要進行一些開發(fā)板初始化、內(nèi)存映射和內(nèi)存管理單元初始化等工作,最后會跳轉(zhuǎn)到boot or vivi()函數(shù)中,接收命令并進行處理。如圖vivi階段1和階段2的運行過程。VIVI代碼執(zhí)行完畢后。 VIVI的移植實現(xiàn)VIVI已經(jīng)提供了對于S3C2410CPU系列開發(fā)板的基本設置,因而VIVI的移植相對簡單。下載一個VIVI的源代碼[21]到當前目錄下,一般是一個壓縮包,然后解壓到本地目錄下。(1)設置編譯環(huán)境。進入解壓的VIVI目錄下,打開Make175。le,修改如下。 VIVI階段1和階段2的運行流程圖LINUX_INCLUDE_DIR = /usr/local/arm/CROSS_COMPILE = /usr/local/arm/ARM_GCC_LIBS =/usr/local/arm/(2)修改NAND FLASH分區(qū)。修改NAND FLASH分區(qū)目的是滿足VIVI,內(nèi)核和文件系統(tǒng)所占據(jù)分區(qū)大小要求。修改arch/s3c2410/,將default mtd partitions[]。束ivi()階段1開始階段2開始 vivi階段1和階段2的運行流程LINUX_INCLUDE_DIR = /usr/local/arm/CROSS_COMPILE = /usr/local/arm/ARM_GCC_LIBS =/usr/local/arm/(2)修改NA
點擊復制文檔內(nèi)容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1