最近在用430開發一款產品,在軟體除錯的時候發現watch視窗中無法觀察區域性變數的值,總是顯示,下面通過乙個簡答的例子說明一下現象:
#include "在while(1)處設一斷點,在debug模式下通過watch視窗觀察變數:msp430g2553.h"/*
global variable
*/unsigned
char
receiveglobal;
unsigned
char addxy(unsigned char x,unsigned char
y)void
main()
現在回過頭去看iar中的"options — c/c++ compiler —
optimization
[ˌɔptimaiˈzeiʃən]
—level
" 選項:
level的預設值為low,當我把level選為none之後,即不執行任何優化時,全域性變數、靜態區域性變數、區域性變數的值都可以看到,如下圖所示。
當我把優化等級選為midium或者high之後,全域性變數、靜態區域性變數、區域性變數的值都不可見了。
結論:要想觀察區域性變數的值,除錯的時候可以把優化等級設為none.
堆疊(stack)——由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。
靜態儲存區(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...