新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式硬件平臺的劃片機視覺系統設計

        基于嵌入式硬件平臺的劃片機視覺系統設計

        作者: 時間:2016-12-02 來源:網絡 收藏

        3.2 ARM Linux設備驅動編寫

        Linux的內核是由設備管理、進程管理、文件系統和內存管理一起組成,Linux設備驅動可以分為字符類設備,網絡接口類設備,塊類設備和其他非標準驅動。PCI設備被看作是字符型設備。每個PCI外設都由一個總線號、一個設備號和一個功能號來標示,共有3個訪問空間,即I/O端口、內存空間和配置寄存器。PCI配置空間由256個字節組成,且每個設備功能都有一個配置空間,用于決定PCI器件的工作方式和映射到系統中的地址。

        添加系統的PCI設備驅動主要步驟:

        (1)創建1個PCI設備,命令:mknod pci_dev c247 0,其中c表示字符設備,247表示主設備號,0代表次設備號。

        (2)初始化外部設備,將函數pci_ dev_ init()添加到ARMlinux/linux/drivers/chal/mem.c文件的chr _dev_ init()中,chr _dev _init()將在系統啟動時被調用,會完成設備驅動的初始化工作:

        (3)設備驅動文件pci__dev.c的編寫。設備注冊接口函數,中斷處理函數等構成了PCI設備驅動主要代碼。即file_operationgs根據S3C2510的PCI配置寄存器所給定的基址來讀寫數據。PCI定義的I/O空間是32位地址空間,內存和I/O可使用相同的配置接口。

        (4)PCI設備的加載。ARMlinux不支持設備驅動的動態加載,因此需要把驅動編譯到ARM Linux內核中,首先需修改makefile文件,添加下行:obj_$(CONFIG_ PCI_ DEV)+=pci _dev.o接著修改config.in, 添 加 :boolpci _dev installCONFIGPCI DEV,添加這行的目的是為了在配置目標板Linux系統內核時以便對這個設備進行選擇。最后在目標系統的makefile中添加設備節點:pci _dev,C,247,0這樣在配置Linux內核時就可以選擇pci_dev install,然后進行編譯,這樣PCI設備驅動就加載到了ARM Linux系統中。

        4 主控單元圖像采集編程

        內核針對數碼攝像頭等視頻設備提供V4L函數接口,V4L提供針對視頻設備進行基本的I/O操作的接口函數如:open、read、write、close,中斷處理,內存映射及I/O通道的控制ioctl等,并定義在struct file_operations數據結構體中。當應用程序對設備進行諸如open、read、Write、close等系統調用操作時,內核將通過file_operation結構訪問驅動程序提供的函數接口.具體的采集程序如下:

        PCI接口視頻采集流程如圖5所示。

        V4L為視頻采集圖像提供兩種方案①:read()直接讀取,②:mmap()內存映射。read()通過內存緩沖區


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 双城市| 三亚市| 苏尼特左旗| 北安市| 西和县| 新沂市| 镇巴县| 辽阳县| 荆州市| 渝中区| 吉林市| 牡丹江市| 莱西市| 宜宾市| 凤翔县| 雷波县| 策勒县| 两当县| 子长县| 襄城县| 霍邱县| 游戏| 澄城县| 济南市| 凌海市| 青海省| 宁国市| 土默特右旗| 新宾| 宁德市| 沁源县| 内江市| 巴彦淖尔市| 永兴县| 淮北市| 德州市| 毕节市| 精河县| 平顺县| 岱山县| 湘阴县|