程序加載方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及下位機(jī)系統(tǒng)更新技術(shù)領(lǐng)域,特別涉及一種程序加載方法。
【背景技術(shù)】
[0002]在LED顯示屏的同步控制系統(tǒng)應(yīng)用中,LED顯示屏控制系統(tǒng)程序資源愈加豐富,不只是簡(jiǎn)單的MCU程序、FPGA程序,LED顯示屏控制系統(tǒng)也同時(shí)支持了液晶面板的顯示(圖像和文字)、網(wǎng)頁(yè)顯示等。因此,LED顯示屏控制系統(tǒng)程序就包括了 MCU程序包、FPGA程序包(又根據(jù)不同功能分為多個(gè))、網(wǎng)頁(yè)程序包、字庫(kù)程序包、圖片程序包等等。
[0003]由于整個(gè)LED顯示屏控制系統(tǒng)的程序加載需要用戶通過(guò)上位機(jī)將每個(gè)程序包文件一個(gè)一個(gè)加載到LED顯示屏控制系統(tǒng)發(fā)送卡中相應(yīng)的硬件地址中,那么用戶就需要一個(gè)文件一個(gè)文件地去選擇瀏覽、加載,具體如圖1所示。這樣,在程序加載的過(guò)程中就存在以下幾個(gè)問(wèn)題:1)用戶必須知道這些要加載的文件的加載順序,2)用戶需要多次選擇要加載的文件的路徑。
[0004]由于文件是一個(gè)一個(gè)加載的,用戶需要知道一個(gè)文件加載完成后,保證上位機(jī)和硬件連接沒(méi)問(wèn)題再進(jìn)行下一個(gè)文件的加載,這樣大大降低了程序更新的效率,并且對(duì)用戶造成了不必要的麻煩和困擾。
【發(fā)明內(nèi)容】
[0005]因此,針對(duì)現(xiàn)有技術(shù)中的不足,本發(fā)明提出一種程序加載方法。
[0006]具體地,本發(fā)明實(shí)施例提出的一種程序加載方法,用于通過(guò)上位機(jī)向下位機(jī)系統(tǒng)加載程序包。所述程序加載方法包括步驟:(a)獲取由多個(gè)程序包文件合并而成的待加載文件,其中,所述待加載文件包括文件頭和所述多個(gè)程序包文件的內(nèi)容,所述文件頭包含所述多個(gè)程序包文件的數(shù)目、所述多個(gè)程序包文件的內(nèi)容的多個(gè)加載目標(biāo)硬件地址、以及每一個(gè)所述程序包文件的內(nèi)容在所述待加載文件中的起始位置和長(zhǎng)度;(b)判斷所述上位機(jī)與所述下位機(jī)系統(tǒng)是否連接成功;以及(C)在判斷得到所述上位機(jī)與所述下位機(jī)系統(tǒng)連接成功后,基于所述多個(gè)加載目標(biāo)硬件地址的程序包文件加載順序,利用所述多個(gè)加載目標(biāo)硬件地址從所述待加載文件的所述文件頭中依序解析出每一個(gè)所述程序包文件的內(nèi)容在所述待加載文件中的起始位置和長(zhǎng)度、根據(jù)解析出的起始位置和長(zhǎng)度將所述程序包文件的內(nèi)容存入所述上位機(jī)的系統(tǒng)臨時(shí)緩存區(qū)并在所述程序包文件的內(nèi)容從所述系統(tǒng)臨時(shí)緩存區(qū)成功加載至所述下位機(jī)系統(tǒng)后將所述程序包文件的內(nèi)容從所述系統(tǒng)臨時(shí)緩存區(qū)釋放。
[0007]在本發(fā)明的一個(gè)實(shí)施例中,所述待加載文件為二進(jìn)制文件。
[0008]在本發(fā)明的一個(gè)實(shí)施例中,所述下位機(jī)系統(tǒng)為L(zhǎng)ED顯示屏控制系統(tǒng)。
[0009]在本發(fā)明的一個(gè)實(shí)施例中,所述LED顯示屏控制系統(tǒng)包括發(fā)送卡和接收卡,所述發(fā)送卡適于連接在所述上位機(jī)和所述接收卡之間,所述多個(gè)加載目標(biāo)硬件地址為所述發(fā)送卡和/或所述接收卡上的存儲(chǔ)地址。
[0010]由上可知,本發(fā)明實(shí)施例只需選擇加載一次文件(即合并后的待加載文件),上位機(jī)軟件在內(nèi)部處理程序包文件的加載順序,不需要用戶關(guān)心多個(gè)程序包文件時(shí)的加載順序;因此,在產(chǎn)品批量生產(chǎn)或者產(chǎn)品批量升級(jí)的時(shí)候,可大大提高生產(chǎn)的效率,降低程序更新過(guò)程中產(chǎn)生不必要的錯(cuò)誤概率。
[0011]此外,本發(fā)明另一實(shí)施例提出的一種程序加載方法,用于通過(guò)上位機(jī)向下位機(jī)系統(tǒng)加載程序包。所述程序加載方法包括步驟:(i)獲取由多個(gè)程序包文件合并而成的待加載文件,其中,所述待加載文件包括文件頭和所述多個(gè)程序包文件的內(nèi)容,所述文件頭包含每一個(gè)所述程序包文件的內(nèi)容在所述待加載文件中的起始位置和長(zhǎng)度以及相關(guān)聯(lián)的加載目標(biāo)硬件地址;(ii)判斷所述上位機(jī)與所述下位機(jī)系統(tǒng)是否連接成功;以及(iii)在判斷得到所述上位機(jī)與所述下位機(jī)系統(tǒng)連接成功后,基于多個(gè)硬件地址的程序包文件加載順序,利用所述多個(gè)硬件地址從所述待加載文件的所述文件頭中依序查找與之相同的多個(gè)加載目標(biāo)硬件地址、根據(jù)查找出的多個(gè)加載目標(biāo)硬件地址在所述文件頭中依序解析出相對(duì)應(yīng)的程序包文件的內(nèi)容在所述待加載文件中的起始位置和長(zhǎng)度、根據(jù)解析出的起始位置和長(zhǎng)度將所述待加載文件中相對(duì)應(yīng)的程序包文件的內(nèi)容存入所述上位機(jī)的系統(tǒng)臨時(shí)緩存區(qū)并在所述相對(duì)應(yīng)的程序包文件的內(nèi)容從所述系統(tǒng)臨時(shí)緩存區(qū)成功加載至所述下位機(jī)系統(tǒng)后將所述程序包文件的內(nèi)容從所述系統(tǒng)臨時(shí)緩存區(qū)釋放,其中所述多個(gè)硬件地址包括所述待加載文件的所述文件頭中的部分或全部加載目標(biāo)硬件地址。
[0012]通過(guò)以下參考附圖的詳細(xì)說(shuō)明,本發(fā)明的其它方面和特征變得明顯。但是應(yīng)當(dāng)知道,該附圖僅僅為解釋的目的設(shè)計(jì),而不是作為本發(fā)明的范圍的限定,這是因?yàn)槠鋺?yīng)當(dāng)參考附加的權(quán)利要求。還應(yīng)當(dāng)知道,除非另外指出,不必要依比例繪制附圖,它們僅僅力圖概念地說(shuō)明此處描述的結(jié)構(gòu)和流程。
【附圖說(shuō)明】
[0013]下面將結(jié)合附圖,對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)的說(shuō)明。
[0014]圖1為現(xiàn)有技術(shù)中的一種程序加載方法流程示意圖。
[0015]圖2為本發(fā)明實(shí)施例的一種待加載文件的數(shù)據(jù)結(jié)構(gòu)示意圖。
[0016]圖3為本發(fā)明實(shí)施例的一種程序加載方法流程示意圖。
【具體實(shí)施方式】
[0017]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】做詳細(xì)的說(shuō)明。
[0018]請(qǐng)參見(jiàn)圖2及圖3,本發(fā)明實(shí)施例提出的一種程序加載方法可以由如下技術(shù)方案來(lái)實(shí)現(xiàn)。
[0019]具體地,為了實(shí)現(xiàn)本實(shí)施例的程序加載方法,首先需要的前置工作為:在任意一臺(tái)上位機(jī)中增加一個(gè)文件合并模塊,將不同路徑下的程序包文件載入文件合并模塊,由文件合并模塊將載入的多個(gè)程序包文件合并為一個(gè)文件作為待加載文件。圖2中為本實(shí)施例中待加載文件的數(shù)據(jù)結(jié)構(gòu)示意圖;如圖2所示,待加載文件包括文件頭和多個(gè)程序包文件的內(nèi)容;其中,多個(gè)程序包文件的內(nèi)容例如是第一個(gè)至第N個(gè)程序包文件的內(nèi)容,N為大于I的正整數(shù);文件頭包含程序包文件的數(shù)目(例如N)、每一個(gè)程序包文件的內(nèi)容的加載目標(biāo)硬件地址、以及每一個(gè)程序包文件的內(nèi)容在待加載文件中的起始地址和長(zhǎng)度等信息,其中每一個(gè)程序包文件的內(nèi)容的起始地址和長(zhǎng)度與加載目標(biāo)硬件地址關(guān)聯(lián)在一起,這樣便于在后續(xù)程序加載過(guò)程中利用加載目標(biāo)硬件地址在文件頭中查詢相對(duì)應(yīng)的程序包文件的內(nèi)容的起始地址和長(zhǎng)度。此處可以理解的是,由于程序包文件的內(nèi)容的起始地址和長(zhǎng)度是與其加載目標(biāo)硬件地址相關(guān)聯(lián),因此在程序包文件合并過(guò)程中無(wú)需按照加載順序來(lái)依序合并程序包文件,也即可以按照任意順序?qū)⒁d入的程序包文件進(jìn)行合并。
[0020]下面將結(jié)合圖3對(duì)本實(shí)施例的程序加載方法進(jìn)行詳細(xì)說(shuō)明:
[0021]首先,啟動(dòng)上位機(jī)軟件并瀏覽前述待加