新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 把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://www.104case.com/article/201612/325162.htm

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

        解決方法:

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

        (原文件名:0.jpg)

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

        (原文件名:1.png)


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

        (原文件名:a.png)

        (原文件名:b.png)


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 丰城市| 措美县| 寿宁县| 房产| 德惠市| 天水市| 芒康县| 孟州市| 阜新| 贵南县| 淄博市| 仙桃市| 阿克陶县| 西盟| 潞西市| 乐亭县| 云梦县| 甘肃省| 田东县| 平远县| 靖安县| 姜堰市| 新余市| 鄂尔多斯市| 稷山县| 五大连池市| 韶山市| 瑞昌市| 白河县| 古蔺县| 高碑店市| 灯塔市| 古丈县| 阳曲县| 榕江县| 左云县| 乌拉特中旗| 镇远县| 甘德县| 丁青县| 基隆市|