久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 各開發(fā)平臺編程技巧 [打印本頁]

作者: heise    時間: 2014-8-18 00:41
標(biāo)題: 各開發(fā)平臺編程技巧
  本文說的某些技巧是基于某個編譯與調(diào)試環(huán)境的,其中的有些規(guī)則是相同的,有些是有差別的;

【keil環(huán)境,M3硬件平臺】1: 全局變量的定義:      int Array[100];
                static  intArray[100];這兩種定義方法有何區(qū)別?
  【為什么單步調(diào)試時,有時候無法查看 staticint Array[100]數(shù)組,有時候可以,但是intArray[100]卻不會有這種現(xiàn)象?
  大家都知道用在函數(shù)體外定義的變量或數(shù)組,不論是否添加static,他們的屬性都是全局的,在RAM中,他們都對應(yīng)的物理地址;只不過在C文件中不同的地方定義,它的作用是不一樣的;
  如果在已是全局變量或全局?jǐn)?shù)組前加上static,情況會如何?加上static表明該符號只能在文件內(nèi)使用,即不能使用符號導(dǎo)出;在其他的文件中不能看見該符號,沒有加static的全局變量,其他文件可以通過符號導(dǎo)出應(yīng)用該符號。
  那么keil環(huán)境中,調(diào)試的時候,又會有什么不一樣?在keil環(huán)境中調(diào)試時,暫停CPU的運(yùn)行,這時指令會暫停在某個文件的某一行,這時如果要查看另外一個文件中的全局變量,如果變量的定義是static intArray[100],那么此時就不能在watch/memery窗口中查看,要想查看,必須讓CPU暫停在static intArray[100]所在的文件中,這樣才能查看到該變量或數(shù)組,原因就是該符號是本地的,但如果定義是intArray[100],就不會出現(xiàn)上面的情況。  

2:頭文件的相對路徑設(shè)置 #include   “.\..\uCGUI\LCDDriver\ili932x.h”
某個頭文件中要包含ili932x.h,而ili932x.h在本頭文件所在目錄的上層目錄,可以用上面的設(shè)置。
.\ 表示本文件所在的當(dāng)前目錄下, ..\表示進(jìn)入本文件上一層目錄中,

3.在keil4中,在函數(shù)體內(nèi)部定義的局部變量,很多時候都是使用CPU的寄存器,如果不夠就使用它的系統(tǒng)棧,這樣的話,在調(diào)試的時候查看變量是看不到正確的結(jié)果的,但是程序中使用這些變量沒問題;
如我在函數(shù)中定義一個私有的結(jié)構(gòu)體,接下來讀取SD卡對他的各個成員賦值;在調(diào)試時,暫停CPU來看各個變量,這時看到的全是0.以為是程序出了問題,其實(shí)是軟件的使用沒有使用正確,這時調(diào)試時是看不到這些私有數(shù)據(jù)的,他們都是棧中,調(diào)試器不能在棧中定位到他們;這時我將他們定義為被系統(tǒng)分配的地址的全局變量,在查看各個成員,就沒有問題。






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: av男人的天堂在线 | 久久91 | 天天看天天干 | 久久国产精品久久久久久 | 国产一区二区在线播放 | av在线三级 | 国产精品综合 | 一区二区三区亚洲视频 | 天天操夜夜操 | 久久国产精彩视频 | 久久一区二| 久久青 | 一区二区三区精品视频 | 日韩精品免费视频 | 一区二区不卡高清 | 美女艹b | 天天操天天怕 | 国产伦精品一区二区三区精品视频 | 亚洲一区二区久久 | 99在线免费观看视频 | 亚洲二区在线 | av在线天天| 久久成人免费视频 | 一区二区三区四区五区在线视频 | 欧美一级久久精品 | 伊人狠狠操 | 中文天堂在线一区 | 99精品欧美一区二区三区综合在线 | 中文字幕第100页 | 日韩国产精品一区二区三区 | 日韩在线国产精品 | 91在线观看免费视频 | 99pao成人国产永久免费视频 | 亚洲精选久久 | 久久久新视频 | 在线播放国产一区二区三区 | 91看片| 日韩欧美在线视频一区 | 欧美 日韩 在线播放 | 国产精品69毛片高清亚洲 | 啪啪免费网站 |