本發(fā)明涉及片上系統(tǒng)的數(shù)據(jù)讀寫領(lǐng)域,尤其是涉及片上系統(tǒng)固件的燒錄裝置以及使用該固件燒錄裝置的燒錄方法。
背景技術(shù):固件(Firmware)是存儲在可擦除只讀存儲器(EROM)或可擦出可編程只讀存儲器中(EPROM)的程序,通俗的理解就是“固化的軟件”。固件擔(dān)任著一個系統(tǒng)最基礎(chǔ)最底層工作的軟件。而在硬件設(shè)備中,固件就是硬件設(shè)備的靈魂,因為一些硬件設(shè)備除了固件以外沒有其他軟件組成,因此固件也就決定著硬件設(shè)備的功能及性能。對于獨立可操作的電子產(chǎn)品,固件一般指它的操作系統(tǒng),例如平板電腦的固件,就是指平板電腦的操作系統(tǒng),同理,智能手機(jī)的固件,同樣是指智能手機(jī)的操作系統(tǒng),又例如高清播放器、電子書、智能電視棒和行車記錄儀等各自的固件,都是指各自的操作系統(tǒng)。固件燒錄是指將新的固件寫入可擦出可編程只讀存儲器中,代替原有的固件的過程。片上系統(tǒng)是指一個芯片上集成一個完整的系統(tǒng),對所有或部分必要的電子電路進(jìn)行集成的技術(shù),用于特定目的的單片集成電路。所謂完整的系統(tǒng)一般包括中央處理器,具有靜止存取功能的內(nèi)存,多媒體處理器和必要的接口控制器等。片上系統(tǒng)由于集成了大量的控制器,芯片面積小,加上必要的內(nèi)存,顯示設(shè)備,輸入設(shè)備,就可成為一個消費(fèi)類的電子產(chǎn)品。例如,公告號為CN101963910A的中國發(fā)明專利公開了名為“基于通用USB總線的設(shè)備固件升級方法”的發(fā)明創(chuàng)造,該發(fā)明提供一種基于通用USB總線的設(shè)備固件升級方法,該升級方法的具體步驟如下:利用USB總線通過USB接口將智能設(shè)備與控制電腦電連接,控制電腦運(yùn)行固件升級程序上位機(jī),提供用戶一個向?qū)缴壊僮骱惋@示界面,智能設(shè)備運(yùn)行固件升級程序下位機(jī),固件升級程序上位機(jī)將用戶的操作指令經(jīng)USB總線發(fā)送給固件升級程序下位機(jī),控制智能設(shè)備切換到固件升級模式,分塊下載到固件升級程序下位機(jī)中。最后,固件升級程序下位機(jī)的所有分塊的程序后進(jìn)行組合拼裝及校驗,提示用戶固件升級是否成功。由上可見,通過電腦使用基于USB協(xié)議的升級軟件來升級本地固件是較有效且較友好的燒錄方式,但是由于基于片上系統(tǒng)上產(chǎn)品的多樣性,市面上多數(shù)電腦端的升級工具都面臨如下問題:一是升級軟件無法在各種不同操作系統(tǒng)的電腦上做到通用化,用戶必須根據(jù)不同的操作系統(tǒng)來選擇對應(yīng)不同的適用版本的升級軟件;二是由于片上系統(tǒng)的不同,而導(dǎo)致用戶在升級同一個片上系統(tǒng)的固件時,在不同的電腦操作系統(tǒng)上則需要使用不同版本的固件;三是許多升級軟件都是針對一類的片上系統(tǒng)來設(shè)計使用的,當(dāng)需要對其他不同的片上系統(tǒng)進(jìn)行升級燒錄時則需要使用另一不同的升級軟件。上述幾個問題會使得使用人員在燒錄固件時造成不便,同時使得工作效率低下。
技術(shù)實現(xiàn)要素:本發(fā)明的主要目的是提供一種具有通用性高且方便操作的固件燒錄方法。本發(fā)明的另一目的是提供一種具有通用性高且易于使用的固件燒錄裝置。為了實現(xiàn)本發(fā)明的主要目的,本發(fā)明提供一種固件燒錄方法,該固件燒錄方法包括在上位機(jī)啟動固件燒錄裝置;在上位機(jī)與下位機(jī)連接后,將固件從上位機(jī)下載到下位機(jī),其中,固件集成了用腳本程序語言編寫的功能接口模塊,功能接口模塊是抽象出來的用于實現(xiàn)燒錄過程中所需要的功能。由上述方案可見,將固件的邏輯功能分離出來,并將功能接口模塊以腳本程序語言提供出來,由于腳本程序語言具有容易開發(fā)且容易部署,同時能夠根據(jù)不同的應(yīng)用來調(diào)整,使得腳本程序語言通用性高,繼而使得在不同的上位機(jī)上均可實現(xiàn)對具有不同固件的下位機(jī)進(jìn)行燒錄,簡化了使用人員的操作,有效增加工作效率。更進(jìn)一步的方案是,固件燒錄裝置包含的固件數(shù)量為二個以上,將固件從上位機(jī)下載到下位機(jī)前,在上位機(jī)從多個固件中選擇所需要燒錄的固件。由上可見,將不同固件都集成在固件燒錄裝置內(nèi),能夠?qū)?yīng)不同的下位機(jī)選擇不同的固件,有效地增加燒錄方法的通用性。更進(jìn)一步的方案是,上位機(jī)選擇固件后,對固件進(jìn)行解碼,并讀取固件的信息,提取固件的燒錄腳本,上位機(jī)根據(jù)燒錄腳本與下位機(jī)進(jìn)行交互通訊。由上可見,將固件進(jìn)行解碼并提取相關(guān)信息,有利于在固件燒錄裝置生成人機(jī)交互窗口或者燒錄過程所需的功能按鍵,使得固件程序能夠有效地寫入下位機(jī),燒錄方式以腳本文件的方式動態(tài)的存在于固件中,使得不同的固件可以有不同的燒錄方式。更進(jìn)一步的方案是,將上位機(jī)與下位機(jī)連接后,檢測上位機(jī)操作系統(tǒng),調(diào)用操作系統(tǒng)的連接驅(qū)動。由上可見,固件燒錄裝置內(nèi)集成多個應(yīng)用在不同操作系統(tǒng)的連接驅(qū)動,如對應(yīng)Windows操作系統(tǒng)的USB驅(qū)動、對應(yīng)Macos操作系統(tǒng)的USB驅(qū)動和對應(yīng)Linux操作系統(tǒng)的USB驅(qū)動等,根據(jù)不同操作系統(tǒng)選擇不同驅(qū)動,有效地提高固件燒錄方法的通用性。更進(jìn)一步的方案是,將所述固件下載到所述下位機(jī)后,對所燒錄的所述固件進(jìn)行校驗。由上可見,當(dāng)燒錄完成后,下位機(jī)向上位機(jī)返回信息,顯示燒錄成功或燒錄失敗,并生成燒錄日志,方便編程人員或使用人員查看,使得固件燒錄方法更加完善,便與使用和調(diào)試。為了實現(xiàn)本發(fā)明的另一目的,本發(fā)明提供一種固件燒錄裝置,該燒錄裝置包括用于在上位機(jī)啟動固件燒錄模塊的模塊;用于將固件從上位機(jī)下載到下位機(jī)的模塊,其中,固件集成了用腳本程序語言編寫的功能接口模塊,功能接口模塊是抽象出來的用于實現(xiàn)燒錄過程中所需的功能。由上述方案可見,通過將功能接口模塊以腳本程序語言提供出來的模塊將功能接口模塊腳本化,繼而使得在上位機(jī)上便可實現(xiàn)對具有不同固件的下位機(jī)進(jìn)行燒錄,簡化了使用人員的操作,有效增加工作效率。更進(jìn)一步的方案,固件燒錄裝置含的固件的數(shù)量為兩個以上,固件燒錄裝置還包括用于在上位機(jī)選擇固件的模塊。由上可見,將不同固件都集成在固件燒錄裝置內(nèi),能夠?qū)?yīng)不同的下位機(jī)選擇不同的固件,使得固件燒錄裝置能夠適用于不同固件,有效地增加固件燒錄裝置的通用性。更進(jìn)一步的方案,還包括提取模塊,用于在所述固件被選取后提取所述固件信息。由上可見,提取固件信息,根據(jù)燒錄腳本在固件燒錄裝置生成人機(jī)交互窗口或者燒錄過程所需的功能按鍵,使得固件燒錄裝置能夠?qū)⒐碳奖愕貙懭胂挛粰C(jī)。更進(jìn)一步的方案,還包括校驗?zāi)K,用于固件寫入到下位機(jī)后對固件進(jìn)行校驗。由上可見,固件燒錄裝置運(yùn)用校驗?zāi)K使其在運(yùn)行過程中更加穩(wěn)定可靠,有效地提高使用人員的工作效率。更進(jìn)一步的方案,固件燒錄裝置是采用多平臺支持的面向?qū)ο蟪绦蛘Z言編寫。由上可見,采用多平臺支持的面向?qū)ο蟪绦蛘Z言,有效地增大固件燒錄裝置的通用性。附圖說明圖1是本發(fā)明固件制作方法的流程圖。圖2是本發(fā)明固件燒錄方法的流程圖。圖3是本發(fā)明固件制作裝置的系統(tǒng)框圖。圖4是本發(fā)明固件燒錄裝置的系統(tǒng)框圖。以下結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明。具體實施方式本發(fā)明的固件燒錄方法是將固件從上位機(jī)寫入下位機(jī)的過程,因此在固件燒錄前,需要制造固件,固件的制造方法的流程如圖1所示。編程人員制作固件時,首先是執(zhí)行步驟S11,即根據(jù)實際所需的功能和要求進(jìn)行編譯代碼,然后執(zhí)行步驟S12,利用編譯程序?qū)⒕幾g代碼生成目標(biāo)文件,其目標(biāo)文件是可以被電腦直接識別且可直接運(yùn)行的機(jī)器碼集合。制作完成目標(biāo)文件后執(zhí)行步驟S13,制作配置文件,配置文件為用戶所要加載所需環(huán)境的設(shè)置和文件的集合,其包括所有用戶專用的配置設(shè)置,如程序項目、系統(tǒng)參數(shù)、工作頻段、時鐘信號、鼠標(biāo)設(shè)置及窗口的大小和位置等。制作完成配置文件后,將執(zhí)行下一步驟S14,制作燒錄腳本,燒錄腳本包括上位機(jī)與下位機(jī)進(jìn)行一問一答式的數(shù)據(jù)交互方式和燒錄過程中燒錄程序所需要用的功能接口模塊,其中,功能接口模塊為應(yīng)用在燒錄程序上為燒錄程序提供特定的功能,如為燒錄程序提供燒錄進(jìn)度條、程序按鈕、備份功能等。制作腳本時,執(zhí)行步驟S15,抽象出功能接口模塊,功能接口模塊所實現(xiàn)的功能是用于為用戶在燒錄固件時提供人機(jī)交互的窗口,用戶可以通過該窗口有效地將固件寫入下位機(jī)中。其中,該功能接口模塊是以腳本程序語言提供出來的,即執(zhí)行步驟S16,并執(zhí)行下一步S17,將以腳本程序語言編寫的功能接口模塊編寫到燒錄腳本中,這樣就完成制作目標(biāo)文件、配置文件和燒錄腳本。下一步將執(zhí)行S18即將目標(biāo)文件、配置文件和燒錄腳本封裝起來并給與加密,最終將目標(biāo)文件、配置文件和燒錄腳本封裝并集成成為固件,即執(zhí)行步驟S19。上述固件可以應(yīng)用如圖3所示的固件制造裝置制造,固件制作裝置3包括編譯模塊31、配置模塊32、腳本模塊33和封裝模塊34,編譯模塊31將編譯代碼生成目標(biāo)文件,配置模塊32將用戶所要加載所需環(huán)境的設(shè)置和文件生成配置文件,抽象出燒錄過程中所需的功能接口并生成功能接口模塊35,腳本模塊33將以腳本程序語言編寫的該功能接口模塊35和數(shù)據(jù)交互方式生成燒錄腳本,最后利用封裝模塊34將目標(biāo)文件、配置文件和燒錄腳本封裝并加密成為固件。固件燒錄方法實施例:本實施例是將上述制作完成的固件通過燒錄方式下載到下位機(jī)中,參照圖2,圖2是本發(fā)明固件燒錄方法的流程圖。首先在上位機(jī)執(zhí)行啟動固件燒錄裝置,即執(zhí)行步驟S21。然后執(zhí)行步驟S22,在燒錄固件裝置上選擇對應(yīng)的固件,隨后執(zhí)行步驟S23,對所選擇的固件進(jìn)行解碼。由于為了防止他人盜用固件內(nèi)的程序代碼以及相關(guān)信息,所以在固件制作過程中采用了加密手段,解碼后執(zhí)行下一步步驟S24,提取配置文件,并且解析配置文件中的信息對固件燒錄裝置進(jìn)行相關(guān)參數(shù)配置,使得固件燒錄裝置經(jīng)過配置參數(shù)后能夠順暢地與下位機(jī)進(jìn)行通訊。隨后執(zhí)行下一步驟S25,從解碼后的固件提取出燒錄腳本,然后固件燒錄裝置讀取燒錄腳本中的數(shù)據(jù)交互方式和功能接口模塊的相關(guān)數(shù)據(jù),固件燒錄裝置根據(jù)其數(shù)據(jù)交互方式與燒錄過程中所需的功能接口模塊進(jìn)行交互,在固件燒錄裝置生成人機(jī)交互窗口或者燒錄過程所需的功能按鍵,即執(zhí)行步驟S26,操作人員通過這些人機(jī)交互的窗口和功能按鍵實現(xiàn)操控固件的燒錄過程。隨后執(zhí)行下一步步驟S27,燒錄裝置調(diào)用操作系統(tǒng)提供的應(yīng)用程序編程接口,由于不同操作系統(tǒng)如windows、Linux、Macos等操作系統(tǒng)具有不同的應(yīng)用編程接口,調(diào)用對應(yīng)的操作系統(tǒng)的應(yīng)用程序編程接口使得固件可以從上位機(jī)下載到下位機(jī)中。隨后通過執(zhí)行步驟S28,操作系統(tǒng)在固件中調(diào)用對應(yīng)的USB驅(qū)動來連接下位機(jī),當(dāng)上位機(jī)通過USB數(shù)據(jù)線與下位機(jī)連接時,通過控制固件燒錄裝置使得固件從應(yīng)用編程接口通過USB接口下載到下位機(jī)中,然后上位機(jī)則向下位機(jī)以數(shù)據(jù)包形式發(fā)送固件到下位機(jī)中,即執(zhí)行步驟S29。當(dāng)然發(fā)送完畢時,則執(zhí)行步驟S30,對下載到下位機(jī)的數(shù)據(jù)包進(jìn)行校驗,校驗完畢后執(zhí)行步驟S31,上位機(jī)從下位機(jī)接收返回的校驗信息,校驗信息包括校驗成功信息或校驗失敗信息,當(dāng)上位機(jī)接收到校驗信息后執(zhí)行下一步步驟S32,處理返回的校驗信息,并且生成燒錄日志,即步驟S33。使用人員通過查看燒錄日志則可了解燒錄的詳細(xì)過程和參數(shù)等,最后執(zhí)行步驟S34,將顯示燒錄成功或燒錄失敗。固件燒錄裝置實施例:參見圖4,固件燒錄裝置4包括啟動模塊41、顯示模塊42、固件選擇模塊43、解碼模塊44、提取模塊45、配置模塊46、系統(tǒng)檢測模塊47、調(diào)用模塊48、連接模塊49、發(fā)送模塊50、檢驗?zāi)K51、接收模塊52、處理模塊53和日志模塊54。啟動模塊41啟動固件燒錄裝置后,顯示模塊42顯示操作界面,用戶利用固件選擇模塊43選擇相應(yīng)的固件,解碼模塊44則對該固件進(jìn)行解碼,提取模塊45提取固件內(nèi)相關(guān)信息,其中包括配置文件,還包括燒錄腳本中的數(shù)據(jù)交互方式和功能接口模塊,配置模塊46則根據(jù)配置文件解析配置文件中的信息對固件燒錄裝置進(jìn)行相關(guān)參數(shù)配置,使得固件燒錄裝置經(jīng)過配置參數(shù)后能夠順暢地與下位機(jī)進(jìn)行通訊。配置模塊46根據(jù)燒錄腳本與燒錄過程中所需的功能接口模塊進(jìn)行交互,在固件燒錄裝置生成人機(jī)交互窗口或者燒錄過程所需的功能按鍵,操作人員通過這些人機(jī)交互的窗口和功能按鍵實現(xiàn)操控固件的燒錄過程。系統(tǒng)檢測模塊47檢測本操作系統(tǒng)并將檢測結(jié)果發(fā)送到調(diào)用模塊48,調(diào)用模塊48根據(jù)檢測結(jié)果調(diào)用對應(yīng)的操作系統(tǒng)的用程序編程接口和對應(yīng)的USB驅(qū)動,當(dāng)上位機(jī)通過USB數(shù)據(jù)線與下位機(jī)連接時,連接模塊49檢測上位機(jī)與下位機(jī)連接成功,則發(fā)送模塊50利用應(yīng)用編程接口發(fā)送固件,固件再通過USB接口傳輸?shù)较挛粰C(jī)中。發(fā)送完畢后,校驗?zāi)K51對發(fā)送完畢的固件進(jìn)行校驗,并將校驗結(jié)果發(fā)送到接收模塊52,接收模塊52接收到校驗信息后傳送到處理模塊53,處理模塊53對校驗信息進(jìn)行處理并利用日志模塊54生成燒錄日志,最后顯示模塊根據(jù)校驗信息顯示燒錄成功過燒錄失敗。由上述方案可見,固件燒錄裝置保存有多個固件供用戶使用,用戶可以根據(jù)下位機(jī)的不同而選擇能夠的固件,同時固件燒錄裝置是采用多平臺支持的面向?qū)ο蟪绦蛘Z言編寫,如C++等,通過多平臺支持的面向?qū)ο蟪绦蛘Z言可以使不同的操作平臺都能夠操作使用。另外,腳本語言采用的是Lua語言將功能接口模塊以腳本化程序語言提供出來,利用通用性高且方便操作使用的上述固件燒錄方法和固件燒錄裝置,可以有效地減少在固件燒錄過程遇到平臺與平臺之間相不兼容問題,方便了使用人員,有效地增加其工作效率。最后需要強(qiáng)調(diào)的是,上述實施例只是本發(fā)明的較優(yōu)實施例,例如驅(qū)動部分還可以采用的串口驅(qū)動等其他類型的接口,從而達(dá)到本發(fā)明目的,上述的都是本發(fā)明的保護(hù)范圍之內(nèi)。