軟體斷點和硬體斷點的區別和數量限制

2021-09-02 13:44:11 字數 498 閱讀 8321

軟體斷點和硬體斷點的區別和數量限制

所有的arm7/arm9晶元,內部有2個斷點單元。斷點單元可以用於設定硬體斷點或是軟體斷點。

先說說硬體斷點和軟體斷點的區別。硬體斷點是通過監測位址來觸發斷點的。所以,硬體斷點可以設定在任何地方,不管是flash,rom還是ram,只要給定位址就可以了。而軟體斷點是通過監測特定的指令來觸發斷點的。在某個位址設定軟體斷點的時候,**器會將這個位址的資料/指令替換成乙個特殊格式的指令。斷點單元通過監測這個特殊格式的指令來觸發斷點。因為需要執行替換操作,所以軟體斷點只能設定在ram裡面。如果斷點單元設定成監測某個位址,那乙個斷點單元只能監測乙個位址,所以只能設定2個硬體斷點。如果斷點單元設定成監測某個固定格式的指令,那乙個斷點單元可以支援數量沒有限制的軟體斷點。因為設定軟體斷點的時候只需要把要說著斷點的位置的資料替換成被監測的固定格式的指令就可以了。

這就是為什麼大家經常看到說支援2個硬體斷點和數目不限的軟體斷點。但這裡還是要提醒以下,如果2個斷點單元都用於硬體斷點,那使用者就不可以設定軟體斷點了。

硬體斷點和軟體斷點

硬體斷點和軟體斷點 在嵌入式開發 經常用到 jtag 器。jtag 器可以滿足嵌入式程式除錯的基本要求 斷點設定 單步除錯 記憶體編輯 變數 暫存器觀測等。而斷點設定是 jtag 器最基本的除錯功能。使用者需要系統在設定斷點處停下來後再進行除錯。斷點根據原理和用途不同又分為幾個不同的種類。斷點可分為...

硬體斷點和軟體斷點 整理

既然軟體斷點是要往某個位址寫入斷點指令的,那麼最起碼該位址應該是可寫的吧?大多數時候,我們的程式是會被載入到記憶體 ram 中執行的,ram是可讀可寫,這時候軟體斷電就是有效的 2 但是,對於某些比較重要的程式,可能會直接在flash中執行,並且flash對使用者可能是唯讀的,這時候軟體斷點就沒有用...

記憶體斷點和硬體斷點

32位邏輯位址 16位段選擇器 偏移位址 16位段選擇器 13位全域性描述符表 區域性描述符表索引 1位gdt ldtflag 2位的訪問控制許可權 由16位得到段選擇器索引到全域性描述符表得到64位的段描述符,段描述符中包含了線性段基址 線性段基址 偏移位址 邏輯位址後半段 得到線性位址空間的乙個...