基于符號(hào)表的嵌入式系統(tǒng)調(diào)試方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種基于符號(hào)表的嵌入式系統(tǒng)調(diào)試方法和
目.0
【背景技術(shù)】
[0002]在沒有硬件仿真器與集成開發(fā)環(huán)境(IDE)工具配合時(shí),嵌入式系統(tǒng)的調(diào)試模型通常由三部分組成,如圖1所示。在該調(diào)試模型中,嵌入式系統(tǒng)通常以各類微處理器,如數(shù)字信號(hào)處理器(DSP)、單片機(jī)、進(jìn)階精簡(jiǎn)指令集機(jī)器(ARM)等為核心,與其它集成電路配合,完成預(yù)定的功能目標(biāo)。調(diào)試主機(jī)運(yùn)行調(diào)試接口程序,可以采用圖形界面,也可以以命令行方式運(yùn)行。嵌入式系統(tǒng)與調(diào)試主機(jī)之間的數(shù)據(jù)傳輸通路,可以采用以太網(wǎng)、串口、光纖等。
[0003]然而,在圖1所示的調(diào)試模型中,當(dāng)嵌入式系統(tǒng)出現(xiàn)運(yùn)行問題時(shí),調(diào)試主機(jī)不能直觀的獲取嵌入式系統(tǒng)上的變量或函數(shù)符號(hào),調(diào)試效率低下。
【發(fā)明內(nèi)容】
[0004]為解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明實(shí)施例一方面提供了一種嵌入式系統(tǒng)的調(diào)試方法,方法包括:
建立符號(hào)表,符號(hào)表用于存儲(chǔ)符號(hào)的符號(hào)名稱、符號(hào)地址和符號(hào)長(zhǎng)度之間的映射關(guān)系,符號(hào)用于描述所述嵌入式系統(tǒng)鏡像文件中的函數(shù)、變量和預(yù)處理信息;
在鏡像文件的預(yù)留空間中追加符號(hào)表;
根據(jù)用戶提供的符號(hào)名稱和鏡像文件中的符號(hào)表,查找對(duì)應(yīng)的符號(hào)地址和符號(hào)長(zhǎng)度,并根據(jù)查找到的符號(hào)地址和符號(hào)長(zhǎng)度,從嵌入式系統(tǒng)的處理器內(nèi)存中獲取符號(hào)內(nèi)容;
向用戶反饋所獲取的符號(hào)內(nèi)容。
[0005]另一方面,本發(fā)明實(shí)施例還提供了一種嵌入式系統(tǒng)的調(diào)試裝置,調(diào)試裝置包括:
符號(hào)表建立模塊,用于建立符號(hào)表,符號(hào)表用于存儲(chǔ)符號(hào)的符號(hào)名稱、符號(hào)地址和符號(hào)長(zhǎng)度之間的映射關(guān)系,符號(hào)用于描述嵌入式系統(tǒng)鏡像文件中的函數(shù)、變量和預(yù)處理信息;
符號(hào)表追加模塊,用于在鏡像文件的預(yù)留空間中追加符號(hào)表;
調(diào)試主機(jī),用于根據(jù)用戶提供的符號(hào)名稱和鏡像文件中的符號(hào)表,查找對(duì)應(yīng)的符號(hào)地址和符號(hào)長(zhǎng)度,并根據(jù)查找到的符號(hào)地址和符號(hào)長(zhǎng)度,從嵌入式系統(tǒng)的處理器內(nèi)存中獲取符號(hào)內(nèi)容;
反饋模塊,用于向用戶反饋所獲取的符號(hào)內(nèi)容。
[0006]本發(fā)明實(shí)施例,采用基于符號(hào)表的嵌入式系統(tǒng)調(diào)試方法,用戶可以直觀、方便的獲取嵌入式系統(tǒng)中的符號(hào)內(nèi)容,有利于準(zhǔn)確、高效的定位問題。
【附圖說明】
[0007]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0008]圖1為現(xiàn)有技術(shù)中的嵌入式系統(tǒng)的調(diào)試模型的示意圖;
圖2為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第一實(shí)施例的流程示意圖;
圖3為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第一實(shí)施例中符號(hào)表的數(shù)據(jù)結(jié)構(gòu)的示意圖;圖4為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第一實(shí)施例中符號(hào)的檢索方法流程示意圖;圖5為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第一實(shí)施例中版本特征值的數(shù)據(jù)結(jié)構(gòu)的示意圖;
圖6為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第二實(shí)施例的流程示意圖;
圖7為本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第三實(shí)施例的流程示意圖;
圖8為本發(fā)明的嵌入式系統(tǒng)的調(diào)試裝置的第一實(shí)施例的結(jié)構(gòu)示意圖;
圖9為本發(fā)明的嵌入式系統(tǒng)的調(diào)試裝置的第二實(shí)施例的結(jié)構(gòu)示意圖;
圖10為本發(fā)明的嵌入式系統(tǒng)的調(diào)試裝置的第三實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0009]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0010]圖2,是本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第一實(shí)施例的流程示意圖,該方法包括:
步驟Sll:建立符號(hào)表,符號(hào)表用于存儲(chǔ)符號(hào)的符號(hào)名稱、符號(hào)地址和符號(hào)長(zhǎng)度之間的映射關(guān)系,符號(hào)用于描述嵌入式系統(tǒng)鏡像文件中的函數(shù)、變量和預(yù)處理信息。
[0011]本步驟中,鏡象文件是嵌入式系統(tǒng)中處理器的可執(zhí)行文件。符號(hào)表用于存儲(chǔ)符號(hào)的符號(hào)名稱、符號(hào)地址和符號(hào)長(zhǎng)度之間的映射關(guān)系。符號(hào)地址是符號(hào)內(nèi)容在嵌入式系統(tǒng)處理器內(nèi)存中的存儲(chǔ)地址,符號(hào)長(zhǎng)度是符號(hào)內(nèi)容在嵌入式系統(tǒng)處理器內(nèi)存中占用空間的大小。
[0012]示例性的,符號(hào)表可采取圖3的數(shù)據(jù)結(jié)構(gòu)。其中,符號(hào)名稱可按ASCII碼的大小進(jìn)行升序排列,從而加快檢索速度。此外,符號(hào)名稱可進(jìn)行致密的集中存儲(chǔ),從而節(jié)省內(nèi)存空間。
[0013]步驟S12:在鏡像文件的預(yù)留空間中追加符號(hào)表。
[0014]本步驟中,可在源程序的鏈接階段預(yù)留一定的內(nèi)存空間,這樣在向鏡象文件中追加符號(hào)表時(shí)不會(huì)帶來副作用。
[0015]步驟S13:根據(jù)用戶提供的符號(hào)名稱和鏡像文件中的符號(hào)表,查找對(duì)應(yīng)的符號(hào)地址和符號(hào)長(zhǎng)度,并根據(jù)查找到的符號(hào)地址和符號(hào)長(zhǎng)度,從嵌入式系統(tǒng)的處理器內(nèi)存中獲取符號(hào)內(nèi)容。
[0016]本步驟中,根據(jù)用戶提供的符號(hào)名稱,在鏡像文件中的符號(hào)表中進(jìn)行查找時(shí),為了提高查找效率,優(yōu)選的,可采用圖4所示的檢索方法,即根據(jù)用戶提供的符號(hào)名稱的字符串,首先進(jìn)行首字符的匹配,若匹配成功,再進(jìn)行全字符串的匹配。
[0017]步驟S14:向用戶反饋所獲取的符號(hào)內(nèi)容。
[0018]本步驟中,可在對(duì)符號(hào)內(nèi)容進(jìn)行解析后,根據(jù)符號(hào)的預(yù)定義數(shù)據(jù)結(jié)構(gòu)將符號(hào)內(nèi)容呈現(xiàn)給用戶,以增強(qiáng)符號(hào)內(nèi)容的可讀性,便于用戶的查看與調(diào)試。
[0019]本發(fā)明實(shí)施例中,還可以根據(jù)嵌入式系統(tǒng)的鏡像文件生成版本特征值,并在鏡像文件的預(yù)留空間中追加版本特征值,以供用戶在需要的時(shí)候讀取。該版本特征值用于記錄鏡像文件的版本特性,版本特征值的數(shù)據(jù)結(jié)構(gòu)如圖5所示,可包括特征值的生成時(shí)刻、鏡像文件的消息摘要算法第五版(MD5)碼、鏡像文件的大小和保留字段。其中,特征值的生成時(shí)刻可采用GMT時(shí)間,精確到秒;鏡像文件的MD5碼是一個(gè)根據(jù)MD5算法得到的128比特的特征值;鏡像文件的大小是指鏡像文件的字節(jié)長(zhǎng)度;保留字段可由用戶自定義。在鏡像文件中追加版本特征值,有助于用戶在嵌入式系統(tǒng)調(diào)試過程中獲得準(zhǔn)確的版本信息,提高調(diào)試的效率。
[0020]本發(fā)明實(shí)施例,采用基于符號(hào)表的嵌入式系統(tǒng)調(diào)試方法,用戶可以直觀、方便的獲取嵌入式系統(tǒng)中的符號(hào)內(nèi)容,并且解決了嵌入式系統(tǒng)調(diào)試中的版本識(shí)別問題,有利于準(zhǔn)確、高效的定位問題。
[0021]圖6,是本發(fā)明的嵌入式系統(tǒng)的調(diào)試方法的第二實(shí)施例的流程示意圖,該方法包括:
步驟S21:建立符號(hào)表,符號(hào)表用于存儲(chǔ)符號(hào)的符號(hào)名稱、符號(hào)地址和符號(hào)長(zhǎng)度之間的映射關(guān)系,符號(hào)用于描述嵌入式系統(tǒng)鏡像文件中的函數(shù)、變量和預(yù)處理信息。
[0022]步驟S22:在鏡像文件的預(yù)留空間中追加符號(hào)表。
[0023]步驟S23:當(dāng)嵌入式系統(tǒng)處于運(yùn)行狀態(tài)時(shí),向內(nèi)置于嵌入式系統(tǒng)的調(diào)試代理發(fā)送用于獲取符號(hào)內(nèi)容的請(qǐng)求消息,請(qǐng)求消息包括用戶提供的符號(hào)名稱。
[0024]本步驟中,調(diào)試代理是內(nèi)置于嵌入式系統(tǒng)的代理實(shí)體,當(dāng)嵌入式系統(tǒng)處于運(yùn)行狀態(tài)時(shí),調(diào)試代理也處于運(yùn)行狀態(tài),可用于獲取調(diào)試相關(guān)信息。通過向調(diào)試代理發(fā)送包含用戶