專利名稱:一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法及系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及嵌入式技術(shù)領域,具體涉及一種基于嵌入式系統(tǒng)的數(shù) 據(jù)拷貝方法及系統(tǒng)。
背景技術(shù):
嵌入式系統(tǒng)是以應用為中心,以計算機技術(shù)為基礎,并且軟硬件 可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格 要求的專用計算機系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設備、 嵌入式操作系統(tǒng)以及用戶的應用程序等四個部分組成,用于實現(xiàn)對其 他設備的控制、監(jiān)視或管理等功能。
在實際中嵌入式系統(tǒng)的用戶應用程序是由主機如PC機實現(xiàn)的,
主機通過通信通道與嵌入式微處理器通信,通過向嵌入式微處理器發(fā) 送控制指令,嵌入式微處理器根據(jù)該控制指令控制外圍硬件設備,最 終實現(xiàn)對其他設備的控制、監(jiān)視或管理等功能。與嵌入式微處理器連 接的外圍硬件設備很多帶有寄存器,用于存儲一些數(shù)據(jù),目前基于嵌 入式系統(tǒng)的數(shù)據(jù)拷貝過程整個是由主機控制,如通過主機控制將外圍 硬件設備中寄存器的內(nèi)容拷貝到嵌入式微處理器的存儲單元,具體方
法步驟如圖l所示,該方法主要包括以下步驟步驟sl01,由主機發(fā) 送數(shù)據(jù)拷貝命令,該拷貝命令經(jīng)通信通道被發(fā)送到嵌入式微處理器; 步驟sl02,嵌入式微處理器對該拷貝命令進行命令解析,根據(jù)解析后 的指令,得知需讀取指定的外圍硬件設備寄存器中的數(shù)據(jù),并讀取指 定外圍硬件設備中寄存器的數(shù)據(jù);步驟sl03,嵌入式微處理器將讀取 的數(shù)據(jù)經(jīng)通信通道發(fā)送到主機,并存放在主機中開辟的緩存區(qū),暫時 存儲該數(shù)據(jù);步驟sl04,主機將存放在緩存區(qū)中的上述數(shù)據(jù)發(fā)送,經(jīng) 通信通道發(fā)送到嵌入式設備的存儲單元中。
4由于實現(xiàn)從外圍硬件設備中寄存器的內(nèi)容拷貝到嵌入式微處理 器的存儲單元的過程,從數(shù)據(jù)的獲取、數(shù)據(jù)的存放整個拷貝過程都經(jīng)
由主機,在步驟sl01、 s103、 s104中都需要經(jīng)過通信通道,因此完成 一次內(nèi)存拷貝需要三次經(jīng)過通信通道, 一般嵌入式系統(tǒng)中拷貝的數(shù)據(jù) 量是很大的,因此運行速度很慢,浪費了很多時間。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法及系統(tǒng),利 用該方法和系統(tǒng),實現(xiàn)由嵌入式系統(tǒng)中的外圍硬件設備的存儲單元中 的數(shù)據(jù)拷貝到嵌入式微處理器中的存儲單元,整個過程只需要經(jīng)歷一 次通信通道,大大減少了通道間的數(shù)據(jù)流量,節(jié)省了時間,提高了運 行速度。
為實現(xiàn)上述目的,本發(fā)明釆用如下技術(shù)方案 提供一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,該方法主要包括以下 步驟
由主機發(fā)送數(shù)據(jù)拷貝命令到嵌入式微處理器;
嵌入式微處理器對數(shù)據(jù)拷貝命令進行命令解析,根據(jù)解析后得到 的指令在嵌入式微處理器中進行內(nèi)存分配,得到分配的內(nèi)存,并讀取 外圍硬件設備存儲單元中的數(shù)據(jù),將所述數(shù)據(jù)讀取到分配的內(nèi)存中;
由嵌入式微處理器將所述分配的內(nèi)存中的數(shù)據(jù)寫入到所述嵌入 式微處理器的存儲單元中;
所述嵌入式微處理器釋放所述分配的內(nèi)存。
該方法中,在對數(shù)據(jù)拷貝命令進行解析后還包括是否執(zhí)行數(shù)據(jù)拷 貝指令的判斷步驟,若執(zhí)行數(shù)據(jù)拷貝指令,由所述嵌入式微處理器進 行內(nèi)存分配;若不執(zhí)行數(shù)據(jù)拷貝指令,則執(zhí)行以下步驟
嵌入式微處理器讀取外圍硬件設備中寄存儲單元的數(shù)據(jù);
將讀取的數(shù)據(jù)發(fā)送到主機,并存放在主機中的緩存區(qū);
主機將所述緩存區(qū)中的數(shù)據(jù)發(fā)送到嵌入式設備的存儲單元中。該方法中,在將所述數(shù)據(jù)讀取到分配的內(nèi)存之前,所述分配的內(nèi) 存為空閑內(nèi)存。
該方法中,所述外圍硬件設備的存儲單元為寄存器。
該方法中,所述主機經(jīng)通信通道與所述嵌入式微處理器通信,所 述通信通道為通用異步接收/發(fā)送裝置。
該方法中,所述外圍硬件設備為視頻編解碼器、音頻編解碼器或 圖形編解碼器。
一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng),該數(shù)據(jù)拷貝系統(tǒng)包括 數(shù)據(jù)拷貝命令發(fā)送單元,用于將主機發(fā)送的數(shù)據(jù)拷貝命令發(fā)送到
嵌入式微處理器;
命令解析單元,用于對嵌入式微處理器接收的數(shù)據(jù)拷貝命令進行
命令解析;
內(nèi)存分配單元,用于根據(jù)所述命令解析單元解析后得到的指令在
嵌入式微處理器中進行內(nèi)存分配,得到分配的內(nèi)存;
拷貝數(shù)據(jù)讀取單元,用于根據(jù)所述命令解析單元解析后得到的指
令讀取外圍硬件設備存儲單元中的數(shù)據(jù),將其讀取到分配的內(nèi)存中; 拷貝數(shù)據(jù)寫入單元,用于將所述分配的內(nèi)存中的數(shù)據(jù)寫入到嵌入
式微處理器的存儲單元中;
內(nèi)存釋放單元,用于將嵌入式微處理器中所述分配的內(nèi)存釋放。
其中,所述外圍硬件設備的存儲單元為寄存器。 其中,所述外圍硬件設備為視頻編解碼器、音頻編解碼器或圖形 編解碼器。
利用該方法和系統(tǒng),實現(xiàn)由嵌入式系統(tǒng)中的外圍硬件設備的存儲 單元中的數(shù)據(jù)拷貝到嵌入式微處理器中的存儲單元,整個過程只需要 經(jīng)歷一次通信通道,大大減少了通道間的數(shù)據(jù)流量,減少了由外圍硬 件設備的存儲單元中的數(shù)據(jù)拷貝到嵌入式微處理器中的存儲單元對 拷的時間,極大的提高了運行速度。
圖i為現(xiàn)有的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法流程圖; 圖2為本發(fā)明基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法流程圖; 圖3為本發(fā)明基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng)組成示意圖。
具體實施例方式
本發(fā)明提出的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法及系統(tǒng),結(jié)合附圖 和實施例詳細說明如下。 實施例i
本實施例中嵌入式系統(tǒng)的主機為常用的個人計算機PC機,外圍
硬件設備是釆用視頻編解碼器,該視頻編解碼器的主要數(shù)據(jù)存放在寄
存器中,嵌入式微處理器與PC機連接有通道通信,本實施例中通信 通道為通用異步接收/發(fā)送裝置UART ( Universal Asynchronous Receiver/Transmitter), UART是一個并行輸入成為串行輸出的設備。 本實施例的方法實現(xiàn)將外圍硬件設備視頻編解碼器的寄存器中的數(shù) 據(jù)拷貝到嵌入式微處理器的存儲單元中,具體方法和系統(tǒng)結(jié)合附圖2、 附圖3詳述如下
步驟s201:由PC機發(fā)送數(shù)據(jù)拷貝命令,該數(shù)據(jù)拷貝命令經(jīng)異步接 收/發(fā)送裝置UART發(fā)送到嵌入式微處理器;
該步驟是由數(shù)據(jù)拷貝系統(tǒng)中的數(shù)據(jù)拷貝命令發(fā)送單元完成的; 步驟s202:嵌入式微處理器對接收的數(shù)據(jù)拷貝命令進行命令解 析,根據(jù)解析后得到的指令在嵌入式微處理器中進行內(nèi)存分配,得到 分配的內(nèi)存,并讀取外圍硬件設備視頻編解碼器的寄存器中的數(shù)據(jù),
將所述數(shù)據(jù)讀取到分配的內(nèi)存中;
該步驟中,本實施例中釆用命令解析單元進行命令解析,解析后
由拷貝數(shù)據(jù)讀取單元讀取視頻編解碼器的寄存器數(shù)據(jù),另外,在微處 理器內(nèi)進行內(nèi)存分配是由內(nèi)存分配單元完成的,將讀取的寄存器中數(shù) 據(jù)存放到分配的內(nèi)存中具體是由系統(tǒng)的拷貝數(shù)據(jù)讀取單元完成的。步驟s203:將所述分配的內(nèi)存中的數(shù)據(jù)寫入到所述嵌入式微處理 器的存儲單元中;
該步驟是由數(shù)據(jù)拷貝系統(tǒng)中的拷貝數(shù)據(jù)寫入單元完成的。 步驟s204:所述嵌入式微處理器釋放所述分配的內(nèi)存; 該步驟由數(shù)據(jù)拷貝系統(tǒng)中的內(nèi)存釋放單元完成。 本實施例基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其中外圍硬件設備不 限于釆用視頻編解碼器,也可以是其它的帶有存儲單元的外圍硬件設 備,如音頻編解碼器、圖形編解碼器等;本實施例中的嵌入式微處理 器可以釆用但不限于ARM (Advanced RISC Machines)微處理器,
還可以是單片機等微處理器;另外,嵌入式微處理器與主機之間的連 接通道也可以是USB接口等,不限于通用異步接收/發(fā)送裝置UART; 本實施例中通過嵌入式微處理器實現(xiàn)數(shù)據(jù)拷貝時的臨時分配,拷貝完 畢后進行內(nèi)存釋放,在具體實施時需要獲知嵌入式微處理器中的哪一 塊內(nèi)存是空閑的,并且大小是合適的,可以被分配作為緩存的,具體 實現(xiàn)內(nèi)存分配和管理是由結(jié)構(gòu)體和指針來實現(xiàn),由于嵌入式微處理器 中內(nèi)存按地址從小到大排列的話,并不是所用已被占用的內(nèi)存地址連 續(xù)排列,其它未被占用的內(nèi)存地址連續(xù)排列,被分配的內(nèi)存是分段分 布的,空閑內(nèi)存也是分段分布,定義指向每段內(nèi)存起始地址的指針, 及由指向該段內(nèi)存的下一段內(nèi)存的指針和該段內(nèi)存所占用的長度組 成的結(jié)構(gòu)體,同時定義每段內(nèi)存的狀態(tài),分占有狀態(tài)和空閑狀態(tài),可 以反應內(nèi)存的占用情況,實現(xiàn)對內(nèi)存的管理,本實施例中在讀取外圍 硬件設備視頻編解碼器的寄存器中的數(shù)據(jù)時,根據(jù)讀取數(shù)據(jù)的長度, 通過上述指向每段內(nèi)存起始地址的指針、指向每段內(nèi)存下一段的指針 和每段的內(nèi)存所占有的長度及每段內(nèi)存的狀態(tài),從內(nèi)存的起始地址查 找,可以迅速查找到空閑內(nèi)存段的地址范圍及長度,該過程為合并空 閑內(nèi)存塊的過程,在獲取到與讀取數(shù)據(jù)長度相同的內(nèi)存地址范圍后, 將上述地址范圍設置為臨時被分配狀態(tài),并將讀取的數(shù)據(jù)讀入該臨時被分配內(nèi)存中。在將讀取到臨時被分配內(nèi)存中的數(shù)據(jù)寫入到嵌入式微 處理器的存儲單元中后,上述臨時被分配狀態(tài)的內(nèi)存被釋放,將上述 臨時被分配內(nèi)存的狀態(tài)重新設置為空閑狀態(tài),完成內(nèi)存釋放過程。 如圖3所示為本發(fā)明基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng),包括 數(shù)據(jù)拷貝命令發(fā)送單元,用于將主機發(fā)送的數(shù)據(jù)拷貝命令發(fā)送到 嵌入式微處理器;命令解析單元,用于對嵌入式微處理器接收的數(shù)據(jù) 拷貝命令進行命令解析;內(nèi)存分配單元,用于根據(jù)所述命令解析單元 解析后得到的指令在嵌入式微處理器中進行內(nèi)存分配,得到分配的內(nèi)
存;拷貝數(shù)據(jù)讀取單元,用于根據(jù)所述命令解析單元解析后得到的指 令讀取外圍硬件設備存儲單元中的數(shù)據(jù),將其讀取到分配的內(nèi)存中; 拷貝數(shù)據(jù)寫入單元,用于將所述分配的內(nèi)存中的數(shù)據(jù)寫入到嵌入式微 處理器的存儲單元中;內(nèi)存釋放單元,用于將嵌入式微處理器中所述 分配的內(nèi)存釋放。
具體實施時,各個單元由程序中的函數(shù)和命令完成相應的功能。
實施例2
該實施例與實施l不同之處在于,實施例1實現(xiàn)了數(shù)據(jù)拷貝過程 中只有一次通過數(shù)據(jù)通道,本實施例中,通過對主機發(fā)送的數(shù)據(jù)拷貝 命令解析,在對數(shù)據(jù)拷貝命令進行解析后還包括是否執(zhí)行數(shù)據(jù)拷貝指 令的判斷步驟,若執(zhí)行數(shù)據(jù)拷貝指令,由所述嵌入式微處理器進行內(nèi) 存分配,即實行實施例1的數(shù)據(jù)拷貝方法;若不執(zhí)行數(shù)據(jù)拷貝指令, 則執(zhí)行以下步驟
嵌入式微處理器讀取外圍硬件設備中寄存儲單元的數(shù)據(jù); 將讀取的數(shù)據(jù)發(fā)送到主機,并存放在主機中的緩存區(qū); 主機將所述緩存區(qū)中的數(shù)據(jù)發(fā)送到嵌入式設備的存儲單元中。 本實施例中由于增加了否執(zhí)行數(shù)據(jù)拷貝指令判斷,可以在一個嵌 入式系統(tǒng)實現(xiàn)可選的兩種數(shù)據(jù)拷貝方法,即可以釆用實施例l所述的 方法進行數(shù)據(jù)拷貝,也可以采用現(xiàn)有技術(shù)中的數(shù)據(jù)拷貝方法。要拷貝的外圍硬件設備中的數(shù)據(jù)量是非常小時,可以通過主機設 置數(shù)據(jù)拷貝命令中的是否執(zhí)行數(shù)據(jù)拷貝命令的值,將其設置為不執(zhí)行 數(shù)據(jù)拷貝命令,而釆用現(xiàn)有技術(shù)中的數(shù)據(jù)拷貝方法進行數(shù)據(jù)拷貝,這 樣就可以省去在嵌入式微處理器中內(nèi)存分配、釋放等步驟。
利用本實施例的方法在可以實現(xiàn)通過一套程序,實現(xiàn)兩種數(shù)據(jù)拷 貝方法,且在程序中其調(diào)用函數(shù)也都是統(tǒng)一的。
以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān) 技術(shù)領域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下, 還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明 的范疇,本發(fā)明的專利保護范圍應由權(quán)利要求限定。
權(quán)利要求
1、一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特征在于,該方法包括以下步驟由主機發(fā)送數(shù)據(jù)拷貝命令到嵌入式微處理器;嵌入式微處理器對數(shù)據(jù)拷貝命令進行命令解析,根據(jù)解析后得到的指令在嵌入式微處理器中進行內(nèi)存分配,得到分配的內(nèi)存,并讀取外圍硬件設備存儲單元中的數(shù)據(jù),將所述數(shù)據(jù)讀取到分配的內(nèi)存中;由嵌入式微處理器將所述分配的內(nèi)存中的數(shù)據(jù)寫入到所述嵌入式微處理器的存儲單元中;所述嵌入式微處理器釋放所述分配的內(nèi)存。
2、 如權(quán)利要求1所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特 征在于,該方法中,在對數(shù)據(jù)拷貝命令進行解析后還包括是否執(zhí)行數(shù) 據(jù)拷貝指令的判斷步驟,若執(zhí)行數(shù)據(jù)拷貝指令,由所述嵌入式微處理 器進行內(nèi)存分配;若不執(zhí)行數(shù)據(jù)拷貝指令,則執(zhí)行以下步驟嵌入式微處理器讀取外圍硬件設備中寄存儲單元的數(shù)據(jù); 將讀取的數(shù)據(jù)發(fā)送到主機,并存放在主機中的緩存區(qū); 主機將所述緩存區(qū)中的數(shù)據(jù)發(fā)送到嵌入式設備的存儲單元中。
3、 如權(quán)利要求1所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特 征在于,在將所述數(shù)據(jù)讀取到分配的內(nèi)存之前,所述分配的內(nèi)存為空 閑內(nèi)存。
4、 如權(quán)利要求1所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特 征在于,所述外圍硬件設備的存儲單元為寄存器。
5、 如權(quán)利要求1所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特 征在于,所述主機經(jīng)通信通道與所述嵌入式微處理器通信,所述通信 通道為通用異步接收/發(fā)送裝置。
6、 如權(quán)利要求1所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法,其特 征在于,所述外圍硬件設備為視頻編解碼器、音頻編解碼器或圖形編解碼器。
7、 一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng),其特征在于,該數(shù)據(jù) 拷貝系統(tǒng)包括數(shù)據(jù)拷貝命令發(fā)送單元,用于將主機發(fā)送的數(shù)據(jù)拷貝命令發(fā)送到嵌入式微處理器;命令解析單元,用于對嵌入式微處理器接收的數(shù)據(jù)拷貝命令進行命令解析;內(nèi)存分配單元,用于根據(jù)所述命令解析單元解析后得到的指令在嵌入式微處理器中進行內(nèi)存分配,得到分配的內(nèi)存;拷貝數(shù)據(jù)讀取單元,用于根據(jù)所述命令解析單元解析后得到的指令讀取外圍硬件設備存儲單元中的數(shù)據(jù),將其讀取到分配的內(nèi)存中; 拷貝數(shù)據(jù)寫入單元,用于將所述分配的內(nèi)存中的數(shù)據(jù)寫入到嵌入式微處理器的存儲單元中;內(nèi)存釋放單元,用于將嵌入式微處理器中所述分配的內(nèi)存釋放。
8、 如權(quán)利要求7所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng),其特征在于,所述外圍硬件設備的存儲單元為寄存器。
9、 如權(quán)利要求7所述的基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝系統(tǒng),其特 征在于,所述外圍硬件設備為視頻編解碼器、音頻編解碼器或圖形編
全文摘要
本發(fā)明涉及一種基于嵌入式系統(tǒng)的數(shù)據(jù)拷貝方法及系統(tǒng),該方法包括步驟由主機發(fā)送數(shù)據(jù)拷貝命令到嵌入式微處理器;嵌入式微處理器根據(jù)數(shù)據(jù)拷貝命令分配內(nèi)存,并讀取外圍硬件設備存儲單元中的數(shù)據(jù)到分配的內(nèi)存中;將分配的內(nèi)存中的數(shù)據(jù)寫入到所述嵌入式微處理器的存儲單元中;釋放分配的內(nèi)存,該系統(tǒng)中包括的內(nèi)存分配單元,用于接收到數(shù)據(jù)拷貝命令后進行內(nèi)存分配;拷貝數(shù)據(jù)讀取單元,用于讀取外圍硬件設備存儲單元中的數(shù)據(jù)到分配的內(nèi)存中;拷貝數(shù)據(jù)寫入單元,將數(shù)據(jù)寫入到嵌入式微處理器的存儲單元中;然后由內(nèi)存釋放單元釋放占有的內(nèi)存,利用該方法和系統(tǒng)進行數(shù)據(jù)拷貝時,只需要經(jīng)歷一次通信通道,減少了數(shù)據(jù)流量,節(jié)省了時間,提高了運行速度。
文檔編號G06F9/46GK101290568SQ20081011415
公開日2008年10月22日 申請日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者張攀峰, 游明琦 申請人:北京中星微電子有限公司