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

          新聞中心

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

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

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

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

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

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

          解決方法:

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

          (原文件名:0.jpg)

          說實話Keil這一點真的挺爛的,請看證據(jù):

          (原文件名:1.png)


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

          (原文件名:a.png)

          (原文件名:b.png)


          評論


          技術專區(qū)

          關閉
          看屁屁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); })();