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.
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:
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