新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC C18編譯器 錯(cuò)誤can not fit the section. 解決方法

        PIC C18編譯器 錯(cuò)誤can not fit the section. 解決方法

        作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        Error - section .udata_main.o can not fit the section. Section .udata_main.o length=0x00000606
        Errors : 1

        詢問高人得知該錯(cuò)誤為RAM分配超過256B

        解決方法一為:

        1、打開18f452.lkr

        其關(guān)于RAM分配的為

        ACCESSBANK NAME=accessramSTART=0x0 END=0x7F
        DATABANK NAME=gpr0 START=0x80 END=0xFF
        DATABANK NAME=gpr1 START=0x100 END=0x1FF
        DATABANK NAME=gpr2 START=0x200 END=0x2FF
        DATABANK NAME=gpr3 START=0x300 END=0x3FF
        DATABANK NAME=gpr4 START=0x400 END=0x4FF
        DATABANK NAME=gpr5 START=0x500 END=0x5FF
        ACCESSBANK NAME=accesssfrSTART=0xF80 END=0xFFF PROTECTED

        SECTION NAME=CONFIG ROM=config

        STACK SIZE=0x100 RAM=gpr5

        2、將其中g(shù)pr0范圍改為START=0x80 END=0x4FF

        如下:

        DATABANK NAME=gpr0 START=0x80 END=0x4FF

        其余屏蔽即可。gpr5為堆棧地址,不作休改。

        3、重新編譯,OK~~

        方法二: 自己創(chuàng)建一個(gè)數(shù)組區(qū)域存放大數(shù)組 (可以參考18f452.lkr文件里面的分頁情況)
        對(duì)于 MPLAB C18 編譯器,數(shù)據(jù)可以放入數(shù)據(jù)存儲(chǔ)器或者程序存儲(chǔ)器。如果沒有用戶
        提供的附加代碼,片內(nèi)程序存儲(chǔ)器中的數(shù)據(jù)只能讀不能寫。如果沒有用戶提供的附加
        代碼,片外程序存儲(chǔ)器中的數(shù)據(jù)一般是只能讀或者只能寫。
        例如,下面的語句為靜態(tài)分配的未初始化數(shù)據(jù) (udata)聲明了一個(gè)位于絕對(duì)地址
        0x120的段:
        #pragma udata my_new_data_section=0x120
        rom 關(guān)鍵字告知編譯器應(yīng)該將變量放入程序存儲(chǔ)器。編譯器會(huì)把這個(gè)變量分配到當(dāng)前
        的 romdata 型段。例如:
        #pragma romdata const_table
        const rom char my_const_array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        /* Resume allocation of romdata into the default section */
        #pragma romdata
        鏈接器強(qiáng)制將 romdata段放入程序存儲(chǔ)區(qū),將 udata和 idata段放入數(shù)據(jù)存儲(chǔ)區(qū);
        然而,數(shù)據(jù)段也可以位于指定的存儲(chǔ)區(qū)。可以使用鏈接器描述文件中的 SECTION 偽
        指令把一個(gè)段分配到一個(gè)特定的存儲(chǔ)區(qū)。

        方法三:將數(shù)據(jù)定義到ROM當(dāng)中 (ROM不分頁)


        關(guān)鍵詞: PICC18編譯器錯(cuò)

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鄂伦春自治旗| 寿宁县| 五常市| 灵山县| 保德县| 隆德县| 安庆市| 察雅县| 马龙县| 浙江省| 平遥县| 兴隆县| 华容县| 荆门市| 柳江县| 衡南县| 赣榆县| 白山市| 巴里| 昌吉市| 尚义县| 平昌县| 龙口市| 常熟市| 酒泉市| 宜丰县| 黄骅市| 林州市| 嘉义县| 通许县| 客服| 峡江县| 马关县| 赞皇县| 仙居县| 获嘉县| 青州市| 沅陵县| 枝江市| 当阳市| 林州市|