>[0053]相應的,作為本實施例的一部分,除上述被劃分為用于存儲各不同功能程序的第一訪問空間和第二訪問空間外,在保證該載體或設備的正常運行,在存儲器中還劃分有若干系統程序區和BOOT程序區,用以保證載體或設備在運行的不同階段實用。
[0054]通過將存儲器按照不同的功能程序進行分區存儲,使得對程序的讀取和注入更為便利,通過注入的差異部分可作為增量程序存儲在相應功能程序的第二訪問空間,從而避免了該差異部分的注入與其他功能程序的原程序或差異部分造成沖突的可能性。且本領域技術人員可以知道,與功能程序相類似,系統程序去的若干系統程序或BOOT程序區中的BOOT程序,在必要時,同樣可本看做與功能程序類似的部分被實施與注入差異部分相同的操作。
[0055]進一步的,作為本發明實施例的一種擴展,在存儲器中,與傳統的地址訪問不同的功能程序相不同,本實施例采用向量表的形式,對各功能程序的原程序和差異部分進行訪問,在一個向量表中,存儲有各功能程序的原程序的第一訪問空間的訪問地址,從而可更具該第一訪問空間的訪問地址讀取該第一訪問空間中的原程序,為使得對相應第二訪問空間中的差異部分的讀取更加便利,向量表中同樣以互為映射或對應的形式,存儲有同一個功能程序的第二訪問空間的訪問地址,因此,當同一功能程序同時存在原程序和差異部分時,可通過向量表,對第一訪問空間和第二訪問空間進行訪問,進而讀取全部的原程序和差異部分。
[0056]圖3為本發明實施例中合并原程序和差異部分的示意圖。
[0057]S103中,當差異部分存儲于存儲器中后,在運行對應的功能程時,對原程序和差異部分進行合并。
[0058]在本發明實施例中,某個功能程序的原程序和差異部分被同時存儲于存儲器的不同區域中,在運行該功能程前,需要將差異部分所攜帶的程序內容合并到原程序中,形成修改后的功能程序,并將合并后的被視為更新后的功能程序從類似于ROM的存儲器中合并到了用于執行的類似于RAM的存儲區域中,以便于進行后續的執行。
[0059]作為該實施例的一種擴展,由于差異部分的注入不同于原程序的執行和合并操作,因此,在執行差異部分和原程序的合并時,不不確定相應功能程序的第二訪問空間中存在實際注入的差異部分,因此,需要對第二訪問空間中的差異部分進行判斷。具體的,在合并之,首先對第二訪問空間進行判斷,以確定是否存在差異部分,因此,對應于某個功能程序,在上述實施例中,第二訪問空間為預留的存儲空間,因此,首先對該預留存儲空間中的內容進行判斷,以確定是否存在差異部分,若未對該功能程序進行注入,則對應的第二訪問空間中便不存在差異部分。
[0060]當確定該第二訪問空間中存在作為差異部分的增量程序時,可以將該功能程序的第一程序區中的原程序和第二程序區中的差異部分進行合并以共同被加載。
[0061]當確定該第二訪問空間中不存在作為差異部分的增量程序時,則無需對該功能程序的第一程序區中的原程序進行合并操作。
[0062]通過對第二訪問空間中內容的判斷,以確定是否對原程序進行合并操作,保證了作為差異部分的增量程序的正確加載,避免了因為合并相應功能程序第二訪問空間中非差異部分的增量程序,造成的原程序加載錯誤。
[0063]S104中,當完成原程序和差異程序的合并操作后,可以將合并后的被視為更新后的功能程序進行執行。
[0064]圖4為本發明實施例用于程序注入的系統的模塊示意圖。
[0065]參考圖4,在本發明實施例的用于程序注入的系統中,包括差異比較模塊、程序注入模塊和程序合并模塊。
[0066]差異比較模塊通過對待注入的程序與功能程序的原程序間的比較,確定差異部分,該差異部分可被識別為相對于原程序的增量程序。與上述實施例相同,差異比較模塊可實現于設備或載體的外部,用于在通信和處理能力不受限制的設備上實現,以緩解設備或載體的處理負擔。可替換掉,該差異比較模塊也可以實現于設備或載體的內部,并相獨立于用于執行程序的模塊,以將相應的運行以外的功能獨立實現,保證程序的執行效率。
[0067]程序注入模塊具有存儲工程程序的存儲器,在確定了差異部分后,程序注入模塊將差異部分注入到設備或載體的存儲器中,同樣的,存儲功能程序的存儲器可以為R0M,且可按照功能程序的不同來劃分存儲器中的相應存儲空間。并且,作為一種更便于存儲和查找功能程序原程序和對應差異部分的實現方式,本實施例中,進一步包括程序管理模塊,該程序管理模塊用于將存儲空間按每一個功能程序分配用于存儲原程序的第一訪問空間和存儲差異部分的第二訪問空間,并利用向量表的形式,將第一訪問空間的地址和第二訪問空間的地址相關聯,以便利與對應于同一功能程序的原程序和差異部分的同時讀取。
[0068]程序合并模塊完成對原程序和差異程序的合并,該合并可通過利用上述的向量表同時讀取存儲去存儲器中的原程序和差異部分,并將差異部分合并到原程序中,從而形成更新或升級后的功能程序。作為該程序合并模塊實施例的一種擴展,在進行差異部分和原程序的擴展前,首先對第二訪問空間中的差異部分進行確定,當存在差異部分且該差異部分的內容正確時,則執行合并操作,否則,不將第二訪問空間中的差異部分合并到原程序中。
[0069]在本發明實施例中,作為上述系統的擴展,還可以包括程序執行模塊,該程序執行模塊用于將經過合并后的新的功能程序或者將不需要合并差異部分的原程序進行執行。
[0070]通過本發明上述實施例可以明顯的減少注入程序時的程序量,從而降低通信傳輸帶寬和速率的要求,并減少了注入程序的時間。而在存儲注入的差異部分和原程序以及進行訪問時,通過劃分存儲空間和利用向量表來尋址,可以準確快捷的實現程序的查找,向量表中的每一項可以是一個功能程序的入口信息,當需要進入某個功能時,通過調用向量表相應的表項實現功能程序調用,并通過尋址訪問到對應的原程序和作為差異部分的增量程序。而在存儲功能程序的整個存儲區發生變化時,也只需要修改相應的向量表中的表項就能夠實現靈活變更功能程序的入口。并且,可將向量表的存儲位置相對固定的設置,從而可使得訪問向量表的基址是固定的,通過訪問向量表就能夠訪問功能程序。
[0071]以上實施例提供的技術方案中的全部或部分內容可以通過軟件編程實現,其軟件程序存儲在可讀取的存儲介質中,存儲介質例如:計算機中的硬盤、光盤或軟盤。
[0072]注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。
【主權項】
1.一種程序注入方法,其特征在于包括以下步驟: 確定待注入程序與功能程序的原程序間的差異部分; 將所述差異部分注入存儲器中; 合并所述原程序和所述差異部分。2.如權利要求1所述程序注入方法,其特征在于,還包括以下步驟: 將所述原程序與所述差異部分合并執行。3.如權利要求1所述程序注入方法,其特征在于,還包括以下步驟: 在存儲器中為所述功能程序分配第一訪問空間用于存儲所述原程序; 對應于所述第一訪問空間,在存儲器中分配第二訪問空間用于存儲與所述原程序對應的所述差異部分。4.如權利要求3所述程序注入方法,其特征在于, 采用向量表存儲對應于不同所述功能程序的第一訪問空間的地址和第二訪問空間的地址。5.如權利要求1所述程序注入方法,其特征在于,所述合并所述原程序和所述差異部分的步驟包括: 判斷所述差異部分是否為空; 若所述差異部分不為空,則將所述原程序與所述差異部分合并加載; 若所述差異部分為空,則僅加載所述原程序。6.一種用于程序注入的系統,其特征在于包括: 差異比較模塊,用于確定待注入程序與功能程序的原程序間的差異部分; 程序注入模塊,用于將所述差異部分注入存儲器中; 程序合并模塊,用于合并所述原程序和所述差異部分。7.如權利要求6用于程序注入的系統,其特征在于還包括: 程序執行模塊,用于將所述原程序與所述差異部分合并執行。8.如權利要求6用于程序注入的系統,其特征在于還包括: 程序管理模塊,用于在存儲器中為所述功能程序分配第一訪問空間用于存儲所述原程序;并對應于所述第一訪問空間,在存儲器中分配第二訪問空間用于存儲與所述原程序對應的所述差異部分。9.如權利要求8用于程序注入的系統,其特征在于: 所述程序管理模塊,利用向量表存儲對應于不同所述功能程序的第一訪問空間的地址和第二訪問空間的地址。10.如權利要求6用于程序注入的系統,其特征在于: 所述程序合并模塊,判斷所述差異部分是否為空;若所述差異部分不為空,則將所述原程序與所述差異部分合并加載;若所述差異部分為空,則僅加載所述原程序。
【專利摘要】計算機程序注入方法及系統。本發明公開了一種程序注入方法,包括以下步驟:確定待注入程序與功能程序的原程序間的差異部分;將所述差異部分注入存儲器中;合并所述原程序和所述差異部分。同時本發明還公開了一種用于程序注入的系統。采用本發明可以明顯降低程序的注入量。
【IPC分類】G06F9/44
【公開號】CN105094792
【申請號】CN201410498600
【發明人】劉宇, 郝曉強, 王兆俊, 史堯, 張安安, 王夢源
【申請人】航天恒星科技有限公司
【公開日】2015年11月25日
【申請日】2014年9月25日