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
Dear TI team,
I was trying to create some custom run time library with the latest compiler version v20.2.0.1. I have successfully created a Ram run time library, rts_TMS320F28388D_Ram_Lib which includes some memory, string, and trigonometric functions with the help of the batch files.
Following source/asm files I am using in my ram library:
sin_f32.asm |
cos_f32.asm |
atan2_f32.asm |
FPUmathTables.asm |
memcmp.c |
memcpy.c |
memset.c |
strcmp.c |
string.h |
math.h |
The following are my compiler linker options used to help me to generate ram.lib file:
SET COMPILER_FLAGS= -v28 -mt --float_support=fpu32 --include_path="./code/rts_TMS320F28388D_Flash_Lib" --include_path="./code/rts_TMS320F28388D_Ram_Lib" --include_path="C:/ti/ccs920/ccs/tools/compiler/ti-cgt-c2000_20.2.1.LTS/include" -k -al -g --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency.
I tried to compile this library by creating a new CCS project.
Here is the screenshot of the expansion of my project in project explorer:
PS: Don't get confused with the linker file name as I am trying to flash this on the F28379D eval board. And both the controller uses the same run time library source files.
I am successfully able to compile the linker file with an empty main.c but when I am calling atan2f() function I am getting following errors:
I have also attached the list of warning I am getting while compiling the project:
I am using spru514t document for my reference to handle the customization.
I believe I am missing some dependent source files or might missing some additional process/ configuration to build it. Would you help tell me why?
Thanks!
Gurusha,
Please see if this solution (in the post below) resolves your issue.
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/916229
Thanks,
Sira
Hi Sira,
That fixed it. Thank you!
I had to change the floating point support to fpu64 for both my project. But could you also show me how to debug these warning, I was referring to C28x EABI Migration guide but couldn't find something.
Thanks,
Gurusha
Gurusha,
I will pass that feedback on to the compiler team.
Thanks,
Sira
The warnings occur because those sections .bss etc. aren't assigned to MEMORY SECTIONS in your linker cmd file.
Hi Sira,
Yes got it! Thanks.
But my major concern is I am using the same process to create a flash run time library, which I am actually reusing a set of source files that I have used in my last project with the COFF abi output file.
Now I am using the same files compiled in an ELF version, it is giving me some sort of errors because I couldn't perform the CCS build and debug settings like you have suggested to me in this post.
I have also referred Migration from COFF abi to ELF but that document also couldn't be helpful.
Can you suggest me some document or general settings for CCS?
Thanks in advance.
Gurusha,
I will move this post to another team that can help you better.
Thanks,
Sira
gurusha nahar said:Now I am using the same files compiled in an ELF version, it is giving me some sort of errors
Please show these error messages. Please rebuild the entire project. One way to do that is to right-click on the name of the project and select Rebuild Project. Then save the contents of the Console (not Problems) view to a text file. Use the icon named Copy Build Log. When you name the log file, be sure to use the file extension .txt. Please attach that text file to your next post.
Thanks and regards,
-George
Hi George,
These are the following source files I am using for my flash RTL library.
_lock.c |
args_main.c |
sqrt_f32.asm |
ll_aox28.asm |
ll_cmp28.asm |
ll_div28.asm |
ll_mpy28.asm |
log_f32.asm |
errno.c |
exit.c |
frexp.c |
atol.c |
ctype.c |
u_div28.asm |
div_f32.asm |
boot28.asm |
ctype.h |
errno.h |
While compiling them with my project I am getting the following errors, in the attached log.txt file.
**** Build of configuration Debug for project Project1 **** "C:\\ti\\ccs920\\ccs\\utils\\bin\\gmake" -k -j 8 all -O Building target: "Project1.out" Invoking: C2000 Linker "C:/ti/ccs920/ccs/tools/compiler/ti-cgt-c2000_20.2.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcu2 --fp_mode=relaxed --advice:performance=all --define=copy_decompress_lzss -g --c99 --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi -z -m"Project1.map" --stack_size=0x200 --warn_sections -i"C:/ti/ccs920/ccs/tools/compiler/ti-cgt-c2000_20.2.1.LTS/lib" -i"C:/ti/ccs920/ccs/tools/compiler/ti-cgt-c2000_20.2.1.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="Project1_linkInfo.xml" --cinit_compression=off --copy_compression=lzss --rom_model -o "Project1.out" "./main.obj" "../2837x_RAM_lnk_cpu1.cmd" "../rts_TMS320F28388D_Flash.lib" "../rts_TMS320F28388D_RAM.lib" <Linking> warning #10440-D: creating output section ".bss" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at http://processors.wiki.ti.com/index.php/C28x_EABI:C28x_EABI_Migration#C6x_EABI_Sections warning #10440-D: creating output section ".const" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at http://processors.wiki.ti.com/index.php/C28x_EABI:C28x_EABI_Migration#C6x_EABI_Sections warning #10440-D: creating output section ".sysmem" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at http://processors.wiki.ti.com/index.php/C28x_EABI:C28x_EABI_Migration#C6x_EABI_Sections warning #10440-D: creating output section ".init_array" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at http://processors.wiki.ti.com/index.php/C28x_EABI:C28x_EABI_Migration#C6x_EABI_Sections warning #10247-D: creating output section ".data" without a SECTIONS specification undefined first referenced symbol in file --------- ---------------- __TI_auto_init ../rts_TMS320F28388D_Flash.lib<boot28.obj> __TI_decompress_none _system_pre_init ../rts_TMS320F28388D_Flash.lib<boot28.obj> error #10234-D: unresolved symbols remain error #10010: errors encountered during linking; "Project1.out" not built >> Compilation failure makefile:142: recipe for target 'Project1.out' failed gmake[1]: *** [Project1.out] Error 1 makefile:138: recipe for target 'all' failed gmake: *** [all] Error 2 **** Build Finished ****
Thanks
Regards,
Gurusha
Thank you for submitting the build log. It contains 4 diagnostics similar to this one ...
warning #10440-D: creating output section ".bss" without a SECTIONS specification
This diagnostic is discussed in the EABI Sections part of the larger article C2000 Migration from COFF to EABI. In brief, the linker command file needs to change the output section name .ebss to .bss.
Regarding this diagnostic ...
undefined first referenced symbol in file --------- ---------------- __TI_auto_init ../rts_TMS320F28388D_Flash.lib<boot28.obj> __TI_decompress_none _system_pre_init ../rts_TMS320F28388D_Flash.lib<boot28.obj> error #10234-D: unresolved symbols remain
This is discussed in the COFF Underscore Name Mangling part of the same article. In brief, remove the first underscore character in those symbol names.
Thanks and regards,
-George
This linker diagnostic in the log file you submitted ...
warning #10440-D: creating output section ".bss" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at processors.wiki.ti.com/.../C28x_EABI:C28x_EABI_Migration
... contains an invalid web link. I filed the entry EXT_EP-9916 to have this fixed. You are welcome to follow it with the link below in my signature.
Thanks and regards,
-George
Regarding ...
George Mock said:This linker diagnostic in the log file you submitted ...
warning #10440-D: creating output section ".bss" without a SECTIONS specification. For additional information on this section, please see the 'C28x EABI Migration' guide at processors.wiki.ti.com/.../C28x_EABI:C28x_EABI_Migration... contains an invalid web link. I filed the entry EXT_EP-9916 to have this fixed.
A similar entry had already been filed. The ID is EXT_EP-9926. Please track this entry instead of the earlier one. You will see that a fix will be available in these future releases: 18.12.6.LTS and 20.2.2.LTS.
Thanks and regards,
-George
Hi George,
I couldn't find the entry link.
Could you please help me to find the link please.
Regards,
Gurusha
gurusha nahar said:help me to find the link please.
https://sir.ext.ti.com/jira/browse/EXT_EP-9926
Thanks and regards,
-George