Keil的軟體模擬和硬體模擬

qlexcel發表於2017-07-10

一、軟體模擬

    Keil有很強大的軟體模擬功能,通過軟體模擬可以發現很多將要出現的問題,Keil的模擬可以檢視很多硬體相關的暫存器,通過觀察這些暫存器值的變化可以知道程式碼有沒有正常執行。這樣可以避免頻繁下載程式,延長微控制器Flash壽命。

    開始模擬之前,先配置一些選項。

    1.在工程設定裡設定好晶片型號和晶振頻率。


    2.在“Debug”選項卡中選擇“Use Simulator”,表示使用軟體模擬;選擇“Run to main()”則表示跳過彙編程式碼,直接跳轉到main函式開始模擬。設定下面的“Dialog DLL”項為“DARMSTM.DLL”和“TARMSTM.DLL”;parameter項為“-pSTM32F103C8”,用於設定支援STM32F103C8的軟硬體模擬。


    3.點選開始模擬,這個時候會多出來一個工具條,就是Debug工具條。


  1     2   3    4   5   6    7               8            9   10   11   12   13           14      


1:復位,其功能等同於硬體上按復位按鈕,相當於實現了一次硬復位。按下該按鈕後,程式碼會重新從頭開始執行。

2:執行到斷點處,按按鈕用來快速執行到斷點處,有時候並不需要觀看每步時怎麼執行的,而是想快速執行到程式的某個地方看結果,這個按鈕就可以實現這樣的功能,前提是已在檢視的地方設定了斷點。

3:停止執行,此按鈕在程式一直執行的時候變為有效,可以使程式停止下來進入到單步除錯狀態。

4:執行進去,該按鈕用來實現執行到某個函式裡面去的功能,在沒有函式的情況下等同於執行過去按鈕。

5:執行過去,在碰到有函式的地方,通過該按鈕就可以單步執行過這個函式,而不進入這個函式單步執行。

6:執行出去,該按鈕是進入了函式單步除錯的時候,有時候可能不必再執行該函式的剩餘部分了,通過該按鈕就直接一步執行完函式餘下的部分,並跳出函式回到函式被呼叫的位置。

7:執行到游標處:該按鈕可以迅速使程式執行到游標處,與執行到斷點處按鈕功能類似。

8:彙編視窗,通過該按鈕可以檢視彙編程式碼,這對分析程式很有用。

9:堆疊區域性變數視窗,通過該按鈕可以顯示Call Stack+Locals視窗,顯示當前函式的區域性變數及其值,方便檢視。

10:觀察視窗,MDK5提供2個觀察視窗(下拉選擇),該按鈕按下則彈出一個顯示變數的視窗。輸入想觀察的變數或表示式,即可檢視其值,是很常用的除錯視窗。

11:記憶體檢視視窗,MDK5提供4個記憶體檢視視窗,按下按鈕,則彈出一個記憶體檢視視窗,可以在裡面輸入要檢視的記憶體地址,然後觀察這一片記憶體的變化情況。

12:串列埠列印視窗,MDK5提供4個串列埠列印視窗。按下該按鈕,則彈出一個類似串列埠除錯助手介面的視窗,用來顯示從串列埠列印出來的內容。

13:邏輯分析視窗,該圖示下面有3個選項,一般用第一個,也就是邏輯分析視窗。通過SETUP按鈕新建一些IO口,於是可以觀察這些IO的電平變化情況,並以多種形式顯示出來,比較直觀。

14:系統檢視視窗,該按鈕可以提供各種外設暫存器的檢視視窗(通過下拉選擇),選擇對應外設即可調出該外設的相關暫存器表,並顯示這些暫存器的值,方便檢視設定是否正確。


二、硬體模擬

硬體模擬則是程式下載到微控制器中,進行的模擬,是程式實際在微控制器中執行的情況。


需要選擇後面那個選項,然後在下拉單裡選擇自己的模擬器。然後後面步驟和軟體模擬一樣。


注:要在邏輯硬體模擬裡使用邏輯分析儀之類的工具,要開“Trace”



相關文章