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.

CCSv4 beginner -- error with rts430.lib<boot.obj>

 

I cannot figure out what the following error message means.  rts430.lib is meaningless to me and I can't find anything documented on it.

CCSv4 will not show me what line number is causing this error, so I'm totally lost.

 undefined first referenced                                                                            
  symbol       in file                                                                                 
 --------- ----------------                                                                            
 main      C:\Program Files (x86)\Texas Instruments\ccsv4\tools\compiler\msp430\lib\rts430.lib<boot.obj>

error: unresolved symbols remain
error: errors encountered during linking; "hello2.out" not built

>> Compilation failure
gmake: *** [hello2.out] Error 1
gmake: Target `all' not remade because of errors.
Build complete for project hello2

 

 

  • rts430.lib is where the target-side runtime library resides. When you load a program that uses rts430.lib, execution usually starts at the library's entry point (_c_int00) and branches to "main" after things are been initialized.

    The error message means you are trying to link with rts430.lib, but your program has not defined a "main" for the library to branch to.

  • Andy,

    Thank you for your response.  I believe my trouble relates to the fact that I am trying to _only_ program my Blinking LED program in assembly.  IE I don't have a main, because I don't have any C in this very very simple assembly program.

    What are the steps I need to take to force CCS to work as an assembly-only project? 

    Specifically, I don't have a main because  I'm using like ten lines of assembly to write  the program.

  • Phil,

    In this case you should remove the library from your project as it is only needed for C projects. 

    If you are using CCSv4.1.3 or newer you can create a project from scratch and use the template for an assembly-only project (check step 6 of the section Creating Projects of the CCSv4 Getting Started Guide).

    To help you starting with assembly language each device family has code examples available for download in the device page - the source code there can be directly included in the CCSv4 projects (including the assembly source files).

    Hope this helps,

    Rafael

  • Phil,

    Just as a starting point, please check attached an assembly-only blink-LED project I created for the F5438 using the templates.

    Hope this helps,

    Rafael

    F5438_asm.zip
  • Phil,

    Just to add to Rafael's reply, you need to specify that the project is "Assembly-only" when you create it, otherwise you will still get errors. In newer versions of CCS, it is selected as a project template within the New Project wizard as mentioned by Rafael. In older versions of CCS4, there is a check-box in one of the steps of the project wizard to tell it that it is a Assembly-only project.

  • desouza said:

     assembly-only project (check step 6 of the section Creating Projects of the CCSv4 Getting Started Guide).

    The Getting Started Guide (step 5, figure 6) of http://processors.wiki.ti.com/index.php/GSG:Creating_projects

    lists the assembly-only option  in the tutorial ... But,  unfortunately there is no option available on that screen.  Where is it in CCSv4?

    Also, the simple template file (hello world) generates a C program -- I need an assembly only template.

    (using 4.2.1.xx04)

    Thank you for your help.

  •  

    There is some apparent documentation error.  The Code Composer Studio 4.2 Guide for MSP430 also says the same thing as you have (above) ... but there appears to be no place to check off an "assembly only" option.

     

    There must be  a way to make a project assembly only when in a project in CCS?  Can you give me some direction on where to look for this?

  • In CCS 4.2.1, there is no check-box to say it is Assembly only project, instead you pick "Empty Assembly-only Project" from the Project Templates step of the Project Wizard (step 6.2 of http://processors.wiki.ti.com/index.php/GSG:Creating_projects)

    The two screenshots below show the steps in the New CCS Project wizard.

     

     

    If the project had already been created as a C project (ie without selecting the "Empty Assembly-only Project" template, then there is no way to convert it to an assembly-only project. You would need to re-create a new project.

    Hope this helps.