對于網(wǎng)站建設(shè)公司來講,每個開發(fā)人員都使用斷點來調(diào)試他們的軟件,這是根本。雙擊你想中斷程序執(zhí)行的代碼行,然后放開它(或者它中斷了?)。相當(dāng)多的嵌入式開發(fā)人員沒有意識到在后臺有不同的斷點機(jī)制來提供這個關(guān)鍵的功能。在這篇文章中,我們將研究硬件和軟件斷點之間的區(qū)別,以及它如何影響我們這些開發(fā)者。
使用的第一種斷點類型通常是硬件斷點。每個微控制器都有比較器,它們是調(diào)試模塊的一部分。例如,ARM Cortex-M微控制器的調(diào)試模塊中可以有2-4個比較器。比較器設(shè)置有程序計數(shù)器值,當(dāng)出現(xiàn)匹配時,會引發(fā)調(diào)試事件,程序暫停。硬件斷點是最快和最常用的斷點。
硬件斷點有問題。一個微控制器通常只有2-4個比較器,這意味著一旦它們用完,就不能再添加斷點了!
軟件斷點通常是臨時替換RAM中的指令的指令,該指令或者是非法指令并導(dǎo)致故障,或者是被設(shè)計為導(dǎo)致應(yīng)用程序中斷。ARM指令集中的BKPT指令就是一個很好的例子。當(dāng)CPU到達(dá)這條指令時,它就停止執(zhí)行。軟件斷點只能用于駐留在RAM中的應(yīng)用程序代碼。原因是指令實際上被斷點指令換出。一旦開發(fā)人員跨過BKPT,原本應(yīng)該在該位置執(zhí)行的代碼就會運(yùn)行。
嵌入式開發(fā)人員可以使用幾乎無限數(shù)量的軟件斷點,但主要問題是,它們是為運(yùn)行在RAM中的代碼而設(shè)計的。在ARM Cortex-M等現(xiàn)代微控制器上,代碼很可能是從閃存中執(zhí)行的。這就引出了第三種斷點類型,即flash斷點。
Flash斷點允許開發(fā)人員為從flash運(yùn)行的應(yīng)用程序創(chuàng)建無限的斷點。就像常規(guī)軟件斷點一樣,flash斷點有能力擁有幾乎無限數(shù)量的斷點。他們還可以在微控制器內(nèi)部和外部閃存上工作!Seggar J-Link就是一個具有這種功能的調(diào)試器例子。調(diào)試器供應(yīng)商使用許多方法來創(chuàng)建閃存斷點,最好的方法幾乎與典型的硬件斷點一樣快。
從開發(fā)人員的角度來看,使用哪種斷點類型幾乎無關(guān)緊要。對于開發(fā)人員來說,理解正在使用的斷點類型以及他們的系統(tǒng)能夠支持的硬件斷點的最大數(shù)量是很重要的。購買一個高質(zhì)量的專業(yè)調(diào)試器總是一個好主意,這樣可以確保有足夠數(shù)量的斷點可用,并且對于手頭的應(yīng)用程序來說足夠快。如果這不是一個選項,仔細(xì)選擇微控制器也有助于確保嵌入式開發(fā)人員最大限度地增加可用的硬件斷點。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號