最近在用430開發(fā)一款產(chǎn)品,在軟件調(diào)試的時候發(fā)現(xiàn)Watch窗口中無法觀察局部變量的值,總是顯示,下面通過一個簡答的例子說明一下現(xiàn)象:
#include "msp430g2553.h"
/* Global variable */
unsigned char ReceiveGlobal;
unsigned char addxy(unsigned char x,unsigned char y)
{
unsigned char z;
z = x+y;
return z;
}
void main()
{
/* Local variable */
unsigned char Receive0;
static unsigned char Receive1;
volatile unsigned char Receive2;
Receive0 = addxy(0,1);
Receive1 = addxy(1,2);
Receive2 = addxy(3,4);
ReceiveGlobal = addxy(5,6);
while(1);
}
在while(1)處設(shè)一斷點,在Debug模式下通過Watch窗口觀察變量:
現(xiàn)在回過頭去看IAR中的”O(jiān)ptions — c/c++ compiler — Optimization[??ptimai?zei??n] — Level” 選項:
Level的缺省值為Low,當我把Level選為None之后,即不執(zhí)行任何優(yōu)化時,全局變量、靜態(tài)局部變量、局部變量的值都可以看到,如下圖所示。
當我把優(yōu)化等級選為Midium或者High之后,全局變量、靜態(tài)局部變量、局部變量的值都不可見了。
結(jié)論:要想觀察局部變量的值,調(diào)試的時候可以把優(yōu)化等級設(shè)為None.
補充幾個知識點:
1.堆棧(stack)——由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。
2.靜態(tài)存儲區(qū)(static)—— 全局變量和靜態(tài)變量的存儲是放在一塊的。初始化的全局變量和靜態(tài)變量在一塊區(qū)域;未初始化的全局變量和靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后由系統(tǒng)釋放。
上一篇:MSP430使用指南32 -> SAC智能模擬組合
下一篇:MSP430使用指南5 -> ICC中斷控制器
推薦閱讀
史海拾趣
另一家名為“Innovative Memory Solutions”的公司,在2008年就開始布局HMC技術(shù)的研發(fā)。經(jīng)過數(shù)年的潛心研究,該公司終于在2012年推出了首款商用HMC產(chǎn)品。這款產(chǎn)品的問世,不僅解決了傳統(tǒng)DRAM帶寬受限的問題,還顯著降低了系統(tǒng)延遲。Innovative Memory Solutions通過積極的市場推廣和與OEM廠商的合作,成功將HMC技術(shù)應用于高性能計算、數(shù)據(jù)中心等領(lǐng)域,實現(xiàn)了從研發(fā)到市場的成功跨越。
隨著技術(shù)的不斷進步,光大芯業(yè)的產(chǎn)品逐漸得到了市場的認可。公司的產(chǎn)品線涵蓋了磁傳感、DC/DC、AC/DC轉(zhuǎn)換器、電機驅(qū)動等多個領(lǐng)域,廣泛應用于消費電子、運動控制、電動工具、智能家居、汽車電子等多個行業(yè)。通過不斷拓展市場,光大芯業(yè)的產(chǎn)品已經(jīng)走進了千家萬戶,為人們的生活帶來了便利和舒適。
1991年,在紐約的上西區(qū),一個名叫Equinox的健身俱樂部悄然開業(yè)。它的創(chuàng)始人憑借對健身行業(yè)的熱情和對高端市場的敏銳洞察,將Equinox定位為一家提供豪華健身體驗的俱樂部。通過提供優(yōu)質(zhì)的設(shè)施、個性化的服務和豐富的課程,Equinox很快在上西區(qū)樹立了良好的口碑。
作為一家有社會責任感的企業(yè),CTC公司積極參與社會公益事業(yè)。公司不僅捐款支持教育、環(huán)保等公益事業(yè),還利用自身的技術(shù)優(yōu)勢為社區(qū)提供技術(shù)支持和解決方案。這些行為使得CTC公司在社會中樹立了良好的形象,贏得了公眾的信任和尊重。同時,通過履行社會責任,CTC公司也提升了自身的品牌價值和市場競爭力。
請注意,以上故事是基于假設(shè)和虛構(gòu)的,并非真實發(fā)生的事件。它們旨在展示一個電子行業(yè)中公司發(fā)展可能經(jīng)歷的一些典型情境和挑戰(zhàn),以及應對這些情境和挑戰(zhàn)的可能策略。在現(xiàn)實中,每個公司的發(fā)展都有其獨特性和復雜性,因此這些故事僅供參考,不能作為CTC公司或任何其他公司實際發(fā)展情況的依據(jù)。
AIM公司自創(chuàng)立以來,便以其前瞻性的視野和獨特的技術(shù)理念,在電子行業(yè)中嶄露頭角。創(chuàng)始團隊憑借對市場的敏銳洞察和對技術(shù)的深刻理解,將公司定位為提供創(chuàng)新解決方案的引領(lǐng)者。在創(chuàng)立初期,AIM便投入大量資源進行技術(shù)研發(fā),逐漸在行業(yè)中建立了自己的技術(shù)優(yōu)勢和品牌形象。
發(fā)明隱形飛機和液晶顯示器的科學天才--George Heilmeier 本帖最后由 jameswangsynnex 于 2015-3-3 19:58 編輯 他,思維敏捷且跳躍,對技術(shù)有天生的洞察力,他蔑視科研領(lǐng)域的濫竽充數(shù)者,曾經(jīng)擔任過TI的CTO,他就是隱形飛機的奠基人和液晶顯示器的發(fā)明人--George Heilmeier (1936.5.12 – ) “你看,小 ...… 查看全部問答∨ |
|
PDA使用WINCE4.2/5.0(2個PDA),硬件上使用串口與低速設(shè)備相連,協(xié)議采用SLIP,但低速設(shè)備一次只能接收和傳輸296字節(jié),而PDA默認的MTU是1500,我怎樣修改MTU為適合我的值,即296?謝謝!… 查看全部問答∨ |
|
PPC 2002里的I_IMAGENONE在evc4里沒定義,如何把PPC 2002程序移植到evc4 PPC 2002里的I_IMAGENONE在evc4里沒定義,如何把PPC 2002程序移植到evc4… 查看全部問答∨ |
|
因為暫時還不想把最核心的函數(shù)給客戶,所以想把.c文件去掉,用.o文件來代替。希望客戶還可以正常編譯和操作其他的函數(shù),不知道該怎么操作。 是不是需要改linkfile呢。 請教大家。… 查看全部問答∨ |
我現(xiàn)在要實現(xiàn)一個功能,就是比如我一個buf中有4000個數(shù)據(jù),每個數(shù)據(jù)8bit,然后我要用2Mhz的速度在一個IO上實現(xiàn)連續(xù) ...… 查看全部問答∨ |
本帖最后由 dontium 于 2015-1-23 13:33 編輯 TI 的2407 看網(wǎng)上的帖子..說要把const的數(shù)組放到flash中..必須在cmd設(shè)定 .const : load= PROG PAGE 0, run = SARAM ...… 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- STM32一文通(6) 外部中斷
- ESP32玩轉(zhuǎn)MicroPython(一) 燒入固件, 初識
- ESP32玩轉(zhuǎn)MicroPython(二) 連接WIFI網(wǎng)絡(luò) webperl文件傳輸
- ESP32玩轉(zhuǎn)MicroPython(三) 延時、計時 和GPIO操作
- 玩轉(zhuǎn) ESP32 + Arduino (一) 開發(fā)環(huán)境搭建
- 玩轉(zhuǎn) ESP32 + Arduino (四) 電容按鍵 霍爾傳感器 外部中斷 延時 脈沖檢測
- 玩轉(zhuǎn) ESP32 + Arduino (五) platformIO引入類庫 自開發(fā)庫 串口打印字符串
- 玩轉(zhuǎn) ESP32 + Arduino (六) 硬件定時器, IIC, SPI
- 玩轉(zhuǎn) ESP32 + Arduino (八) U8G2驅(qū)動OLED
- 超快充技術(shù)平權(quán)時代,要來了
- 智元機器人與Physical Intelligence(Pi)達成戰(zhàn)略合作
- 不到10萬塊!特斯拉再次面臨生死狙擊?
- 高階智駕NOA功能解析:技術(shù)架構(gòu)與實現(xiàn)路徑
- 智能體爆發(fā)元年,誰在“無人區(qū)”繪制地形圖?
- 億緯鋰能大圓柱電池進展:良率突破97%
- 500Wh/kg電池競速:鋰金屬電池挑戰(zhàn)全固態(tài)共識?(下)
- 500Wh/kg電池競速:鋰金屬電池挑戰(zhàn)全固態(tài)共識?(上)
- 密歇根大學突破:低溫充電速度提升500%
- 谷歌發(fā)布Android Auto 14.0更新,界面優(yōu)化并準備車機版Gemini AI