2011年7月24日 星期日

VS2010追蹤MCU的C程式

換公司後都是用未曾用過的MCU。
這時追程式能力很重要。

除了前公司用過Source Insight外。
Bee更喜歡用Visual Studio 2010。
追MCU程式碼只要用到Express版本就剛好,是免費的。

因為不只能靜態追碼,還可以做以下動作:
1. 使用X86的除錯器,可以做到動態追碼,就是模擬執行。
2. 在執行中,可以修改程式碼。

不過要使用,有二個問題要解決。
1. 組合語言對應程式碼。
   大部分是設定MCU,對X86沒有用。
   只是去補欠缺的函式。
2. 標頭檔不同
   函式庫位置。以及二個編譯器之間的不同。


都搞定後,就可以在VS2010上面編出exe檔。
這是在X86下可以執行的。

用Debuger去追,只要遇IO就會產生記憶體存取錯誤。
沒關係,直接修改。導向一個記憶體區。
然後就繼續執行。

都改好了,就可以發現while跑完了一圈。    
去修改假IO用的記憶體區,就可以進入程式內部再追下去。

這是Bee面對大型Firmware程式用的方法。


5 則留言:

  1. 真不愧是高手,一到新公司就馬上上手!!
    [版主回覆07/27/2011 00:46:46]軟體人的宿命

    回覆刪除
  2. ㄞ!!~~~~那電子人的宿命又在哪?
    [版主回覆07/28/2011 02:24:09]我還沒想到。

    回覆刪除
  3. 請問您說的  '導向一個記憶體區'  是要如何做呢?

    謝謝
    [版主回覆09/02/2011 00:13:06]使用條件巨集,切換到另一個同名變數區。這個會改不少地方。

    會這樣問,可見你是有做功課的。因為我沒有時間寫詳細,就簡單寫。

    回覆刪除
  4. 老大:
    能否給個簡單的範例(pic18)讓小的試試!
    在VS2010如何使用?
    Thank you.
    [版主回覆12/12/2011 01:36:18]我的簡單多工2版就是例子。它可以在VS2010及PIC18上執行。

    回覆刪除