1. 程式人生 > >IAR除錯EFM32微控制器時的一些技巧

IAR除錯EFM32微控制器時的一些技巧

俗話說“工欲善其事、必先利其器”,為了能更好的開發ARM系微控制器LM258ADGKR,熟練掌握一個或者多個IDE是必須的。IAR的偵錯程式、編譯器以及彙編器同時整合在一個IDE中,共同來開發和除錯應用程式,這樣的整合環境可以帶來很多好處,比如:除錯過程中可以進行程式碼編輯。在一個除錯過程中,你可以直接在被除錯的原始碼中進行修改,修改的程式碼可以在程式重新編譯後起作用。以下分享5部分的內容,是筆者應用IAR開發LM258ADGKR過程中的一些經驗積累,希望能對看到文章的人有一定的作用。

1)關於Run to(在工程中Project>Options>Debugger>Setup>Run to)

如下圖:

預設工程Run to的內容是main,這個選項指定了程式除錯的起點,注意這裡寫的是程式除錯的起點並不是程式的起點,而且我們需要明白main不是程式的起點,編譯器把一些初始化工作放在了main之前,比如全域性變數的初始化。那麼我們除錯的時候也可以輸入其它的除錯起點,我們可以指定程式中IAR識別的任意標號或者函式名稱。

2)關於在反彙編視窗和記憶體視窗中快速定位函式位置和變數位置

我們經常需要在Disassembly視窗中找到指定函式的位置,或者需要在Memory視窗中找到指定變數的位置,一般情況下選中函式名稱然後把函式名稱拖放到Disassembly視窗,相關函式就會顯示在Disassembly視窗中,也可以把變數名稱用相同的操作顯示在Memory視窗中。

3)單步除錯速度緩慢的問題

我們在單步除錯過程中如果發現速度緩慢,那麼以下的幾點需要引起我們的注意:

如果使用硬體模擬系統,我們需要為單步除錯留下足夠的硬體斷點,在除錯中的單步執行通常是用斷點來實現的,通過把斷點設定在下一個語句後,來完成單步除錯的功能。硬體的斷點數量是有限的,如果沒有可用的硬體斷點,偵錯程式就會在每個彙編指令處停止一下,這樣完成一條完整的語句的所有彙編程式碼越多時間就越長。

在Trace和Function Profiling視窗中使用Enable/Disable按鈕關閉資料跟蹤功能。因為在每個單步之後要收集這些跟蹤的資料,所以資料跟蹤可能會降低單步的速度。需要注意的是,緊緊關閉相關的視窗是不能關閉資料跟蹤功能的,必須通過Enable/Disable按鈕來完成。