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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于嵌入式linux的圖像監(jiān)控系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-02-13 01:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 的差別調(diào)整即可。以下是移植內(nèi) 核的步驟 (1)獲取 linux內(nèi)核源代碼,解壓內(nèi)核源代碼。 (2)指定交叉編譯變量:修改總目錄下的 Makefile 原來(lái)為: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= $( SUBARCH) CROSS_COMPILE ?= 修改為: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= armlinux 其 中, ARCH是指目標(biāo)平臺(tái)為 arm, CROSS_COMPILE 是指交叉編譯器。然后執(zhí)行 : make s3c2410_defconfig make (3)克隆建立自己的目標(biāo)平臺(tái): ①修改機(jī)器碼:進(jìn)入 賀州學(xué)院本科畢業(yè)論文 9 碼修改為 1999。 ② 修 改 時(shí) 鐘 源 頻 率 : 進(jìn) 入 文件中的原 SMDK2440 目標(biāo)版上的晶振從原來(lái)的 改 為12MHz。 ③ 修改 Nand Flash 分區(qū): gedit arch/arm/plats3c24xx/ static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = supervivi, ;這里是 bootloder所在分區(qū) .size = 0x00040000, .offset = 0, }, [1] = { .name = param, ;這里是 supervivi參數(shù)區(qū) .size = 0x00040000, .offset = 0x00020220, }, [2] = { .name = Kernel, .offset = 0x00060000, ;內(nèi)核所在分區(qū),大小為 5M .size = 0x00500000, }, [3] = { .name = root, ;文件系統(tǒng)分區(qū),本系統(tǒng)用來(lái)存放 yaffs2文件系統(tǒng)內(nèi)容 .offset = 0x00560000, .size = 1024*1024*1024, } [4] = { .name = nand, ;此區(qū)域代表整片 nand flash,做預(yù)留使用 .offset = 0x00000000, .size = 1024*1024*1024, 莫炳全 基于嵌入式 Linux 的圖像監(jiān)控系統(tǒng) 10 } }。 ④從 SMDK2440到 MINI2440:使用批處 理命令修改 中的字樣為mini2440。 ⑤編譯測(cè)試:在根目錄下執(zhí)行: make mini2440_defconfig make zImage 。編譯內(nèi)核,最后生成 zImage。 (4)配置內(nèi)核:針對(duì)配置內(nèi)核做主要的作為介紹。 執(zhí)行 make menuconfig General setup ;配置目標(biāo)版體系 S3C2440 Machines MINI2440 development board Device Drivers ;配置 DM9000 網(wǎng)卡驅(qū)動(dòng) Network device support Ether(10 or 100Mbit) DM9000 Device Drivers ;配置 USB 攝像頭 Multimedia devices Multimedia support Video capture adapters ( NEW) V4L USB devices (NEW) GSPCA based webcams 選擇所有的攝像頭類(lèi)型 把所有結(jié)構(gòu)設(shè)備添加到目標(biāo)平臺(tái)設(shè)備集中: Static struct platform_device *mini2440_devices[]_initdata = { amp。s3c_device_usb, amp。s3c_device_rtc, amp。s3c_device_wdt, amp。s3c_device_i2c0, amp。s3c_device_iis, amp。mini2440_device_eth, 賀州學(xué)院本科畢業(yè)論文 11 amp。s3c_device_nand, } (5)配置編譯新內(nèi)核:首先以 ROOT 身份進(jìn)入系統(tǒng),然后對(duì)它進(jìn)行編譯,得到內(nèi)核映像文件 zImage。 文件系統(tǒng)的制作 嵌入式 linux系統(tǒng)可使用的文件系統(tǒng)有多種,比如 CRAMFS、 JFFS YAFFS2等 [6]。YAFFS2類(lèi)似于 JFFS和 JFFS2的專(zhuān)為 flash設(shè)計(jì)的嵌入式文件系統(tǒng)。雖然功能少,但速度快,占用內(nèi)存少,并自帶 nand flash芯片驅(qū)動(dòng) 。其移植過(guò)程為: (1)解壓 YAFFS2。 (2)建立 YAFFS2目錄,復(fù)制解壓后的代碼到目錄下。 (3)修改 fs/Kconfig,添加: source “ fs/yaffs2/kconfig” 。 (4)修改 fs/Makefile,添加: obj$(CONFIG_YAFFS2_FS) +=yaffs2/。 (5)配置內(nèi)核時(shí)選中 MTD支持和 YAFFS2支持。 (6)編譯內(nèi)核并將下載到開(kāi)發(fā)板的 flash。 本章小結(jié) 在本章中,簡(jiǎn)單敘述了系統(tǒng)基于 嵌入式 linux 系統(tǒng)平臺(tái)的搭建 ,包括 交叉編譯環(huán)境的建立和 Bootloader 的移植 ,還有 以 Linux 內(nèi)核 作為視頻服務(wù)器核心 的配置和移植,最后介紹了 根 文件系統(tǒng)的制作 流程。這樣,就構(gòu)建好了系統(tǒng)所需的 linux 系統(tǒng)平臺(tái)。 4 系統(tǒng)設(shè)備的驅(qū)動(dòng)程序的編寫(xiě)和移植 在嵌入式系統(tǒng)中,設(shè)備驅(qū)動(dòng)充當(dāng) 了硬件和應(yīng)用軟件之間的紐帶。對(duì)于功能較簡(jiǎn)單,控制不復(fù)雜的系統(tǒng),并不需要多任務(wù)、文件系統(tǒng)和內(nèi)存管理等復(fù)雜功能,用單任務(wù)構(gòu)架可以很好地支持。對(duì)于本系統(tǒng)相對(duì)復(fù)雜的軟件系統(tǒng),需要具有操作系統(tǒng)的設(shè)備驅(qū)動(dòng)來(lái)完成多任務(wù)并發(fā)。 系統(tǒng)軟件設(shè)備 架構(gòu) 錯(cuò)誤!鏈接無(wú)效。 圖 41 系統(tǒng)軟件設(shè)備架構(gòu) 本系統(tǒng)軟件設(shè)備架構(gòu)如圖 41所示,詳細(xì)模塊功能如下: (1)前臺(tái)功能 :在網(wǎng)絡(luò)上的客戶端進(jìn)行對(duì)服務(wù)器的視頻數(shù)據(jù)請(qǐng)求,通過(guò)通用的瀏覽莫炳全 基于嵌入式 Linux 的圖像監(jiān)控系統(tǒng) 12 器進(jìn)行圖片監(jiān)控,視頻監(jiān)控。 (2)應(yīng)用層功能:在應(yīng)用層上,主要負(fù)責(zé)處理網(wǎng)站發(fā)布接收訪問(wèn)等基于 HTTP 協(xié)議的活動(dòng)。基于 HTTPD 服務(wù)器發(fā)布的數(shù)據(jù)放在數(shù)據(jù)業(yè)務(wù)中的 文件夾中,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,成為客戶端真正能瀏覽到的圖片和視頻。 (3)數(shù)據(jù)業(yè)務(wù)層功能:該層主要使用開(kāi)源軟件 mjpgstreamer模塊,該軟件利用共享庫(kù)來(lái)處理輸入輸出, 處 理文件輸入,可輸入圖片和視頻文件, 和 等是以 HTTP 視頻數(shù)據(jù)服務(wù)流形式輸出,為高層圖像提供較友好的數(shù)據(jù)接口。 mjpgstreamer軟件依賴 libjpeg和 libjpegdevel庫(kù)的支持。利用 文件接收攝像頭,利用 YUV格式,適當(dāng)減少圖片幀數(shù)讓視頻流暢,該模塊會(huì)讓數(shù)據(jù)進(jìn)入數(shù)據(jù)緩沖器進(jìn)行數(shù)據(jù)中轉(zhuǎn),由輸出模塊 模塊進(jìn)行 HTTP 數(shù)據(jù)流的處理。 文件夾存放網(wǎng)頁(yè)開(kāi)發(fā)包,為了與應(yīng)用層交換,內(nèi)嵌有本系統(tǒng)瀏覽數(shù)據(jù) 的頁(yè)面。 (4)驅(qū)動(dòng)層功能:在此主要是驅(qū)動(dòng) USB攝像頭和網(wǎng)絡(luò)芯片 DM9000。為上述功能提供可能。 網(wǎng)絡(luò)驅(qū)動(dòng)程序 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu) Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu)從上到下分為 4層 [3],一次為網(wǎng)絡(luò)協(xié)議接口層、網(wǎng)絡(luò)設(shè)備接口層、設(shè)備驅(qū)動(dòng)功能層和網(wǎng)絡(luò)設(shè)備與媒介層 ,其流程圖如圖 42所示。 (1)網(wǎng)絡(luò)協(xié)議接口層 :向網(wǎng)絡(luò)層協(xié)議提供統(tǒng)一的數(shù)據(jù)包收發(fā)接口,通過(guò)dev_queue_xmit()函數(shù)發(fā)送數(shù)據(jù),并通過(guò) if_rx()函數(shù)接收數(shù)據(jù)。 (2)網(wǎng)絡(luò)設(shè)備接口層 :向協(xié)議接口層提供 _device,用來(lái)描述具體網(wǎng)絡(luò)設(shè)備屬性和操作的結(jié)構(gòu)體。 (3)設(shè)備驅(qū)動(dòng)功能層:各函數(shù)是網(wǎng)絡(luò)設(shè)備接口層 _device數(shù)據(jù)結(jié)構(gòu)的具體成員,驅(qū)使網(wǎng)絡(luò)設(shè)備硬件完成相應(yīng)的動(dòng)作,通過(guò) hard_start_xmit()函數(shù)啟動(dòng)發(fā)送操作,通過(guò)網(wǎng)絡(luò)設(shè)備上的中斷觸發(fā)接收操作。 (4)網(wǎng)絡(luò)設(shè)備與媒介層 :完成數(shù)據(jù)包發(fā)送和接收的物理實(shí)體。包括網(wǎng)絡(luò)適配器和具體的傳輸媒介等。 錯(cuò)誤!鏈接無(wú)效。 圖 42 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu) 賀州學(xué)院本科畢業(yè)論文 13 DM9000 發(fā)送和接收數(shù)據(jù)包過(guò)程 (1)DM9000發(fā)送數(shù)據(jù)包過(guò)程 ,如圖 43所示: ①向控制寄存器 TXCMD寄存器寫(xiě)入發(fā)送命令。 ②將發(fā)送數(shù)據(jù)長(zhǎng)度寫(xiě)入 TXLENG寄存器。 ③讀取 PacketPage 空間內(nèi)的 BUSST寄存器,配置其狀態(tài)為準(zhǔn)備發(fā)送狀態(tài)。 ④在 PORT0寄存器循環(huán)寫(xiě)入要發(fā)送的數(shù)據(jù)。 錯(cuò)誤!鏈接無(wú)效。 圖 43 DM9000發(fā)送數(shù)據(jù)包過(guò)程圖 圖 44 DM9000接收數(shù)據(jù)包過(guò)程圖 (2)DM9000接收 數(shù)據(jù)包過(guò)程 ,如圖 44所示: ①接收到網(wǎng)絡(luò)適配器產(chǎn)生的中斷,查詢中斷狀態(tài)隊(duì)列端口,判斷中斷類(lèi)型是否為接收中斷。 ②讀 PORT0寄存器依次換得接收狀態(tài) rxStatus,接收數(shù)據(jù)長(zhǎng)度 rxLength。 ③循環(huán)繼 續(xù)對(duì) PORT0 寄存器讀取 rxLength 次,直到獲得整個(gè)數(shù)據(jù)包 USB 攝像頭的驅(qū)動(dòng) 在 linux系統(tǒng)中,提供了主機(jī)側(cè)和設(shè)備測(cè)的 USB驅(qū)動(dòng)框架 [3]。從主機(jī)側(cè)的角度而言,需要編寫(xiě)的 USB驅(qū)動(dòng)程序包括主機(jī)控制器驅(qū)動(dòng)和設(shè)備驅(qū)動(dòng)兩類(lèi), USB主機(jī)控制器驅(qū)動(dòng)程序控制插入其中的 USB 設(shè)備,而 USB 設(shè)備驅(qū)動(dòng)程序控制設(shè)備如何作為從設(shè)備與主機(jī)通信。本系統(tǒng)研究的是主機(jī)側(cè) USB驅(qū)動(dòng)。在 spca5xx/gspca,就基本實(shí)現(xiàn)了通用的主流 USB 攝像頭的支持。為了識(shí)別不同的 V4L1和 V4L2芯片的攝像頭,安裝 GSPCAV1來(lái)支持 V4L1,用 UVCVIDEO來(lái)支持 V4L2。 主機(jī)側(cè) USB 驅(qū)動(dòng)總體結(jié)構(gòu) 錯(cuò)誤!鏈接無(wú)效。 圖 45 主機(jī)側(cè) USB驅(qū)動(dòng)總體結(jié)構(gòu)圖 USB采用樹(shù)形拓?fù)浣Y(jié)構(gòu),總體結(jié)構(gòu)圖如圖 45所示。要實(shí)現(xiàn)的 USB 驅(qū)動(dòng)包括兩類(lèi):USB 主機(jī)控制器驅(qū)動(dòng)和 USB 設(shè)備驅(qū)動(dòng),前者控制插入其中的 USB 設(shè)備,后者控制 USB設(shè)備如何與主機(jī)通信。 USB核心負(fù)責(zé) USB驅(qū)動(dòng)管理和協(xié)議處理的主要工作,包括:通過(guò)定義一些數(shù)據(jù)接口、宏和功能函數(shù),向上為設(shè)備驅(qū)動(dòng)提供編程接口,向下為 USB 主機(jī)控制器驅(qū)動(dòng)提供編程接口;通過(guò)全局變量維護(hù)整個(gè)系統(tǒng)的 USB 設(shè)備信息;完成設(shè)備熱插拔控制、總線數(shù)據(jù)傳輸控制等。 urb 處理流程 在 USB設(shè)備的邏輯組織中,包含設(shè)備、配置、接口和端點(diǎn) 4個(gè)層次 [3]。設(shè)備通常有莫炳全 基于嵌入式 Linux 的圖像監(jiān)控系統(tǒng) 14 一個(gè)或多個(gè)配置;配置通常有一個(gè)或多個(gè)接口;接口通常有一個(gè)或多 個(gè)設(shè)置;接口有零或多個(gè)端點(diǎn)。 而 USB 設(shè)備中的每個(gè)端點(diǎn)都處理一個(gè) urb 隊(duì)列,在隊(duì)列被清空之前,一個(gè) urb 的生命周期如下,如圖 46所示: (1)被一個(gè) USB設(shè)備驅(qū)動(dòng)創(chuàng)建,由 usb_alloc_urb()函數(shù)創(chuàng)建。 (2)初始化,被安排給一個(gè)特定 USB設(shè)備的特定端點(diǎn)。 (3)被 USB設(shè)備驅(qū)動(dòng)提交給 USB核心。在完成第 (1)、 (2)步的創(chuàng)建和初始化后, usr便可以提交給 USB核心,通過(guò) usb_submit_urb()函數(shù)來(lái)完成。 (4)提交由 USB核心指定的 USB主機(jī)控制器驅(qū)動(dòng)。 (5)被 USB主機(jī)控制器處理, 進(jìn)行一次到 USB設(shè)備的傳送。 (6)當(dāng) urb完成, USB主機(jī)控制器驅(qū)動(dòng)通知 USB設(shè)備驅(qū)動(dòng)。 錯(cuò)誤!鏈接無(wú)效。 圖 46 urb處理流程圖 本章小結(jié) 本章首先從整體上描述了 本系統(tǒng)軟件設(shè)備架構(gòu),然后介紹了架構(gòu)中各模塊層的功能。接著再詳細(xì)介紹了本系統(tǒng)中關(guān)于網(wǎng)絡(luò)驅(qū)動(dòng)程序的編寫(xiě)流程和 USB 攝像頭驅(qū) 動(dòng)程序的移植。 5 系統(tǒng)的圖像采集和傳輸 系統(tǒng)調(diào)用 V4L1 和 V4L2 的 API 函數(shù), 通過(guò) USB 攝像頭來(lái)采集 視頻圖像 數(shù)據(jù),完成視頻圖像 數(shù)據(jù)的采集后,作為服務(wù)器端的嵌入式系統(tǒng)后臺(tái)等待客戶端通過(guò)瀏覽器進(jìn)行連接,然后進(jìn)行對(duì)攝像頭監(jiān)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1