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

正文內(nèi)容

基于arm嵌入式的視頻監(jiān)控系統(tǒng)(編輯修改稿)

2025-07-17 00:00 本頁面
 

【文章內(nèi)容簡介】 ,成本較低[6]。(3) 視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸 嵌入式Linux系統(tǒng)具有完整的TCP39。/IP協(xié)議,因此,可以采用socket編程建立一個基于TCP/IP的嵌入式視頻服務(wù)器。 全文結(jié)構(gòu)安排如下: 第一章:綜合論述了視頻監(jiān)控系統(tǒng)的現(xiàn)狀和發(fā)展情況。 第二章:提出了本系統(tǒng)的整體結(jié)構(gòu),介紹了S3C6410的體系結(jié)構(gòu)。 第三章:研究嵌入式Linux在ARM上的裁減和移植。 第四章:簡單介紹了基于V4L的視頻采集程序以及圖像壓縮理論第五章:視屏傳輸?shù)膶?shí)現(xiàn)。介紹了建立連接的相關(guān)內(nèi)容并對本系統(tǒng)連接測試。第六章:對本文的工作進(jìn)行總結(jié),并提出展望。 視屏監(jiān)控系統(tǒng)的結(jié)構(gòu)設(shè)計 基于嵌入式技術(shù)的監(jiān)控系統(tǒng)前端采用攝像頭采集視頻流,然后通過網(wǎng)絡(luò)傳輸?shù)浇邮苷?。該系統(tǒng)采用基于ARM11的S3C6410X微處理器,通過在處理器上運(yùn)行Linux操作系統(tǒng),構(gòu)建嵌入式服務(wù)器,接受來自攝像頭的視頻流,再進(jìn)行壓縮編碼,再傳送實(shí)現(xiàn)監(jiān)控[7]。 ARM處理器簡介 ARM(Advanced RISC Machines),既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。   ARM處理器是一個32位元精簡指令集(RISC)處理器架構(gòu),其廣泛地使用在許多嵌入式系統(tǒng)設(shè)計。ARM處理器具有以下特點(diǎn)[8]:體積小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)雙指令集,兼容性好?!〈罅渴褂眉拇嫫鳎噶顖?zhí)行速度更快;   大多數(shù)數(shù)據(jù)操作都在寄存器中完成;   尋址方式靈活簡單,執(zhí)行效率高;    S3C6410體系結(jié)構(gòu) S3C64xx系列的應(yīng)用處理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架構(gòu)的,而且硬件管腳兼容,應(yīng)該說大致的功能基本相同,比較明顯的區(qū)別就是S3C6410帶有2D/3D硬件加速[9]。 S3C6410是一個強(qiáng)大的應(yīng)用處理器,: 3. 嵌入式系統(tǒng)軟件平臺 Linux 操作系統(tǒng)簡介 Linux是一種自由和開放源碼的類Unix操作系統(tǒng)。目前存在著許多不同的Linux,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計算機(jī)硬件設(shè)備中,從手機(jī)、平板電腦、路由器和視頻游戲控制臺,到臺式計算機(jī)、大型機(jī)和超級計算機(jī)。Linux是一個領(lǐng)先的操作系統(tǒng),世界上運(yùn)算最快的10臺超級計算機(jī)運(yùn)行的都是Linux操作系統(tǒng)。嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。Linux得名于計算機(jī)業(yè)余愛好者Linus Torvalds。[10]Linux可以運(yùn)行在多種硬件平臺上,如具有x8680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運(yùn)行在掌上電腦、機(jī)頂盒或游戲機(jī)上。2001年1月份發(fā)布的Linux 64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。ARM技術(shù)和Linux成功的結(jié)合充分滿足了各類應(yīng)用對嵌入式平臺高性能、低功耗和低價格的要求,通過開發(fā)環(huán)境、開源社區(qū)和ARM的商業(yè)伙伴的有時為嵌入式開發(fā)停工了靈活的選擇[11]。 交叉編譯環(huán)境的建立 通常嵌入式系統(tǒng)的軟件編譯和執(zhí)行是兩個不同平臺上進(jìn)行的。編譯時在宿主機(jī)上進(jìn)行的,執(zhí)行是在目標(biāo)機(jī),及嵌入式系統(tǒng)的硬件平臺。一般是在宿主機(jī)通過跨平臺交叉編譯器把源文件編譯成目標(biāo)平臺可執(zhí)行的文件在通過串口、并口或者網(wǎng)絡(luò)下載至目標(biāo)憑條的FLASH或者其他存儲介質(zhì),然后由目標(biāo)機(jī)來運(yùn)行這些軟件。本系統(tǒng)采用基于ARM11的S3C6410,可以使用常用的ARM交叉編譯器,要成功構(gòu)建完整的交叉編譯環(huán)境,余姚在宿主機(jī)上創(chuàng)建一系列的工具,包括C/C++編譯器、匯編器、連接器、嵌入式系統(tǒng)的標(biāo)準(zhǔn)C庫和GDB代碼調(diào)試器,成功建立好后便可以用這些工具進(jìn)行嵌入式系統(tǒng)開發(fā)了[16]。 嵌入式Linux移植 BootLoader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序(注,有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個系統(tǒng)的加載啟動任務(wù)就完全由BootLoader來完成。比如在一個基于ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的BootLoader程序。專用的嵌入式板子運(yùn)行GNU/Linux系統(tǒng)已經(jīng)變得越來越流行。一個嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃樗膫€層次[12]:    引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。    Lniuxn內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。    文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ramdisk來作為rootfs。    用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。有時在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個嵌入式應(yīng)用程序。常用的嵌入式GUI有:MicroWindows和MiniGUI等。   引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的OS BootLoader(比如,LILO和GRUB等)一起組成。BIOS在完成硬件檢測和資源分配后,將硬盤MBR中的BootLoader讀到系統(tǒng)的RAM中,然后將控制權(quán)交給OS BootLoader。BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤上讀到 RAM 中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也即開始啟動操作系統(tǒng)。   通常,BootLoader是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫ootLoader歸納出一些通用的概念來,以指導(dǎo)用戶特定的BootLoader設(shè)計與實(shí)現(xiàn)。Boorloader的實(shí)現(xiàn)以來與CPU的體系結(jié)構(gòu),一般來說啟動過程分為兩個階段[13]:第一階段以來于CPU的體系結(jié)構(gòu)大代碼,比如設(shè)備初始化代碼等。這個階段完成的任務(wù)如下:(1) 硬件設(shè)備初始化(2)為第二階段準(zhǔn)備RAM空間(3) 復(fù)制Bootloader的第二階段代碼到RAM空間中(4) 設(shè)置好堆棧并跳轉(zhuǎn)到第二階段的C程序入口點(diǎn) 第二階段則通常用C語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)復(fù)雜的功能,而且代碼會具有更好的可持續(xù)性和移植性。這個階段的主要任務(wù)有:(1)初始化本階段要使用的硬件設(shè)備(2) 檢測系統(tǒng)內(nèi)存映射(3)將內(nèi)核映像和根文件系統(tǒng)從FLASH讀到RAM中(4)為內(nèi)核設(shè)置啟動參數(shù) Linux平臺下mjpgstreamer移植 本系統(tǒng)選用嵌入式Linux作為目標(biāo)機(jī)操作系統(tǒng),一方面由于Linux是一款免費(fèi)的操作系統(tǒng),能很好的見底成本,同時Linux的開發(fā)應(yīng)用現(xiàn)在應(yīng)經(jīng)成為熱門,有大量的資源可供學(xué)習(xí)與使用,并且Linux系統(tǒng)具有良好的可移植性和可裁剪性,能自動支持多任務(wù)管理。本系統(tǒng)采用ARM開發(fā)平臺,所以依賴ARM硬件平臺的代碼都在arch/arm下面。根目錄下面只需要修改Makefile文件,該文件主要任務(wù)是產(chǎn)生vmLinux文件盒內(nèi)核模塊,對該文件的修改主要是設(shè)置目標(biāo)平臺和制定交叉編譯器[14]在 /opt/mini6410 目錄下創(chuàng)建目錄 webcamera 來作為我們本次移植工作的工作目錄,輸入以下命令創(chuàng)建: mkdir – p /opt/mini6410/webcamera 進(jìn)入webcamera 目錄下,通過 SVN 下載最新的mjpgstreamer mini2440 項(xiàng)目源代碼: cd /opt/mini6410/webcamera/ svn checkout ://mjpg streamer 輸入以下命令進(jìn)行mjpgstreamer mini2440 read only 目錄: cd mjpgstreamer mini2440 read only 根據(jù)以下指示修改: 1) 用vi , 將內(nèi)容: ./mjpg_streamer o w ./ i y 修改成 ./mjpg_streamer o w ./ i y d /dev/video2 2) 用vi 編輯Makefile a) 在clean:處刪除 make C plugins/input_s3c2410 $@ b) 再刪除以下內(nèi)容: : make C plugins/input_s3c2410 all CC=$(CC) cp plugins/input_s3c2410/ . c) 再到package: 處刪除以下兩行: \ \ 執(zhí)行以下命令進(jìn)行編譯并打包: cd /opt/mini6410/ webcamera/ mjpgstreamer mini2440 read only / export CC=armlinuxgcc make make package 在當(dāng)前目錄下會生成 mjpgstreamer mini2440 , 將它拷入 SD卡備用。 Mini6410 上的攝像頭\ Bin”目錄下找到我們編譯好的可執(zhí)行文件,文件名為mjpgstreamer mini6410 。 4. 基于V4L的視頻采集程序以及圖像壓縮理論 V4L2   Video for Linux two(Video4Linux2)簡稱V4L2,是V4L的改進(jìn)版。V4L2是linux操作系統(tǒng)下用于采集圖片、視頻和音頻數(shù)據(jù)的API接口,配合適當(dāng)?shù)囊曨l采集設(shè)備和相應(yīng)的驅(qū)動程序,可以實(shí)現(xiàn)圖片、視頻、音頻等的采集。在遠(yuǎn)程會議、可視電話、視頻監(jiān)控系統(tǒng)和嵌入式多媒體終端中都有廣泛的應(yīng)用。  在Linux下,所有外設(shè)都被看成一種特殊的文件,成為“設(shè)備文件”,可以象訪問普通文件一樣對其進(jìn)行讀寫。一般來說,采用V4L2驅(qū)動的攝
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1