国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式程序運(yùn)行符號表的生成方法及裝置的制造方法

      文檔序號:9921842閱讀:619來源:國知局
      一種嵌入式程序運(yùn)行符號表的生成方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明涉及嵌入式軟件應(yīng)用領(lǐng)域,尤其涉及一種嵌入式程序運(yùn)行符號表的生成方 法及裝置。
      【背景技術(shù)】
      [0002] 隨著網(wǎng)絡(luò)系統(tǒng)復(fù)雜度的增加,網(wǎng)絡(luò)系統(tǒng)中設(shè)備的現(xiàn)場可調(diào)試能力越顯重要,而符 號表是設(shè)備現(xiàn)場調(diào)試的重要技術(shù)。通過嵌入式程序運(yùn)行符號表信息,調(diào)試人員可以通過名 稱進(jìn)行函數(shù)調(diào)用操作、查看全局變量的信息、打印進(jìn)程的調(diào)用棧等信息,從而獲取設(shè)備的運(yùn) 行狀態(tài),進(jìn)而能讓調(diào)試人員更快的定位設(shè)備出現(xiàn)問題的原因。
      [0003] 由上述描述,在設(shè)備的調(diào)試過程中,嵌入式程序運(yùn)行符號表的作用是顯著的,這就 需要生成一個嵌入式程序運(yùn)行符號表。目前,通過二次鏈接的方法進(jìn)行嵌入式程序運(yùn)行符 號表的生成,在具體的執(zhí)行過程中,需要構(gòu)造一個空符號表源文件,并將其編譯為空符號表 目標(biāo)文件,將嵌入式操作系統(tǒng)中預(yù)先編譯好的目標(biāo)文件與空符號表目標(biāo)文件進(jìn)行第一次鏈 接,得到第一鏈接目標(biāo)文件,對該第一鏈接目標(biāo)文件進(jìn)行分析,得到符號表源文件,進(jìn)一步 將該符號表源文件轉(zhuǎn)換為符號表目標(biāo)文件,最后對符號表目標(biāo)文件和嵌入式操作系統(tǒng)中預(yù) 先編譯好的目標(biāo)文件進(jìn)行第二次鏈接,最終生成嵌入式程序運(yùn)行符號表。
      [0004] 在實(shí)際應(yīng)用過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有嵌入式程序運(yùn)行符號表的生成過程中,必須 要采用二次鏈接,這就增加了編譯的時間,而當(dāng)前的嵌入式系統(tǒng)越來越龐大,這樣最后的鏈 接時間占總的編譯鏈接時間很大比例,增加一次鏈接所占用的時間比較長,導(dǎo)致嵌入式程 序運(yùn)行符號表的生成效率低。

      【發(fā)明內(nèi)容】

      [0005] 本發(fā)明的實(shí)施例提供一種嵌入式程序運(yùn)行符號表的生成方法及裝置,在嵌入式程 序運(yùn)行符號表的生成過程中,緩解了采用二次鏈接導(dǎo)致的符號表生成效率低的問題。
      [0006] 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
      [0007] -種嵌入式程序運(yùn)行符號表的生成方法,所述方法包括:
      [0008] 從嵌入式目標(biāo)文件中獲取符號信息,所述符號信息至少包括:符號在所在段的相 對地址、符號名稱、段名稱;
      [0009] 根據(jù)所述符號信息生成符號表源文件;
      [0010] 將所述符號表源文件編譯為符號表目標(biāo)文件;
      [0011] 對所述嵌入式程序目標(biāo)文件和所述符號表目標(biāo)文件進(jìn)行鏈接,生成嵌入式程序運(yùn) 行符號表。
      [0012] 一種嵌入式程序運(yùn)行符號表的生成裝置,所述裝置包括:
      [0013] 獲取單元,用于從嵌入式目標(biāo)文件中獲取符號信息,所述符號信息至少包括:符號 在所在段的相對地址、符號名稱、段名稱;
      [0014] 文件生成單元,用于根據(jù)所述獲取單元獲取的所述符號信息生成符號表源文件; 并將所述符號表源文件編譯為符號表目標(biāo)文件;
      [0015] 鏈接單元,用于對所述嵌入式程序目標(biāo)文件和所述文件生成單元生成的所述符號 表目標(biāo)文件進(jìn)行鏈接,生成嵌入式程序運(yùn)行符號表。
      [0016] 本發(fā)明實(shí)施例提供的一種嵌入式程序運(yùn)行符號表的生成方法及裝置,從嵌入式目 標(biāo)文件中獲取符號信息,并根據(jù)符號信息生成符號表源文件,進(jìn)而將這一符號表源文件編 譯為符號表目標(biāo)文件,再對嵌入式程序目標(biāo)文件和符號表目標(biāo)文件進(jìn)行鏈接,生成嵌入式 程序運(yùn)行符號表。與現(xiàn)有技術(shù)嵌入式程序運(yùn)行符號表的生成過程中,必須采用二次鏈接的 方法相比,本發(fā)明實(shí)施例只需要進(jìn)行一次鏈接就生成嵌入式程序運(yùn)行符號表,緩解了符號 表生成效率低的問題。
      【附圖說明】
      [0017] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
      [0018] 圖1為本發(fā)明一實(shí)施例提供的一種生成嵌入式程序運(yùn)行符號表的方法流程圖;
      [0019] 圖2為本發(fā)明另一實(shí)施例提供的一種生成嵌入式程序運(yùn)行符號表的方法流程圖;
      [0020] 圖3為本發(fā)明另一實(shí)施例提供的一種基于具體實(shí)例生成嵌入式程序運(yùn)行符號表 的方法流程圖;
      [0021] 圖4為本發(fā)明另一實(shí)施例提供的一種嵌入式程序運(yùn)行符號表生成裝置的結(jié)構(gòu)組 成示意圖;
      [0022] 圖5為本發(fā)明另一實(shí)施例提供的另一種嵌入式程序運(yùn)行符號表生成裝置的結(jié)構(gòu) 組成示意圖。
      【具體實(shí)施方式】
      [0023] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      [0024] 本發(fā)明一實(shí)施例提供了一種嵌入式程序運(yùn)行符號表的生成方法,且這一方法在嵌 入式操作系統(tǒng)中應(yīng)用執(zhí)行,如圖1所示,該方法包括:
      [0025] 101、從嵌入式目標(biāo)文件中獲取符號信息。
      [0026] 其中,符號信息至少包括:符號在所在段的相對地址、符號名稱、段名稱。
      [0027] 值得說明的是,符號存在于一個段內(nèi),在未建立鏈接時,該段的起始地址為0,則獲 取的符號在該段內(nèi)的地址為:符號在所在段的相對地址。
      [0028] 102、根據(jù)符號信息生成符號表源文件。
      [0029] 103、將符號表源文件編譯為符號表目標(biāo)文件。
      [0030] 104、對嵌入式程序目標(biāo)文件和符號表目標(biāo)文件進(jìn)行鏈接,生成嵌入式程序運(yùn)行符 號表。
      [0031] 本發(fā)明實(shí)施例提供的一種嵌入式程序運(yùn)行符號表的生成方法,從嵌入式目標(biāo)文件 中獲取符號信息,并根據(jù)符號信息生成符號表源文件,進(jìn)而將這一符號表源文件編譯為符 號表目標(biāo)文件,再對嵌入式程序目標(biāo)文件和符號表目標(biāo)文件進(jìn)行鏈接,生成嵌入式程序運(yùn) 行符號表。與現(xiàn)有技術(shù)嵌入式程序運(yùn)行符號表的生成過程中,必須采用二次鏈接的方法相 t匕,本發(fā)明實(shí)施例只需要進(jìn)行一次鏈接就生成嵌入式程序運(yùn)行符號表,緩解了符號表生成 效率低的問題。
      [0032] 本發(fā)明另一實(shí)施例提供了一種嵌入式程序運(yùn)行符號表的生成方法,在本實(shí)施例中 就如何根據(jù)符號信息生成符號表源文件進(jìn)行了詳細(xì)說明,也就是針對上述步驟102作了具 體說明,該步驟102具體包括如下兩個執(zhí)行步驟:
      [0033] 第一步:通過符號信息獲取符號表信息。
      [0034] 值得說明的是,結(jié)合上述步驟101的描述,在獲取到符號信息之后,通過符號信息 生成符號表,在符號表中至少包括:符號名稱、符號地址、段名稱三種信息,當(dāng)然在該符號表 中還可以包括:符號大小、符號類型。在符號表中的符號地址為:符號在所在段的相對地址 +段起始地址的變量,且段起始地址的變量在鏈接時賦值,也就是該段起始地址的變量在鏈 接時根據(jù)代碼多少等動態(tài)賦值。
      [0035] 第二步:通過符號表信息生成符號表源文件。
      [0036] 值得說明的是,結(jié)合上述如圖1所示的方法流程,在執(zhí)行步驟104之前,該方法還 包括:
      [0037] a、構(gòu)造鏈接腳本。
      [0038] 其中,鏈接腳本包括段起始地址變量,且在該鏈接腳本中的單獨(dú)一個段存放符號 表,該符號表即上述通過符號信息獲取到的符號表。
      [0039] b、通過鏈接腳本對嵌入式程序目標(biāo)文件和符號表目標(biāo)文件進(jìn)行鏈接。
      [0040] 值得說明的是,該處描述的步驟a是執(zhí)行在步驟104之前的流程,其后執(zhí)行的步驟 b實(shí)際為步驟104在兩個目標(biāo)文件進(jìn)行鏈接時的實(shí)際執(zhí)行流程。
      [0041] 本發(fā)明另一實(shí)施例提供了一種嵌入式程序運(yùn)行符號表的生成方法,在該實(shí)施例中 介紹了生成嵌入式程序運(yùn)行符號表的整體執(zhí)行流程,如圖2所示,該方法包括:
      [0042] 201、將嵌入式程序源代碼編譯為一個嵌入式程序目標(biāo)文件。
      [0043] 202、從嵌入式程序目標(biāo)文件中提取符號信息,生成符號表源文件。
      [0044] 其中,在本實(shí)施例中,需要從嵌入式程序目標(biāo)文件中獲取的符號信息至少包括:符 號名稱、符號在所在段的相對地址、段名稱三種。但是符號信息還可以有:符號大小、符號類 型。
      [0045] 203、將符號表源文件編譯為符號表目標(biāo)文件。
      [0046] 204、將嵌入式程序目標(biāo)文件和符號表目標(biāo)文件進(jìn)行鏈接,生成包含符號表的嵌入 式程序。
      [0047] 在上述步驟204中,生成的包含符號表的嵌入式程序也就是嵌入式程序運(yùn)行符號 表。
      [0048] 結(jié)合上述如圖2所示方法流程的描述,本發(fā)明提供了一個具體實(shí)例進(jìn)行嵌入式程 序運(yùn)行符號表的生成,在該實(shí)例中,以生成的嵌入式程序目標(biāo)文件是映像目標(biāo)文件Image. 〇為例進(jìn)行說明,且結(jié)合上述步驟202的描述,在本實(shí)施例中獲取符號信息包括:符號名稱、 符號在所在段的相對地址、符號大小、符號類型、段名稱5種信息,如圖3所示,該方法包 括:
      [0049] 301、根據(jù)嵌入式軟件的原有規(guī)則進(jìn)行編譯,產(chǎn)生嵌入式程序目標(biāo)文件Image. 〇。
      [0050] 值得說明的是,嵌入式軟件編譯后可以產(chǎn)生多個文件,包括庫文件(.a文件)和目 標(biāo)文件(.〇文件),比如可以有:嵌入式系統(tǒng)庫文件lib_os. a、嵌入式驅(qū)動庫文件libdrv. a、嵌入式應(yīng)用庫文件lib_app. a、起始目標(biāo)文件:start. 〇等。進(jìn)一步的,對這些編譯后的文 件進(jìn)行合成,合成一個Image. 〇,在本實(shí)施例中合成目標(biāo)文件Image. 〇時,可以是由任意一 個或者多個庫文件,或者任意一個或多個目標(biāo)文件來合成。本實(shí)施例以,通過start, ο 1 ib_ os. a libdrv. a lib_app. a合成Image. 〇文件為例進(jìn)行說明,且該Image. 〇的生成過程可以 通過如下代碼實(shí)現(xiàn):
      [0051] gcc start, o lib_os. a libdrv. a lib_app. a-〇 Image, o
      [0052] 302、解析Image. 〇,獲取符號信息,并根據(jù)符號信息生成符號表源文件。
      [0053] 值得說明的是,結(jié)合上述對本實(shí)例的描述,在本步驟中獲取的符號信息包括:符號 名稱、符號在所在段的相
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1