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

          新聞中心

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

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

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

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

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

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

          解決方法:

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

          (原文件名:0.jpg)

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

          (原文件名:1.png)


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

          (原文件名:a.png)

          (原文件名:b.png)


          評(píng)論


          技術(shù)專(zhuān)區(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); })();