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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 把keilC51中不使用的代碼禁止分配空間,為程序瘦身

          把keilC51中不使用的代碼禁止分配空間,為程序瘦身

          作者: 時(shí)間:2016-12-03 來源:網(wǎng)絡(luò) 收藏

          最近在用51單片機(jī)SD卡+VS1003來做MP3
          可是在調(diào)試的時(shí)候遇到一個(gè)很郁悶的問題,我在main函數(shù)里只是調(diào)用了一個(gè)簡短的函數(shù),還有好多函數(shù)只是定義了調(diào)試過了,還沒使用到,但是我這些都放在一個(gè)工程里編譯就會(huì)報(bào)錯(cuò),說是
          ADDRESS SPACE OVERFLOW
          SPACE: DATA
          ...
          郁悶了,我的main函數(shù)里只調(diào)用了一個(gè)簡單的函數(shù)啊為什么沒調(diào)用的函數(shù)KEIL也把它給塞進(jìn)HEX文件里去。。。
          請(qǐng)大蝦們解決一下小弟這個(gè)問題...
          (我試過把Memory Model設(shè)置為Large (我的STC12C5A60S2內(nèi)部有1280的XDATA), 可以用,但是考慮到隊(duì)友那里這樣設(shè)置的時(shí)候不能使用紅外的功能了,不知道是為什么。。。,所以不想改Memory Model。更不想手動(dòng)注釋這些沒調(diào)用的函數(shù),那樣太麻煩了。。。)

          本文引用地址:http://www.ex-cimer.com/article/201612/325162.htm

          ==============================

          解決方法:

          把target options中的device頁中選上"Use LX51 ...",然后在LX51 Misc頁中的Misc Control中填入"REMOVEUNUSED",確認(rèn)后重新編譯即可自動(dòng)去掉未調(diào)用的函數(shù)。
          如下圖:

          (原文件名:0.jpg)

          說實(shí)話Keil這一點(diǎn)真的挺爛的,請(qǐng)看證據(jù):

          (原文件名:1.png)


          首先我一開始照你的意思設(shè)置了以后遇到了錯(cuò)誤,說要我升級(jí)到PK51,我用的是KEIL uvision 4,可能是因?yàn)楫?dāng)初沒破_解好,去網(wǎng)上找個(gè)注_冊(cè)機(jī)就解決了
          然后我發(fā)現(xiàn)原來這個(gè)指令在KEIL的幫助文檔里有的,所以說一定要學(xué)會(huì)看幫助文檔才行啊。。。

          (原文件名:a.png)

          (原文件名:b.png)


          評(píng)論


          技術(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); })();