<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用Keil C調(diào)試某系統(tǒng)時(shí)積累的一些經(jīng)驗(yàn)

          使用Keil C調(diào)試某系統(tǒng)時(shí)積累的一些經(jīng)驗(yàn)

          作者: 時(shí)間:2012-07-04 來源:網(wǎng)絡(luò) 收藏
          我們使用Keil C調(diào)試某系統(tǒng)時(shí)積累的一些經(jīng)驗(yàn)

          1、由于Keil C對(duì)中文支持不太好,因而會(huì)出現(xiàn)顯示的光標(biāo)與光標(biāo)實(shí)際所在不一致的現(xiàn)象,這會(huì)對(duì)修改中文注釋造成影響。在Windows2000下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。
          2、當(dāng)使用有片外內(nèi)存的MCU(如W77E58,它有1K片外內(nèi)存)的時(shí)候,肯定要設(shè)置標(biāo)志位,并且編譯方式要選擇大模式,否則會(huì)出錯(cuò)。
          3、當(dāng)使用Keil C跟蹤程序運(yùn)行狀態(tài)的時(shí)候,要把引起Warning的語句屏蔽,否則有可能跟蹤語句的時(shí)候會(huì)出錯(cuò)。
          4、在調(diào)用數(shù)組的時(shí)候,Keil C是首先把數(shù)組Load進(jìn)內(nèi)存。如果要在C中使用長數(shù)組的時(shí)候,我們可以使用code關(guān)鍵字,這樣就實(shí)現(xiàn)了匯編的DB的功能,Keil C是不會(huì)把標(biāo)志code的數(shù)組Load入內(nèi)存的,它會(huì)直接讀取Rom。
          5、當(dāng)編程涉及到有關(guān)通信,時(shí)序是很重要的。拉高管腳的執(zhí)行速度遠(yuǎn)遠(yuǎn)比檢查管腳電平的要快。
          6、在等待管腳電平變化的時(shí)候,我們需要設(shè)置好超時(shí)處理,否則程序就會(huì)因?yàn)橐粋€(gè)沒有預(yù)計(jì)的錯(cuò)誤而死鎖。
          7、能用C語言實(shí)現(xiàn)的地方,盡量不要用匯編,尤其在算法的實(shí)現(xiàn),用匯編是晦澀難懂。
          8、程序的幾個(gè)參數(shù)數(shù)組所占篇幅很大,其中液晶背景數(shù)組最長,有四千個(gè)Byte,因而把那些初始化數(shù)組都放在另外一個(gè)C文件,在主文件使用使用關(guān)鍵字extern定義,這樣就不會(huì)對(duì)主文件的編寫造成干擾。
          9、所有函數(shù)之間的相關(guān)性越低越有利于以后功能的擴(kuò)展。
          10、6.20版在編譯帶code關(guān)鍵字的數(shù)組時(shí),編譯通過但是單片機(jī)運(yùn)行結(jié)果是錯(cuò)誤的,改用6.14版后正常。


          關(guān)鍵詞: KeilC

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();