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

一種數(shù)據(jù)處理方法及裝置制造方法

文檔序號:6486846閱讀:187來源:國知局
一種數(shù)據(jù)處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法及裝置。所述數(shù)據(jù)處理方法,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;所述方法包括:創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);判讀是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;否則,在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新??梢姡痉桨钢?,利用緩沖區(qū)實(shí)現(xiàn)對嵌入式系統(tǒng)的讀/寫操作以及刷新操作,減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行讀/寫操作次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命。
【專利說明】一種數(shù)據(jù)處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別是涉及一種數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002]嵌入式系統(tǒng),通常為非桌面計(jì)算機(jī)系統(tǒng),即非PC、服務(wù)器、大中小型機(jī)等,有計(jì)算機(jī)功能且可以“嵌入”到專用電子設(shè)備并發(fā)揮專用功能的設(shè)備。簡單來說,嵌入式系統(tǒng)通過和電子設(shè)備的電氣連接,并通過在電子設(shè)備上運(yùn)行的專用程序?qū)涌谶M(jìn)行通訊和控制,使電子設(shè)備成為智能化的設(shè)備,比如:基于網(wǎng)絡(luò)的工業(yè)控制器、帶顏色顯示的智能終端等。在實(shí)際應(yīng)用中,嵌入式系統(tǒng)可以包括:u盤、移動硬盤、MP3、MP4等。
[0003]當(dāng)前各類嵌入式系統(tǒng)開發(fā)設(shè)計(jì)中,存儲模塊是不可或缺的重要方面。Flash存儲器作為一種安全、快速的存儲載體,由于具有體積小、容量大、成本低、掉電數(shù)據(jù)不丟失等優(yōu)點(diǎn),目前已經(jīng)逐步取代其它半導(dǎo)體存儲元件,成為嵌入式系統(tǒng)中數(shù)據(jù)和程序的主要存儲載體。
[0004]而在電子設(shè)備與嵌入式系統(tǒng)的USB數(shù)據(jù)傳輸過程中,當(dāng)所傳輸數(shù)據(jù)為較多的文件時(shí),由于每寫一個(gè)文件都需要刷新存儲載體的FAT (File Allocation Table,文件配置表)和FDT(File Directory Table,文件目錄表),而且刷新的很多FAT和FDT可能在存儲載體的同一扇區(qū)中,導(dǎo)致傳輸性能大大降低,同時(shí),由于存儲載體的寫入次數(shù)有限,頻繁的操作會導(dǎo)致的壽命大大減少。

【發(fā)明內(nèi)容】

[0005]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法及裝置,以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命,技術(shù)方案如下:
[0006]一種數(shù)據(jù)處理方法,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;所述方法包括:
[0007]創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0008]判讀是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;否則,在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
[0009]其中,所述數(shù)據(jù)處理方法還包括:
[0010]在接收到結(jié)束USB數(shù)據(jù)傳輸?shù)闹噶詈?,銷毀所述緩沖區(qū)。
[0011]其中,所述緩沖區(qū)包含至少一個(gè)子區(qū)域,其中,每一子區(qū)域能夠有效緩存預(yù)設(shè)數(shù)量的扇區(qū),且所述預(yù)設(shè)數(shù)量低于或等于子區(qū)域的實(shí)際扇區(qū)容量。
[0012]其中,在接收到對嵌入式系統(tǒng)進(jìn)行寫入操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的寫操作,具體為:
[0013]確定寫入操作的指令所對應(yīng)待寫入扇區(qū)的待寫入地址及待寫入個(gè)數(shù);
[0014]按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一存在有效數(shù)據(jù)的子區(qū)域進(jìn)行更新數(shù)據(jù)操作,并獲得本次更新數(shù)據(jù)操作后所更新的扇區(qū)個(gè)數(shù);
[0015]當(dāng)所述更新的扇區(qū)個(gè)數(shù)小于當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)時(shí),根據(jù)所更新的扇區(qū)個(gè)數(shù),獲取剩余的扇區(qū)個(gè)數(shù),從而確定當(dāng)前的待寫入扇區(qū)的待寫入地址和待寫入個(gè)數(shù);
[0016]判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域;
[0017]當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行寫入操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟;
[0018]當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),判斷當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)是否超過預(yù)設(shè)數(shù)量,
[0019]如果是,將當(dāng)前待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;
[0020]否則,
[0021]判斷所述當(dāng)前的待寫入扇區(qū)的待寫入地址是否接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址,并在當(dāng)前的待寫入扇區(qū)的待寫入地址接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),將當(dāng)前的待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;在當(dāng)前的待寫入扇區(qū)的待寫入地址未接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),查詢是否存在空閑狀態(tài)的一子區(qū)域,如果存在,則將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域,如果不存在,則調(diào)用刷新函數(shù),以刷新部分子區(qū)域到嵌入式系統(tǒng)中并將刷新后的所述部分子區(qū)域設(shè)置為空閑狀態(tài),進(jìn)而獲取到空閑狀態(tài)的一子區(qū)域,并將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域。
[0022]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行寫入操作所依據(jù)的規(guī)則為:
[0023]如果當(dāng)前的待寫入扇區(qū)的待寫入地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回所更新的扇區(qū)個(gè)數(shù);
[0024]如果當(dāng)前的待寫入扇區(qū)的待寫入地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待寫入地址加扇區(qū)個(gè)數(shù)對應(yīng)的扇區(qū)在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū),則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回更新的扇區(qū)個(gè)數(shù)為O ;
[0025]如果當(dāng)前子區(qū)域的扇區(qū)地址完全包含在當(dāng)前的待寫入扇區(qū)的扇區(qū)地址區(qū)間中,則置當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),并返回更新的扇區(qū)個(gè)數(shù)為0,所述扇區(qū)地址區(qū)間為待寫入地址至待寫入地址加待寫入扇區(qū)個(gè)數(shù);
[0026]否則,直接返回更新的扇區(qū)個(gè)數(shù)為O。
[0027]其中,在接收到對嵌入式系統(tǒng)進(jìn)行讀操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀操作,具體為:
[0028]確定讀操作的指令所對應(yīng)待讀扇區(qū)的待讀地址及待讀個(gè)數(shù);
[0029]按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一子區(qū)域進(jìn)行讀操作,并獲得本次讀操作所讀取的扇區(qū)個(gè)數(shù);
[0030]當(dāng)所讀取的扇區(qū)個(gè)數(shù)小于所述待讀扇區(qū)的待讀個(gè)數(shù)時(shí),根據(jù)所讀取的扇區(qū)個(gè)數(shù),確定剩余的待讀扇區(qū)對應(yīng)待讀地址和待讀個(gè)數(shù);
[0031]判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域;
[0032]當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行讀操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟;
[0033]當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),在嵌入式系統(tǒng)中讀取當(dāng)前的待讀扇區(qū)。
[0034]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行讀操作所依據(jù)的規(guī)則為:[0035]如果當(dāng)前的待讀扇區(qū)的待讀地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行讀操作,并返回所讀取的扇區(qū)個(gè)數(shù);
[0036]如果當(dāng)前的待讀扇區(qū)的待讀地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待讀地址加待讀個(gè)數(shù)大于當(dāng)前子區(qū)域中待讀扇區(qū)地址,將當(dāng)前子區(qū)域中的有效數(shù)據(jù)寫入到嵌入式系統(tǒng)中,同時(shí)置所述當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),返回所讀取的扇區(qū)個(gè)數(shù)為O ;
[0037]否則,返回所讀取的扇區(qū)個(gè)數(shù)為O。
[0038]其中,根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新,具體為:
[0039]判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址的子區(qū)域;
[0040]當(dāng)判斷結(jié)果為是時(shí),將所確定出的子區(qū)域置為需求刷新的子區(qū)域;
[0041]當(dāng)判斷結(jié)果為否時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在具有最大的扇區(qū)地址的子區(qū)域,如果是,將所確定出的子區(qū)域置為需求刷新的子區(qū)域;否則,結(jié)束刷新;
[0042]當(dāng)將所確定出的子區(qū)域置為需求刷新的子區(qū)域后,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址加子區(qū)域的扇區(qū)個(gè)數(shù)等于需求刷新的子區(qū)域的扇區(qū)地址的子區(qū)域,
[0043]如果是,繼續(xù)執(zhí)行將所確定出的子區(qū)域置為需求刷新的子區(qū)域至當(dāng)前判斷的步驟;
[0044]否則,刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,并置該子區(qū)域?yàn)榭臻e的狀態(tài),同時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域,如果是,置所確定出的子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域?yàn)樾枨笏⑿碌淖訁^(qū)域,并繼續(xù)執(zhí)行刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,置該子區(qū)域?yàn)榭臻e的狀態(tài)以及當(dāng)前判斷的步驟;否則,結(jié)束刷新。
[0045]相應(yīng)的,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;所述數(shù)據(jù)處理裝置包括:
[0046]緩沖區(qū)創(chuàng)建模塊,用于創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0047]判斷模塊,用于判斷是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,則觸發(fā)數(shù)據(jù)讀寫模塊;否則,在嵌入式系統(tǒng)空閑時(shí)段定時(shí)的觸發(fā)刷新模塊;
[0048]數(shù)據(jù)讀寫模塊,用于在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;
[0049]刷新模塊,用于根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
[0050]其中,所述數(shù)據(jù)處理裝置還包括:
[0051]銷毀模塊,用于在接收到結(jié)束USB數(shù)據(jù)傳輸?shù)闹噶詈?,銷毀所述緩沖區(qū)。
[0052]本發(fā)明實(shí)施例所提供的技術(shù)方案,在嵌入式系統(tǒng)與電子設(shè)備進(jìn)行USB數(shù)據(jù)傳輸時(shí),創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;而在未接收到讀/寫嵌入式系統(tǒng)的指令時(shí),在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新??梢姡痉桨钢校镁彌_區(qū)實(shí)現(xiàn)對嵌入式系統(tǒng)的讀/寫操作以及刷新操作,減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行讀/寫操作次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命。
【專利附圖】

【附圖說明】
[0053]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0054]圖1為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理方法的第一種流程圖;
[0055]圖2為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理方法的第二種流程圖;
[0056]圖3為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理方法的第三種流程圖;
[0057]圖4為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理方法的第四種流程圖;
[0058]圖5為本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0059]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0060]為了提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命,本發(fā)明實(shí)施例提供了 一種數(shù)據(jù)處理方法及裝置。
[0061]下面首先對本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)處理方法進(jìn)行介紹。
[0062]需要說明的是,本發(fā)明實(shí)施例所提供的數(shù)據(jù)處理方法適用于電子設(shè)備與嵌入式系統(tǒng)之間的數(shù)據(jù)傳輸過程中。其中,該電子設(shè)備可以為筆記本、手機(jī)、平板電腦等,而嵌入式系統(tǒng)可以為U盤、移動硬盤、MP3、MP4等。
[0063]如圖1所示,一種數(shù)據(jù)處理方法,可以包括:
[0064]S101,創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0065]在接收到電子設(shè)備與嵌入式系統(tǒng)進(jìn)行USB數(shù)據(jù)傳輸?shù)闹噶顣r(shí),則可以創(chuàng)建與該嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū)。其中,所述緩沖區(qū)包含至少一個(gè)子區(qū)域,且每一子區(qū)域能夠有效緩存預(yù)設(shè)數(shù)量的扇區(qū),且所述預(yù)設(shè)數(shù)量低于或等于子區(qū)域的實(shí)際扇區(qū)容量。
[0066]需要說明的是,該預(yù)設(shè)數(shù)量為保證各子區(qū)域之間的內(nèi)容不重復(fù)而定義,具體的值可以根據(jù)實(shí)際應(yīng)用進(jìn)行設(shè)定。下面簡單介紹在建立緩沖區(qū)后該預(yù)設(shè)數(shù)量的取值原理:
[0067]偽定義幾個(gè)變量
[0068]確定創(chuàng)建緩沖區(qū)時(shí)子區(qū)域個(gè)數(shù)、待寫入扇區(qū)地址為W SecAddr、待寫入扇區(qū)個(gè)數(shù)WSecCnt、每一子區(qū)域的扇區(qū)地址為C SecAddr、每一子區(qū)域的扇區(qū)個(gè)數(shù)為C SecCnt ;
[0069]查詢所有子區(qū)域,判斷是否存在扇區(qū)地址C SecAddr大于待寫入扇區(qū)地址WSecAddr,且扇區(qū)數(shù)(C SecAddr-ff SecAddr)不超過子區(qū)域的實(shí)際扇區(qū)容量的子區(qū)域,如果存在,確定(C SecAddr-W SecAddr)中最小值為該預(yù)設(shè)數(shù)量;否則,該實(shí)際扇區(qū)容量為該預(yù)設(shè)數(shù)量。 [0070]可以理解的是,在創(chuàng)建緩沖區(qū)的過程中,需要將相應(yīng)的緩沖區(qū)讀/寫函數(shù)注冊到USB底層中,以使得進(jìn)行USB底層讀/寫的時(shí)候直接調(diào)用緩沖區(qū)讀/寫函數(shù);并且,電子設(shè)備與嵌入式系統(tǒng)進(jìn)行USB傳輸包括讀和寫兩部分,USB數(shù)據(jù)傳輸以扇區(qū)的大小為單位,扇區(qū)為文件系統(tǒng)所定義的最小單元,可以是512、1024、2048、4096個(gè)BYTE (字節(jié)),其為格式化的時(shí)候分配的;其中,所謂寫操作為:將一個(gè)大小為SecCnt扇區(qū)個(gè)數(shù)的數(shù)據(jù)寫入一個(gè)地址是addr(以扇區(qū)為單位的數(shù)據(jù)地址)的地方;所謂讀操作為:從一個(gè)地址是addr(以扇區(qū)為單位的數(shù)據(jù)地址)的地方讀取大小為SecCnt扇區(qū)個(gè)數(shù)的數(shù)據(jù)。
[0071]其中,本領(lǐng)域人員可以理解的是,創(chuàng)建緩沖區(qū)所需的結(jié)構(gòu)體和函數(shù)可以定義如下:
[0072]
#defme T U32 MAX ((T_U32)0xiWffl)// maximum T 1.J32
value
typedef unsigned charT_U8;/* unsigned 8 bit
integer */
typedef unsigned shortT U16:/* unsigned 16 bit
integer */
typedef unsigned longT U32;/* unsigned 32 bit
integer */
typedef signed charT_S8;/* signed 8 bit integer */
typedef signed shortT S16;/* signed ! 6 bit integer
j
typedef signed longT—S32; /* signed 32 bit integer
與I
typedef \oidT VOID; r void */
typedef struct tag—Medium T—MEDIUM; typedef struct tag—Medium *T_PMEDIUM;
typedef T_U32 f^F ReadSectoiOiT PMEDIUM medium, char* buf, T_U32
start, T_U32 size);
[0073]typedef T_U32 (*F_WriteSecior)(T_PMEDIUM medium,const T U8 *buf,T_U32 start, T—U32 size);
typedef T—VOID (*F_DeleteSector)(T PMEDlUM medium,T U32StartSce5T_U32 SecSize);
typedef T—BOOL (*F—Flush)(T—PMEDIUM medium);
struct tagMedium
{
T_U8 SecSize; /*扇區(qū)的大小*/
T U32 capacity; /*磁盤的可用容量,單位是扇區(qū)*/
F—ReadSector read; /* 磁盤的讀 */
FWriteSector write;
FFlushflush;
T UB* msg;
I
f 5
[OO74」 其中,T_PMEDIUM Create_Cache (T_PMEDIUM medium, T_U32CacheSize),可以實(shí)現(xiàn)創(chuàng)建緩沖去所需要的緩存及變量初始化。
[0075]可以理解的是,上述代碼描述僅僅作為一種示例,并不應(yīng)該構(gòu)成對本發(fā)明實(shí)施例的限定。
[0076]S102,判斷是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,則執(zhí)行步驟S103,否則,執(zhí)行步驟S104 ;
[0077]S103,在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;
[0078]S104,在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
[0079]在創(chuàng)建與該嵌入式系統(tǒng)相關(guān)聯(lián)的緩沖區(qū)后,需要實(shí)時(shí)判斷是否接收到讀/寫嵌入式系統(tǒng)的指令。當(dāng)接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對該緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作。而當(dāng)未收到讀/寫嵌入式系統(tǒng)的指令時(shí),表明系統(tǒng)處于空閑狀態(tài),而因?yàn)榫彌_區(qū)的數(shù)據(jù)為最新的數(shù)據(jù),且最終需要刷新到嵌入式系統(tǒng)中,因此,可以嵌入式系統(tǒng)空閑時(shí)段根據(jù)該緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對該嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新,以將緩沖區(qū)中的當(dāng)前數(shù)據(jù)同步到嵌入式系統(tǒng)中。
[0080]需要說明的是,在系統(tǒng)處于空閑狀態(tài)時(shí),可以根據(jù)一定的規(guī)則將緩沖區(qū)中部分?jǐn)?shù)據(jù)刷新到嵌入式系統(tǒng)中,并將緩沖區(qū)中所被更新到嵌入式系統(tǒng)的相應(yīng)數(shù)據(jù)置為廢數(shù)據(jù),以使得嵌入式系統(tǒng)應(yīng)用上更為流暢,提高用戶體驗(yàn)性。
[0081]其中,如圖4所示,根據(jù) 所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新的過程可以為:
[0082]S401,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址的子區(qū)域,如果是,執(zhí)行步驟S403 ;否則,執(zhí)行步驟S402 ;
[0083]S402,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在具有最大的扇區(qū)地址的子區(qū)域,如果是,執(zhí)行步驟S403 ;否則,執(zhí)行步驟S408 ;
[0084]S403,將所確定出的子區(qū)域置為需求刷新的子區(qū)域,并執(zhí)行步驟S404 ;
[0085]S404,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址加子區(qū)域的扇區(qū)個(gè)數(shù)等于需求刷新的子區(qū)域的扇區(qū)地址的子區(qū)域,如果是,則執(zhí)行步驟S403 ;否則,執(zhí)行步驟S405 ;
[0086]S405,刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,同時(shí)置該子區(qū)域?yàn)榭臻e的狀態(tài);
[0087]S406,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域,如果是,執(zhí)步驟S407 ;否則,執(zhí)行步驟S408 ;
[0088]S407,置所確定出的子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域?yàn)樾枨笏⑿碌淖訁^(qū)域,并執(zhí)行步驟S405 ;
[0089]S408,刷新完畢。
[0090]本發(fā)明實(shí)施例所提供的技術(shù)方案,在嵌入式系統(tǒng)與電子設(shè)備進(jìn)行USB數(shù)據(jù)傳輸時(shí),創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;而在未接收到讀/寫嵌入式系統(tǒng)的指令時(shí),在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新??梢?,本方案中,利用緩沖區(qū)實(shí)現(xiàn)對嵌入式系統(tǒng)的讀/寫操作以及刷新操作,減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行讀/寫操作次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命。
[0091]更進(jìn)一步的,為了在結(jié)束USB數(shù)據(jù)傳輸后,釋放創(chuàng)建緩沖區(qū)時(shí)所申請的內(nèi)存,同時(shí)刷新所有的數(shù)據(jù)到嵌入式系統(tǒng)中,因此,在接收到結(jié)束USB數(shù)據(jù)傳輸?shù)闹噶詈?,需要銷毀所述緩沖區(qū)。需要說明的是,在銷毀所述緩沖區(qū)之前,需要判斷是否有待刷新數(shù)據(jù),當(dāng)存在待刷新數(shù)據(jù)時(shí),需要將緩沖區(qū)中相應(yīng)數(shù)據(jù)刷新到嵌入式系統(tǒng)中后,銷毀該緩沖區(qū)。
[0092]下面以電子設(shè)備與嵌入式系統(tǒng)進(jìn)行USB數(shù)據(jù)傳輸時(shí),電子設(shè)備對嵌入式系統(tǒng)進(jìn)行寫入操作為例,對本發(fā)明所提供的一種數(shù)據(jù)處理方法進(jìn)行介紹。
[0093]如圖2所示,一種數(shù)據(jù)處理方法,可以包括:
[0094]S201,創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0095]S202,接收對嵌入式系統(tǒng)進(jìn)行寫入操作的指令;
[0096]S203,確定寫入操作的指令所對應(yīng)待寫入扇區(qū)的待寫入地址及待寫入個(gè)數(shù);
[0097]S204,按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一存在有效數(shù)據(jù)的子區(qū)域進(jìn)行更新數(shù)據(jù)操作,并獲得本次更新數(shù)據(jù)操作后所更新的扇區(qū)個(gè)數(shù);
[0098]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行寫入操作所依據(jù)的規(guī)則為:
[0099]如果當(dāng)前的待寫入扇區(qū)的待寫入地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回所更新的扇區(qū)個(gè)數(shù);
[0100]如果當(dāng)前的待寫入扇區(qū)的待寫入地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待寫入地址加扇區(qū)個(gè)數(shù)對應(yīng)的扇區(qū)在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū),則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回更新的扇區(qū)個(gè)數(shù)為O ;
[0101]如果當(dāng)前子區(qū)域的扇區(qū)地址完全包含在當(dāng)前的待寫入扇區(qū)的扇區(qū)地址區(qū)間中,則置當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),并返回更新的扇區(qū)個(gè)數(shù)為0,所述扇區(qū)地址區(qū)間為待寫入地址至待寫入地址加待寫入扇區(qū)個(gè)數(shù);
[0102]否則,直接返回更新的扇區(qū)個(gè)數(shù)為O。
[0103]S205,判斷所更新的扇區(qū)個(gè)數(shù)是否小于當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù),如果是,則執(zhí)行步驟S206 ;否則,執(zhí)行步驟S214 ;
[0104]S206,根據(jù)所更新的扇區(qū)個(gè)數(shù),確定剩余的待寫入扇區(qū)對應(yīng)的待寫入地址和待寫入個(gè)數(shù);
[0105]S207,判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域,如果是,則執(zhí)行步驟S208 ;否則,執(zhí)行步驟S204 ;
[0106]S208,判斷當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)是否超過預(yù)設(shè)數(shù)量,如果是,則執(zhí)行步驟S213 ;否則,執(zhí)行步驟S209 ;
[0107]S209,判斷當(dāng)前的待寫入扇區(qū)的待寫入地址是否接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址,如果是,則執(zhí)行步驟S213 ;否則,執(zhí)行步驟S210 ;
[0108]S210,查詢是否存在空閑狀態(tài)的一子區(qū)域,如果存在,執(zhí)行步驟S212,否則,執(zhí)行步驟 S211 ;
[0109]S211,調(diào)用刷新函數(shù),以刷新部分子區(qū)域到嵌入式系統(tǒng)中并將刷新后的所述部分子區(qū)域設(shè)置為空閑狀態(tài),進(jìn)而獲取到空閑狀態(tài)的一子區(qū)域,執(zhí)行步驟S212 ;
[0110]S212,將當(dāng)前的待寫入扇區(qū)寫入緩沖區(qū)中處于空閑狀態(tài)的一子區(qū)域中;
[0111]S213,將當(dāng)前的待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;
[0112]S214,結(jié)束本次寫入流程。
[0113]可見,本實(shí)施例中,在電子設(shè)備對嵌入式系統(tǒng)進(jìn)行寫入操作時(shí),利用該緩沖區(qū)進(jìn)行相應(yīng)的寫操作,以此實(shí)現(xiàn)了減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行寫入操作的次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命。
[0114]下面以電子設(shè)備與嵌入式系統(tǒng)進(jìn)行USB數(shù)據(jù)傳輸時(shí),電子設(shè)備對嵌入式系統(tǒng)進(jìn)行讀操作為例,對本發(fā)明所提供的一種數(shù)據(jù)處理方法進(jìn)行介紹。
[0115]如圖3所示,一種數(shù)據(jù)處理方法,可以包括:
[0116]S301,創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0117]S302,接收對嵌入式系統(tǒng)進(jìn)行讀操作的指令;
[0118]S303,確定讀操作的指令所對應(yīng)待讀扇區(qū)的待讀地址及待讀個(gè)數(shù);
[0119]S304,按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一子區(qū)域進(jìn)行讀操作,并獲得本次讀操作所讀取的扇區(qū)個(gè)數(shù);
[0120]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行讀操作所依據(jù)的規(guī)則為:
[0121]如果當(dāng)前的待讀扇區(qū)的待讀地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行讀操作,并返回所讀取的扇區(qū)個(gè)數(shù);
[0122]如果當(dāng)前的待讀扇區(qū)的待讀地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待讀地址加待讀個(gè)數(shù)大于當(dāng)前子區(qū)域中待讀扇區(qū)地址,將當(dāng)前子區(qū)域中的有效數(shù)據(jù)寫入到嵌入式系統(tǒng)中,同時(shí)置所述當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),返回所讀取的扇區(qū)個(gè)數(shù)為O ;
[0123]否則,返回所讀取的扇區(qū)個(gè)數(shù)為O。
[0124]S305,判斷所讀取的扇區(qū)個(gè)數(shù)是否小于當(dāng)前的待讀扇區(qū)的待讀個(gè)數(shù),如果是,則執(zhí)行步驟S306 ;否則,執(zhí)行步驟S309 ;
[0125]S306,根據(jù)所讀取的扇區(qū)個(gè)數(shù),確定剩余的待讀扇區(qū)對應(yīng)待讀地址和待讀個(gè)數(shù);
[0126]S307,判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域,如果是,執(zhí)行步驟S308;否則,執(zhí)行步驟S304 ;
[0127]S308,在嵌入式系統(tǒng)中讀取當(dāng)前的待讀扇區(qū);
[0128]S309,結(jié)束本次讀取流程。
[0129]可見,本實(shí)施例中,在電子設(shè)備對嵌入式系統(tǒng)進(jìn)行讀操作時(shí),利用該緩沖區(qū)進(jìn)行相應(yīng)的讀操作,以此實(shí)現(xiàn)了減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行讀操作的次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提聞嵌入式系統(tǒng)的壽命。
[0130]通過以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0131]相應(yīng)于上述方法,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;如圖5所示,可以包括:
[0132]緩沖區(qū)創(chuàng)建模塊110,用于創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);
[0133]判斷模塊120,用于判斷是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,則觸發(fā)數(shù)據(jù)讀寫模塊130 ;否則,在嵌入式系統(tǒng)空閑時(shí)段定時(shí)的觸發(fā)刷新模塊140 ;
[0134]數(shù)據(jù)讀寫模塊130,用于在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;
[0135]刷新模塊140,用于根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
[0136]本發(fā)明實(shí)施例所提供的數(shù)據(jù)處理裝置,在嵌入式系統(tǒng)與電子設(shè)備進(jìn)行USB數(shù)據(jù)傳輸時(shí),創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū);在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;在未接收到讀/寫嵌入式系統(tǒng)的指令時(shí),在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新??梢?,本方案中,利用緩沖區(qū)實(shí)現(xiàn)對嵌入式系統(tǒng)的讀/寫操作以及刷新操作,減少直接對嵌入式系統(tǒng)的存儲載體進(jìn)行讀/寫操作的次數(shù),從而減少刷新存儲載體FAT和FDT的次數(shù),因此,可以提高嵌入式系統(tǒng)與電子設(shè)備的USB數(shù)據(jù)傳輸性能,并提高嵌入式系統(tǒng)的壽命。
[0137]更進(jìn)一步的,該數(shù)據(jù)處理裝置還可以包括:
[0138]銷毀模塊,用于在接收到結(jié)束USB數(shù)據(jù)傳輸?shù)闹噶詈?,銷毀所述緩沖區(qū)。[0139]其中,數(shù)據(jù)讀寫模塊130在接收到對嵌入式系統(tǒng)進(jìn)行寫入操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的寫操作,具體為:
[0140]確定寫入操作的指令所對應(yīng)待寫入扇區(qū)的待寫入地址及待寫入個(gè)數(shù);
[0141]按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一存在有效數(shù)據(jù)的子區(qū)域進(jìn)行更新數(shù)據(jù)操作,并獲得本次更新數(shù)據(jù)操作后所更新的扇區(qū)個(gè)數(shù);
[0142]當(dāng)所述更新的扇區(qū)個(gè)數(shù)小于當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)時(shí),根據(jù)所更新的扇區(qū)個(gè)數(shù),獲取剩余的扇區(qū)個(gè)數(shù),從而確定當(dāng)前的待寫入扇區(qū)的待寫入地址和待寫入個(gè)數(shù);
[0143]判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域;
[0144]當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行寫入操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟;
[0145]當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),判斷當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)是否超過預(yù)設(shè)數(shù)量,
[0146]如果是,將當(dāng)前待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;
[0147]否則,
[0148]判斷所述當(dāng)前的待寫入扇區(qū)的待寫入地址是否接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址,并在當(dāng)前的待寫入扇區(qū)的待寫入地址接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),將當(dāng)前的待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;在當(dāng)前的待寫入扇區(qū)的待寫入地址未接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),查詢是否存在空閑狀態(tài)的一子區(qū)域,如果存在,則將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域,如果不存在,則調(diào)用刷新函數(shù),以刷新部分子區(qū)域到嵌入式系統(tǒng)中并將刷新后的所述部分子區(qū)域設(shè)置為空閑狀態(tài),進(jìn)而獲取到空閑狀態(tài)的一子區(qū)域,并將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域。
[0149]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行寫入操作所依據(jù)的規(guī)則為:
[0150]如果當(dāng)前的待寫入扇區(qū)的待寫入地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回所更新的扇區(qū)個(gè)數(shù);
[0151]如果當(dāng)前的待寫入扇區(qū)的待寫入地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待寫入地址加扇區(qū)個(gè)數(shù)對應(yīng)的扇區(qū)在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū),則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回更新的扇區(qū)個(gè)數(shù)為O ;
[0152]如果當(dāng)前子區(qū)域的扇區(qū)地址完全包含在當(dāng)前的待寫入扇區(qū)的扇區(qū)地址區(qū)間中,則置當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),并返回更新的扇區(qū)個(gè)數(shù)為0,所述扇區(qū)地址區(qū)間為待寫入地址至待寫入地址加待寫入扇區(qū)個(gè)數(shù);
[0153]否則,直接返回更新的扇區(qū)個(gè)數(shù)為O。
[0154]其中,數(shù)據(jù)讀寫模塊130在接收到對嵌入式系統(tǒng)進(jìn)行讀操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀操作,具體為:
[0155]確定讀操作的指令所對應(yīng)待讀扇區(qū)的待讀地址及待讀個(gè)數(shù);
[0156]按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一子區(qū)域進(jìn)行讀操作,并獲得本次讀操作所讀取的扇區(qū)個(gè)數(shù);
[0157]當(dāng)所讀取的扇區(qū)個(gè)數(shù)小于所述待讀扇區(qū)的待讀個(gè)數(shù)時(shí),根據(jù)所讀取的扇區(qū)個(gè)數(shù),確定剩余的待讀扇區(qū)對應(yīng)待讀地址和待讀個(gè)數(shù);
[0158]判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域;[0159]當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行讀操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟;
[0160]當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),在嵌入式系統(tǒng)中讀取當(dāng)前的待讀扇區(qū)。
[0161]其中,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行讀操作所依據(jù)的規(guī)則為:
[0162]如果當(dāng)前的待讀扇區(qū)的待讀地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行讀操作,并返回所讀取的扇區(qū)個(gè)數(shù);
[0163]如果當(dāng)前的待讀扇區(qū)的待讀地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待讀地址加待讀個(gè)數(shù)大于當(dāng)前子區(qū)域中待讀扇區(qū)地址,將當(dāng)前子區(qū)域中的有效數(shù)據(jù)寫入到嵌入式系統(tǒng)中,同時(shí)置所述當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),返回所讀取的扇區(qū)個(gè)數(shù)為O ;
[0164]否則,返回所讀取的扇區(qū)個(gè)數(shù)為O。
[0165]其中,刷新模塊140具體用于:
[0166]判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址的子區(qū)域;
[0167]當(dāng)判斷結(jié)果為是時(shí),將所確定出的子區(qū)域置為需求刷新的子區(qū)域;
[0168]當(dāng)判斷結(jié)果為否時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在具有最大的扇區(qū)地址的子區(qū)域,如果是,將所確定出的子區(qū)域置為需求刷新的子區(qū)域;否則,結(jié)束刷新;
[0169]當(dāng)將所確定出的子區(qū)域置為需求刷新的子區(qū)域后,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址加子區(qū)域的扇區(qū)個(gè)數(shù)等于需求刷新的子區(qū)域的扇區(qū)地址的子區(qū)域,
[0170]如果是,繼續(xù)執(zhí)行將所確定出的子區(qū)域置為需求刷新的子區(qū)域至當(dāng)前判斷的步驟;
[0171]否則,刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,并置該子區(qū)域?yàn)榭臻e的狀態(tài),同時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域,如果是,置所確定出的子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域?yàn)樾枨笏⑿碌淖訁^(qū)域,并繼續(xù)執(zhí)行刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,置該子區(qū)域?yàn)榭臻e的狀態(tài)以及當(dāng)前判斷的步驟;否則,結(jié)束刷新。
[0172]對于裝置或系統(tǒng)實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置或系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
[0173]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,在沒有超過本申請的精神和范圍內(nèi),可以通過其他的方式實(shí)現(xiàn)。當(dāng)前的實(shí)施例只是一種示范性的例子,不應(yīng)該作為限制,所給出的具體內(nèi)容不應(yīng)該限制本申請的目的。例如,所述單元或子單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或多個(gè)子單元結(jié)合一起。另外,多個(gè)單元可以或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。[0174]另外,所描述系統(tǒng),裝置和方法以及不同實(shí)施例的示意圖,在不超出本申請的范圍內(nèi),可以與其它系統(tǒng),模塊,技術(shù)或方法結(jié)合或集成。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0175]以上所述僅是本發(fā)明的【具體實(shí)施方式】,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,其特征在于,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;所述方法包括: 創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū); 判讀是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作;否則,在嵌入式系統(tǒng)空閑時(shí)段根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),定時(shí)對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在接收到結(jié)束USB數(shù)據(jù)傳輸?shù)闹噶詈?,銷毀所述緩沖區(qū)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述緩沖區(qū)包含至少一個(gè)子區(qū)域,其中,每一子區(qū)域能夠有效緩存預(yù)設(shè)數(shù)量的扇區(qū),且所述預(yù)設(shè)數(shù)量低于或等于子區(qū)域的實(shí)際扇區(qū)容量。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在接收到對嵌入式系統(tǒng)進(jìn)行寫入操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的寫操作,具體為: 確定寫入操作的指令所對應(yīng)待寫入扇區(qū)的待寫入地址及待寫入個(gè)數(shù); 按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一存在有效數(shù)據(jù)的子區(qū)域進(jìn)行更新數(shù)據(jù)操作,并獲得本次更新數(shù)據(jù)操作后所更新的扇區(qū)個(gè)數(shù); 當(dāng)所述更新的扇區(qū)個(gè)數(shù)小 于當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)時(shí),根據(jù)所更新的扇區(qū)個(gè)數(shù),獲取剩余的扇區(qū)個(gè)數(shù),從而確定當(dāng)前的待寫入扇區(qū)的待寫入地址和待寫入個(gè)數(shù); 判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域; 當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行寫入操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟; 當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),判斷當(dāng)前的待寫入扇區(qū)的待寫入個(gè)數(shù)是否超過預(yù)設(shè)數(shù)量, 如果是,將當(dāng)前待寫入扇區(qū)寫入到嵌入式系統(tǒng)中; 否則, 判斷所述當(dāng)前的待寫入扇區(qū)的待寫入地址是否接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址,并在當(dāng)前的待寫入扇區(qū)的待寫入地址接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),將當(dāng)前的待寫入扇區(qū)寫入到嵌入式系統(tǒng)中;在當(dāng)前的待寫入扇區(qū)的待寫入地址未接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址時(shí),查詢是否存在空閑狀態(tài)的一子區(qū)域,如果存在,則將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域,如果不存在,則調(diào)用刷新函數(shù),以刷新部分子區(qū)域到嵌入式系統(tǒng)中并將刷新后的所述部分子區(qū)域設(shè)置為空閑狀態(tài),進(jìn)而獲取到空閑狀態(tài)的一子區(qū)域,并將當(dāng)前的待寫入扇區(qū)寫入所確定出的空閑狀態(tài)的子區(qū)域。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行寫入操作所依據(jù)的規(guī)則為: 如果當(dāng)前的待寫入扇區(qū)的待寫入地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回所更新的扇區(qū)個(gè)數(shù); 如果當(dāng)前的待寫入扇區(qū)的待寫入地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待寫入地址加扇區(qū)個(gè)數(shù)對應(yīng)的扇區(qū)在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū),則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行寫入操作,并返回更新的扇區(qū)個(gè)數(shù)為O ;如果當(dāng)前子區(qū)域的扇區(qū)地址完全包含在當(dāng)前的待寫入扇區(qū)的扇區(qū)地址區(qū)間中,則置當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),并返回更新的扇區(qū)個(gè)數(shù)為O,所述扇區(qū)地址區(qū)間為待寫入地址至待寫入地址加待寫入扇區(qū)個(gè)數(shù); 否則,直接返回更新的扇區(qū)個(gè)數(shù)為O。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,在接收到對嵌入式系統(tǒng)進(jìn)行讀操作的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀操作,具體為: 確定讀操作的指令所對應(yīng)待讀扇區(qū)的待讀地址及待讀個(gè)數(shù); 按照預(yù)設(shè)規(guī)則對緩沖區(qū)中一子區(qū)域進(jìn)行讀操作,并獲得本次讀操作所讀取的扇區(qū)個(gè)數(shù); 當(dāng)所讀取的扇區(qū)個(gè)數(shù)小于所述待讀扇區(qū)的待讀個(gè)數(shù)時(shí),根據(jù)所讀取的扇區(qū)個(gè)數(shù),確定剩余的待讀扇區(qū)對應(yīng)待讀地址和待讀個(gè)數(shù); 判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域; 當(dāng)所述當(dāng)前子區(qū)域不為最后一子區(qū)域時(shí),繼續(xù)執(zhí)行對緩沖區(qū)中下一子區(qū)域進(jìn)行讀操作至判斷當(dāng)前子區(qū)域是否為最后一子區(qū)域的步驟; 當(dāng)所述當(dāng)前子區(qū)域?yàn)樽詈笠蛔訁^(qū)域時(shí),在嵌入式系統(tǒng)中讀取當(dāng)前的待讀扇區(qū)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,對緩沖區(qū)中當(dāng)前子區(qū)域進(jìn)行讀操作所依據(jù)的規(guī)則為: 如果當(dāng)前的待讀扇區(qū)的待讀地址在當(dāng)前子區(qū)域中存在相應(yīng)的扇區(qū)地址,則對當(dāng)前子區(qū)域中所述相應(yīng)的扇區(qū)進(jìn)行讀操作,并返回所讀取的扇區(qū)個(gè)數(shù); 如果當(dāng)前的待讀扇區(qū)的待讀地址小于當(dāng)前子區(qū)域中扇區(qū)地址,且待讀地址加待讀個(gè)數(shù)大于當(dāng)前子區(qū)域中待讀扇區(qū)地址,將當(dāng)前子區(qū)域中的有效數(shù)據(jù)寫入到嵌入式系統(tǒng)中,同時(shí)置所述當(dāng)前子區(qū)域?yàn)榭臻e狀態(tài),返回所讀取的扇區(qū)個(gè)數(shù)為O ; 否則,返回所讀取的扇區(qū)個(gè)數(shù)為O。
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新,具體為: 判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在接著上一次寫入嵌入式系統(tǒng)的扇區(qū)地址的子區(qū)域; 當(dāng)判斷結(jié)果為是時(shí),將所確定出的子區(qū)域置為需求刷新的子區(qū)域; 當(dāng)判斷結(jié)果為否時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在具有最大的扇區(qū)地址的子區(qū)域,如果是,將所確定出的子區(qū)域置為需求刷新的子區(qū)域;否則,結(jié)束刷新; 當(dāng)將所確定出的子區(qū)域置為需求刷新的子區(qū)域后,判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址加子區(qū)域的扇區(qū)個(gè)數(shù)等于需求刷新的子區(qū)域的扇區(qū)地址的子區(qū)域, 如果是,繼續(xù)執(zhí)行將所確定出的子區(qū)域置為需求刷新的子區(qū)域至當(dāng)前判斷的步驟;否則,刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,并置該子區(qū)域?yàn)榭臻e的狀態(tài),同時(shí),判斷所有具有有效數(shù)據(jù)的子區(qū)域中是否存在子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域,如果是,置所確定出的子區(qū)域的扇區(qū)地址等于已刷新的子區(qū)域的扇區(qū)地址加已刷新的子區(qū)域扇區(qū)個(gè)數(shù)的子區(qū)域?yàn)樾枨笏⑿碌淖訁^(qū)域,并繼續(xù)執(zhí)行刷新需求刷新的子區(qū)域到嵌入式系統(tǒng)中,置該子區(qū)域?yàn)榭臻e的狀態(tài)以及當(dāng)前判斷的步驟;否則,結(jié)束刷新。
9.一種數(shù)據(jù)處理裝置,其特征在于,適用于電子設(shè)備與嵌入式系統(tǒng)之間的USB數(shù)據(jù)傳輸過程中;所述數(shù)據(jù)處理裝置包括: 緩沖區(qū)創(chuàng)建模塊,用于創(chuàng)建與所述嵌入式系統(tǒng)相關(guān)聯(lián)的一緩沖區(qū); 判斷模塊,用于判斷是否接收到讀/寫嵌入式系統(tǒng)的指令,如果是,則觸發(fā)數(shù)據(jù)讀寫模塊;否則,在嵌入式系統(tǒng)空閑時(shí)段定時(shí)的觸發(fā)刷新模塊; 數(shù)據(jù)讀寫模塊,用于在接收到讀/寫嵌入式系統(tǒng)的指令時(shí),對所述緩沖區(qū)進(jìn)行相應(yīng)的讀/寫操作; 刷新模塊,用于根據(jù)所述緩沖區(qū)所存儲的當(dāng)前數(shù)據(jù),對所述嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)刷新。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括: 銷毀模塊,用于在接收到結(jié) 束USB數(shù)據(jù)傳輸?shù)闹噶詈螅N毀所述緩沖區(qū)。
【文檔編號】G06F12/08GK103544116SQ201210236758
【公開日】2014年1月29日 申請日期:2012年7月9日 優(yōu)先權(quán)日:2012年7月9日
【發(fā)明者】盧其柳, 艾駿, 胡勝發(fā) 申請人:安凱(廣州)微電子技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
泰来县| 元朗区| 涞源县| 彰化市| 郁南县| 芮城县| 温泉县| 井研县| 鹿泉市| 双桥区| 嘉义市| 丁青县| 和硕县| 黑龙江省| 芦溪县| 郴州市| 莫力| 开远市| 鹤峰县| 桦川县| 兴义市| 利辛县| 嘉定区| 开鲁县| 阳东县| 伊金霍洛旗| 博客| 泰和县| 万盛区| 定结县| 襄樊市| 蓝田县| 大关县| 沧州市| 高碑店市| 兴海县| 贺州市| 淮安市| 尉犁县| 孝昌县| 陇南市|