刚买的642板子,写一个视频捕获压缩转网口的程序,添加了Seedvpm642_vport.l64以及网口的库文件,还有编码库文件,链接的时候出现以下错误:
>> error: relocation overflow occurred at address 0x00000268 in section
'.text' of input file
>> error: relocation value truncated at 0xd0 in section .text, file dhcpsm.obj
(lib\nettool.lib)
>> error: relocation value truncated at 0x250 in section .text, file
dhcpsm.obj (lib\nettool.lib)
>> error: relocation value truncated at 0x558 in section .text, file
dhcpsm.obj (lib\nettool.lib)
>> error: relocation value truncated at 0x5ac in section .text, file
dhcpsm.obj (lib\nettool.lib)
>> error: relocation value truncated at 0x84 in section .text, file ipaddr.obj
(lib\nettool.lib)
>> error: symbol referencing errors - './bin/jpeg_network.out' not built
>> Compilation failure
这种错误该怎么改正呢?是不是需要修改nettool.lib文件?还是.cmd文件的空间分配有问题?
下面是.cmd文件代码:
/*************************************************************************/
/* driver_test.cmd */
/*************************************************************************/
-l jpeg_networkcfg.cmd
_JPEGDEC_IDMA2 = _JPEGDEC_TI_IDMA2;
_JPEGENC_IDMA2 = _JPEGENC_TI_IDMA2;
_JPEGDEC_IJPEGDEC = _JPEGDEC_TI_IJPEGDEC;
_JPEGENC_IJPEGENC = _JPEGENC_TI_IJPEGENC;
SECTIONS
{
PACKETMEM: {} > SDRAM
MMBUFFER: {} > SDRAM
OBJMEM: {} > SDRAM
jpgenc_tbl > ISRAM
jpdec_tbl > ISRAM
.user_data_int > ISRAM
cache_align > ISRAM
.text:_CSL6400_LIB_ > ISRAM
.text:_DAT_copy > ISRAM
.text:_DAT_copy2d > ISRAM
.text:_DAT_wait > ISRAM
.text:_EDMA_intAlloc > ISRAM
.text:_DAT_open > ISRAM
.text:_DAT_close > ISRAM
.user_data_ext > SDRAM
.jpgtbls > ISRAM
}
-l lib\seedvpm642vport.l64
-l lib\algrf.l64
-l lib\chan.l64
-l lib\icc.l64
-l lib\scom.l64
-l lib\sscr.l64
-l lib\utl.l64
-l lib\seedvpm642bsl.lib
-l lib\acpy2_6x1x.l62
-l lib\dman.l62
-l lib\jpeg_ti.l64
-l lib\hal_eth_dm642.lib
-l lib\hal_eth_stub.lib
-l lib\hal_timer.lib
-l lib\hal_userled.lib
-l lib\hal_ser_stub.lib
-l lib\hal.lib
-l lib\os.lib
-l lib\stack.lib
-l lib\nettool.lib
-l lib\netctrl.lib
-------------------------------------------------------------------------------------------------------------------
/*************************************************************************/
/* jpeg_networkcfg.cmd */
/*************************************************************************/
/* INPUT jpeg_network.cdb */
/* MODULE PARAMETERS */
-u _dm642_init
GBL_USERINITFXN = _dm642_init;
-u SDRAM
MEM_SEGZERO = SDRAM;
-u SDRAM
MEM_MALLOCSEG = SDRAM;
-u CLK_F_getshtime
CLK_TIMEFXN = CLK_F_getshtime;
-u HWI_F_dispatch
CLK_HOOKFXN = HWI_F_dispatch;
-u _KNL_tick
PRD_THOOKFXN = _KNL_tick;
-u SDRAM
RTDX_DATAMEMSEG = SDRAM;
-u SDRAM
HST_DSMBUFSEG = SDRAM;
-u GBL_NULL
SWI_EHOOKFXN = GBL_NULL;
-u GBL_NULL
SWI_IHOOKFXN = GBL_NULL;
-u SWI_F_exec
SWI_EXECFXN = SWI_F_exec;
-u SWI_F_run
SWI_RUNFXN = SWI_F_run;
-u SDRAM
TSK_STACKSEG = SDRAM;
-u __HOOK_doCreate
TSK_VCREATEFXN = __HOOK_doCreate;
-u __HOOK_doDelete
TSK_VDELETEFXN = __HOOK_doDelete;
-u __HOOK_doExit
TSK_VEXITFXN = __HOOK_doExit;
-u IDL_F_stub
IDL_CALIBRFXN = IDL_F_stub;
-u _UTL_doAbort
SYS_ABORTFXN = _UTL_doAbort;
-u _UTL_doError
SYS_ERRORFXN = _UTL_doError;
-u _UTL_halt
SYS_EXITFXN = _UTL_halt;
-u _UTL_doPutc
SYS_PUTCFXN = _UTL_doPutc;
-u _SEM_create
GIO_CREATEFXN = _SEM_create;
-u _SEM_delete
GIO_DELETEFXN = _SEM_delete;
-u _SEM_pend
GIO_PENDFXN = _SEM_pend;
-u _SEM_post
GIO_POSTFXN = _SEM_post;
/* OBJECT ALIASES */
_ISRAM = ISRAM;
_SDRAM = SDRAM;
_PRD_clock = PRD_clock;
_prdStack = prdStack;
_RTA_fromHost = RTA_fromHost;
_RTA_toHost = RTA_toHost;
_HWI_RESET = HWI_RESET;
_HWI_NMI = HWI_NMI;
_HWI_RESERVED0 = HWI_RESERVED0;
_HWI_RESERVED1 = HWI_RESERVED1;
_HWI_INT4 = HWI_INT4;
_HWI_INT5 = HWI_INT5;
_HWI_INT6 = HWI_INT6;
_HWI_INT7 = HWI_INT7;
_HWI_INT8 = HWI_INT8;
_HWI_INT9 = HWI_INT9;
_HWI_INT10 = HWI_INT10;
_HWI_INT11 = HWI_INT11;
_HWI_INT12 = HWI_INT12;
_HWI_INT13 = HWI_INT13;
_HWI_INT14 = HWI_INT14;
_HWI_INT15 = HWI_INT15;
_KNL_swi = KNL_swi;
_PRD_swi = PRD_swi;
_Network_Main = Network_Main;
_TSK_idle = TSK_idle;
_taskControl = taskControl;
_taskEncode = taskEncode;
_taskInput = taskInput;
_LNK_dataPump = LNK_dataPump;
_RTA_dispatcher = RTA_dispatcher;
_IDL_cpuLoad = IDL_cpuLoad;
_LOG_system = LOG_system;
_trace = trace;
_mbxProcess = mbxProcess;
_IDL_busyObj = IDL_busyObj;
_stsCycleTime = stsCycleTime;
_stsDispTime = stsDispTime;
_stsExeTimeChJpegDec = stsExeTimeChJpegDec;
_stsExeTimeChJpegEnc = stsExeTimeChJpegEnc;
_stsCapTime = stsCapTime;
_HOOK_KNL = HOOK_KNL;
_HOOK_NDK = HOOK_NDK;
/* MODULE GBL */
SECTIONS {
.vers (COPY): {} /* version information */
}
-priority
--trampolines
-llnkrtdx.a64
-ldrivers.a64 /* device drivers support */
-lsioboth.a64 /* supports both SIO models */
-lbiosC6000.a64 /* BIOS clock specific library */
-lbios.a64 /* DSP/BIOS support */
-lrtdx64xx.lib /* RTDX support */
-lrts6400.lib /* C and C++ run-time library support */
_GBL_CACHE = GBL_CACHE;
/* MODULE MEM */
-stack 0x1000
MEMORY {
ISRAM : origin = 0x8, len = 0x1fff8
SDRAM : origin = 0x80000000, len = 0x2000000
}
/* MODULE CLK */
SECTIONS {
.clk: {
CLK_F_gethtime = CLK_F_getshtime;
CLK_A_TABBEG = .;
*(.clk)
CLK_A_TABEND = .;
CLK_A_TABLEN = (. - CLK_A_TABBEG) / 4;
} > SDRAM
}
_CLK_PRD = CLK_PRD;
_CLK_COUNTSPMS = CLK_COUNTSPMS;
_CLK_REGS = CLK_REGS;
_CLK_USETIMER = CLK_USETIMER;
_CLK_TIMERNUM = CLK_TIMERNUM;
_CLK_TDDR = CLK_TDDR;
/* MODULE PRD */
SECTIONS {
.prd: {
PRD_A_TABBEG = .;
*(.prd)
PRD_A_TABEND = .;
PRD_A_TABLEN = (. - PRD_A_TABBEG) / 32;
} > SDRAM
}
/* MODULE RTDX */
_RTDX_interrupt_mask = 0x0;
/* MODULE HST */
_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask;
_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask;
_LNK_readDone = LNK_readDone;
_LNK_readFail = LNK_readFail;
_LNK_readPend = LNK_readPend;
_LNK_writeFail = LNK_writeFail;
_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;
/* MODULE SWI */
SECTIONS {
.swi: {
SWI_A_TABBEG = .;
*(.swi)
SWI_A_TABEND = .;
SWI_A_TABLEN = (. - SWI_A_TABBEG) / 44;
} > SDRAM
}
/* MODULE TSK */
SECTIONS {
.tsk: {
TSK_A_TABBEG = .;
*(.tsk)
TSK_A_TABEND = .;
TSK_A_TABLEN = (. - TSK_A_TABBEG) / 96;
} > SDRAM
}
/* MODULE IDL */
SECTIONS {
.idl: {
IDL_A_TABBEG = .;
*(.idl)
IDL_A_TABEND = .;
IDL_A_TABLEN = (. - IDL_A_TABBEG) / 4;
IDL_A_CALBEG = .;
*(.idlcal)
IDL_A_CALEND = .;
IDL_A_CALLEN = (. - IDL_A_CALBEG) / 4;
} > SDRAM
}
SECTIONS {
.ISRAM$heap: {
ISRAM$B = .;
_ISRAM_base = .;
ISRAM$L = 0x16800;
_ISRAM_length = 0x16800;
. += 0x16800;
} > ISRAM
.bss: {} > SDRAM
.hwi_vec: {
HWI_A_VECS = .;
*(.hwi_vec)
} align = 0x400 > SDRAM
.far: {} > SDRAM
.sysdata: {} > SDRAM
.dsm: {} > SDRAM
.mbx: {} > SDRAM
.udev: {} > SDRAM
frt: {} > SDRAM
.mem: {} > SDRAM
.bios: {} > SDRAM
.cio: {} > SDRAM
.data: {} > SDRAM
.gio: {} > SDRAM
.pinit: {} > SDRAM
.sys: {} > SDRAM
.sysregs: {} > SDRAM
.text: {} > SDRAM
.cinit: {} > SDRAM
.devtable: {} > SDRAM
.switch: {} > SDRAM
.gblinit: {} > SDRAM
.sysinit: {} > SDRAM
.trcdata: {} > SDRAM
.hwi: {} > SDRAM
.rtdx_data: {} > SDRAM
.rtdx_text: {} > SDRAM
.TSK_idle$stk: {
*(.TSK_idle$stk)
} > SDRAM
.taskControl$stk: {
*(.taskControl$stk)
} > SDRAM
.taskInput$stk: {
*(.taskInput$stk)
} > SDRAM
.taskEncode$stk: {
*(.taskEncode$stk)
} > SDRAM
.Network_Main$stk: {
*(.Network_Main$stk)
} > SDRAM
/* LOG_system buffer */
.LOG_system$buf: align = 0x1000 {} > SDRAM
/* trace buffer */
.trace$buf: align = 0x1000 {} > SDRAM
/* RTA_fromHost buffer */
.hst1: align = 0x4 {} > SDRAM
/* RTA_toHost buffer */
.hst0: align = 0x4 {} > SDRAM
GROUP {
.const: align = 0x8 {}
.printf (COPY): {}
} > SDRAM
.args: align=4 fill=0 {
*(.args)
. += 0x4;
} > SDRAM
.mbxProcess$que: align = 0x4 {
mbxProcess$queElems = .;
. += 140;
} > SDRAM
.trace: fill = 0x0 align = 0x4 {
_SYS_PUTCBEG = .;
. += 0x200;
_SYS_PUTCEND = . - 1;
} > SDRAM
.stack: {
GBL_stackbeg = .;
*(.stack)
GBL_stackend = GBL_stackbeg + 0x1000 - 1;
_HWI_STKBOTTOM = GBL_stackbeg + 0x1000 - 4 & ~7;
_HWI_STKTOP = GBL_stackbeg;
} > SDRAM
.hst: {
HST_A_TABBEG = .;
_HST_A_TABBEG = .;
*(.hst)
HST_A_TABEND = .;
_HST_A_TABEND = .;
HST_A_TABLEN = (. - _HST_A_TABBEG) / 20;
_HST_A_TABLEN = (. - _HST_A_TABBEG) / 20;
} > SDRAM
.log: {
LOG_A_TABBEG = .;
_LOG_A_TABBEG = .;
*(.log)
LOG_A_TABEND = .;
_LOG_A_TABEND = .;
LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24;
_LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24;
} > SDRAM
.pip: {
PIP_A_TABBEG = .;
_PIP_A_TABBEG = .;
*(.pip)
PIP_A_TABEND = .;
_PIP_A_TABEND = .;
PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
_PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
} > SDRAM
.sts: {
STS_A_TABBEG = .;
_STS_A_TABBEG = .;
*(.sts)
STS_A_TABEND = .;
_STS_A_TABEND = .;
STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
_STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
} > SDRAM
.SDRAM$heap: {
SDRAM$B = .;
_SDRAM_base = .;
SDRAM$L = 0xc00000;
_SDRAM_length = 0xc00000;
. += 0xc00000;
} > SDRAM
}