標(biāo)題: PIC C18編譯器 錯(cuò)誤can not fit the section. 解決方法 [打印本頁(yè)]

作者: a119    時(shí)間: 2013-9-5 13:42
標(biāo)題: PIC C18編譯器 錯(cuò)誤can not fit the section. 解決方法
Error - section '.udata_main.o' can not fit the section. Section '.udata_main.o' length=0x00000606
Errors    : 1

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

解決方法一為:

1、打開(kāi)18f452.lkr

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

ACCESSBANK NAME=accessram  START=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=accesssfr  START=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文件里面的分頁(yè)情況)
       對(duì)于 MPLAB C18 編譯器,數(shù)據(jù)可以放入數(shù)據(jù)存儲(chǔ)器或者程序存儲(chǔ)器。如果沒(méi)有用戶
提供的附加代碼,片內(nèi)程序存儲(chǔ)器中的數(shù)據(jù)只能讀不能寫(xiě)。如果沒(méi)有用戶提供的附加
代碼,片外程序存儲(chǔ)器中的數(shù)據(jù)一般是只能讀或者只能寫(xiě)。
例如,下面的語(yǔ)句為靜態(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不分頁(yè))
作者: better    時(shí)間: 2013-9-10 10:02
PIC   c系列 不知道用得還多不多。    我們現(xiàn)在出貨量很大,熱銷(xiāo)的  都是F 系列
渠道很好  優(yōu)勢(shì)相對(duì)其他較好。

Q--- 909822209   




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1