亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法

文檔序號:6338824閱讀:154來源:國知局
專利名稱:基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種嵌入式軟件的在線實時調(diào)試方法。
背景技術(shù)
隨著嵌入式系統(tǒng)的發(fā)展,嵌入式系統(tǒng)現(xiàn)在幾乎應(yīng)用于所有的電子和電器設(shè)備中, 高端的嵌入式處理器得到了普遍的應(yīng)用,片上系統(tǒng)、深度嵌入、分布式多處理器構(gòu)架、軟件 復(fù)雜度的發(fā)展給傳統(tǒng)的調(diào)試方法帶來了極大的挑戰(zhàn)。調(diào)試是嵌入式系統(tǒng)開發(fā)過程中必不可 少的重要環(huán)節(jié),它占整個開發(fā)時間的20% 30%。它的重要性是不言而喻的。傳統(tǒng)的調(diào)試方法是通過仿真器與嵌入式系統(tǒng)相連,主機上運行集成開發(fā)調(diào)試工 具,調(diào)試工具具有編輯、編譯、鏈接和調(diào)試環(huán)境,由于主機調(diào)試環(huán)境中保存了嵌入式系統(tǒng)運 行的符號表信息,能夠?qū)ο到y(tǒng)的變量進行調(diào)試。這種調(diào)試方法具有明顯的缺點占用系統(tǒng)資 源較多,有的系統(tǒng)必須依賴芯片JTAG 口,仿真器和調(diào)試工具價格昂貴,不能夠?qū)φ谶\行 的系統(tǒng)進行即插式調(diào)試,調(diào)試前需要重新啟動系統(tǒng),重新下載程序等繁瑣步驟。對正常運行 系統(tǒng)是不可能采用這種調(diào)試手段的。隨著裝置多CPU系統(tǒng)的出現(xiàn),對整體系統(tǒng)的統(tǒng)一調(diào)試需求更加急迫,并且系統(tǒng)正 常運行起來后,能夠?qū)ο到y(tǒng)的變量進行實時跟蹤,這些問題都需要采用更先進的調(diào)試手段 來解決這些問題。以往的嵌入式程序調(diào)試,只能根據(jù)編譯器形成的符號表,符號表中只包括了系統(tǒng) 在編譯階段靜態(tài)分配的數(shù)據(jù)的地址,調(diào)試時能夠根據(jù)這些變量名查詢到分配全局變量的地 址。而動態(tài)分配的變量是在程序初始化運行中分配的,這些變量在運行前地址是未知的,由 于CPU運行的是2進制指令,在運行過程中也不知道內(nèi)存地址和變量的對應(yīng)關(guān)系,從而這些 動態(tài)分配的內(nèi)存缺乏有效的調(diào)試手段。

發(fā)明內(nèi)容
本發(fā)明針對上述問題,克服現(xiàn)有技術(shù)上述缺點,提出一種基于命名變量的全景數(shù) 據(jù)在線實時調(diào)試方法,實現(xiàn)調(diào)試代理、主機可視化編程調(diào)試軟件的配合,實現(xiàn)了所有變量的 在線實時調(diào)試功能,極大提高了調(diào)試效率,加快了應(yīng)用程序的開發(fā)進度。為了解決以上技術(shù)問題,本發(fā)明提供的基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方 法,其在一種由調(diào)試主機、板卡式設(shè)備構(gòu)成的調(diào)試裝置上實現(xiàn),所述板卡式設(shè)備包括運行 有調(diào)試代理程序的主CPU板卡,以及與該主CPU通訊的多個從CPU板卡,所述調(diào)試主機上運 行有調(diào)試主程序,調(diào)試方法包括如下步驟第一步調(diào)試主機根據(jù)編譯器獲得各靜態(tài)變量在從CPU板卡的內(nèi)存地址,調(diào)試主 機掃描從CPU板卡的應(yīng)用源程序獲得各結(jié)構(gòu)體中所有動態(tài)變量相對于結(jié)構(gòu)體的偏移地址;第二步調(diào)試代理程序?qū)⒌谝徊街姓{(diào)試主機獲取的各結(jié)構(gòu)體中所有動態(tài)變量相對 于結(jié)構(gòu)體的偏移地址下載到本地;第三步各從CPU板卡的CPU向調(diào)試代理程序注冊本地運行程序所需的所有結(jié)構(gòu)
3體,并將這些結(jié)構(gòu)體在內(nèi)存中的首地址發(fā)送給調(diào)試代理程序;第四步調(diào)試代理程序根據(jù)各結(jié)構(gòu)體首地址以及各結(jié)構(gòu)體中所有動態(tài)變量相對于 結(jié)構(gòu)體的偏移地址,得到各結(jié)構(gòu)體種所有動態(tài)變量的內(nèi)存地址;第五步通過靜態(tài)變量、動態(tài)變量所在從CPU板卡的內(nèi)存地址進行靜態(tài)變量、動態(tài) 變量的實時查看和實時修改。注冊變量是動態(tài)分配變量的重要調(diào)試手段,先進的繼電保護裝置中保護功能都是 可組態(tài)的,這意味這保護功能都是運行時刻確定,不是預(yù)先分配好的。這些保護對象都是動 態(tài)對象,對于這些動態(tài)對象的在線實時調(diào)試是保護開發(fā)人員最關(guān)心的。本發(fā)明通過注冊機 制,使動態(tài)對象(結(jié)構(gòu)體的實例)在進行初始化時,將對象的名稱和對象的內(nèi)存地址通過通 信鏈路向調(diào)調(diào)試代理程序進行注冊。調(diào)試代理程序結(jié)合本地存儲的成員變量偏移表(各結(jié) 構(gòu)體中所有動態(tài)變量相對于結(jié)構(gòu)體的偏移地址所構(gòu)成的列表),就能夠生成出該動態(tài)對象 (結(jié)構(gòu)體的實例)的所有成員(動態(tài)變量)的地址信息供主機調(diào)試系統(tǒng)在線調(diào)試。進一步的,本發(fā)明第五步中,實時查看動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程 序中選擇需查看的動態(tài)變量名稱,調(diào)試主程序向調(diào)試代理程序發(fā)送該需要查看的動態(tài)變量 名稱,調(diào)試代理程序查詢獲得該動態(tài)變量所在從CPU板卡中的內(nèi)存地址,并根據(jù)所述從CPU 板卡的該內(nèi)存地址獲得該動態(tài)變量的當前值,發(fā)送給調(diào)試主程序予以顯示。進一步的,本發(fā)明第五步中,實時修改動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程 序中輸入需修改動態(tài)變量的新的賦值,調(diào)試主程序?qū)⑿栊薷牡膭討B(tài)變量的名稱及新的賦值 發(fā)送給調(diào)試代理程序,調(diào)試代理程序根據(jù)該動態(tài)變量的名稱查詢該動態(tài)變量所在從CPU板 卡的內(nèi)存地址,并將新的賦值寫入與該動態(tài)變量對應(yīng)的從CPU板卡內(nèi)存地址中。更進一步的,本發(fā)明第五步中,實時查看靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主 程序中選擇需查看的靜態(tài)變量名稱,調(diào)試主程序向調(diào)試代理程序發(fā)送該需要查看的靜態(tài)變 量名稱及其所在從CPU板卡的內(nèi)存地址,調(diào)試代理程序根據(jù)所述從CPU板卡的該內(nèi)存地址 獲得該靜態(tài)變量的當前值,并發(fā)送給調(diào)試主程序予以顯示。更進一步的,本發(fā)明第五步中,實時修改靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主 程序中輸入需修改靜態(tài)變量的新的賦值,調(diào)試主程序?qū)⑿枰薷撵o態(tài)變量所在從CPU板卡 的內(nèi)存地址及新的賦值發(fā)送給調(diào)試代理程序,調(diào)試代理程序?qū)⑿碌馁x值寫入與該靜態(tài)變量 對應(yīng)的從CPU板卡內(nèi)存地址中。本發(fā)明的有益效果如下本發(fā)明能夠在不斷電、不重啟的情況下對裝置進行在線 實時的調(diào)試,跟蹤系統(tǒng)的運行狀態(tài)。本發(fā)明調(diào)試方法的應(yīng)用,提高了保護應(yīng)用開發(fā)人員的開 發(fā)效率;提高了工程維護人員的工程維護效率。


下面結(jié)合附圖對本發(fā)明作進一步的說明。圖1為本發(fā)明框架示意圖。
具體實施例方式下面參照附圖并結(jié)合實施例對本發(fā)明作進一步詳細描述。但是本發(fā)明不限于所給 出的例子。
基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其在一種如圖1所示的由調(diào)試主 機、板卡式設(shè)備構(gòu)成的調(diào)試裝置上實現(xiàn),所述板卡式設(shè)備包括運行有調(diào)試代理程序的主 CPU板卡,以及與該主CPU通訊的多個從CPU板卡,所述調(diào)試主機上運行有調(diào)試主程序,調(diào)試 方法包括如下步驟第一步調(diào)試主機根據(jù)編譯器獲得各靜態(tài)變量在從CPU板卡的內(nèi)存地址,調(diào)試 主機掃描從CPU板卡的應(yīng)用源程序獲得各結(jié)構(gòu)體中所有動態(tài)變量相對于結(jié)構(gòu)體的偏移地 址;;第二步調(diào)試代理程序?qū)⒌谝徊街姓{(diào)試主機獲取的各結(jié)構(gòu)體中所有動態(tài)變量相對 于結(jié)構(gòu)體的偏移地址下載到本地;第三步各從CPU板卡的CPU向調(diào)試代理程序注冊本地運行程序所需的所有結(jié)構(gòu) 體,并將這些結(jié)構(gòu)體在內(nèi)存中的首地址發(fā)送給調(diào)試代理程序;第四步調(diào)試代理程序根據(jù)各結(jié)構(gòu)體首地址以及各結(jié)構(gòu)體中所有動態(tài)變量相對于 結(jié)構(gòu)體的偏移地址,得到各結(jié)構(gòu)體種所有動態(tài)變量的內(nèi)存地址;第五步通過靜態(tài)變量、動態(tài)變量所在從CPU板卡的內(nèi)存地址進行靜態(tài)變量、動態(tài) 變量的實時查看和實時修改。本實施例中,實時查看動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中選擇需查 看的動態(tài)變量名稱,調(diào)試主程序向調(diào)試代理程序發(fā)送該需要查看的動態(tài)變量名稱,調(diào)試代 理程序查詢獲得該動態(tài)變量所在從CPU板卡中的內(nèi)存地址,并根據(jù)所述從CPU板卡的該內(nèi) 存地址獲得該動態(tài)變量的當前值,發(fā)送給調(diào)試主程序予以顯示。本實施例中,實時修改動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中輸入需修 改動態(tài)變量的新的賦值,調(diào)試主程序?qū)⑿栊薷牡膭討B(tài)變量的名稱及新的賦值發(fā)送給調(diào)試代 理程序,調(diào)試代理程序根據(jù)該動態(tài)變量的名稱查詢該動態(tài)變量所在從CPU板卡的內(nèi)存地 址,并將新的賦值寫入與該動態(tài)變量對應(yīng)的從CPU板卡內(nèi)存地址中。本實施例中,實時查看靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中選擇需查 看的靜態(tài)變量名稱,調(diào)試主程序向調(diào)試代理程序發(fā)送該需要查看的靜態(tài)變量名稱及其所在 從CPU板卡的內(nèi)存地址,調(diào)試代理程序根據(jù)所述從CPU板卡的該內(nèi)存地址獲得該靜態(tài)變量 的當前值,并發(fā)送給調(diào)試主程序予以顯示。本實施例中,實時修改靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中輸入需修 改靜態(tài)變量的新的賦值,調(diào)試主程序?qū)⑿枰薷撵o態(tài)變量所在從CPU板卡的內(nèi)存地址及新 的賦值發(fā)送給調(diào)試代理程序,調(diào)試代理程序?qū)⑿碌馁x值寫入與該靜態(tài)。本發(fā)明實現(xiàn)了不斷電、不重啟的情況下對裝置進行在線實時的調(diào)試,跟蹤系統(tǒng)的 運行狀態(tài)。除上述實施例外,本發(fā)明還可以有其他實施方式。凡采用等同替換或等效變換形 成的技術(shù)方案,均落在本發(fā)明要求的保護范圍。
權(quán)利要求
1.基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其在一種由調(diào)試主機、板卡式設(shè)備構(gòu) 成的調(diào)試裝置上實現(xiàn),所述板卡式設(shè)備包括運行有調(diào)試代理程序的主CPU板卡,以及與該 主CPU通訊的多個從CPU板卡,所述調(diào)試主機上運行有調(diào)試主程序,調(diào)試方法包括如下步 驟第一步調(diào)試主機根據(jù)編譯器獲得各靜態(tài)變量在從CPU板卡的內(nèi)存地址,調(diào)試主機掃 描從CPU板卡的應(yīng)用源程序獲得各結(jié)構(gòu)體中所有動態(tài)變量相對于結(jié)構(gòu)體的偏移地址;第二步調(diào)試代理程序?qū)⒌谝徊街姓{(diào)試主機獲取的各結(jié)構(gòu)體中所有動態(tài)變量相對于結(jié) 構(gòu)體的偏移地址下載到本地;第三步各從CPU板卡的CPU向調(diào)試代理程序注冊本地運行程序所需的所有結(jié)構(gòu)體,并 將這些結(jié)構(gòu)體在內(nèi)存中的首地址發(fā)送給調(diào)試代理程序;第四步調(diào)試代理程序根據(jù)各結(jié)構(gòu)體首地址以及各結(jié)構(gòu)體中所有動態(tài)變量相對于結(jié)構(gòu) 體的偏移地址,得到各結(jié)構(gòu)體種所有動態(tài)變量的內(nèi)存地址;第五步通過靜態(tài)變量、動態(tài)變量所在從CPU板卡的內(nèi)存地址進行靜態(tài)變量、動態(tài)變量 的實時查看和實時修改。
2.根據(jù)權(quán)利要求1所述基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其特征在于實 時查看動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中選擇需查看的動態(tài)變量名稱,調(diào)試 主程序向調(diào)試代理程序發(fā)送該需要查看的動態(tài)變量名稱,調(diào)試代理程序查詢獲得該動態(tài)變 量所在從CPU板卡中的內(nèi)存地址,并根據(jù)所述從CPU板卡的該內(nèi)存地址獲得該動態(tài)變量的 當前值,發(fā)送給調(diào)試主程序予以顯示。
3.根據(jù)權(quán)利要求2所述基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其特征在于實 時修改動態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中輸入需修改動態(tài)變量的新的賦值, 調(diào)試主程序?qū)⑿栊薷牡膭討B(tài)變量的名稱及新的賦值發(fā)送給調(diào)試代理程序,調(diào)試代理程序根 據(jù)該動態(tài)變量的名稱查詢該動態(tài)變量所在從CPU板卡的內(nèi)存地址,并將新的賦值寫入與該 動態(tài)變量對應(yīng)的從CPU板卡內(nèi)存地址中。
4.根據(jù)權(quán)利要求1所述基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其特征在于實 時查看靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中選擇需查看的靜態(tài)變量名稱,調(diào)試 主程序向調(diào)試代理程序發(fā)送該需要查看的靜態(tài)變量名稱及其所在從CPU板卡的內(nèi)存地址, 調(diào)試代理程序根據(jù)所述從CPU板卡的該內(nèi)存地址獲得該靜態(tài)變量的當前值,并發(fā)送給調(diào)試 主程序予以顯示。
5.根據(jù)權(quán)利要求4所述基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,其特征在于實 時修改靜態(tài)變量值的方法是調(diào)試人員在調(diào)試主程序中輸入需修改靜態(tài)變量的新的賦值, 調(diào)試主程序?qū)⑿枰薷撵o態(tài)變量所在從CPU板卡的內(nèi)存地址及新的賦值發(fā)送給調(diào)試代理 程序,調(diào)試代理程序?qū)⑿碌馁x值寫入與該靜態(tài)。
全文摘要
基于命名變量的全景數(shù)據(jù)在線實時調(diào)試方法,屬于嵌入式軟件的動態(tài)內(nèi)存調(diào)試技術(shù)領(lǐng)域,其通過注冊機制,使動態(tài)對象(結(jié)構(gòu)體的實例)在進行初始化時,將對象的名稱和對象的內(nèi)存地址通過通信鏈路向調(diào)調(diào)試代理程序進行注冊。調(diào)試代理程序結(jié)合本地存儲的成員變量偏移表,就能夠生成出該對象的所有成員(動態(tài)變量)的地址信息供主機調(diào)試系統(tǒng)在線調(diào)試。本發(fā)明能夠在不斷電、不重啟的情況下對裝置進行在線實時的調(diào)試,跟蹤系統(tǒng)的運行狀態(tài)。本發(fā)明調(diào)試方法的應(yīng)用,提高了保護應(yīng)用開發(fā)人員的開發(fā)效率;提高了工程維護人員的工程維護效率。
文檔編號G06F11/36GK102063368SQ20101059086
公開日2011年5月18日 申請日期2010年12月16日 優(yōu)先權(quán)日2010年12月16日
發(fā)明者張少波, 張成彬, 徐廣輝, 滕春濤, 鄭玉平, 饒丹 申請人:國網(wǎng)電力科學研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1