• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種生成鏡像文件的方法及編譯器技術

    技術編號:9618176 閱讀:157 留言:0更新日期:2014-01-30 05:56
    本發明專利技術實施例公開了一種生成鏡像文件的方法及編譯器。本發明專利技術實施例的方法包括:將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,根據每個目標文件的內容在多個目標文件中查找起始地址為0的第一目標文件,根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,使用第二腳本將多個目標文件合成一個鏡像文件,這樣在編譯時,根據每個目標文件的體積和內容確定每個目標文件在閃存中的起始地址,從而使得目標文件之間沒有空閑的空間,使得生成的鏡像文件小,避免浪費閃存的空間。

    Method and compiler for generating image file

    The embodiment of the invention discloses a method for generating an image file and a compiler. The method comprises the following steps of: each object files in multiple object files were compiled separately, each object file multiple object files in each volume, according to the contents of the file in multiple object files for the starting address of the first target file 0, according to the size and content of each target file the target file, using the first script for the starting address of each of the remaining multiple object files in the target file data in multiple object files in the code modify, use second scripts to multiple object files into one file, so at compile time, determine each target file in flash start address by the volume and the contents of each target file, so that no free space between the object files, the generated image file, avoid wasting Flash memory space.

    【技術實現步驟摘要】
    一種生成鏡像文件的方法及編譯器
    本專利技術實施例涉及通信領域,尤其涉及一種生成鏡像文件的方法及編譯器。
    技術介紹
    人們往往通過高級語言,如C語音,C++等進行代碼的編寫,然后通過對編寫的代碼進行編譯生成鏡像文件。現有技術中,引導裝載程序(bootloader) —般由多個目標文件合并在一個閃存(norflash)中,但是在對每個目標文件編譯時,都會在norflash中分配固定且足夠大的空間,并不能保證每個目標文件的體積與其對應在norflash分配的空間大小相適應,這樣往往會導致norflash中大量的空間被浪費,而且編譯后生成的鏡像文件大。
    技術實現思路
    本專利技術實施例提供了一種生成鏡像文件的方法及編譯器,能夠使得生成的鏡像文件小,避免浪費norflash的空間。本專利技術實施例提供的數據傳輸方法,包括:將多個目標文件中的每個所述目標文件進行單獨編譯,得到多個所述目標文件中每個所述目標文件的體積,根據每個所述目標文件的內容在多個所述目標文件中查找起始地址為O的第一目標文件,根據多個所述目標文件中每個所述目標文件的體積和內容,使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中每個剩余的所述目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,使用第二腳本將多個所述目標文件合成一個鏡像文件。本專利技術實施例提供的編譯器,包括:第一編譯單元將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,查找單元根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件,修改單元根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,第二編譯單元使用第二腳本將多個目標文件合成一個鏡像文件。從以上技術方案可以看出,本專利技術實施例具有以下優點:將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件,根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,使用第二腳本將多個目標文件合成一個鏡像文件,這樣在編譯時,根據每個目標文件的體積和內容確定每個目標文件在閃存中的起始地址,從而使得目標文件之間沒有空閑的空間,使得生成的鏡像文件小,避免浪費norflash的空間。【附圖說明】圖1為本專利技術實施例中生成鏡像文件一個實施例示意圖;圖2為本專利技術實施例中生成鏡像文件另一實施例示意圖;圖3為本專利技術實施例中燒寫前閃存的空間的示意圖;圖4為本專利技術實施例中燒與后閃存的空間的不意圖;圖5為本專利技術實施例中編譯器一個實施例邏輯結構參考圖;圖6為本專利技術實施例中編譯器另一實施例的示意圖。【具體實施方式】本專利技術實施例提供了一種生成鏡像文件的方法及編譯器,能夠使得生成的鏡像文件小,避免浪費norflash的空間。請參閱圖1,本專利技術實施例中一種生成鏡像文件的方法的一個實施例包括:101、將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積;本實施例中,對多個目標文件中的每一目標文件均進行單獨編譯,使用的編譯語言不做限定,可以為匯編語言,也可以為C語言,當然本領域技術人員可以根據匯編語言及C語言所顯而易見其它編譯語言,然后通過編譯得到每一個目標文件的體積,其中,目標文件的體積實際為目標文件的大小,例如,一個目標文件的體積為IOKB。102、根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件;本實施例中,目標文件的內容決定在norflash中的先后順序,根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件,例如,bootstrap文件中包括系統初始化的數據,所以bootstrap文件的起始地址為O,在實際應用中,程序在啟動時,均是從O地址開始啟動,起始地址為O的數據無需存儲在目標文件的代碼中。需要說明的是,第一目標文件為一個目標文件。103、根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改;本實施例中,剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,例如,共有四個目標文件,目標文件A、目標文件B、目標文件C和目標文件D,若在步驟102中查找到目標文件A的起始地址為0,則剩余的目標文件為目標文件B、目標文件C和目標文件D,然后,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,腳本的選用為現有技術,此處不做贅述,在現有技術中,由于第一目標文件(即,起始地址為O的目標文件)的起始地址的數據不存儲在目標文件之外,剩余的目標文件的起始地址的數據均對應存儲在目標文件的代碼中,例如,bootloader的四個目標文件,在閃存中從地址O開始依次為目標文件A、目標文件B、目標文件C和目標文件D,目標文件A的起始地址為0,目標文件A的代碼中包括目標文件B的起始地址的數據,目標文件B的代碼中包括目標文件C和目標文件D的起始地址的數據,此處起始地址對應在哪個目標文件的代碼中為現有技術,此處不做贅述。104、使用第二腳本將多個目標文件合成一個鏡像文件。本實施例中,當在步驟103中修改完起始地址的數據之后,使用第二腳本將多個目標文件合成一個鏡像文件,此處如何使用第二腳本將多個目標文件合成一個鏡像文件為現有技術,此處不做贅述。本實施例中,將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積,根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件,根據多個目標文件中每個目標文件的體積和內容,使用第一腳本在多個目標文件的代碼中對多個目標文件中每個剩余的目標文件的起始地址的數據進行修改,其中剩余的目標文件為多個目標文件中除了第一目標文件的目標文件,使用第二腳本將多個目標文件合成一個鏡像文件,這樣在編譯時,根據每個目標文件的體積和內容確定每個目標文件的在閃存中的起始地址,從而使得目標文件之間沒有空閑的空間,進而使得生成的鏡像文件小,避免浪費norflash的空間。為了便于理解,下面以一具體實例對本專利技術實施例的生成鏡像文件的方法中進行描述,請參閱圖2,本專利技術實施例中生成鏡像文件的方法另一實施例包括:201、將多個目標文件中的每個目標文件進行單獨編譯,得到多個目標文件中每個目標文件的體積;本實施例中,對多個目標文件中的每一目標文件均進行單獨編譯,在實際應用中,使用的編譯語言不做限定,可以為匯編語言,也可以為C語言,當然本領域技術人員可以根據匯編語言及C語言所顯而易見其它編譯語言,然后通過編譯得到每一個目標文件的體積,其中,目標文件的體積實際為目標文件的大小,例如,一個目標文件的體積為IOKB。202、根據每個目標文件的內容在多個目標文件中查找起始地址為O的第一目標文件;本實施例中,目標文件本文檔來自技高網...

    【技術保護點】
    一種生成鏡像文件的方法,其特征在于,所述方法包括:將多個目標文件中的每個所述目標文件進行單獨編譯,得到多個所述目標文件中每個所述目標文件的體積;根據每個所述目標文件的內容在多個所述目標文件中查找起始地址為0的第一目標文件;根據多個所述目標文件中每個所述目標文件的體積和內容,使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中每個剩余的所述目標文件的起始地址的數據進行修改,其中,剩余的所述目標文件為多個所述目標文件中除了所述第一目標文件的目標文件;使用第二腳本將多個所述目標文件合成一個鏡像文件。

    【技術特征摘要】
    1.一種生成鏡像文件的方法,其特征在于,所述方法包括: 將多個目標文件中的每個所述目標文件進行單獨編譯,得到多個所述目標文件中每個所述目標文件的體積; 根據每個所述目標文件的內容在多個所述目標文件中查找起始地址為O的第一目標文件; 根據多個所述目標文件中每個所述目標文件的體積和內容,使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中每個剩余的所述目標文件的起始地址的數據進行修改,其中,剩余的所述目標文件為多個所述目標文件中除了所述第一目標文件的目標文件; 使用第二腳本將多個所述目標文件合成一個鏡像文件。2.根據權利要求1所述的方法,其特征在于,所述根據多個所述目標文件中每個所述目標文件的體積和內容,使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中剩余的每個所述目標文件的起始地址的數據進行修改的具體步驟包括: 根據多個所述目標文件中每個目標文件的體積和內容確定多個所述目標文件中每個目標文件在閃存中所占閃存地址的空間; 使用第一腳本在多個所述目標文件的代碼中對多個所述目標文件中剩余的每個所述目標文件的起始地址的數據進行修改。3.根據權利要求1所述的方法,其特征在于,使用第二腳本將多個所述目標文件合成一個鏡像文件之后的步驟還包括: 將所述鏡像文件燒寫到閃存中。4.根據權利要求3所述的方法,其特征在于,所述閃存為非易失閃存norflash,...

    【專利技術屬性】
    技術研發人員:張濤
    申請(專利權)人:廣東威創視訊科技股份有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲综合无码一区二区三区| 国产成人无码免费网站| 亚洲Av无码一区二区二三区| 亚洲中文字幕久久精品无码VA| 亚洲国产精品无码久久98| 久久国产三级无码一区二区| 久久久久亚洲AV无码专区首JN | 少妇人妻偷人精品无码视频| 亚洲精品无码日韩国产不卡av| 精品久久久久久无码人妻蜜桃| 中文无码字幕中文有码字幕| 97无码人妻福利免费公开在线视频 | 亚洲av无码天堂一区二区三区| 人禽无码视频在线观看| 久久久久久国产精品无码下载 | 亚洲人成无码网WWW| 精品亚洲AV无码一区二区| 免费无码又爽又刺激网站| 日韩专区无码人妻| 极品无码国模国产在线观看| 麻豆亚洲AV永久无码精品久久| 亚洲国产精品无码中文字| 久久综合一区二区无码| 无码人妻精一区二区三区| 亚洲国产成人无码AV在线| 日韩爆乳一区二区无码| 色偷偷一区二区无码视频| 亚洲欧洲无码AV电影在线观看| 亚洲人成国产精品无码| 无码精品久久一区二区三区| 国产午夜无码片在线观看| 免费看国产成年无码AV片| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲国产精品无码专区| 国模GOGO无码人体啪啪 | 熟妇人妻无码中文字幕| 无码一区二区三区视频| 特级无码毛片免费视频尤物 | 超清无码无卡中文字幕| 天码av无码一区二区三区四区| 秋霞鲁丝片无码av|