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.

Compiler/TMS320F28388D: Using CLA with ROM Symbols gives warning #17003-D

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Tool/software: TI C/C++ Compiler

Hi everyone,

I am trying to program a CLA of a TMS320F2838x with tables loaded into the CLA ROM, but a lot of warnings appear due to the CLA Table symbols loaded into the ROM section:

"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 110: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_TABLE_SIZE" overflowed; the 25-bit relocated address 0x1001e4c is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000002, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 111: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_TABLE_MASK" overflowed; the 25-bit relocated address 0x1001e52 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000004, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 128: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_TwoPiDivTABLE_SIZE" overflowed; the 25-bit relocated address 0x1001e50 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000010, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 129: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_Coef3" overflowed; the 25-bit relocated address 0x1001e5c is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000012, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 139: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_Coef2" overflowed; the 25-bit relocated address 0x1001e5a is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000018, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 149: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_Coef1" overflowed; the 25-bit relocated address 0x1001e56 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x0000001e, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAsinPU.asm", line 159: warning #17003-D: relocation from assembly function "CLAsinPU" to symbol "CLAsincosTable_Coef0" overflowed; the 25-bit relocated address 0x1001e54 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAsinPU.obj>", offset = 0x00000024, section = "Cla1Prog:_CLAsinPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 117: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_TABLE_SIZE" overflowed; the 25-bit relocated address 0x1001e4c is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000002, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 118: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_TABLE_MASK" overflowed; the 25-bit relocated address 0x1001e52 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000004, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 134: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_TwoPiDivTABLE_SIZE" overflowed; the 25-bit relocated address 0x1001e50 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000010, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 135: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_Coef3_neg" overflowed; the 25-bit relocated address 0x1001e5e is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000012, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 145: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_Coef2" overflowed; the 25-bit relocated address 0x1001e5a is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000018, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 155: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_Coef1_pos" overflowed; the 25-bit relocated address 0x1001e58 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x0000001e, section = "Cla1Prog:_CLAcosPU")
"/home/ubnuser/ti/repos/c2000ware/libraries/math/temp/source/CLAcosPU.asm", line 165: warning #17003-D: relocation from assembly function "CLAcosPU" to symbol "CLAsincosTable_Coef0" overflowed; the 25-bit relocated address 0x1001e54 is too large to encode in the 16-bit unsigned field (type = 'R_CLA_ABS16' (16), file = "C:/Users/cinergia/repos/burriac/Shared/Shared_Global/lib/cla2_math_library_datarom_fpu32_eabi.lib<CLAcosPU.obj>", offset = 0x00000024, section = "Cla1Prog:_CLAcosPU")
warning #10015-D: output file "ABR_CPU1.out" cannot be loaded and run on a target system

If I have a look into the *.map file I can see that the CLA Table has loaded as it should be. Here you can see the symbols fitted to the address range of the CLA ROM (0x01001000 to 0x01001FFF):

page  address   name                                             
----  -------   ----     
....
abs   01001e54  CLAsincosTable_Coef0                             
abs   01001e56  CLAsincosTable_Coef1                             
abs   01001e58  CLAsincosTable_Coef1_pos                         
abs   01001e5a  CLAsincosTable_Coef2                             
abs   01001e5c  CLAsincosTable_Coef3                             
abs   01001e5e  CLAsincosTable_Coef3_neg                         
abs   01001d4a  CLAsincosTable_Cos0                              
abs   01001d0a  CLAsincosTable_Sin0                              
abs   01001e52  CLAsincosTable_TABLE_MASK                        
abs   01001e4c  CLAsincosTable_TABLE_SIZE                        
abs   01001e50  CLAsincosTable_TwoPiDivTABLE_SIZE
...

I understand that the CLA data ROM address range (25 bits) exceeds the CPU address range (16 bits) but the compiler should be ready for this situation, isn't it?

For further understanding of the configuration I used, the compiler version used int his project is TI v20.2.2.LTS.

I also followed all the configuration steps in the file C2000Ware_3_02_00_00\libraries\math\CLAmath\c28\docs\CLA_MATH_LIB_UG.pdf and my project is configured this way:

  • CLAmath.h is included in the project
  • Correct CLA2 selected:
  • Libraries included to the Linker:
  • Predefined variables CLA_MATH_TABLES_IN_ROM=1 and CLA_C=1 activated in the Linker section.
  • *.CMD file without CLA1mathTables section.

Futhermore, I have tried to load the CLA math Table to RAM, without all the ROM configurations, and the error is gone, logically.

What should I do with that warning?

Thanks.

  • Hello,

    The CLA Data ROM should be mapped at 0xF000-0xFFFF in order for the CLA to access it.   The locations you have mentioned is the memory mapping for the C28x CPU.  (Ref memory map page 240 of the data sheet).  

    Your screenshot of the libraries did not come through - are you using the ROM symbol library?  If so there may be an issue with it.  In the meantime I will check with a colleague to see if it uses the CLA mapping. 

    Regards

    Lori

  • Jahel,

    My colleague confirmed that the revA CLA ROM symbol libraries are using the C28x address.  We will file a bug to get this fixed.

    Until that is done, you can use the rev0 CLA ROM symbol libraries. \libraries\boot_rom\f2838x\rev0\rom_symbol_libs\cpu1\claDataROM

    The CLA items didn’t move between the two revisions.

    Best Regards

    Lori

  • Hi Lori,

    I tried the Rev0 CLA ROM symbols and worked perfecly. Thanks for opening a bug to get this solved!

    Kind regards,

    Jahel