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.
First of all :TI team thank you for supporting linux for the msp430 its a great improvement ...please don't see it as linux users are hackers as that is also a wrong image from the past ....
I know ccs5.2 linux is only a beta release, that's why its important to report any difficulties . The installation wend great no problems at all(i use kde4) as long as ia32 package is installed for 64 bit cpu's.
By my first testrun with msp430g2553 example code msp430g2x33_adc10_temp.asm i got 14..17 linker errors
the first 14 are because of errors in the msp430g2553.cmd linker command file line 77... PORT1 .....int.. is not defined, this simply solved by copy the msp430g2553.cmd file from the windows version to the linux version
the remaining errors are more nasty as i have no idea how or where to solve it
**** Build of configuration Debug for project adc10 internal temperature measurement ****
/opt/ti/ccsv5/utils/bin/gmake -k all
Building target: adc10 internal temperature measurement.out
Invoking: MSP430 Linker
"/opt/ti/ccsv5/tools/compiler/msp430/bin/cl430" -vmsp --abi=eabi -g --define=__MSP430G2553__ --diag_warning=225 --display_error_number --diag_wrap=off --printf_support=minimal --advice:power=all -z --stack_size=0 -m"adc10 internal temperature measurement.map" --heap_size=0 -i"/opt/ti/ccsv5/ccs_base/msp430/include" -i"/opt/ti/ccsv5/tools/compiler/msp430/lib" -i"/opt/ti/ccsv5/tools/compiler/msp430/include" --reread_libs --warn_sections -o "adc10 internal temperature measurement.out" "./msp430g2x53_adc10_temp.obj" "../lnk_msp430g2553.cmd"
<Linking>
error #10198-D: no input section is linked in
>> Compilation failure
warning #10202-D: no suitable entry-point found; setting to 0
error #10010: errors encountered during linking; "adc10 internal temperature measurement.out" not built
gmake: *** [adc10 internal temperature measurement.out] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
Hello,
as a first few things to check and an important note for you as a linux user. At this time, only the USB FET is supported with Linux.
- how did you import/create the example? Are you working with an assembly only project? If so, did you create this as an assembly only project?
- did you first try fixing the not defined errors by checking the include paths?
http://processors.wiki.ti.com/index.php/Include_paths_and_options
If you can give me some further details, what I can do is see if I can reproduce this on my installation.
Best Regards,
Lisa
Hello again,
I have given the example you mentioned a try and could build it with no errors, just a few warnings.
I had to do the following
- add the file to an empty assembly only project
- in the project properties change from ELF to COFF
Then everything should work. Please do this and I suspect you will find the same. With ELF I was reproducing the error you also were seeing. Please keep us informed.
Best Regards,
Lisa
Ms Lisa,
First thank you for your replay
Of course i could not test the programmer, as linking failed, so no build generated .To create the example i use create empty assembly only project, then add file and use copy, not link .
The project is an elf type, not legendary cops, as i verified the project properties. the above link ...path_and_options....seems about arm processors and windows ( as you know in linux there are no C: drives......)
will it be helpful for you if i put the whole project in a zip file and post it here ? do you need additional files?
With the linker error messages...as "no input defined" i had no clue where to search ..
hopefully i can figure out more this night.
Best regards from Saigon
Hello,
you will not need anything to get this to work.
Simply.
1 - create a new assembly only project and do not use the windows linker command file like you tried.
2 - change from ELF to COFF
You will now have no problems.
Please keep us informed.
Best Regards,
Lisa
a.a.j.m. zopfi said:With the linker error messages...as "no input defined" i had no clue where to search ..
The reason this message appears is because you are building a project of ELF type and have only one assembly source file in your project that does not have any "referenced" sections. This is a fundamental difference between COFF and ELF. In ELF, all sections are eligible for removal via conditional linking meaning that they will be removed if they are not referenced. If a section needs to be retained, the user must make sure that they are explicitly retained.
This would not be an issue with most C projects, as there is an entry point (defined by the C runtime library) which in turn calls main, and so sections will be pulled into the link. In the case of a single assembly source file, this is not the case, hence the error you are seeing.
Some background info on this is available here: http://processors.wiki.ti.com/index.php/C6000_EABI_Migration#Conditional_Linking_Feature
This page was written for the C6000 tools but how the ELF/EABI feature works is the same for other devices as well.
To get rid of the error, add the .retain directive to the assembly source file.
.cdecls C,LIST, "msp430x20x2.h"
.retain
;------------------------------------------------------------------------------
.text ; Progam Start
;------------------------------------------------------------------------------
Also, as Lisa mentioned, if you are ok building for COFF instead of ELF, it should build without any modifications.
Hello,
In regards to the entry point warning for ELF asm projects, please try the following two updates in your CCS project:
1) Update your asm file to include this line where RESET is the reset vector label name
.global RESET ; define entry point
2) Next update CCS project linker options to indicate the --entry_point as RESET
Regards,
Greg
We have created processorwiki articles for both diagnostics encountered in this article.
Above articles cover all the fixes in this thread as well as adding a missing item of using .retainrefs where above thread indicated to use .retain. This allows ELF projects to build successfully. See above links for details.
Greg