最近在用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...