如何在IAR中通過Watch視窗觀察區域性變數的值

2021-08-08 01:48:33 字數 1084 閱讀 7254

最近在用430開發一款產品,在軟體除錯的時候發現watch視窗中無法觀察區域性變數的值,總是顯示,下面通過乙個簡答的例子說明一下現象:

#include "msp430g2553.h"

/* global variable */

unsigned

char receiveglobal;

unsigned

char addxy(unsigned

char x,unsigned

char y)

void main()

在while(1)處設一斷點,在debug模式下通過watch視窗觀察變數: 

現在回過頭去看iar中的」options — c/c++ compiler — optimization[ˌɔptimaiˈzeiʃən] — level」 選項: 

level的預設值為low,當我把level選為none之後,即不執行任何優化時,全域性變數、靜態區域性變數、區域性變數的值都可以看到,如下圖所示。 

當我把優化等級選為midium或者high之後,全域性變數、靜態區域性變數、區域性變數的值都不可見了。 

結論:要想觀察區域性變數的值,除錯的時候可以把優化等級設為none.

補充幾個知識點: 

1.堆疊(stack)——由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。 

2.靜態儲存區(static)—— 全域性變數和靜態變數的儲存是放在一塊的。初始化的全域性變數和靜態變數在一塊區域;未初始化的全域性變數和靜態變數在相鄰的另一塊區域。程式結束後由系統釋放。 

**:

如何在IAR中通過Watch視窗觀察區域性變數的值

最近在用430開發一款產品,在軟體除錯的時候發現watch視窗中無法觀察區域性變數的值,總是顯示,下面通過乙個簡答的例子說明一下現象 include msp430g2553.h global variable unsigned char receiveglobal unsigned char add...

IAR 中如何呼叫EmEditor

iar 中如何呼叫emeditor 文字編輯器我一直都用emeditor,並設定如下 type command line editor emedit執行檔案所在的目錄 arguments file path 設定好後在iar中雙擊左側project中的程式檔案時,該檔案將被開啟在emeditor視窗...

如何在DataFrame中通過索引高效獲取資料?

今天是pandas資料處理專題的第四篇文章,我們一起來聊聊dataframe中的索引。資料對齊 我們可以計算兩個dataframe的加和,pandas會自動將這兩個dataframe進行資料對齊,如果對不上的資料會被置為nan not a number 首先我們來建立兩個dataframe impo...