新聞中心

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

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

作者: 時間:2016-12-03 來源:網絡 收藏

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

本文引用地址:http://2s4d.com/article/201612/325162.htm

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

解決方法:

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

(原文件名:0.jpg)

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

(原文件名:1.png)


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

(原文件名:a.png)

(原文件名:b.png)


評論


技術專區(qū)

關閉