日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于監(jiān)視器的調試

出處:維庫電子市場網 發(fā)布于:2023-08-07 15:36:39

    當您考慮調試嵌入式系統(tǒng)時,您會想到什么?我想這取決于您的背景和分配給工具的預算。您可能會考慮基于 JTAG/BDM 的調試端口、仿真器或邏輯分析儀、printf()或當今可用的許多復雜的源代碼級調試器之一。每個解決方案都有自己的優(yōu)點和缺點。有些非常強大,但代價高昂。有些與特定的編譯器工具集相關,而另一些則僅在某些 CPU 系列上有用。基于 JTAG/BDM 的調試端口可能是現(xiàn)在常見的,因為它在成本和功能之間取得了良好的平衡。這些設備仍然需要花費幾千美元,并且只有在連接到系統(tǒng)時才有用,通常需要一些笨重的吊艙掛在離目標相當近的地方。
    本文的主題有點像是一門即將消亡的藝術:基于監(jiān)視器的調試。什么是基于監(jiān)視器的調試?首先,它假設您的應用程序正在使用某種監(jiān)視器啟動的系統(tǒng)上運行。啟動監(jiān)視器是應用程序駐留的基礎平臺,如果應用程序崩潰,監(jiān)視器將接管。
    當在 ROM 中時
    基于監(jiān)視器的調試依賴于處理器內置的功能,并且在大多數(shù)情況下(并非總是),這需要能夠寫入指令空間。通常,在監(jiān)視器的命令行界面 (CLI) 中設置斷點,然后將控制權移交給應用程序。如果執(zhí)行設置斷點的指令,則會從應用程序中取出一個分支,并將控制權返回到監(jiān)視器的 CLI?,F(xiàn)在,監(jiān)視器具有顯示內存的能力,可能是單步執(zhí)行,甚至可能返回到斷點所在位置的應用程序。
    聽起來不錯吧?嗯,確實可以,但是可能會出現(xiàn)很多并發(fā)癥,例如:
    如何顯示內存?通常,監(jiān)視器可以將原始內存顯示為 1、2 或 4 字節(jié)單元的塊,但您必須以十六進制指定地址。由于您在目標的 CLI 上運行,因此您所能做的可能就是參考鏈接器生成的輸出映射文件來確定符號在 data/bss 地址空間中的位置。您必須將符號與某個十六進制地址相關聯(lián)。如果構建發(fā)生變化,內存映射也會發(fā)生變化,因此下次您想要查看同一塊數(shù)據(jù)時,您必須再次進行地址到符號的關聯(lián)。此外,監(jiān)視器不知道如何以您想要的格式顯示,例如短整型、長整型和字符串。忘記結構顯示。
    怎么設置斷點呢?與上一個問題類似,首先查找函數(shù)的地址,然后發(fā)出一些命令,例如“b 0x123456”,其中 0x123456 是要設置斷點的函數(shù)的地址。
    一旦斷點發(fā)生,監(jiān)視器如何與串口通信?監(jiān)視器因斷點而接管;但應用程序現(xiàn)在擁有串行端口。如果監(jiān)視器重新初始化串行端口以供使用,則應用程序和該端口之間的接口可能會混亂。這意味著將控制權返回給應用程序將非常困難。
    監(jiān)視器如何暫時關閉應用程序?當應用程序在 RTOS 上運行、啟用中斷并配置各種不同的外設時,這會變得很棘手。
    單步執(zhí)行現(xiàn)在處于匯編程序級別,而不是 C 語言級別。這對于程序員來說不是很有用。
    也許這可以解釋為什么基于監(jiān)視器的調試不再流行。不過,在我們放棄之前,我想重新研究一下這個話題,看看這頭老野獸是否還剩下一些氣息。
    調試理念
    讓我們從設定一些界限開始。我們必須接受這樣一個事實:基于監(jiān)視器的調試環(huán)境有局限性。在我們建立了一些指導方針并重新思考其中一些事情的完成方式之后,我想您會同意仍然有相當多的能力。那么讓我們建立一個啟動監(jiān)視器的調試模型。我們得到什么,又犧牲什么?
    對于內存顯示,我們將能夠顯示“類似 C”的數(shù)據(jù):字符串、字符、短整型、整數(shù)、長整型,甚至數(shù)據(jù)結構。數(shù)據(jù)結構可以單獨顯示、以表格或鏈接列表的形式顯示。我們將能夠以符號方式引用數(shù)據(jù)。這意味著名為“SysTick”的全局變量可以被引用為“SysTick”,而無需知道它在內存中的位置。我們將進行運行時分析,將斷點作為其功能之一,而不是在典型斷點的范圍內進行思考。有終止應用程序執(zhí)行的標準斷點和用于運行時分析的“自動返回”斷點。監(jiān)視器捕獲斷點或異常后,可以進行符號堆棧跟蹤。
    我們將無法訪問源代碼行號信息;然而,如果編譯器支持轉儲混合源代碼和匯編代碼的能力,那么我們就可以解決這個問題。我們不會考慮單步執(zhí)行,因為它是匯編級別的;然而,如果我們實現(xiàn)其他一切,匯編級單步執(zhí)行是一個方便的贈品。由于我們只能訪問全局變量,因此堆棧跟蹤將不會顯示傳遞的參數(shù),也無法從堆棧中檢索本地數(shù)據(jù)。該調試器的一個也是重要的限制是,在硬斷點之后控制權無法返回到正在運行的應用程序。
    如果這些考慮因素可以接受,終的結果就是一個與應用程序一起存在的調試環(huán)境。它可以隨產品一起提供并在現(xiàn)場使用,并且在某種程度上獨立于編譯器工具集、使用的 RTOS,并且在一定程度上獨立于 CPU 和硬件。
關鍵詞:監(jiān)視器

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://www.hbjingang.com,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

數(shù)字電源監(jiān)視器 INA229AIDGSR全新原裝現(xiàn)貨
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!