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

正文內(nèi)容

基于arm的圖像采集系統(tǒng)(參考版)

2024-09-02 10:25本頁(yè)面
  

【正文】 最后,與 USB 驅(qū)動(dòng)一樣,修改 Kconfig 文件后進(jìn)行內(nèi)核配置將其直接編譯進(jìn)內(nèi)核即可。如圖 56 為幀緩沖設(shè)備在內(nèi)核的結(jié)構(gòu)圖: 成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 27 圖 57 幀緩沖設(shè)備結(jié)構(gòu)圖 在本文中, LCD 驅(qū)動(dòng)的移植涉及到修改屏幕參數(shù),使其適合本文所用 50針的 TFT顯示屏。程序中用到的主要系統(tǒng)調(diào)用函數(shù)有: open(”/ dev/ voide00,int flags)、 close(fd)、 mmap(void start, size_t length, int prot, int flags, int fd,off_t offset)、 munmap(void start, size_t length)和 ioctl(int fd, int cmd,? ),利用提供的函數(shù)接口,我們就可以打開視頻設(shè)備文件, 將其映射到用戶空間進(jìn)行數(shù)據(jù)采集,從而實(shí)現(xiàn)圖像的采集。 Video4Linux 是 Linux 下進(jìn)行影像系統(tǒng)開發(fā)的核心。我 們可以利用 Vide04Linux 獲取攝像頭的視頻數(shù)據(jù)?,F(xiàn)在 已有最新的 Video41inux2,但還未加入 linux 內(nèi)核,使用需自己下載補(bǔ)丁。編寫適用于本文所用開發(fā)板的 USB 驅(qū)動(dòng),需要修改板文件,添 加平臺(tái)設(shè)備,配置內(nèi)核,再進(jìn)行內(nèi)核編譯。 針對(duì)本文中所使用開發(fā)板,十分類似于 s3c2410,對(duì)于本開發(fā)板的 USB 移植就在對(duì) s3c2410 的 USB 驅(qū)動(dòng)修改上進(jìn)行。本系統(tǒng)中我們要使用攝像頭,所以系統(tǒng)需要具備 USB主機(jī) Host 的驅(qū)動(dòng)。對(duì)應(yīng)的就應(yīng)該在內(nèi)核中進(jìn)行 USB 驅(qū)動(dòng)的移植, USB 作為一個(gè)驅(qū)動(dòng)層在內(nèi)核代碼中是很獨(dú)立的一個(gè)模塊,在往內(nèi)核中添加USB 的支持時(shí),需要改動(dòng)控制這 部分代碼編譯連接的文件。對(duì)比于 PC 的驅(qū)動(dòng),嵌入式 Linux 驅(qū)動(dòng)程序經(jīng)過交叉編譯后運(yùn)行在嵌入式系統(tǒng)中上。對(duì)于大多數(shù)情況來說,我們不太會(huì)編寫這類設(shè)備驅(qū)動(dòng)程序,因此這里就不做研究了。內(nèi)核不再調(diào)用read 和 write,它調(diào)用與數(shù)據(jù)包傳送相關(guān)的函數(shù)。這樣的名字在文件系統(tǒng)中并沒有對(duì)應(yīng)項(xiàng)。由于網(wǎng)絡(luò)接口不是面向流的設(shè)備,一所以它不能像/ dev/ ttyl 那樣簡(jiǎn)單地被映射到文件系統(tǒng)的成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 25 節(jié)點(diǎn)上。通常,接口是一個(gè)硬件設(shè)備,但也有像 loopback(環(huán)回 )接口這樣的軟件工具。圖 56 示出了字符設(shè)備和塊設(shè)備的區(qū)別。字符設(shè)備只允許進(jìn)行順序的非隨機(jī)訪問,因此它不能用于提供文件系統(tǒng)的存儲(chǔ)。應(yīng)用程序在訪問字符設(shè)備時(shí)一般都采用直接讀寫的方法,但在訪問塊設(shè)備時(shí)就要通過系統(tǒng)里的緩沖區(qū)緩存了。通過文件系統(tǒng)節(jié)點(diǎn)可以訪問字符設(shè)備,字符設(shè)備和普通文件系統(tǒng)問的惟一區(qū)別是,普通文件允許在其上來回讀寫,而大多數(shù)字符設(shè)備僅僅是數(shù)據(jù)通道,只能順序讀寫,當(dāng)然也存在這樣的字符設(shè)備看起來像一個(gè)數(shù)據(jù)區(qū),可來回讀取其中的數(shù)據(jù)。這樣的驅(qū)動(dòng)程序通常會(huì)實(shí)現(xiàn) open、 close、 read和 write 系統(tǒng)調(diào)用。 設(shè)備介紹 1)字符設(shè)備 字符設(shè)備是指存取時(shí)沒有緩存的設(shè)備。因此內(nèi)核模塊是為了給內(nèi)核動(dòng)態(tài)增減功能而設(shè)計(jì)的,并不僅限于驅(qū)動(dòng)程序。而用戶程序在用戶空間中運(yùn)行,只能訪問自己的用戶空間,對(duì)內(nèi)核空間的訪問具有嚴(yán)格的限制。 眾所周知, Linux 把內(nèi)存分為“內(nèi)核空間”和“用戶 空間 。操作系統(tǒng)是通過各種驅(qū)動(dòng)程序來駕馭硬件設(shè)備的。因此熟悉驅(qū)動(dòng)的編寫是很重要的。 linux 設(shè)備驅(qū)動(dòng)移植 基礎(chǔ)知識(shí) 驅(qū)動(dòng)硬件是操作系統(tǒng)最基本的功能,它為應(yīng)用程序提供了統(tǒng)一的方式來訪問各種硬件設(shè) 備。 將 ,固化之后。 將 rootfs文件拷貝到 NFS工作目錄中。 2)安裝 。 動(dòng)態(tài)鏈接庫(kù)直接用友善之臂的,先解壓友善之臂的根文件包,拷貝 lib 的內(nèi)容到新建的根文件目錄 lib 內(nèi)。 在 Ubuntu下安裝 tree( sudo aptget install tree) ,并可通過命令來查看。具體地說,它負(fù)責(zé)為成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 22 用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,當(dāng)用戶不再使用時(shí)撤銷文件等。文件系統(tǒng)由三部分組成:與文件管理有關(guān)軟件、被管理文件以及實(shí)施文件管理所需數(shù)據(jù)結(jié)構(gòu)。也指用于存儲(chǔ)文件的 磁盤 或分區(qū),或文件系統(tǒng)種類。把這個(gè)映像文件下載到開發(fā)板中,開發(fā)板提供了一套比較完整的通用系統(tǒng)的外圍設(shè)備,配置 bootloader的啟動(dòng)參數(shù)就能運(yùn)行起來。 內(nèi)核映像分為壓縮的內(nèi)核映像和未壓縮的內(nèi)核映像,壓縮的內(nèi)核映像通常名為 zlmage,位于 arch/ arm/ boot目錄中。如果內(nèi)核配置選項(xiàng)中有選擇編譯為模塊的,就需要此命令。 3)make zlmage:建立壓縮的 linux內(nèi)核映像。執(zhí)行: 1)make clean:這條命令是在正式編譯你的內(nèi)核之前先把環(huán)境給清理干凈,保證沒有不正確的依賴文件存在。選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的功能代碼編譯成為可加載模塊,以減小內(nèi)核的長(zhǎng)度,減小內(nèi)核消耗的內(nèi)存,簡(jiǎn)化該功能相應(yīng)的成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 21 環(huán)境改變時(shí)對(duì)內(nèi)核的影響;不需要的功能就不要選,與內(nèi)核點(diǎn)緊密且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。選擇相應(yīng)的配置時(shí),有三種選擇,它們分別代表的含義如下: Y為將該功能編譯進(jìn)內(nèi)核; N為不將該功能編譯進(jìn)內(nèi)核; M為將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊。界面雖然比上面一個(gè)差點(diǎn),總比 makeconfig 的要好多了。在真正移植內(nèi)核到 ARM 平臺(tái)之前,還需要對(duì)內(nèi)核進(jìn)行配置和移植相應(yīng)的設(shè)備驅(qū)動(dòng)程序。從網(wǎng)站上可以下載內(nèi)核 的源碼包,使用命令 tar – xzvf 將內(nèi)核解壓縮到指定的目錄下。 Linux2. 6的內(nèi)核吸收了一些新技術(shù),在性能、可量測(cè)性、支持和可用性方面不斷提高??梢蕴岣邿龑懙男?。利用 tftp 傳輸 文件到開發(fā)板。在以后的燒寫中,一般利用 uboot 本身來燒錄。然后,編譯 Bootloader,在 uboot 目錄下配置系統(tǒng)相關(guān)的 設(shè)置,執(zhí)行: make menuconfig,再執(zhí)行 make,就可以在當(dāng)前目錄下生成 。 ARM 處理器體系中,嵌入式 Linux 下常使用的 Bootloader 包括: BIob、 vivi、U B00t、 ARMb00t、 RedBoot 等。以指導(dǎo)用戶特定的 Bootloader 設(shè)計(jì)與實(shí)現(xiàn)。通常, Bootloader 是依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式系統(tǒng)中。 TFTP服務(wù)器搭建步驟: ( 1)在線安裝命令: yum install xid tftp tftpserver ( 2)修改配( 3)重啟服務(wù)( 4)測(cè)試: Bootloader移植 在嵌入式系統(tǒng)中, Bootloader的作用與 PC機(jī)上的 BIOS類似,通過 Bootloade可以完成對(duì)系統(tǒng)板上的主要部件如 CPU、 SDRAM、 Flash、串行門等進(jìn)行初始化,也可以下載文件到系統(tǒng)板上,對(duì) Flash 進(jìn)行擦除與編程。傳輸中有三種模式: ascii, 這是 8位的 ASCII碼形式,另一種是 octet,這是 8位源 數(shù)據(jù)類型 ;最后一種 mail已經(jīng)不再支持,它將返回的數(shù)據(jù)直接返回給用戶而不是保存為文件。此協(xié)議設(shè)計(jì)的時(shí)候是進(jìn)行小 文件傳輸 的。所以要將幾 個(gè)端口固定住 。安裝 NFS 服務(wù)以centos 步驟為例: ( 1) 在線安裝 NFS命令: yum install nfsutils portmap ( 2) 配置 NFS: vim etc/exports 添加: /root/rootnfs Client_IP(rw,sync, no_root_squash) ( 3)設(shè)置 NFS服務(wù)自啟動(dòng)。在系統(tǒng)有了網(wǎng)絡(luò)以后,很多調(diào)試工作就能方便許多, NFS 的設(shè)計(jì)是為了在不同的系統(tǒng)問使用文件.所以其通信協(xié)議的設(shè)計(jì)與主機(jī)及操作系統(tǒng)無關(guān),當(dāng)使用者想使用遠(yuǎn)程文件時(shí),只要使用掛載命(mount)就可把遠(yuǎn)程文件系統(tǒng)掛載在自己的文件系統(tǒng)之下,這就使得系統(tǒng)對(duì)遠(yuǎn)程文件的使用和本地文件沒有區(qū)別。 在 系統(tǒng)環(huán)境變量 PATH,編輯 /etc/profile,在其中 export PATH前加入交叉編譯器路徑,然后在終端中執(zhí)行命令 source / etc/profile,這樣系統(tǒng)每次都能自己找 到 已 經(jīng) 設(shè) 置 好 的 交 叉 編 譯 器 包 的 路 徑 , 用 戶 就 能 直 接 使 用 arm 成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 18 one1inuxgnueabigcc命令了。 Linux內(nèi)核與編譯器的關(guān)系非常緊密,甚至不同的內(nèi)核版本需要依賴于特定的 gcc編譯器。 圖 52 交叉編譯開發(fā)環(huán)境模型 Linux內(nèi)核必須使用 GNU的 C編譯器 gcc來編譯,而不是任何一種 C編譯器都可以使用。目標(biāo)板和宿主機(jī)之間的通信連接方式通??梢允褂么?、以太網(wǎng)接口、 USB 接口以及JTAG 接口等.在宿主機(jī)上,可以安裝開發(fā)工具,編輯目標(biāo)板的 Linux 引導(dǎo)程序、內(nèi)核和文件系統(tǒng),然后在目標(biāo)機(jī)上運(yùn)行。 交叉編譯開發(fā)環(huán)境一般由宿主機(jī)、目標(biāo)機(jī)和兩者之間通信信道組成。 Linux交叉編譯環(huán)境搭建 由于嵌入式系統(tǒng)沒有足夠的內(nèi)存和存儲(chǔ)資源來編譯可執(zhí)行代碼,這要求建立好的交叉開發(fā)環(huán)境中進(jìn)行交叉編譯和鏈接。所有的內(nèi)核源程序都可以在/ usr/ src/linux 下找到,大部分應(yīng)用軟件也都是遵循 GPI,而設(shè)計(jì),遍布全球的眾多 Linux 愛好者又是 Linux 開發(fā)者的強(qiáng)大技術(shù)支持。 圖 51 Linux 內(nèi)核系統(tǒng)模塊結(jié)構(gòu)及相互依賴關(guān)系 Linux 是開放源代碼的, Linux 操作系統(tǒng)設(shè)計(jì)本身具有的不同平臺(tái)之間的可移植性,而且所需的存儲(chǔ)空間也 很小。操作系統(tǒng)服務(wù)程序、操作系統(tǒng)內(nèi)核及 Bootloader 被看作是操作系統(tǒng)部分。 開發(fā)環(huán)境搭建 Linux系統(tǒng)及 Linux內(nèi)核簡(jiǎn)介 一個(gè)完整的系統(tǒng)主要 5 部分組成:硬件、 Bootloader、操作系統(tǒng)內(nèi)核、操作系統(tǒng)服務(wù)和用戶應(yīng)用程序,用戶應(yīng)用程序是指那一個(gè)系統(tǒng)的組成些字處理程序、互聯(lián)網(wǎng)應(yīng)用程序或其它用戶自行編制的各種應(yīng)用程 序;操作系統(tǒng)服務(wù)程序是指向用戶提供的系統(tǒng)調(diào)用等接口程序, Bootloader 主要完成硬件檢測(cè)和系統(tǒng)引導(dǎo)。分辨率為: 480*272,信號(hào)接口為: RGB|Paralle 。滿足本文研究圖像采集需求。 圖 43 開發(fā)板實(shí)物圖 成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 13 表 41 開發(fā)板硬件列表 處理器 Samsung 公司的 S5pc100處理器 NAND Flash 256MB NAND Flash Nor Flash 2MB DDR2內(nèi)存 256MB 顯示輸出接口 LCD 接口、 VGA接口、 TVout 接口、 HDMI接口 視頻輸入接口 Camera 接口 串口 2路 5線串口、 1路 3線串口 SD 卡接口 支持大容量 SD 卡 SPI Flash 用于 SPI 實(shí)驗(yàn) 溫度傳感器 基于 I2C 接口 電位器 用于模擬量輸入 4路 USB Host 1路 蜂鳴器 用于 PWM 實(shí)驗(yàn) 100M 網(wǎng)絡(luò)接口 DM9000AE WIFI 接口 Marvell8686 AC97音頻接口 WM9714芯片 按鍵 6個(gè)按鍵 LED 4個(gè) LED 音頻功放接 口 可直接驅(qū)動(dòng)喇叭 以下是每個(gè)模塊的電路圖: 1)串口: (1) (2) 成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 14 圖 44 串口電路圖 2)VGA 接口: (1) (2) 圖 45 LCD 接口電路 3)USB 接口 圖 46 USB 接口電路圖 圖像數(shù)據(jù)采集設(shè)備 成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 15 本文采用的圖像采集設(shè)備是普通家用 USB 攝像頭,如圖 47 所示為本文采用攝像頭實(shí)物圖。如表 41所示是開發(fā)板硬件列表。 圖 41 S5PC100 結(jié)構(gòu)圖 如圖 42 所示是核心處理器 S5pc100 的電路圖:成都理工大學(xué) 2020 屆本科畢業(yè)設(shè)計(jì)(論文) 12 圖 42 S5PC100 芯片電路圖 開發(fā)板簡(jiǎn)介 FS_S5PC100 開發(fā)平臺(tái)用三星公司先進(jìn)的基于 CortexA8 內(nèi)核 S5PC100 處理器設(shè)計(jì)而成。提供了 24bitLCD接口、 TVout 接口、 Ca mera 輸入接口、 4路串口、 SD 卡接口、 SPI、 1OOM 網(wǎng)口、USB2. O 一 0TG 接口, USBHost 接口、音頻輸入輸出接口、按鍵接口、 12C
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1