[發明專利]一種生成鏡像文件的方法及編譯器在審
| 申請號: | 201310482386.X | 申請日: | 2013-10-15 |
| 公開(公告)號: | CN103544042A | 公開(公告)日: | 2014-01-29 |
| 發明(設計)人: | 張濤 | 申請(專利權)人: | 廣東威創視訊科技股份有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 510663 廣東省廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 生成 文件 方法 編譯器 | ||
技術領域
本發明實施例涉及通信領域,尤其涉及一種生成鏡像文件的方法及編譯器。
背景技術
人們往往通過高級語言,如C語音,C++等進行代碼的編寫,然后通過對編寫的代碼進行編譯生成鏡像文件。
現有技術中,引導裝載程序(bootloader)一般由多個目標文件合并在一個閃存(norflash)中,但是在對每個目標文件編譯時,都會在norflash中分配固定且足夠大的空間,并不能保證每個目標文件的體積與其對應在norflash分配的空間大小相適應,這樣往往會導致norflash中大量的空間被浪費,而且編譯后生成的鏡像文件大。
發明內容
本發明實施例提供了一種生成鏡像文件的方法及編譯器,能夠使得生成的鏡像文件小,避免浪費norflash的空間。
本發明實施例提供的數據傳輸方法,包括:將多個目標文件中的每個所述目標文件進行單獨編譯,得到多個所述目標文件中每個所述目標文件的體積,根據每個所述目標文件的內容在多個所述目標文件中查找起始地址為0的第一目標文件,根據多個所述目標文件中每個所述目標文件的體積和內容,使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中每個剩余的所述目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,使用第二腳本將多個所述目標文件合成一個鏡像文件。
本發明實施例提供的編譯器,包括:第一編譯單元將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,查找單元根據每個目標文件的內容在多個目標文件中查找起始地址為0的第一目標文件,修改單元根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,第二編譯單元使用第二腳本將多個目標文件合成一個鏡像文件。
從以上技術方案可以看出,本發明實施例具有以下優點:
將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,根據每個目標文件的內容在多個目標文件中查找起始地址為0的第一目標文件,根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,使用第二腳本將多個目標文件合成一個鏡像文件,這樣在編譯時,根據每個目標文件的體積和內容確定每個目標文件在閃存中的起始地址,從而使得目標文件之間沒有空閑的空間,使得生成的鏡像文件小,避免浪費norflash的空間。
附圖說明
圖1為本發明實施例中生成鏡像文件一個實施例示意圖;
圖2為本發明實施例中生成鏡像文件另一實施例示意圖;
圖3為本發明實施例中燒寫前閃存的空間的示意圖;
圖4為本發明實施例中燒寫后閃存的空間的示意圖;
圖5為本發明實施例中編譯器一個實施例邏輯結構參考圖;
圖6為本發明實施例中編譯器另一實施例的示意圖。
具體實施方式
本發明實施例提供了一種生成鏡像文件的方法及編譯器,能夠使得生成的鏡像文件小,避免浪費norflash的空間。
請參閱圖1,本發明實施例中一種生成鏡像文件的方法的一個實施例包括:
101、將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積;
本實施例中,對多個目標文件中的每一目標文件均進行單獨編譯,使用的編譯語言不做限定,可以為匯編語言,也可以為C語言,當然本領域技術人員可以根據匯編語言及C語言所顯而易見其它編譯語言,然后通過編譯得到每一個目標文件的體積,其中,目標文件的體積實際為目標文件的大小,例如,一個目標文件的體積為10KB。
102、根據每個目標文件的內容在多個目標文件中查找起始地址為0的第一目標文件;
本實施例中,目標文件的內容決定在norflash中的先后順序,根據每個目標文件的內容在多個目標文件中查找起始地址為0的第一目標文件,例如,bootstrap文件中包括系統初始化的數據,所以bootstrap文件的起始地址為0,在實際應用中,程序在啟動時,均是從0地址開始啟動,起始地址為0的數據無需存儲在目標文件的代碼中。
需要說明的是,第一目標文件為一個目標文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東威創視訊科技股份有限公司,未經廣東威創視訊科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310482386.X/2.html,轉載請聲明來源鉆瓜專利網。





