專利名稱:一種嵌入式設(shè)備與pc機(jī)之間傳輸文件的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種嵌入式設(shè)備與PC坤幾之間傳
輸文件的方法。
背景技術(shù):
嵌入式系統(tǒng)的開發(fā)、調(diào)試和實際應(yīng)用中,經(jīng)常需要在嵌入式設(shè)備和PC 機(jī)之間傳輸文件,包括從PC傳輸文件到嵌入式設(shè)備,和從嵌入式設(shè)備傳輸 文件到PC機(jī),方便快捷的串口通信往往成為人們的首選。
在串口通信中,當(dāng)需要從PC傳輸文件到嵌入式設(shè)備時, 一般的文件傳 輸過程是PC程序打開文件,獲得文件大小,將大小值傳輸給嵌入式設(shè)備, 由嵌入式設(shè)備申請文件大小的緩存,接收從PC傳輸?shù)臄?shù)據(jù),然后將數(shù)據(jù)寫
入文件。
相似地,當(dāng)需要從嵌入式設(shè)備傳輸文件到PC機(jī)時,也是由嵌入式設(shè)備 根據(jù)需要傳輸文件,申請文件大小的緩存,通過該緩存,向PC發(fā)送文件數(shù)據(jù)。
由于嵌入式設(shè)備上內(nèi)存都不太大,當(dāng)傳輸大文件時,在資源有限的嵌入 式設(shè)備上無法申請到足夠的緩存。
現(xiàn)有技術(shù)中,出現(xiàn)這種問題可以改用USB接口來解決,但是使用USB 接口需要相應(yīng)的硬件設(shè)備,在沒有USB接口的情況下,上述問題就無法解決。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就是提出一種嵌入式設(shè)備與PC機(jī)之間傳輸文 件的方法,解決現(xiàn)有技術(shù)中嵌入式設(shè)備與PC機(jī)之間傳輸大文件時,有可能
無法申請到足夠的緩存的問題。
為了解決上述技術(shù)問題,本發(fā)明提供一種嵌入式設(shè)備與PC機(jī)之間傳輸 文件的方法,嵌入式設(shè)備與PC機(jī)之間需要傳輸文件時,由PC機(jī)確定嵌入式
設(shè)備上需要申請的緩存大小,PC機(jī)根據(jù)該緩存大小申請嵌入式設(shè)備的緩存 后,嵌入式設(shè)備和PC機(jī)通過該緩存?zhèn)鬏斘募?shù)據(jù)。
進(jìn)一步地,所述方法包括如下步驟
(a) PC機(jī)選擇需要傳輸?shù)奈募@得文件大??;
(b) PC機(jī)確定嵌入式設(shè)備上需要申請的緩存大小,并根據(jù)該緩存大小 申請嵌入式設(shè)備的緩存;
(c) PC機(jī)將文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存;
(d) PC機(jī)將所述嵌入式設(shè)備緩存中的文件數(shù)據(jù)寫入文件中;
(e) PC機(jī)判斷是否寫完,若未寫完,則返回執(zhí)行步驟(c);若寫完, 則執(zhí)行下一步;
(f) 釋放所述申請的嵌入式設(shè)備的緩存。
進(jìn)一步地,若是PC機(jī)傳輸文件到嵌入式設(shè)備,在所述步驟(c)中,將 PC機(jī)的文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存中;在所述步驟(d)中,將嵌入式 設(shè)備的緩存中的文件數(shù)據(jù)寫入嵌入式設(shè)備的文件中。
進(jìn)一步地,若是嵌入式設(shè)備傳輸文件到PC機(jī),則所述步驟(b)中,還 在PC機(jī)本地分配與嵌入式設(shè)備上需要申請的緩存大'J、一樣的緩存;在所述 步驟(c)中,將嵌入式設(shè)備的文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存中;在所述步 驟(d)中,先將嵌入式設(shè)備緩存中的文件數(shù)據(jù)寫入PC機(jī)中的緩存中,再將 PC機(jī)中的緩存中的文件數(shù)據(jù)寫入PC機(jī)的文件中;在所述步驟(f)中,還釋 放PC機(jī)本地申請的緩存。
進(jìn)一步地,所述步驟(d)中,PC機(jī)將所述嵌入式設(shè)備緩存中的文件數(shù) 據(jù)按指定的偏移寫入文件中。
進(jìn)一步地,嵌入式設(shè)備需要傳輸文件到PC機(jī)時,所述方法包括如下步
驟
(A) PC機(jī)選擇需要傳輸?shù)奈募?,獲得文件大?。?br>
(B) PC機(jī)在本地分配文件大小的緩存,并確定嵌入式設(shè)備上需要申請 的緩存大小,根據(jù)該緩存大小申請嵌入式設(shè)備的緩存;
(C) PC機(jī)將文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存;
(D ) PC機(jī)將所迷嵌入式設(shè)備緩存中的文件數(shù)據(jù)按順序?qū)懭隤C機(jī)本地 的緩存中;
(E) PC機(jī)判斷是否寫完,若未寫完,則返回執(zhí)行步驟(C);若寫完, 則執(zhí)行下一步;
(F) PC機(jī)將本地緩存中的文件數(shù)據(jù)寫入本地文件中;
(G) 釋放PC機(jī)本地申請的緩存以及申請的嵌入式設(shè)備的緩存。
進(jìn)一步地,若PC機(jī)申請嵌入式設(shè)備的緩存操作未成功,則PC機(jī)調(diào)整申 請緩存的大小,重新在嵌入式設(shè)備上申請較小的緩存。
進(jìn)一步地,在傳輸文件過程中,若PC機(jī)接收到嵌入式設(shè)備的返回值表 示操作沒有執(zhí)行成功,則PC機(jī)重新執(zhí)行相應(yīng)命令,若執(zhí)行兩遍還不成功, 則報錯退出。
進(jìn)一步地,PC機(jī)根據(jù)分配策略確定嵌入式設(shè)備上需要申請的緩存大小, 所述分配策略為如下方式之一
(1) PC機(jī)申請固定大小的緩存;
(2) PC機(jī)先發(fā)送查詢命令給嵌入式設(shè)備,嵌入式設(shè)備返回當(dāng)前可申請 最大內(nèi)存空間的大小,若需要傳輸?shù)奈募∮诋?dāng)前可申請最大內(nèi)存空間的大 小,則申請的緩存大小等于需要傳輸?shù)奈募笮?;若需要傳輸?shù)奈募笥诋?dāng) 前可申請最大內(nèi)存空間的大小,則申請的緩存大小等于當(dāng)前可申請最大內(nèi)存 空間的大小。
進(jìn)一步地,嵌入式設(shè)備與PC機(jī)之間傳輸文件使用的接口為串口或串行 外設(shè)接口 SPI或12(3 4秦口。
本發(fā)明中,PC機(jī)發(fā)起每個操作,主動發(fā)送命令,嵌入式設(shè)備被動響應(yīng)命 令;由PC機(jī)來控制嵌入式設(shè)備上申請緩存的大小,對傳輸?shù)奈募笮]有任何限制;而且即使在傳輸文件的過程中,PC機(jī)插入了其它的命令,只要文 件傳輸?shù)拿铐樞虿蛔?,系統(tǒng)依然能夠正常的運(yùn)行。
圖1是本發(fā)明實施例的傳輸文件流程圖2是本發(fā)明實施例的嵌入式設(shè)備執(zhí)行程序的流程圖3是本發(fā)明應(yīng)用實例的PC機(jī)傳輸文件到嵌入式設(shè)備的流程困;
圖4是本發(fā)明應(yīng)用實例的嵌入式設(shè)備傳輸文件到PC機(jī)的流程圖。
具體實施例方式
本發(fā)明的核心思想是當(dāng)需要傳輸文件時,由PC機(jī)確定嵌入式設(shè)備上 需要申請的緩存大小,PC機(jī)根據(jù)該緩存大小申請嵌入式設(shè)備的緩存后,嵌入 式設(shè)備和PC機(jī)通過該緩存?zhèn)鬏斘募?shù)據(jù)。
申請的嵌入式設(shè)備上緩存可以小于需要傳輸文件的大小,這時只須將文 件數(shù)據(jù)分批、多次傳輸, 一次只傳輸緩存大小的數(shù)據(jù)即可,解決了現(xiàn)有技術(shù) 中無法傳輸大文件的問題。
下面結(jié)合附圖及具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。
在本發(fā)明中,通過PC機(jī)發(fā)送一系列命令,嵌入式設(shè)備接收并解析這些 命令,完成大批量數(shù)據(jù)的傳輸。
如圖l所示,本發(fā)明實施例的傳輸文件的流程包括如下步驟
步驟101, PC機(jī)選擇需要傳輸(下載或上傳)的文件,獲得文件大??;
步驟102, PC機(jī)根據(jù)分配策略確定嵌入式設(shè)備上需要申請的緩存大小, 稱為BufSize,并向嵌入式設(shè)備申請BufSize大小的緩存;
其中,所述分配策略可以是
(1) PC機(jī)申請固定大小BufSize的緩存,比如,1OOK字節(jié);
(2) PC機(jī)先發(fā)送查詢命令給嵌入式設(shè)備,嵌入式設(shè)備返回當(dāng)前可申請 最大內(nèi)存空間的大小,若需要傳輸?shù)奈募∮诋?dāng)前可申請最大內(nèi)存空間的大
小,則BufSize等于需要傳輸?shù)奈募笮?;若需要傳輸?shù)奈募笥诋?dāng)前可申請 最大內(nèi)存空間的大小,則BufSize等于當(dāng)前可申請最大內(nèi)存空間的大?。?br>
步驟103, PC機(jī)將文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存,由于需要傳輸?shù)奈?件可能比BufSize大,所以一次最多傳輸BufSize大小的數(shù)據(jù);如果是PC機(jī) 傳輸文件到嵌入式設(shè)備(下載),則將PC機(jī)的文件數(shù)據(jù)寫入嵌入式設(shè)備的 緩存中;如果是嵌入式設(shè)備傳輸文件到PC機(jī)(上傳),則將嵌入式設(shè)備的 文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存中;
步驟104,將所述嵌入式設(shè)備緩存中的文件數(shù)據(jù)按指定的偏移寫入文件 中, 一般而言是追加到文件結(jié)尾;如果是PC機(jī)傳輸文件到嵌入式設(shè)備,則 將嵌入式設(shè)備的緩存中的文件數(shù)據(jù)寫入嵌入式設(shè)備的文件中;如果是嵌入式 設(shè)備傳輸文件到PC機(jī),則先將嵌入式設(shè)備緩存中的文件數(shù)據(jù)寫入PC機(jī)中的 緩存中,再將PC機(jī)中的緩存中的文件數(shù)據(jù)寫入PC機(jī)的文件中;
步驟105,判斷是否寫完,若未寫完,則返回執(zhí)行步驟103;若寫完,則 執(zhí)行下一步;
步驟106,文件傳輸完畢,釋放所述申請的嵌入式設(shè)備的緩存。
由于要傳輸?shù)奈募赡茌^大,超過嵌入式設(shè)備能夠提供的緩存大小,所 以在本發(fā)明中,BufSize小于等于需要傳輸?shù)奈募笮。?dāng)BufSize小于需要 傳輸?shù)奈募笮r,則需要將文件數(shù)據(jù)分批、多次傳輸, 一次只傳輸BufSize 大小,分成多次進(jìn)行傳輸,這樣步驟104 - 105可能重復(fù)多次執(zhí)行,直到文件 傳輸完畢。
當(dāng)嵌入式設(shè)備傳輸文件到PC機(jī)(上傳)時,由于PC機(jī)上的內(nèi)存一般較 大,可以在PC機(jī)本地申請文件大小的緩存,傳輸?shù)臅r候?qū)⑶度胧皆O(shè)備緩存 中的文件數(shù)據(jù)按照順序依次存放在該P(yáng)C機(jī)本地的緩存中,最后再統(tǒng)一寫入 文件中。
由于嵌入式設(shè)備與PC機(jī)之間使用串口較多,在本發(fā)明主要應(yīng)用在嵌入 式設(shè)備與PC機(jī)之間使用串口傳輸文件,當(dāng)然,本發(fā)明也可以應(yīng)用如I2C , SPI (Serial Peripheral Interface,串行外設(shè)接口 )等其它接口中。
下面以具體的應(yīng)用實例進(jìn)行進(jìn)一步闡述。
在應(yīng)用實例中,首先定義多個命令如下
Vp—malloc <Size〉在PC機(jī)的程序上申請嵌入式設(shè)備上面的緩存,大小 為Size,申請成功后,嵌入式設(shè)備傳輸該緩存的首地址給PC機(jī)。
Vp—free <Addr>:在PC機(jī)上的程序釋放嵌入式設(shè)備上申請的緩存,首地 址為Addr,釋放成功后,嵌入式設(shè)備傳輸0,否則傳輸l給PC機(jī)。
Vp—WriteBuf <Addr〉 <Len>:在PC機(jī)上寫嵌入式設(shè)備上面的緩存,緩存 首地址為Addr,數(shù)據(jù)長度為Len,數(shù)據(jù)在本命令傳輸完成一定時間(例如10ms) 后開始傳輸,這個數(shù)據(jù)的傳輸需要調(diào)用數(shù)據(jù)傳輸?shù)暮瘮?shù);執(zhí)行完成后,嵌入 式設(shè)備返回接收的長度給PC機(jī)。
Vp—ReadBuf <Addr> <Len>:在PC機(jī)上讀嵌入式設(shè)備上的緩存,緩存首 地址為Addr,數(shù)據(jù)長度為Len。 PC機(jī)在發(fā)送完本命令后開始接收嵌入式設(shè)備 傳來的數(shù)據(jù),直到接收完Len長度的數(shù)據(jù)。
Vp—WriteFile <Addr> <Len> <FileName> <Offset> :在PC才幾上寫嵌入式 設(shè)備上面的文件,將嵌入式設(shè)備上從Addr地址處開始的Len長度的數(shù)據(jù)寫入 到路徑為FileName的文件的偏移為Offset的地方。執(zhí)行成功嵌入式設(shè)備傳輸 0,否則傳輸l給PC機(jī)。
Vp—ReadFile <Addr〉 <Len> <FileName〉 <Offset〉在PC機(jī)上讀嵌入式設(shè) 備上面的文件,將嵌入式設(shè)備上路徑為FileName的文件、偏移為Offset、長 度為Len的數(shù)據(jù)讀到首地址為Addr的緩存。執(zhí)行成功嵌入式設(shè)備傳輸0,否 則傳輸l給PC機(jī)。
Vp一GetFileSize <FileName〉 PC機(jī)上的粗序獲得嵌入式設(shè)備上路徑為 FileName的文件的大小,嵌入式設(shè)備傳輸文件大小給PC機(jī)。
嵌入式設(shè)備程序的流程如圖2所示,簡單的接收命令,執(zhí)行命令,傳輸 返回值給PC才幾。
如圖3所示,PC機(jī)傳輸文件到嵌入式設(shè)備包括如下步驟
步驟301, PC機(jī)選擇要下載的文件,獲得文件路徑(path)和文件大小 (fileSize);
步驟302, PC機(jī)根據(jù)分配策略確定嵌入式設(shè)備上需要申請的緩存大小
(BufSize),發(fā)送Vp—malloc命令申請嵌入式設(shè)備上BufSize大小的緩存;
步驟303, PC機(jī)接收嵌入式設(shè)備發(fā)送返回值,獲得嵌入式設(shè)備上緩存首 地址;
若緩存未申請成功,則有可能是因為申請的緩存太大,則PC機(jī)可以根 據(jù)需要,調(diào)整申請緩存的大小,重新在嵌入式設(shè)備上申請較小的緩存;
步驟304, PC機(jī)判斷fileSize是否大于BufSize,若是,則設(shè)置WriteSize 等于BufSize ,否則,令WriteSize等于fileSize;可以使用程序語句WriteSize =(fileSize〉BufSize) BufSize: fileSize實現(xiàn)該功能;
步驟305, PC機(jī)發(fā)送Vp_WriteBuf命令傳輸WriteSize大小的文件數(shù)據(jù)到 嵌入式設(shè)備緩存;
步驟306, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,若返回值表示已寫入 WriteSize大小的文件數(shù)據(jù),則執(zhí)行下一步;
步驟307, PC機(jī)發(fā)送Vp_WriteFile命令將嵌入式設(shè)備緩存中按照指定的 偏移(Offset)寫到文件中;其中,Offset初始值一般是0,每次寫入文件后, 令Offset = Offset + WriteSize;
步驟308, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,若返回值表示執(zhí)行成功 (返回值為0),則執(zhí)行下一步;
步驟309, PC機(jī)設(shè)置fileSize等于fileSize減去WriteSize;
步驟310, PC機(jī)判斷fileSize是否等于O,若是,則執(zhí)行下一步,否則, 返回執(zhí)行步驟304;
步驟311, PC機(jī)發(fā)送Vp—free命令釋放申請的嵌入式設(shè)備上的緩存;
步驟312, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,若返回值表示執(zhí)行成功 (返回值為0),則結(jié)束本流程。
在上述流程執(zhí)行過程中,若PC機(jī)接收到的返回值表示沒有執(zhí)行成功, 則可以這樣處理PC機(jī)重新執(zhí)行相應(yīng)命令,若執(zhí)行兩遍還不成功,則報錯退 出本流程。
如圖4所示,嵌入式設(shè)備傳輸文件到PC機(jī)包括如下步驟
步驟401, PC機(jī)選擇上傳的文件,發(fā)送Vp—GetRleSize命令給嵌入式設(shè)
備;
步驟402, PC機(jī)接收嵌入式設(shè)備發(fā)送返回值,獲取待上傳文件的大小 (fileSize);
步驟403, PC機(jī)根據(jù)分配策略確定嵌入式設(shè)備上需要申請的緩存大小 (BufSize),在PC機(jī)本地分配BufSize大小的緩存;
步驟404, PC機(jī)發(fā)送Vp_malloc命令申請嵌入式設(shè)備上BufSize大小的 緩存;
步驟405, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,獲得嵌入式設(shè)備上緩存 首地址;
步驟406, PC機(jī)判斷fileSize是否大于BufSize,若是,則設(shè)置ReadSize 等于BufSize,否則,ReadSize等于fileSize;可以使用程序語句ReadSize = (fileSize>BufSize) BufSize: fileSize實現(xiàn)該功能;
步驟407, PC機(jī)發(fā)送Vp一ReadFile命令讀取ReadSize大小的文件數(shù)據(jù)到 嵌入式設(shè)備緩存;
步驟408, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,若返回值表示執(zhí)行成功 (返回值為0),則執(zhí)行下一步;
步驟409, PC機(jī)發(fā)送Vp_ReadBuf命令傳輸緩存中ReadSize大小的文件 數(shù)據(jù)到PC機(jī);
步驟410, PC機(jī)接收ReadSize大小的文件數(shù)據(jù),存入本地的緩存中;
步驟411, PC機(jī)將所述本地緩存中文件數(shù)據(jù)按指定的偏移寫入本地文件 中, 一般而言是追加到文件結(jié)尾;
步驟412, PC機(jī)設(shè)置fileSize等于fileSize減去ReadSize;
步驟413, PC機(jī)判斷fileSize是否等于O,若是,則執(zhí)行下一步,否則, 返回執(zhí)行步驟406;
步驟414, PC機(jī)釋放本地申請的緩存;
步驟415, PC機(jī)發(fā)送Vp一free命令釋放申請的嵌入式設(shè)備上的緩存;
步驟416, PC機(jī)接收嵌入式設(shè)備發(fā)送的返回值,若返回值表示執(zhí)行成功 (返回值為0),則結(jié)束本流程。
在上述過程中,也可以在PC機(jī)本地申請文件大小的緩存,傳輸?shù)臅r候 將文件數(shù)據(jù)按照順序依次存放在該緩存中,最后再統(tǒng)一寫入文件中,上述流 程中有如下修改
步驟403' , PC機(jī)在本地分配fileSize大小的緩存,并根據(jù)分配策略確定 嵌入式設(shè)備上需要申請的緩存大小(BufSize),
步驟410' , PC機(jī)接收ReadSize大小的文件數(shù)據(jù),按順序存入本地的緩 存中;
步驟411' , PC機(jī)設(shè)置fileSize等于fileSize減去ReadSize;
步驟412' , PC機(jī)判斷fileSize是否等于O,若是,則執(zhí)行下一步,否則, 返回執(zhí)行步驟406;
步驟413' , PC機(jī)將本地緩存中的文件數(shù)據(jù)寫入本地文件中;
其它步驟與圖4的相同。
當(dāng)然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的 情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種嵌入式設(shè)備與PC機(jī)之間傳輸文件的方法,其特征在于,嵌入式設(shè)備與PC機(jī)之間需要傳輸文件時,由PC機(jī)確定嵌入式設(shè)備上需要申請的緩存大小,PC機(jī)根據(jù)該緩存大小申請嵌入式設(shè)備的緩存后,嵌入式設(shè)備和PC機(jī)通過該緩存?zhèn)鬏斘募?shù)據(jù)。
2、 如權(quán)利要求l所述的方法,其特征在于,所述方法包括如下步驟(a) PC機(jī)選擇需要傳輸?shù)奈募@得文件大?。?b) PC機(jī)確定嵌入式設(shè)備上需要申請的緩存大小,并根據(jù)該緩存大小 申請嵌入式設(shè)備的緩存;(c) PC機(jī)將文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存;(d) PC機(jī)將所述嵌入式設(shè)備緩存中的文件數(shù)據(jù)寫入文件中;(e) PC機(jī)判斷是否寫完,若未寫完,則返回執(zhí)行步驟(c);若寫完, 則執(zhí)行下一步;(f) 釋放所述申請的嵌入式設(shè)備的緩存。
3、 如權(quán)利要求2所述的方法,其特征在于,若是PC機(jī)傳輸文件到嵌入 式設(shè)備,在所述步驟(c)中,將PC機(jī)的文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存中; 在所述步驟(d)中,將嵌入式設(shè)備的緩存中的文件數(shù)據(jù)寫入嵌入式設(shè)備的文 件中。
4、 如權(quán)利要求2所述的方法,其特征在于,若是嵌入式設(shè)備傳輸文件到 PC機(jī),則所述步驟(b)中,還在PC機(jī)本地分配與嵌入式設(shè)備上需要申請的 緩存大小一樣的緩存;在所述步驟(c)中,將嵌入式i殳備的文件數(shù)據(jù)寫入嵌 入式設(shè)備的緩存中;在所述步驟(d)中,先將嵌入式設(shè)備緩存中的文件數(shù)據(jù) 寫入PC機(jī)中的緩存中,再將PC機(jī)中的緩存中的文件數(shù)據(jù)寫入PC機(jī)的文件 中;在所述步驟(f)中,還釋放PC機(jī)本地申請的緩存。
5、 如權(quán)利要求2所述的方法,其特征在于,所述步驟(d)中,PC機(jī)將 所述嵌入式設(shè)備緩存中的文件數(shù)據(jù)按指定的偏移寫入文件中。
6、 如權(quán)利要求l所述的方法,其特征在于,嵌入式設(shè)備需要傳輸文件到 PC機(jī)時,所述方法包括如下步驟 (A) PC機(jī)選擇需要傳輸?shù)奈募?,獲得文件大?。?B) PC機(jī)在本地分配文件大小的緩存,并確定嵌入式設(shè)備上需要申請 的緩存大小,根據(jù)該緩存大小申請嵌入式設(shè)備的緩存;(C) PC機(jī)將文件數(shù)據(jù)寫入嵌入式設(shè)備的緩存;(D) PC機(jī)將所述嵌入式設(shè)備緩存中的文件數(shù)據(jù)按順序?qū)懭隤C機(jī)本地 的纟爰存中;(E) PC機(jī)判斷是否寫完,若未寫完,則返回執(zhí)行步驟(C);若寫完, 則4丸行下一步;(F) PC機(jī)將本地緩存中的文件數(shù)據(jù)寫入本地文件中;(G) 釋放PC機(jī)本地申請的緩存以及申請的嵌入式設(shè)備的緩存。
7、 如權(quán)利要求2~6中任意一項所述的方法,其特征在于,若PC機(jī)申 請嵌入式設(shè)備的緩存操作未成功,則PC機(jī)調(diào)整申請緩存的大小,重新在嵌 入式設(shè)備上申請較小的緩存。
8、 如權(quán)利要求2~6中任意一項所述的方法,其特征在于,在傳輸文件 過程中,若PC機(jī)接收到嵌入式設(shè)備的返回值表示操作沒有執(zhí)行成功,則PC 機(jī)重新執(zhí)行相應(yīng)命令,若執(zhí)行兩遍還不成功,則報錯退出。
9、 如權(quán)利要求1 6中任意一項所述的方法,其特征在于,PC機(jī)根據(jù)分 配策略確定嵌入式設(shè)備上需要申請的緩存大小,所述分配策略為如下方式之(1) PC機(jī)申請固定大小的緩存;(2) PC機(jī)先發(fā)送查詢命令給嵌入式設(shè)備,嵌入式設(shè)備返回當(dāng)前可申請 最大內(nèi)存空間的大小,若需要傳輸?shù)奈募∮诋?dāng)前可申請最大內(nèi)存空間的大 小,則申請的緩存大小等于需要傳輸?shù)奈募笮?;若需要傳輸?shù)奈募笥诋?dāng) 前可申請最大內(nèi)存空間的大小,則申請的緩存大小等于當(dāng)前可申請最大內(nèi)存 空間的大小。
10、 如權(quán)利要求1 6中任意一項所述的方法,其特征在于,嵌入式設(shè)備 與PC機(jī)之間傳輸文件使用的接口為串口或串行外設(shè)接口 SPI或I2C接口。
全文摘要
本發(fā)明公開了一種嵌入式設(shè)備與PC機(jī)之間傳輸文件的方法,嵌入式設(shè)備與PC機(jī)之間需要傳輸文件時,由PC機(jī)確定嵌入式設(shè)備上需要申請的緩存大小,PC機(jī)根據(jù)該緩存大小申請嵌入式設(shè)備的緩存后,嵌入式設(shè)備和PC機(jī)通過該緩存?zhèn)鬏斘募?shù)據(jù)。本發(fā)明由PC機(jī)來控制嵌入式設(shè)備上申請緩存的大小,對傳輸?shù)奈募笮]有任何限制;而且即使在傳輸文件的過程中,PC機(jī)插入了其它的命令,只要文件傳輸?shù)拿铐樞虿蛔?,系統(tǒng)依然能夠正常的運(yùn)行。
文檔編號G06F13/38GK101382926SQ20081022468
公開日2009年3月11日 申請日期2008年10月23日 優(yōu)先權(quán)日2008年10月23日
發(fā)明者李棟梁, 游明琦, 國 艾 申請人:北京中星微電子有限公司