Typical message

 warning #10202-D: no suitable entry-point found; setting to 0

What it means

The linker has not found any entry points.

Why is it happening

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.

Some background info on this is available here: https://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.


How to set the entry point (example for assembly only project):

  1. Update your assembly file to include below line where RESET is the reset vector label name
 .cdecls C,LIST,  "msp430x20x2.h"
            .text                           ; Program Start
            .global RESET                   ; Define entry point
RESET       mov.w   #0280h,SP               ; Initialize stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
SetupP1     bis.b   #001h,&P1DIR            ; P1.0 output
Mainloop    bit.b   #010h,&P1IN             ;
;  skipped lines of code 
;           Interrupt Vectors
            .sect   ".reset"                ; MSP430 RESET Vector
            .short  RESET
  1. Next update CCS project linker options to indicate the --entry_point as RESET


NOTE: After doing above, if your application fails to load and debug then you may be experiencing bug SDSCM00043978. Setting the entry point should retain both .text and .reset sections, however for this bug, the .reset section is not being retained.

To work around this bug, see the remedy here.

Risks, Severity

An executable will not be created until this error is resolved.

E2e.jpg For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Compiler/diagnostic messages/10202 here.