This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6446 VICP link errors

undefined                        first referenced
 symbol                              in file
---------                        ----------------
_EDMA3_DRV_delete                dmcsl644x_bios.lib
_EDMA3_DRV_open                  dmcsl644x_bios.lib
_EDMA3_DRV_create                dmcsl644x_bios.lib
_EDMA3_DRV_close                 dmcsl644x_bios.lib
>>   error: relocation overflow occurred at address 0x00000338 in section
            '.text' of input file 'vicp_edma3_support.obj
            (dmcsl644x_bios.lib)'.  The 29-bit PC-relative displacement
            471286640 at this location is too large to fit into the 21-bit
            PC-Relative field; the destination address is too far away from the
            instruction. You may need to add a mask to the assembly instruction
            or use other target specific assembly features if you really only
            need the lowest 21 bits of this symbol. Please see the section on
            Relocation in the Assembly User's Guide. 
>>   error: relocation overflow occurred at address 0x00000388 in section
            '.text' of input file 'vicp_edma3_support.obj
            (dmcsl644x_bios.lib)'.  The 29-bit PC-relative displacement
            471286616 at this location is too large to fit into the 21-bit
            PC-Relative field; the destination address is too far away from the
            instruction. You may need to add a mask to the assembly instruction
            or use other target specific assembly features if you really only
            need the lowest 21 bits of this symbol. Please see the section on
            Relocation in the Assembly User's Guide. 
>>   error: relocation overflow occurred at address 0x000004e0 in section
            '.text' of input file 'vicp_edma3_support.obj
            (dmcsl644x_bios.lib)'.  The 29-bit PC-relative displacement
            471286528 at this location is too large to fit into the 21-bit
            PC-Relative field; the destination address is too far away from the
            instruction. You may need to add a mask to the assembly instruction
            or use other target specific assembly features if you really only
            need the lowest 21 bits of this symbol. Please see the section on
            Relocation in the Assembly User's Guide. 
>>   error: relocation overflow occurred at address 0x00000508 in section
            '.text' of input file 'vicp_edma3_support.obj
            (dmcsl644x_bios.lib)'.  The 29-bit PC-relative displacement
            471286520 at this location is too large to fit into the 21-bit
            PC-Relative field; the destination address is too far away from the
            instruction. You may need to add a mask to the assembly instruction
            or use other target specific assembly features if you really only
            need the lowest 21 bits of this symbol. Please see the section on
            Relocation in the Assembly User's Guide. 
_EDMA3_DRV_freeChannel           dmcsl644x_bios.lib
_EDMA3_DRV_mapChToEvtQ           dmcsl644x_bios.lib
_EDMA3_DRV_setPaRAM              dmcsl644x_bios.lib
_EDMA3_DRV_getPaRAMPhyAddr       dmcsl644x_bios.lib
_EDMA3_DRV_requestChannel        dmcsl644x_bios.lib
_EDMA3_DRV_checkAndClearTcc      dmcsl644x_bios.lib
>>   error: relocation overflow occurred at address 0x00000068 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289384 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x000000a4 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289368 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x000000d8 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289360 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000228 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289272 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000258 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289264 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x000002c4 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289232 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000408 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289152 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000440 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289136 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000468 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289128 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x000004f4 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289096 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: relocation overflow occurred at address 0x00000528 in section
            '.text' of input file 'vicp_edma3.obj (dmcsl644x_bios.lib)'.  The
            29-bit PC-relative displacement 471289080 at this location is too
            large to fit into the 21-bit PC-Relative field; the destination
            address is too far away from the instruction. You may need to add a
            mask to the assembly instruction or use other target specific
            assembly features if you really only need the lowest 21 bits of
            this symbol. Please see the section on Relocation in the Assembly
            User's Guide. 
>>   error: symbol referencing errors - 'encodeCombo.x64P' not built
gmake[1]: *** [encodeCombo.x64P] Error 1
gmake: *** [packages/ti/sdo/servers/encode,.executables] Error 2
make: *** [.all-packages] Error 2

Hi, all

I need to use VICP in my project. my codec is universal_copy, server is encodeCombos.
I wrote several lines of codes(a test program of VICP) in UNIVERSALCOPY_TI_process() according to the test codes in vicplib_v330,
and built the a64P successfully.

Then, I linked the relevant libs(
-l dmcsl644x_bios.lib
-l imgproc644x.lib
-l imx644x.lib
-l IP_run644x.lib
)

and built the x64P.

Unfortunately, it didn't work. the errors are as follows:

undefined first referenced
symbol in file
--------- ----------------
_EDMA3_DRV_delete dmcsl644x_bios.lib
_EDMA3_DRV_open dmcsl644x_bios.lib
_EDMA3_DRV_create dmcsl644x_bios.lib
_EDMA3_DRV_close dmcsl644x_bios.lib
>> error: relocation overflow occurred at address 0x00000338 in section
'.text' of input file 'vicp_edma3_support.obj
(dmcsl644x_bios.lib)'. The 29-bit PC-relative displacement
471286640 at this location is too large to fit into the 21-bit
PC-Relative field; the destination address is too far away from the
instruction. You may need to add a mask to the assembly instruction
or use other target specific assembly features if you really only
need the lowest 21 bits of this symbol. Please see the section on
Relocation in the Assembly User's Guide.
>> error: relocation overflow occurred at address 0x00000388 in section
'.text' of input file 'vicp_edma3_support.obj
(dmcsl644x_bios.lib)'. The 29-bit PC-relative displacement
471286616 at this location is too large to fit into the 21-bit
PC-Relative field; the destination address is too far away from the
instruction. You may need to add a mask to the assembly instruction
or use other target specific assembly features if you really only
need the lowest 21 bits of this symbol. Please see the section on
Relocation in the Assembly User's Guide.
>> error: relocation overflow occurred at address 0x000004e0 in section
'.text' of input file 'vicp_edma3_support.obj
(dmcsl644x_bios.lib)'. The 29-bit PC-relative displacement
471286528 at this location is too large to fit into the 21-bit
PC-Relative field; the destination address is too far away from the
instruction. You may need to add a mask to the assembly instruction
or use other target specific assembly features if you really only
need the lowest 21 bits of this symbol. Please see the section on
Relocation in the Assembly User's Guide.
>> error: relocation overflow occurred at address 0x00000508 in section
'.text' of input file 'vicp_edma3_support.obj
(dmcsl644x_bios.lib)'. The 29-bit PC-relative displacement
471286520 at this location is too large to fit into the 21-bit
PC-Relative field; the destination address is too far away from the
instruction. You may need to add a mask to the assembly instruction
or use other target specific assembly features if you really only
need the lowest 21 bits of this symbol. Please see the section on
Relocation in the Assembly User's Guide.
...
...

this is probably a problem about memory model.

then I edited config.bld and added C64P.ccOpts.prefix += " --mem_model:data=far" , but it still didn't work.

How can I solve this problem?

waiting for your advice.
Thank you!