<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  Linux驅動開發(fā)  (http://www.hufushizhe.com/bbs/list.asp?boardid=33)
    ----  嵌入式Linux的DiskOnChip設備驅動開發(fā) (2)  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=33&id=1709)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-11-24 9:39:56
    --  嵌入式Linux的DiskOnChip設備驅動開發(fā) (2)
     

    1 引 言

    在以計算機技術、通訊技術相結合的信息時代的快速發(fā)展和互聯(lián)網廣泛應用的形勢下,3C(Computer,Communication,Consumer)合一的趨勢已經形成,其結果必然就是將計算機工業(yè)的中心從計算產品轉移到嵌入式信息產品。

    然而由于嵌入式系統(tǒng)的應用要求及成本因素決定了嵌入式系統(tǒng)在系統(tǒng)資源,包括硬件資源和軟件資源方面都是非常精簡和高效的。因此在嵌入式系統(tǒng)中的存儲設備一般不會采用硬盤等大容量高功耗設備,而改用諸如CompactFlash,EPROM等存儲介質。因此本文就M-systems公司開發(fā)的新一代閃存FlashDiskOnChip 2000,介紹在基于嵌入式Linux系統(tǒng)上文件系統(tǒng)和塊設備的支持及驅動。

    2 硬件系統(tǒng)結構

    電子盤的內部存儲介質Flash是近幾年來發(fā)展最快的一種存儲芯片,他具有E2PROM可擦寫的特點,又同時具有EPROM廉價的特點,他是一種高性能、低功耗、電可擦除的存儲器件。根據其以上一些特點,電子盤已廣泛應用于信息存儲、機頂盒、網絡計算以及嵌入式計算機等領域。

    M-system公司推出的DiskOnChip 2000系列是新一代閃存磁盤(Flash Disk)。為標準32腳DIP封裝,他與標準的E2PROM完全兼容。一般的閃存器(FlashMemory)只包含存儲器部分,而控制器要另加。為了對閃存磁盤進行管理,DiskOnChip中已裝有MSystem公司的閃存文件系統(tǒng)(TrueFFS)軟件。這使得他使用簡單,工作中不需要任何其他特殊復雜的算法。他的讀/寫與硬盤完全相同,因此他可以作為獨立硬盤使用,并與其他磁盤兼容。可以直接引導計算機系統(tǒng)而不需要其他系統(tǒng)盤。他適用于3.3 V和5 V電源,功耗很小,對于那些空間受限,小型便攜式裝置,DiskOnChip將是最佳選擇。DOC2000結構主要由系統(tǒng)接口單元(SystemIterface)、系統(tǒng)引導模塊(BootBlock)、閃存控制單元(FlashControl)以及和Flash存儲介質等組成,其結構如圖1所示。

    其中系統(tǒng)接口單元為DOC2000提供了類似SRAM的接口,使之能夠通過CPU的本地總線、ISA總線以及SRAM總線建立與操作系統(tǒng)的連接。DOC提供片選信號(CE#)、讀寫信號(WE#)、使能信號(OE#)以及13位寬的地址線(A[0:12])和8位寬的數(shù)據總線(D[0:7])。系統(tǒng)接口在主總線信號(讀、寫、地址和片選)的控制下產生相應的控制信號送入閃存磁盤,其內部的ROM提供一種IPL碼,此碼在計算機啟動過程中將閃存文件系統(tǒng)軟件裝入PC內存。他在PC的擴展BIOS中安排了8 kB以上的存儲區(qū)域,其地址為0C000H~0EFFFH。計算機開機自檢后,DiskOnChip作為PC的BIOS標準操作的一部分,BIOS搜尋ROM擴展碼,找到后BIOS執(zhí)行閃存磁盤內的初始化碼,此碼將閃存文件系統(tǒng)軟件裝入內存。閃存磁盤也將被安裝為系統(tǒng)的一個磁盤,然后將傳輸器控制回到BIOS碼。當操作系統(tǒng)要確認適合系統(tǒng)的磁盤時,閃存磁盤軟件即模仿一個硬盤做出反應。

    3 TrueFFS與Linux的文件系統(tǒng)

    TrueFFS是M-system公司開發(fā)出來的專用于電子盤設備的專利技術。TrueFFS是Tornadoll開發(fā)環(huán)境中的一個集成的快速閃存文件系統(tǒng),通過TrueFFS對DOC塊設備的磁盤仿真功能,從而方便了嵌入式Linux系統(tǒng)對電子盤的讀寫、分區(qū)、格式化等一系列操作。通過對操作系統(tǒng)的I/O控制調用。Linux可以通過VFS訪問TureFFS的外部接口。

    Linux文件系統(tǒng)最優(yōu)秀的地方是對多種文件系統(tǒng)的支持(這里的上層結構是指VFS系統(tǒng)和具體的文件系統(tǒng),即除buffer管理系統(tǒng)以外的部分)。為了實現(xiàn)這種特色,就必須有一個抽象的層次來統(tǒng)一描述各種文件系統(tǒng),Linux中就用VFS來實現(xiàn)了這個抽象層;同時,各種具體的文件系統(tǒng)又必須有一個和VFS交互的手段,如圖2所示。

    Linux文件系統(tǒng)管理的最上層模塊是文件系統(tǒng)。系統(tǒng)啟動時,必須先裝入“根”文件系統(tǒng),然后根據/etc/fstab中的指定,逐個建立文件系統(tǒng)。此外,用戶也可以通過mount,umount操作,隨時安裝或卸載文件系統(tǒng)。Linux系統(tǒng)調用操作系統(tǒng)的GetDriveHandle()函數(shù)得到驅動器的句柄,他的返回值是一個能夠供I/O控制函數(shù)調用的TrueFFS驅動的描述符。然后再調用操作系統(tǒng)中文件系統(tǒng)的IOCongtrol()函數(shù),通過VFS的支持,使TrueFFS具有通用文件系統(tǒng)的特性。當某個進程發(fā)布了一個面向文件的系統(tǒng)調用時,核心將調用VFS中相應的函數(shù),這個函數(shù)處理一些與物理結構無關的操作,并且把他重定向為真實文件系統(tǒng)中相應的函數(shù)調用,而這些函數(shù)調用則用來處理那些與物理結構相關的操作。

     

     

    4 構建嵌入式Linux內核DOC設備支持

    DOC通過TrueFFS磁盤仿真的支持,Linux系統(tǒng)可把DOC驅動編譯成模塊(doc.o)進行支持,并可用于系統(tǒng)加載后的輔助存儲盤使用,同時也可把DOC核心驅動加載入Linux內核,在系統(tǒng)啟動時進行驅動和加載。

    在Linux系統(tǒng)中DOC設備被模擬為IDE塊設備進行識別,系統(tǒng)用主設備號(MAJOR)加次設備(MINOR)號來惟一標識一個設備。相同主設備號表示同一類設備,例如都是硬盤;次設備號標識同類設備的個數(shù)。所有設備在適當?shù)哪夸洠ㄍǔT冢痙ev目錄)下必須有相應的文件,這樣字符設備和塊設備都可以通過文件操作的系統(tǒng)調用來完成。不同的是,塊設備操作經常要和緩沖區(qū)打交道,從而更加復雜一些。系統(tǒng)設備管理的總體框圖如圖3所示。

    構建內核對DOC塊設備的支持:

    (1)設備的設備名稱和主設備號

    必須找一個還沒有被使用的主設備號,分配給自己的新設備。假設主設備號為30(在2.0.34的內核中還沒有以30作為主設備號的塊設備),則需要在include/Linux/major.h中加入如下句:

    71#define MY_MAJOR 30

    這樣可以通過MY_MAJOR來確定設備為新設備,保證通用性。

    (2)確定編寫需要的file_operations中的操作函數(shù)

      

    由于使用了高速緩存,塊設備驅動程序就不需要包含自己的read(),write()和fsync()函數(shù),但必須使用自己的open(),release()和ioctl()函數(shù),這些函數(shù)的作用和字符設備的相應函數(shù)類似。

    (3)確定編寫需要的輸入/輸出函數(shù)

      

    值得注意的是這2個函數(shù)和字符設備中的myread(),mywrite()函數(shù)不同。

    (4)確定編寫需要的請求處理函數(shù)

    在塊設備驅動程序中,不帶中斷服務子程序的請求處理函數(shù)是簡單的,典型的格式如下:

     

    實際上,一個真正的塊設備一般不可能沒有中斷服務子程序,另外設備驅動程序是在系統(tǒng)調用中被調用的,這時由內核程序控制CPU,因此不能搶占,只能自愿放棄;因此驅動程序必須調用sleep_on()函數(shù),釋放對CPU的占用;在中斷服務子程序將所需的數(shù)據復制到內核內存后,再由他來發(fā)出wake_up()調用。

    5 結 語

    DOC作為一種新型閃存電子盤,以盤體體積小、功耗低和帶硬盤仿真功能等特點,在一些對電源功耗要求苛刻、空間狹小的嵌入式場合,有他很獨到的優(yōu)勢;加之目前生活自動化(LA)、智能設備終端等領域的技術日趨成熟,在嵌入式操作系統(tǒng)應用日益廣泛的今天,嵌入式操作系統(tǒng)對此類電子盤設備的支持日益完善。本文結合嵌入式Linux系統(tǒng)介紹和分析了其下DOC2000的設備驅動和文件系統(tǒng)的支持,可廣泛用于工業(yè)控制系統(tǒng)、網絡視頻以及POS機系統(tǒng)儲存中,具有實用的價值。 (T004)


    主站蜘蛛池模板: 一级**爱片免费视频| 国产精品无码专区| 亚洲av无码国产综合专区| 男人资源在线观看| 国产对白受不了了| aaaa级毛片| 少妇人妻在线视频| 久久综合九色综合网站| 欧美日韩亚洲区久久综合| 午夜第九达达兔鲁鲁| 被滋润的艳妇疯狂呻吟白洁老七| 国产美女高清**毛片| 丁香六月婷婷综合| 无遮挡无删动漫肉在线观看| 亚洲国产精品一区二区三区在线观看 | 日韩在线播放全免费| 亚洲视频在线精品| 精品无人区一区二区三区| 天啪天天久久天天综合啪| 久久精品免费一区二区喷潮| 欧美亚洲精品suv| 伦理eeuss| 精品久久久久国产免费| 国产人碰人摸人爱视频| 鲁不死色原网站| 国产精品无码2021在线观看| www.天天色| 小四郎在线观看| 久久久久亚洲av成人无码| 日本漫画之无翼彩漫大全| 亚洲入口无毒网址你懂的| 欧美日韩1区2区| 偷天宝鉴在线观看国语| 精品久久久久久无码人妻| 国产伦精品一区二区三区四区 | 怡红院视频在线观看| 久久精品国产91久久综合麻豆自制 | 日本三级s电影| 亚洲av永久无码一区二区三区 | 欧美伊香蕉久久综合类网站| 伊人精品久久久大香线蕉99|