久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.xinguifushi.cn/bbs/index.asp)
--  Linux驅(qū)動(dòng)開(kāi)發(fā)  (http://www.xinguifushi.cn/bbs/list.asp?boardid=33)
----  嵌入式Linux的DiskOnChip設(shè)備驅(qū)動(dòng)開(kāi)發(fā) (2)  (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=33&id=1709)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-11-24 9:39:56
--  嵌入式Linux的DiskOnChip設(shè)備驅(qū)動(dòng)開(kāi)發(fā) (2)
 

1 引 言

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

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

2 硬件系統(tǒng)結(jié)構(gòu)

電子盤(pán)的內(nèi)部存儲(chǔ)介質(zhì)Flash是近幾年來(lái)發(fā)展最快的一種存儲(chǔ)芯片,他具有E2PROM可擦寫(xiě)的特點(diǎn),又同時(shí)具有EPROM廉價(jià)的特點(diǎn),他是一種高性能、低功耗、電可擦除的存儲(chǔ)器件。根據(jù)其以上一些特點(diǎn),電子盤(pán)已廣泛應(yīng)用于信息存儲(chǔ)、機(jī)頂盒、網(wǎng)絡(luò)計(jì)算以及嵌入式計(jì)算機(jī)等領(lǐng)域。

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

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

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

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

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

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

 

 

4 構(gòu)建嵌入式Linux內(nèi)核DOC設(shè)備支持

DOC通過(guò)TrueFFS磁盤(pán)仿真的支持,Linux系統(tǒng)可把DOC驅(qū)動(dòng)編譯成模塊(doc.o)進(jìn)行支持,并可用于系統(tǒng)加載后的輔助存儲(chǔ)盤(pán)使用,同時(shí)也可把DOC核心驅(qū)動(dòng)加載入Linux內(nèi)核,在系統(tǒng)啟動(dòng)時(shí)進(jìn)行驅(qū)動(dòng)和加載。

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

構(gòu)建內(nèi)核對(duì)DOC塊設(shè)備的支持:

(1)設(shè)備的設(shè)備名稱(chēng)和主設(shè)備號(hào)

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

71#define MY_M(jìn)AJOR 30

這樣可以通過(guò)MY_M(jìn)AJOR來(lái)確定設(shè)備為新設(shè)備,保證通用性。

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

  

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

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

  

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

(4)確定編寫(xiě)需要的請(qǐng)求處理函數(shù)

在塊設(shè)備驅(qū)動(dòng)程序中,不帶中斷服務(wù)子程序的請(qǐng)求處理函數(shù)是簡(jiǎn)單的,典型的格式如下:

 

實(shí)際上,一個(gè)真正的塊設(shè)備一般不可能沒(méi)有中斷服務(wù)子程序,另外設(shè)備驅(qū)動(dòng)程序是在系統(tǒng)調(diào)用中被調(diào)用的,這時(shí)由內(nèi)核程序控制CPU,因此不能搶占,只能自愿放棄;因此驅(qū)動(dòng)程序必須調(diào)用sleep_on()函數(shù),釋放對(duì)CPU的占用;在中斷服務(wù)子程序?qū)⑺璧臄?shù)據(jù)復(fù)制到內(nèi)核內(nèi)存后,再由他來(lái)發(fā)出wake_up()調(diào)用。

5 結(jié) 語(yǔ)

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


主站蜘蛛池模板: 亚洲在线久久 | 最新国产精品好看的国产精品 | 欧美白人猛性xxxxx交69 | 爱呦视频在线播放网址 | 亚洲国产资源 | 日本一级特黄啪啪片 | 成年人网站免费视频 | 亚洲精品国产拍拍拍拍拍 | 女同日韩互慰互摸在线观看 | 一级毛片大全 | 免费一级成人免费观看 | 久久ri精品高清一区二区三区 | 亚洲国产一区二区三区在线观看 | 国产成人精品综合网站 | 日本二区免费一片黄2019 | 国产三级一区二区 | 久久久免费精品视频 | 精品国产免费观看一区 | 亚欧在线观看 | 欧美日韩精品一区二区三区视频播放 | 日本www视频在线观看 | 免费欧美黄色 | 精品欧美小视频在线观看 | 一级毛片免费在线观看网站 | 中文字幕日韩精品在线 | 久草在线视频在线 | 亚洲高清在线观看看片 | 久久久国产免费影院 | 亚洲欧美日韩精品久久 | 国产主播精品福利19禁vip | 久久99热成人精品国产 | 一级a性色生活片久久毛片 一级a做爰片欧欧美毛片4 | 99在线视频播放 | 国产成人免费不卡在线观看 | 免费在线视频成人 | 欧美在线一二三区 | 国产成人综合欧美精品久久 | 欧美日韩国产58香蕉在线视频 | 国产成人免费观看 | 色天使色婷婷在线影院亚洲 | 免费成人高清视频 |