㈠ 單片機 斷點的作用,
斷點的作用主要是用於調試程序用的。當程序有些地方不對的時候就可以採用添加斷點的方式來查找錯誤的。
所謂斷點就是程序被中斷的地方,這個詞對於解密者來說是再熟悉不過了。那麼什麼又是中斷。中斷就是由於有特殊事件(中斷事件)發生,計算機暫停當前的任務(即程序),轉而去執行另外的任務(中斷服務程序),然後再返回原先的任務繼續執行。解密的過程就是等到程序去獲取輸入的注冊碼並准備和正確的注冊碼相比較的時候將它中斷下來,然後通過分析程序,找到正確的注冊碼。所以需要為被解密的程序設置斷點,在適當的時候切入程序內部,追蹤到程序的注冊碼,從而達到crack的目的。
㈡ 單片機中的中斷是怎麼實現的
概念:引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務A,轉去處理事件B。對事件B處理完畢後,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現上述中斷功能的部件稱為中斷系統(中斷機構)。
80C51的中斷系統有5個中斷源 ,2個優先順序,可實現二級中斷嵌套(就是可以在嵌套過程中再次響應嵌套) 。
中斷源
1、INT0(P3.2),外部中斷1。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。
2、INT1(P3.3),外部中斷2。可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現有效的中斷信號時,中斷標志IE1(TCON.3)置1,向CPU申請中斷。
3、TF0(TCON.5),片內定時/計數器T0溢出中斷請求標志。當定時/計數器T0發生溢出時,置位TF0,並向CPU申請中斷。
4、TF1(TCON.7),片內定時/計數器T1溢出中斷請求標志。當定時/計數器T1發生溢出時,置位TF1,並向CPU申請中斷。
5、RI(SCON.0)或TI(SCON.1),串列口中斷請求標志。當串列口接收完一幀串列數據時置位RI或當串列口發送完一幀串列數據時置位TI,向CPU申請中斷。
中斷請求標志
1、TCON的中斷標志
IT0(TCON.0):外部中斷0觸發方式控制位。
當IT0=0時:為電平觸發方式。
當IT0=1時:為邊沿觸發方式(下降沿有效)。
IE0(TCON.1):外部中斷0中斷請求標志位。
IT1(TCON.2):外部中斷1觸發方式控制位。
IE1(TCON.3):外部中斷1中斷請求標志位。
TF0(TCON.5):定時/計數器T0溢出中斷請求標志位。
TF1(TCON.7):定時/計數器T1溢出中斷請求標志位。
單片機TCON輔助設置工具
2、SCON的中斷標志
RI(SCON.0),串列口接收中斷標志位。當允許串列口接收數據時,每接收完一個串列幀,由硬體置位RI。同樣,RI必須由軟體清除。
TI(SCON.1),串列口發送中斷標志位。當CPU將一個發送數據寫入串列口發送緩沖器時,就啟動了發送過程。每發送完一個串列幀,由硬體置位TI。CPU響應中斷時,不能自動清除TI,TI必須由軟體清除。
80C51中斷的控制
中斷允許控制
CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。
EX0(IE.0):外部中斷0允許位;
ET0(IE.1):定時/計數器T0中斷允許位;
EX1(IE.2):外部中斷0允許位;
ET1(IE.3):定時/計數器T1中斷允許位;
ES(IE.4):串列口中斷允許位;
EA (IE.7): CPU中斷允許(總允許)位。
單片機IE自動設計工具
中斷優先順序控制
80C51單片機有兩個中斷優先順序,即可實現二級中斷服務嵌套。每個中斷源的中斷優先順序都是由中斷優先順序寄存器IP中的相應位的狀態來規定的 。
PX0(IP.0),外部中斷0優先順序設定位;
PT0(IP.1),定時/計數器T0優先順序設定位;
PX1(IP.2),外部中斷0優先順序設定位;
PT1(IP.3),定時/計數器T1優先順序設定位;
PS? (IP.4),串列口優先順序設定位;
PT2(IP.5),定時/計數器T2優先順序設定位。
單片機IP自動設計工具
中斷優先順序規則:
CPU同時接收到幾個中斷時,首先響應優先順序別最高的中斷請求。
正在進行的中斷過程不能被新的同級或低優先順序的中斷請求所中斷。
正在進行的低優先順序中斷服務,能被高優先順序中斷請求所中斷。
中斷系統總結:
TCON和SCON是中斷請求,以及控制外部中斷的有效方式。IE控制是否允許CPU響應中斷,是否允許響應某一個中斷。IP控制中斷的優先順序。
㈢ 單片機保護斷點如何實現
堆棧是保護斷點的有效途徑,單片機也是如此。
如果你的意思是保護諸如掉電、關機之類的斷點,那麼如果單片機帶EEPROM的話,可以將需要保護的參數在關機前寫入EEROM,沒有的話,可以擴展SRAM配電池用來保護參數。對於掉電等意外事故,如果單片機帶低壓中斷的話,可以在該中斷里保存重要數據,利於上電時恢復。
㈣ 單片機中如何用斷點方式調試程序
在程序某個地方放個函數或子程序,像串口發送程序或LED顯示程序,執行到這里LED點亮或串口發出你想看的數據,這就是斷點方式調試
㈤ 單片機中斷處理流程
當某中斷產生而且被CPU響應,主程序被中斷,接下來將執行如下操作:
1.
當前正被執行的指令全部執行完畢;
2.
PC值被壓入棧;
3.
現場保護;
4.
阻止同級別其他中斷;
5.
將中斷向量地址裝載到程序計數器PC;
6.
執行相應的中斷服務程序。
中斷服務程序ISR完成和該中斷相應的一些操作。ISR以RETI(中斷返回)指令結束,將PC值
從棧中取回,並恢復原來的中斷設置,之後從主程序的斷點處繼續執行。
㈥ 單片機程序怎麼在電腦上調試用什麼軟體好
單片機可以實現在線調試程序,通過軟體設置斷點,進行單步調試,這樣可以看到單片機是如何一步步執行程序的,從而快速找到問題,解決問題。以Keil和IAR為例介紹一下單片機的在線調試。
1.keil
的在線調試功能
以STM32單片機為例,所需要的軟體為Keil MDK,模擬工具為J-link,當程序編寫完成後,編譯通過,通過J-link模擬工具連接電腦和單片機板子,一定要安裝好J-link的驅動,在Debug界面選擇J-Link,並正確設置Setting界面的下的器件型號,如下圖所示。
設置好後,點擊工具欄的Debug按鈕,就進入在線調試模式了,這時候會出現調試工具欄,如下圖所示。
在懷疑有問題的地方設置斷點後,運行單步調試,單片機就可以一步步的執行了,在watch窗口可以選擇查看單片機的GPIO等寄存器,實時了解各埠和變數的變化情況。
2.IAR
的在線調試功能
以STM8單片機為例,以IAR for STM8為例,工具為ST-Link,正確安裝好ST-Link的驅動,程序編譯通過後,執行Debug and download按鈕可以開啟在線模擬模式,如下圖所示。
在有問題的地方設置斷點,執行全速運行後,會在斷點處停下,可以執行單步調試功能進入函數,再一步步執行。
這樣也可以很容易的找到程序bug。
3.使用串口列印進行調試
如果單片機不支持在線模擬功能,可以通過串口列印的形式輸出調試信息。首先要把串口列印程序調試通,在有問題的地方通過給變數設置不同的值然後列印,這樣也可以很直觀的判斷程序的運行情況。所需要的工具為USB/TTL。
由於篇幅有限,無法詳細描述,大家可以根據以上信息搜具體的教程。
以上就是這個問題的回答,感謝留言、評論、轉發。
更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。