18f14k50问题section '.code_usb_device.o' can not fit the section

[复制链接]
6313|10
 楼主| 453369672 发表于 2011-7-20 09:41 | 显示全部楼层 |阅读模式
使用18f14k50遇到问题了

在我编译工程的时候,出现了下面的错误:
Error - section '.code_usb_device.o' can not fit the section. Section '.code_usb_device.o' length=0x000010b2
Errors    : 1


18f14k50.lkr 如下:
// $Id: 18f14K50.lkr,v 1.1.4.1 2005/07/25 18:23:28 nairnj Exp $
// File: 18f14K50.lkr
// Sample linker script for the PIC18F14k50 processor

LIBPATH .

FILES c018i.o
FILES clib.lib
FILES p18f14k50.lib

// Bootloader
CODEPAGE   NAME=vectors    START=0x0            END=0x029           PROTECTED
//CODEPAGE   NAME=bootloader   START=0x2A           END=0xFFF
   PROTECTED
CODEPAGE   NAME=page       START=0x002A           END=0x3FFF

// Application
//CODEPAGE   NAME=boot       START=0x0            END=0x1F         PROTECTED
//CODEPAGE   NAME=vectors    START=0x1000         END=0x1029         PROTECTED
//CODEPAGE   NAME=page       START=0x102A         END=0x3FFF

CODEPAGE   NAME=idlocs     START=0x200000       END=0x200007       PROTECTED
CODEPAGE   NAME=config     START=0x300000       END=0x30000D       PROTECTED
CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED

ACCESSBANK NAME=accessram  START=0x0            END=0x5F  // 5F
DATABANK   NAME=gpr0       START=0x60           END=0x11F  // 0xFF
DATABANK   NAME=gpr1       START=0x120          END=0x1F3

DATABANK   NAME=usb2       START=0x200          END=0x2FF          PROTECTED
DATABANK   NAME=sfr15      START=0xF40          END=0xF5F          PROTECTED
ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED

SECTION    NAME=CONFIG     ROM=config
SECTION    NAME=GP0        RAM=gpr0
SECTION    NAME=GP1        RAM=gpr1
SECTION    NAME=usbram2     RAM=usb2

SECTION    NAME=USB_VARS   RAM=usb2

STACK SIZE=0x40 RAM=gpr1
求高手指教
yewuyi 发表于 2011-7-20 10:38 | 显示全部楼层
Error - section '.code_usb_device.o' can not fit the section. Section '.code_usb_device.o' length=0x000010b2


这句话的大概意思是:你的源代码编译生成了一个目标文件,这个目标文件名为code_usb_device.o,当在所有的目标文件进行连接时,连接器发现这个code_usb_device.o文件大小超越了LKR文件中定义的长度,导致这个目标文件不能连接成功,所以报错。
 楼主| 453369672 发表于 2011-7-20 10:46 | 显示全部楼层
2# yewuyi 怎么修改lkr文件啊
yewuyi 发表于 2011-7-20 13:22 | 显示全部楼层
修改的前提是你要看懂它,你看懂了吗?

俺对PIC18f14k50不熟悉,不能盲目改动,另外,你首先要弄清楚不匹配出错的原因是LKR有问题还是代码有问题?

如果代码有问题,你乱改LKR只会死得更惨。
 楼主| 453369672 发表于 2011-7-20 15:40 | 显示全部楼层

RE: 18f14k50问题section '.code_usb_device.o' can not fit the section

4# yewuyi 如果代码有问题,大概会是什么问题呢 我也是才开始用PIC单片机
yewuyi 发表于 2011-7-20 15:46 | 显示全部楼层
提示是这个部分的连接溢出,那显然是写了太多的代码或者定义了太多的常量数组或者定义了过多的变量,超越了它ROM或者RAM的最大范围。
 楼主| 453369672 发表于 2011-7-20 17:08 | 显示全部楼层
6# yewuyi 初步认为是代码太多占用空间过大,优化代码后还是出现类似的问题
Error - section '.code_SPI_rf212.o' can not fit the section. Section '.code_SPI_rf212.o' length=0x000001d8
yewuyi 发表于 2011-7-20 17:36 | 显示全部楼层
::length=0x000001d8

看这里已经有所变化,继续想办法简化代码看看如何,你可以暂时屏蔽掉部分代码看看是否确定是代码过大造成的。
 楼主| 453369672 发表于 2011-7-21 08:25 | 显示全部楼层
8# yewuyi 恩,谢谢。。。。
a615 发表于 2014-12-28 15:01 | 显示全部楼层
本帖最后由 a615 于 2014-12-28 15:05 编辑

昨天遇到一个一样的问题,一直在找缩减代码的方法
suguibin02 发表于 2014-12-28 15:14 | 显示全部楼层
学习中。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部