[發(fā)明專利]基于JTAG調試方式實現通用型目標碼覆蓋率測試系統(tǒng)和測試方法有效
| 申請?zhí)枺?/td> | 201510070389.1 | 申請日: | 2015-02-10 |
| 公開(公告)號: | CN104657263B | 公開(公告)日: | 2017-10-24 |
| 發(fā)明(設計)人: | 朱二剛;張必勇;陶鈞 | 申請(專利權)人: | 上海創(chuàng)景計算機系統(tǒng)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 上海漢聲知識產權代理有限公司31236 | 代理人: | 郭國中,樊昕 |
| 地址: | 201203 上海市浦東新區(qū)張江高科技園*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 jtag 調試 方式 實現 通用型 目標 覆蓋率 測試 系統(tǒng) 方法 | ||
技術領域
本發(fā)明涉及一種測試系統(tǒng)和測試方法,具體地,涉及一種基于JTAG調試方式實現通用型目標碼覆蓋率測試系統(tǒng)和測試方法。
背景技術
嵌入式程序往往具有高可靠性和穩(wěn)定性的特點,因此需要對嵌入式程序進行嚴格的測試,確定程序代碼的覆蓋率是否達到要求,如代碼覆蓋率、分支覆蓋率和調用覆蓋率。
目前確定嵌入式程序覆蓋率的方法一般是通過修改嵌入式程序源代碼,在源代碼中植入探針代碼,重新編譯并執(zhí)行嵌入式程序,然后通過分析探針的輸出結果來確定該嵌入式程序的各種代碼覆蓋率。現有方案因為要在源代碼中植入探針代碼,必然導致嵌入式程序目標代碼的膨脹,而嵌入式設備的存儲空間往往是非常有限的,可能會無法容納膨脹后的程序代碼,并且因為探針的存在,可能無法反映目標代碼的真實執(zhí)行情況。
發(fā)明內容
針對現有技術中的缺陷,本發(fā)明的目的是提供一種基于JTAG調試方式實現通用型目標碼覆蓋率測試系統(tǒng)和測試方法,其不需要對嵌入式程序的源碼進行插樁,不改變被測程序的源代碼的程序結構,目標代碼不會產生膨脹。另外,不修改嵌入式程序的二進制目標代碼的程序結構,直接測試運行于嵌入式設備上的程序代碼,確保被測代碼和最終代碼完全一致,可以反映目標代碼的真實執(zhí)行情況。
根據本發(fā)明的一個方面,提供一種基于JTAG調試方式實現通用型目標碼覆蓋率測試系統(tǒng),其特征在于,包括:
覆蓋率監(jiān)控模塊,用于對目標代碼進行分析處理,劃分指令執(zhí)行單元,驅動測試正常執(zhí)行和生成測試結果;
測試執(zhí)行控制模塊,用于接收覆蓋率監(jiān)控模塊的指令并轉換為JTAG命令,控制被測件執(zhí)行相應的指令并返回指令執(zhí)行結果。
優(yōu)選地,所述測試執(zhí)行控制模塊由帶有JTAG功能的仿真器組成。
優(yōu)選地,所述測試執(zhí)行控制模塊通過網絡與覆蓋率監(jiān)控模塊連接。
優(yōu)選地,所述覆蓋率監(jiān)控模塊包含五個子模塊:代碼分析模塊、代碼管理模塊、運行控制模塊、結果整合模塊和報告生成模塊;其中,代碼分析模塊用于對被測目標代碼進行反匯編,解析指令類型,分析每條指令之間的邏輯關系,并根據指令間的邏輯關系劃分指令執(zhí)行單元,在每個指令執(zhí)行單元設置一個或多個程序斷點,并根據程序的實際執(zhí)行過程調整斷點的設置;代碼管理模塊用于管理被測代碼,解析與被測代碼相關的符號信息,必要時建立被測二進制代碼與源代碼之間的關聯關系,維護被測二進制程序、符號信息和源代碼之間的關聯關系,并通過匯編、混合匯編等方式展現被測程序的內容;運行控制模塊用于管理與測試執(zhí)行模塊之間的通信,管理并驅動被測代碼的執(zhí)行,標記當前斷點觸發(fā)的指令地址,根據觸發(fā)斷點的位置重新調用代碼分析模塊對當前代碼塊進行分析,調整斷點的設置位置,調整程序執(zhí)行方式,讓被測程序走單步或者運行;結果整合模塊用于被測程序的執(zhí)行結果進行整理,根據代碼分析模塊劃分的指令執(zhí)行單元和運行控制模塊在被測程序執(zhí)行過程中所標記的斷點執(zhí)行位置,分析被執(zhí)行過的指令單元,整理出被執(zhí)行過的代碼塊、分支執(zhí)行情況和函數調用執(zhí)行情況,計算語句覆蓋率、分支覆蓋率、調用覆蓋率和MCDC覆蓋率;報告生成模塊用于將測試結果生成各種格式的測試報告,根據用戶設置和測試報告模板,將測試結果生成html報告、pdf報告等常見格式的報告文件,便于用戶對測試結果進行管理。
優(yōu)選地,所述測試執(zhí)行控制模塊包含通信控制模塊和JTAG執(zhí)行模塊兩個子模塊;通信控制模塊通過網絡與上述運行控制模塊連接并接收運行控制模塊的指令信息,控制指令執(zhí)行流程、解析指令內容并反饋指令執(zhí)行結果;JTAG執(zhí)行模塊通過JTAG數據線直接連接嵌入式被測設備的JTAG接口,將通信控制模塊的指令轉換為JTAG命令,驅使被測設備執(zhí)行該JTAG命令并反饋命令執(zhí)行結果給通信控制模塊。
本發(fā)明還提供一種基于JTAG調試方式實現通用型目標碼覆蓋率測試方法,其特征在于,包括以下步驟:
步驟一:建立與JTAG仿真器的連接,加載被測程序的二進制代碼,對被測程序進行反匯編處理,分析被測范圍內各條指令的指令類型;
步驟二:加載并解析與被測程序相關的符號信息,管理被測程序與符號信息、源代碼之間的關聯關系,通過符號窗口、匯編窗口、混合匯編等窗口展示被測程序內容,讓用戶選擇覆蓋率監(jiān)控范圍;
步驟三:根據上述步驟的執(zhí)行結果,對監(jiān)控范圍內的指令依據某種策略劃分指令執(zhí)行單元,在每個指令執(zhí)行單元設置一個或若干個程序斷點;
步驟四:通過JTAG仿真器下載被測程序,將步驟三中每個指令單元中設置的程序斷點設置到被測嵌入式設備中,復位被測嵌入式設備;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海創(chuàng)景計算機系統(tǒng)有限公司,未經上海創(chuàng)景計算機系統(tǒng)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510070389.1/2.html,轉載請聲明來源鉆瓜專利網。





