欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

可隨時熱拔插sd卡且可自動加載卸載的嵌入式方法

文檔序號:6381308閱讀:962來源:國知局
專利名稱:可隨時熱拔插sd卡且可自動加載卸載的嵌入式方法
技術(shù)領域
本發(fā)明涉及一種可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法。
背景技術(shù)
SD卡(Secure Digital Memory Card)已經(jīng)被廣泛運用于嵌入式設備中??ㄆ洗鎯Y料的,為了方便卡片上文件在多平臺交互文件,一般均采用通用文件系統(tǒng)(如FAT12、FAT16、FAT32、NTFS, ExFAT, Ext2、Ext3、HFS, HFS+等)對存放的數(shù)據(jù)文件進行儲存管理。嵌入式設備可以通過狀態(tài)判別出卡片是否插入狀態(tài)。SD卡插入需要握手和識別卡片的參數(shù),并根據(jù)握手情況設置工作頻率以及底層獲得卡片大小容量等信息,文件系統(tǒng)加載文件系統(tǒng)(識別文件系統(tǒng)類型,以及讀取MBS,PBS等信息加載分區(qū)信息等)。因為文件系統(tǒng)加載以及Cache等原因,移除卡片往往需要嵌入式設備中選擇卸載,以便釋放和flush文件系統(tǒng)的Cache到卡片,保證與卡片相關(guān)的資料完整寫入卡片。所以卸載卡片因為Flush數(shù)據(jù)到卡片存儲去也是需要消耗一定的時間。而插入卡片因為要握手識別卡片,以及加載文件系統(tǒng),尤其是對于容量大且裝載的文件多的卡片,加載過程需要一定的時間才可完成。因此,雖然拔插卡不需要關(guān)機后進行,但卻需要繁瑣的的選擇卸載卡片,以便進行cache的flush動作??ㄆ瑢懭霐?shù)據(jù)后,有些數(shù)據(jù)在緩沖區(qū)中,還未來得及Flush到卡片,此時如果用戶物理拔掉卡片,而導致文件系統(tǒng)Cache中的數(shù)據(jù)無法Flush到卡片上。卸載完成之前,用戶一般需要等待,卸載過程中物理移除(拔掉)卡片,數(shù)據(jù)則有可能會丟失,如果文件系統(tǒng)一些重要的管理數(shù)據(jù)未完整Flush,則可能導致文件系統(tǒng)數(shù)據(jù)混亂(如文件夾內(nèi)莫名的出現(xiàn)很多亂碼子文件夾或子文件)。Windows XP對USB Mass storage的磁盤進行設置快速移除最佳化和性能最佳化兩種設置??焖僖瞥罴鸦瘎t寫入卡片的數(shù)據(jù)無Cache,直接實時寫入卡片,雖然可以移除卡片的時候可以省略托盤區(qū)進行移除卸載的操作,但卡片的寫入速度(性能)也大幅度降低。將卡片狀態(tài)的改變設置成中斷,當卡片移除或者插入,則會產(chǎn)生相關(guān)的拔插中斷通知CPU,進而CPU可以處理中斷處理函數(shù)進行處理。但卡片機構(gòu)插入卡片的過程,卡片與卡槽機構(gòu)接觸過程極為容易出現(xiàn)“接觸不良”,即插入過程中先導通,但隨著插入的滑動,中間可能出現(xiàn)短暫的斷開,然后最后插到位置有變成插入狀態(tài),即雖然用戶是一次插入卡片,但因為插入過程可能接觸不良,對于硬體可能產(chǎn)生“插入一移除一插入”的波動效應。進而行程某些情況下,雖然開始中斷判斷到插入,中斷響應函數(shù)通知相關(guān)卡片加載線程去試圖去按照SD卡協(xié)議進行握手識別卡片,結(jié)果又因為接觸不好導致低層握手或者讀取數(shù)據(jù)的時候以為接觸不了而失敗,進而導致無法加載插入的卡片。

發(fā)明內(nèi)容
為了解決背景技術(shù)中存在的上述技術(shù)問題,本發(fā)明提供了一種無需用戶選擇加載及卸載、允許用戶隨意隨時從卡槽插入或移除SD卡的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法。本發(fā)明的技術(shù)解決方案是本發(fā)明提供了一種可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特殊之處在于所述可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法包括以下步驟I)插入 SD 卡;2)判斷SD卡與卡槽是否有抖動;若是,則進行延遲緩沖后再進行握手及加載程序;若否,則直接進行握手及加載程序;3)再握手成功后對SD卡進行數(shù)據(jù)加載時,判斷加載過程是否有異常中斷;若是,則退出加載;若否,則對SD卡上的數(shù)據(jù)進行加載。上述步驟2)中進行延遲緩沖的延遲時間是300ms 500ms。上述步驟3)的具體實現(xiàn)方式是3.1)對SD卡上的數(shù)據(jù)進行讀取或?qū)懭耄?. 2)判斷在讀取或?qū)懭脒^程中SD卡狀態(tài);若SD卡狀態(tài)是無卡狀態(tài),則中斷讀取或?qū)懭脒^程,并結(jié)束;若SD卡狀態(tài)是有卡狀態(tài),則對SD卡上的數(shù)據(jù)進行讀取或?qū)懭氩僮鳌I鲜霾襟E3 )之后還包括4)根據(jù)SD卡上的不同數(shù)據(jù)類型進行數(shù)據(jù)加載。上述步驟4)中的不同數(shù)據(jù)類型是在寫入SD卡時的不同數(shù)據(jù)類型。上述寫入的數(shù)據(jù)類型是文件系統(tǒng)完整性的數(shù)據(jù)以及非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)。上述寫入的數(shù)據(jù)類型是文件系統(tǒng)完整性的數(shù)據(jù)時,對文件系統(tǒng)完整性的數(shù)據(jù)采用零延遲的方式直接寫入SD卡。上述寫入的數(shù)據(jù)類型是非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)時,采用緩沖區(qū)的方式將非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)自動全部Flush寫回卡片;所述緩沖區(qū)允許緩沖的數(shù)據(jù)最大量是200ms內(nèi)所成功寫入的數(shù)據(jù)的大小。上述采用緩沖區(qū)寫入的具體實現(xiàn)方式是首先將非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)寫入SD卡的緩沖區(qū);判斷所寫入數(shù)據(jù)所用的時間是否在緩沖區(qū)所允許的時間內(nèi);若是,則結(jié)束寫入過程;若否,則將緩沖區(qū)所允許時間之外所準備寫入的數(shù)據(jù)全部Flush到SD卡片的數(shù)據(jù)寫入緩沖區(qū)。本發(fā)明的優(yōu)點是本發(fā)明提供了一種可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,該方法在帶有支持SD卡的嵌入式設備上,保持了高性能的寫入速度,確保即使插入過程中有接觸不良的波動的情況下依然可以少許延遲300-500ms (毫秒)后穩(wěn)定的正常自動加載卡片,對于可寫入的卡片在成功加載后即做寫入速度的測試以自動計算出卡片寫入緩沖區(qū)允許緩沖區(qū)的大小以保持一定的高效寫入性能。并在寫入數(shù)據(jù)后入精確預測每次300ms (毫秒)后可能的拔卡,而自動在寫入完IOOms (毫秒)后將緩沖區(qū)剩余數(shù)據(jù)都Flush回卡片,并對于卡片文件系統(tǒng)的系統(tǒng)數(shù)據(jù)的寫入,直接不經(jīng)過卡片緩沖區(qū),而直接實時寫入卡片,進而避免非法斷電或者掉卡導致卡片文件系統(tǒng)的混亂和異常,而實現(xiàn)了一種能安全穩(wěn)定的實現(xiàn)真正意義上的允許用戶實時進行熱拔插卡,避免讓用戶UI上進行加載卸載等動作以及等待時間,進而實現(xiàn)真正意義上的隨時允許用戶物理拔插SD卡。


圖1是本發(fā)明在判斷SD卡與卡槽是否有抖動時所采用的延遲過程示意圖;圖2是本發(fā)明所采用的中斷判斷的過程示意圖;圖3是本發(fā)明所采用的對于涉及文件系統(tǒng)完整性的數(shù)據(jù)的寫入過程示意圖;圖4是本發(fā)明所采用的對于涉及非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)的寫入過程示意圖。
具體實施例方式對于插卡過程因為卡槽物理介質(zhì)存在接觸和半接觸的波動,有可能影響到卡片的握手識別和加載,所以對于終端監(jiān)控到的卡片插入,并不立即進行加載,可以在物理SD卡插入后進行,卡片加載線程特意延遲300-500ms左右后再對卡片進行握手和識別,握手成功后加載卡片的文件系統(tǒng)。而加載過程中有允許用戶隨時拔掉卡片,當有卡片狀態(tài)改變的中斷產(chǎn)生,立刻設置系統(tǒng)為無卡片狀態(tài)(卡片拔除的狀態(tài)),并停止加載動作(避免卡片加載過程中移除后的加載出錯)。加載成功后測試寫入速度,計算出200ms (毫秒)內(nèi)能Flush完的數(shù)據(jù)量,以設置為卡片寫入緩沖區(qū)(Cache)的大小。用戶在嵌入式設備上進行選擇會觸發(fā)往卡片寫入數(shù)據(jù)操作的動作后(如手操作完嵌入式設備Π某項確認)(確保保存或者拍照按鈕等),而從屏幕中移開手去卡槽拔卡),移動手去嵌入式設備卡槽拔出卡片的中間的是有一定的耗時,一般會有300ms (毫秒)。本發(fā)明自動卡片加載和卸載的機制,尤其是提及一種Cache的Flush機制,考慮用戶嵌入式設備有存儲相關(guān)的操作后,手移動到嵌入式設備槽取卡有300ms的耗時,利用加載的卡片測試得到的卡片寫入速度計算出來200ms能Flush完的數(shù)據(jù)大小作為緩沖區(qū)允許保存的最大的數(shù)據(jù)量。并監(jiān)控一旦IOOms內(nèi)無數(shù)據(jù)寫入,則將緩沖區(qū)數(shù)據(jù)全部200ms內(nèi)全部Flush回卡片(確保緩沖數(shù)據(jù)全部Flush回卡片),如此一來用戶去拔插卡片的時候,緩沖區(qū)數(shù)據(jù)因為已經(jīng)300ms內(nèi)已經(jīng)將緩沖區(qū)數(shù)據(jù)全部刷回到卡片。對于影響文件系統(tǒng)完整性的數(shù)據(jù)(如FAT文件系統(tǒng)中FAT Entry, DirectoryEntry的數(shù)據(jù)),對于這些如果不及時寫入到卡片,則可能會導致文件系統(tǒng)完整性,文件系統(tǒng)完整性如果出錯,則可能會影響后續(xù)文件寫入(甚至讓目錄出現(xiàn)亂碼)而使得系統(tǒng)產(chǎn)生異常。所以對于卡片中文件系統(tǒng)中重要的系統(tǒng)數(shù)據(jù)(會影響文件系統(tǒng)完整性的數(shù)據(jù))則不經(jīng)過卡片的緩沖區(qū),直接實時寫入卡片,避免異常斷電而導致文件系統(tǒng)數(shù)據(jù)混亂。而對于不影響文件系統(tǒng)完整性的數(shù)據(jù),才使用卡片文件系統(tǒng)的緩沖區(qū)。如此一來,即便寫入過程中異常斷電,也不會導致卡片數(shù)據(jù)混亂。而某個相關(guān)的文件數(shù)據(jù)寫入過程中斷電,頂多也只是該寫入文件寫入的部分無更新,但文件系統(tǒng)并不會有文件混亂(不會需要使用Scandisk等工具進行文件系統(tǒng)的掃描修復)。按照上述的公開的方法,可實現(xiàn)嵌入式設備在使用卡片的時候,不需要用戶參與選擇執(zhí)行加載(mount)和卸載(unmount)的動作,而可以自動根據(jù)卡片狀態(tài)改變的中斷處理程序通知加載卸載線程進行自動的加載和卸載,對于卡片寫入的用戶數(shù)據(jù)依然能使用文件系統(tǒng)的限定了一定容量大小緩沖區(qū)Cache,進而確保系統(tǒng)對卡片的寫入動作依然具備高效的寫入速度。插入卡片,開機中的系統(tǒng)能自動迅速識別和加載。使用過程中,拔插掉卡片,也不會對卡片內(nèi)文件產(chǎn)生混亂,并且能自動卸載文件系統(tǒng)。
用戶在嵌入式裝置上進行有存儲動作的操作(Π互動)后(如保存數(shù)據(jù)的軟件模塊進行數(shù)據(jù)的保存),手移動到卡槽去取卡的操作會有至少300ms(毫秒)的耗時,利用這300ms(毫秒)的間隔時間對卡片的文件系統(tǒng)的Cache設計成自動的Flush (最差300ms (毫秒)內(nèi)自動Flush完畢。插入卡片考慮到插入卡槽的時候接觸上的波動,而設計成一定的小延遲300 500ms(毫秒)后自動加載,進而避免卡片狀態(tài)上的波動對自動加載的時候握手和讀取數(shù)據(jù)時候的干擾,進而確保成功加載。進而實現(xiàn)帶有一定Cache功能(比無Cache的系統(tǒng)性能高效),但可以不需要用戶加載和卸載卡片進行任何的Π的選擇操作,而真正意義上允許隨時熱拔插(物理拔插)SD卡,而無需進行卡片卸載加載需要用戶進行UI上的操作后才允許物理拔插卡。進而實現(xiàn)了一種隨時允許用戶在嵌入式設備上熱拔插卡片的嵌入式系統(tǒng),避免了拔插卡的接觸不穩(wěn)造成加載卡片失敗,因為依然有卡片200ms (毫秒)能Flush完成的數(shù)據(jù)大小的緩沖區(qū),進而能保持高效的寫入速,且因為卡片文件系統(tǒng)系統(tǒng)數(shù)據(jù)實時寫入卡片,即便異常斷電,也不會導致卡片數(shù)據(jù)混亂。進大幅度簡化和方便用戶熱拔插使用SD卡片。對于卡片插入拔出的處理,創(chuàng)建一個專門卡片文件系統(tǒng)監(jiān)控線程A,并設置卡片拔插狀態(tài)改變設置成中斷。當有卡片實時插入或者移除(拔出)的時候,中斷相應函數(shù)則將卡片狀態(tài)告知卡片文件系統(tǒng)監(jiān)控線程A,該線程負責相關(guān)卡片的自動加載和卸載。參見圖1,考慮插入卡片,卡片 與卡槽接觸不良(抖動)產(chǎn)生多次拔插中斷而影響到正常的加載。所以特意設計成插入卡片,線程延遲300--500ms (毫秒)之后再正式開始握手加載。且加載完以后貼別測試卡片的寫入速度(如創(chuàng)建一個可寫文件,按照零散和連續(xù)sector寫入速度的測試,計算出200ms (毫秒)內(nèi)可以成功寫入到卡片的數(shù)據(jù)量,并以200ms(毫秒)內(nèi)卡片可以成功寫入的數(shù)量大小作為卡片文件系統(tǒng)緩沖區(qū)允許緩沖的最大容量??紤]用戶嵌入式設備上進行卡片寫入數(shù)據(jù)的操作(如拍攝照片,某個應用程序模塊用戶點選保存數(shù)據(jù)),而用戶點選完這些觸發(fā)操作后,手移動到嵌入式設備卡槽中進行拔卡會有一定的耗時,一般至少300ms (毫秒),所以充分利用這300ms (毫秒)的拔卡延遲,特意劃分為200ms (毫秒)的緩沖區(qū)最大容量,以及IOOms (毫秒)后自動觸發(fā)緩沖區(qū)的數(shù)據(jù)自動全部Flush寫回卡片,進而保證卡片一定寫入速度(性能),因為所有的寫入300ms (毫秒)內(nèi)必全部安全完整的Flush寫回了卡片,所以又避免了用戶卸載卡片的時候從系統(tǒng)進行額外的卸載和等待,而在用使用體驗上,有能感覺是無需卸載等待。對于卡片寫入的數(shù)據(jù),如果是涉及文件系統(tǒng)完整性的數(shù)據(jù),則這部分數(shù)據(jù)直接寫入卡片(不通過緩沖區(qū)),以確保文件系統(tǒng)的重要系統(tǒng)數(shù)據(jù)不會出現(xiàn)寫入延遲,進而避免異常斷電,或者卡片脫落而導致卡片數(shù)據(jù)文件系統(tǒng)出現(xiàn)完整性錯誤(因為這類錯誤可能導致卡片數(shù)據(jù)混亂,如某個文件夾內(nèi)出現(xiàn)亂碼文件或者子文件夾,或?qū)е履承┪募霈F(xiàn)cluster(簇)重疊等),處理流程如圖3所示。而對于卡片非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)部分,依然可以使用一定大小的緩沖區(qū)(該緩沖區(qū)允許緩沖的數(shù)據(jù)最大量滿足200ms (毫秒)內(nèi)可以完整寫回卡片。當寫入卡片數(shù)據(jù)后,如果IOOms (毫秒)內(nèi)無數(shù)據(jù)繼續(xù)寫往卡片,則默認認定寫入數(shù)據(jù)的完結(jié),并將緩沖區(qū)數(shù)據(jù)全部Flush回卡片(隨時準備好用戶拔出卡片),如圖4所示。這樣一來,任何寫入卡片的數(shù)據(jù),最遲300ms內(nèi),就會全部寫入卡片。而且特別設計成卡片文件系統(tǒng)相關(guān)的系統(tǒng)數(shù)據(jù),都是實時寫入,即便意外斷電掉卡,也不會導致卡片數(shù)據(jù)混亂。任意時刻拔卡,中斷第一時間內(nèi)設置系統(tǒng)為無卡狀態(tài),而避免拔卡之后硬體繼續(xù)訪問卡片而出現(xiàn)錯誤,如圖2所示流程。
權(quán)利要求
1.一種可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法包括以下步驟:1)插入SD卡;2)判斷SD卡與卡槽是否有抖動;若是,則進行延遲緩沖后再進行握手及加載程序;若否,則直接進行握手及加載程序;3)再握手成功后對SD卡進行數(shù)據(jù)加載時,判斷加載過程是否有異常中斷;若是,則退出加載;若否,則對SD卡上的數(shù)據(jù)進行加載。
2.根據(jù)權(quán)利要求1所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述步驟2)中進行延遲緩沖的延遲時間是300ms 500ms。
3.根據(jù)權(quán)利要求2所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述步驟3)的具體實現(xiàn)方式是:3.1)對SD卡上的數(shù)據(jù)進行讀取或?qū)懭耄?.2)判斷在讀取或?qū)懭脒^程中SD卡狀態(tài);若SD卡狀態(tài)是無卡狀態(tài),則中斷讀取或?qū)懭脒^程,并結(jié)束;若SD卡狀態(tài)是有卡狀態(tài),則對SD卡上的數(shù)據(jù)進行讀取或?qū)懭氩僮鳌?br> 4.根據(jù)權(quán)利要求1或2或3所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述步驟3)之后還包括:4)根據(jù)SD卡上的不同數(shù)據(jù)類型進行數(shù)據(jù)加載。
5.根據(jù)權(quán)利要求4所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述步驟4)中的不同數(shù)據(jù)類型是在寫入SD卡時的不同數(shù)據(jù)類型。
6.根據(jù)權(quán)利要求5所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述寫入的數(shù)據(jù)類型是文件系統(tǒng)完整性的數(shù)據(jù)以及非文件系統(tǒng)系統(tǒng)數(shù)據(jù)的資料存儲數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述寫入的數(shù)據(jù)類型是文件系統(tǒng)完整性的數(shù)據(jù)時,對文件系統(tǒng)完整性的數(shù)據(jù)采用零延遲的方式直接寫入SD卡。
8.根據(jù)權(quán)利要求6所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述寫入的數(shù)據(jù)類型是非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)時,采用緩沖區(qū)的方式將非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)自動全部Flush寫回卡片;所述緩沖區(qū)允許緩沖的數(shù)據(jù)最大量是200ms內(nèi)所成功寫入的數(shù)據(jù)的大小。
9.根據(jù)權(quán)利要求8所述的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,其特征在于:所述采用緩沖區(qū)寫入的具體實現(xiàn)方式是:首先將非文件系統(tǒng)的系統(tǒng)數(shù)據(jù)寫入SD卡的緩沖區(qū);判斷所寫入數(shù)據(jù)所用的時間是否在緩沖區(qū)所允許的時間內(nèi);若是,則結(jié)束寫入過程;若否,則將緩沖區(qū)所允許 時間之外所準備寫入的數(shù)據(jù)全部寫入到SD卡片的數(shù)據(jù)寫入卡片文件系統(tǒng)緩沖區(qū)。
全文摘要
本發(fā)明涉及一種可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法,該方法包括1)插入SD卡;2)判斷SD卡與卡槽是否有抖動;若是,則進行延遲緩沖后再進行握手及加載程序;若否,則直接進行握手及加載程序;3)再握手成功后對SD卡進行數(shù)據(jù)加載時,判斷加載過程是否有異常中斷;若是,則退出加載;若否,則對SD卡上的數(shù)據(jù)進行加載。本發(fā)明提供了一種無需用戶選擇加載及卸載、允許用戶隨意隨時從卡槽插入或移除SD卡的可隨時熱拔插SD卡且可自動加載卸載的嵌入式方法。
文檔編號G06F9/445GK103077042SQ20121045814
公開日2013年5月1日 申請日期2012年11月14日 優(yōu)先權(quán)日2012年11月14日
發(fā)明者陳淮琰, 鐘輝 申請人:無敵科技(西安)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桃江县| 云林县| 沾化县| 浦北县| 富川| 英吉沙县| 元谋县| 岑巩县| 峨山| 和龙市| 乾安县| 崇明县| 泸州市| 仁布县| 泾川县| 兴业县| 崇州市| 桃源县| 桂阳县| 星座| 旅游| 宁波市| 苏尼特左旗| 丰都县| 昌邑市| 克拉玛依市| 达尔| 方城县| 镇安县| 锦州市| 健康| 谢通门县| 江安县| 嵊州市| 扎囊县| 洪湖市| 琼结县| 田阳县| 武夷山市| 天祝| 镇巴县|