亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MPC8313E和FPGA的雙口RAM驅(qū)動開發(fā)

        2013-04-25 02:17:16
        電子科技 2013年1期
        關(guān)鍵詞:雙口驅(qū)動程序內(nèi)核

        馬 旭

        (西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安710071)

        在眾多操作系統(tǒng)中,Linux操作系統(tǒng)以其獨有開放性和靈活性成為重要的系統(tǒng)之一,因而開發(fā)Linux設(shè)備驅(qū)動具有重要意義。Linux設(shè)備驅(qū)動是在Linux內(nèi)核下硬件設(shè)備和上層應(yīng)用程序的紐帶,使得應(yīng)用程序只需調(diào)用系統(tǒng)軟件的應(yīng)用程序編程接口(API)就可以完成對硬件設(shè)備的操作。作為一個橋梁,其在實現(xiàn)具體功能的過程中發(fā)揮著重要的作用,接口豐富的驅(qū)動設(shè)備程序?qū)こ痰拈_發(fā)有著重要的意義。Linux對所有連接在系統(tǒng)上的設(shè)備都會使用一個設(shè)備驅(qū)動程序,這個基本設(shè)備驅(qū)動指令成為了內(nèi)核的一部分。通過使用設(shè)備驅(qū)動程序文件,設(shè)備對系統(tǒng)來說變成了一個可以尋址、重定向并通過管道符導(dǎo)向的普通文件[1]。

        1 雙口RAM讀寫設(shè)備驅(qū)動的開發(fā)背景

        在基于MPC8313E的大容量視頻存儲系統(tǒng)中,系統(tǒng)需要實現(xiàn)通過千兆以太網(wǎng)接口與上位機進行通信,按上位機發(fā)送的命令解析后送給FPGA,進而通過FPGA發(fā)出的曝光脈沖控制高速相機MC1362工作。當(dāng)存儲任務(wù)完成后,F(xiàn)PGA將存儲陣列中的數(shù)據(jù)讀入雙口RAM并傳至MPC8313E中,Linux端服務(wù)器利用千兆以太網(wǎng)接口將數(shù)據(jù)上傳到上位機中,由上位機完成圖像還原。

        在構(gòu)造大容量高速上傳通道的過程中,系統(tǒng)采用飛思卡爾MPC8313E芯片,該芯片有兩個增強型三速(10/100/1 000 Mbit·s-1)以太網(wǎng)控制器,支持IEEE802.3協(xié)議,同時該芯片還支持16/32位的DDR SDRAM數(shù)據(jù)接口,最高支持333 MHz的數(shù)據(jù)頻率,512 MB可尋址空間以及4個直接存儲器訪問(DMA)通道,可以滿足系統(tǒng)設(shè)計要求[2]。該驅(qū)動設(shè)備主要實現(xiàn)從FPGA雙口RAM中乒乓讀取圖像數(shù)據(jù)信息,利用掛載在MPC8313E總線上的FPGA完成數(shù)據(jù)上傳,同時也需要解析上位機命令后傳遞給FPGA。

        2 Linux驅(qū)動模塊的程序設(shè)計基礎(chǔ)

        在Linux/μClinux的框架結(jié)構(gòu)中,和設(shè)備相關(guān)的處理可以分為兩個層次:文件系統(tǒng)層和設(shè)備驅(qū)動層。設(shè)備驅(qū)動層屏蔽具體設(shè)備細(xì)節(jié),文件系統(tǒng)層則向用戶提供一組統(tǒng)一、規(guī)范的用戶接口[3]。這種設(shè)備管理方法可以很好地做到“設(shè)備無關(guān)性”,使Linux可以根據(jù)硬件外設(shè)的發(fā)展進行擴展[4]。

        圖1 Linux設(shè)備框架結(jié)構(gòu)

        Linux系統(tǒng)允許內(nèi)核以模塊的方式加載設(shè)備,這大幅提高了Linux設(shè)備結(jié)構(gòu)的多樣性,同時可以通過裁剪內(nèi)核減少系統(tǒng)不必要的開支,提高工作效率。一般情況下,Linux內(nèi)核的驅(qū)動模塊通常只實現(xiàn)一個驅(qū)動程序,因此它可以分類,在Linux操作系統(tǒng)中有3類主要的設(shè)備文件系統(tǒng):塊設(shè)備、字符設(shè)備和網(wǎng)絡(luò)設(shè)備[5]。

        字符設(shè)備:可以像文件一樣訪問字符設(shè)備,這樣的驅(qū)動程序通常會實現(xiàn)如open、close、read和write系統(tǒng)調(diào)用。

        塊設(shè)備:是文件系統(tǒng)的宿主。Linux允許像字符設(shè)備一樣讀取塊設(shè)備,允許一次傳輸任意數(shù)量的字節(jié)。結(jié)果塊設(shè)備與字符設(shè)備只在內(nèi)核內(nèi)部的管理上有所區(qū)別,即在內(nèi)核/驅(qū)動的軟件接口上有所區(qū)別。

        網(wǎng)絡(luò)設(shè)備:任何網(wǎng)絡(luò)設(shè)備都是通過接口實現(xiàn)的,既可以和其他宿主交換數(shù)據(jù)設(shè)備。通常情況下,接口是一個硬件設(shè)備,但也可以像lookback(回路)接口一樣是軟件工具。網(wǎng)絡(luò)設(shè)備面向網(wǎng)絡(luò)協(xié)議而不是文件系統(tǒng)層。

        3 雙口RAM讀寫設(shè)備驅(qū)動設(shè)計

        介于以上第二部分的分析,雙口RAM設(shè)備選擇為塊設(shè)備,以便傳輸任意數(shù)量的數(shù)據(jù)。同時該驅(qū)動設(shè)備基于Linux2.6.23內(nèi)核開發(fā),以模塊的方式加載至內(nèi)核中,其結(jié)構(gòu)如圖2所示。

        圖2 雙口RAM驅(qū)動設(shè)備框架

        代碼編寫好后在正式編譯前還要準(zhǔn)備好內(nèi)核頭文件和庫函數(shù),這需要先編譯一遍相應(yīng)的內(nèi)核,在2.6.23內(nèi)核源代碼中將MPC8313RDB的配置文件用作默認(rèn)配置,編譯內(nèi)核。完成后書寫驅(qū)動的Makefile,然后連接目標(biāo)板,在NFS下調(diào)試設(shè)備驅(qū)動和應(yīng)用程序。用戶可以使用通過交叉編譯得到的.ko文件通過insmod動態(tài)加載至內(nèi)核中,也可以通過修改啟動腳本文件,加電后自啟動將驅(qū)動加載到內(nèi)核中。

        4 處理結(jié)果

        經(jīng)過打包處理的圖像數(shù)據(jù)通過MPC8313E的服務(wù)器上傳至上位機后,按照圖像格式進行拼圖,每包數(shù)據(jù)含有42 240 Byte數(shù)據(jù),每幀圖像數(shù)據(jù)總量為1 280×1 024 Byte的圖像像素點信息和附加區(qū)信息,共接收35包數(shù)據(jù)后就可還原一幅完整的圖像。上位機在拼圖時裁剪掉一部分?jǐn)?shù)據(jù),最終合成1 024×1 024 Byte的圖像,如圖3所示。

        圖3 上位機完成壓縮1 024×1 024 Byte圖像

        5 結(jié)束語

        雙口RAM驅(qū)動程序是整個存儲系統(tǒng)的核心模塊,它對存儲數(shù)據(jù)的上傳速度和準(zhǔn)確提取圖像信息有重要的影響,通過對MPC8313E寄存器的配置和讀寫以及中斷函數(shù)對硬件的控制來實現(xiàn)對RAM的讀寫,利用MPC8313E現(xiàn)有的接口和傳輸算法,最終實現(xiàn)圖像信息的高速上傳,驗證得出上傳數(shù)據(jù)最快可達104 Mbit·s-1,滿足設(shè)計要求。

        [1] 張芳.Linux系統(tǒng)下設(shè)備驅(qū)動程序解析[J].湖南科技學(xué)院學(xué)報,2005,26(11):204-205.

        [2]Freescale Semiconductor.MPC8313E PowerQUICCTMII pro integrated processor family reference manual[M].EL USA:Technical Information Center,F(xiàn)reescale Semiconductor,2008.

        [3] 寇向暉,田家林,孫洪石.基于S3C44B0X+μcLinux的嵌入式以太網(wǎng)設(shè)計[J].電子產(chǎn)品世界,2005(16):97-99.

        [4]RAGHAVAN P,AMOL L,SRIRAM N.嵌入式Linux系統(tǒng)設(shè)計與開發(fā)[M].宋勁彬,王華勇,邸海霞,等,譯.北京:電子工業(yè)出版社,2008.

        [5]JONATHAN C,ALESSANDRO R,GREG K H.Linux設(shè)備驅(qū)動程序[M].魏永明,耿岳,鐘書毅,譯.北京:中國電力出版社,2006.

        猜你喜歡
        雙口驅(qū)動程序內(nèi)核
        萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
        雙口形式的戴維寧定理在電路分析中的應(yīng)用
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
        Linux內(nèi)核mmap保護機制研究
        雙口RAM在機載嵌入式系統(tǒng)中的應(yīng)用
        電子測試(2018年4期)2018-05-09 07:28:10
        雙口RAM讀寫正確性自動測試的有限狀態(tài)機控制器設(shè)計方法
        雙口RAM在無人機三余度飛控計算機數(shù)據(jù)交換中的應(yīng)用
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        国产精品九九热| 人妻少妇精品视频专区| 久久夜色精品国产噜噜亚洲av| 亚洲免费天堂| 一区二区三区在线观看视频免费| 精品国产a一区二区三区v| 亚洲人成网站色www| 少妇精品无码一区二区三区| 日韩在线手机专区av| 19款日产奇骏车怎么样| 少妇高潮流白浆在线观看| 波多野结衣视频网址| 国产日产免费在线视频| 蜜桃视频在线观看免费亚洲| 小荡货奶真大水真多紧视频| 中文字幕经典一区| 69久久精品亚洲一区二区| 四虎影在永久在线观看 | 我要看免费久久99片黄色| 国产精品乱码一区二区三区| 欧美在线观看一区二区| 一区二区三区国产大片| 亚洲国产精品18久久久久久| 无遮挡又黄又刺激又爽的视频| 亚洲熟女av超清一区二区三区 | 一区二区三区最新中文字幕| 欧美精品一区二区蜜臀亚洲| 亚洲五月激情综合图片区| 伊人久久大香线蕉av色婷婷| 韩国三级在线观看久| 激情97综合亚洲色婷婷五| 国产香蕉一区二区三区| 色婷婷精品久久二区二区蜜臀av | 18禁止进入1000部高潮网站| 久久精品国产亚洲av大全| 亚洲AV秘 无码一区二区三| 日日麻批免费高清视频| 国产午夜福利在线观看红一片| 亚洲免费不卡| 在线视频精品少白免费观看| 国产在线精品一区二区三区|