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.

Compiler/MSP430FR6989: MSP430FR6989 compiler warnings

Part Number: MSP430FR6989

Tool/software: TI C/C++ Compiler

Team,
my customer is getting the following warnings when compiling their MSP430FR6989 project:

Warning #1
Description Resource Path Location Type
#10229-D output section ".rts430x.data" refers to load symbol "_nop" and hence cannot be compressed; compression "rle" is ignored nonLegalFirmwareVersion.c /project/nonLegalRelevant/app/nonLegalFirmwareVersion/src C/C++ Problem

Do you have any hint where this warning comes from?
The referred file (very simple) does not seem to have any failures.


Warning #2
Description Resource Path Location Type
<a href="processors.wiki.ti.com/.../10420">  For FRAM devices, at start up, the GPIO power-on default high-impedance mode needs to be disabled to activate previously configured port settings. This can be done by clearing the LOCKLPM5 bit in PM5CTL0 register. nonLegalFirmwareVersion.c /project/nonLegalRelevant/app/nonLegalFirmwareVersion/src C/C++ Problem

They do not use the MSP430 header, so the symbol is not defined. However, they do configure the port in a different way.

Thanks and best regards!

  • Regarding ...

    FRAMziskus said:
    #10229-D output section ".rts430x.data" refers to load symbol "_nop" and hence cannot be compressed; compression "rle" is ignored

    You can probably ignore this one.  It means the output section rts430x.data is larger than it could be.  Otherwise, it will work with no problems.  If you have enough memory, then there is no reason to pursue it.

    It is likely that the output section .rts430x.data and whatever output section defines the symbol _nop (probably .text) are in the same GROUP.  Therefore, one solution is to move .rts430x.data outside the GROUP.  This change is implemented in the linker command file.  For general background on the linker command file, please see the wiki article Linker Command File Primer.

    For full background on this issue, please see this forum thread.  Fair warning: It is a long and detailed read.

    Regarding ...

    FRAMziskus said:
    For FRAM devices, at start up, the GPIO power-on default high-impedance mode needs to be disabled to activate previously configured port settings.

    Please see the discussion in this forum thread.

    Thanks and regards,

    -George

  • George Mock said:
    For full background on this issue, please see this forum thread.  Fair warning: It is a long and detailed read.

    The short version: do not put .cinit in a group with section ".rts430x.data" and you won't get the warning

  • thanks for the answers to all! My problem is, that they are not grouped already:

    /****************************************************************************/
    /*	SYSTEM MEMORY-SEGMENTS 								    */
    /****************************************************************************/
    	GROUP(SYSTEM_MEMORY_VOLATILE): ALIGN(0x0040)
    	{
    		.TI.persistent : {}                  								/* For #pragma persistent            */
    		.cio        : {}                   									/* C I/O BUFFER                      */
    		.sysmem     : {}                   									/* DYNAMIC MEMORY ALLOCATION AREA    */
    		.rts430x.data : {rts*.lib<*.obj>(.bss), rts*.lib<*.obj>(.data)	}	/*RTS430x Runtime-Library 			 */
    						/*rts*.lib<*.obj>(.data)}		 RTS430x Runtime-Library 			 */
    	} > VARS_SYSTEM
    
    	GROUP(SYSTEM_MEMORY_NONVOLATILE): ALIGN(0x0040)
    	{
    		.cinit      : {}                   			/* INITIALIZATION TABLES             */
    		.pinit      : {}                   			/* C++ CONSTRUCTOR TABLES            */
    		.init_array : {}                   			/* C++ CONSTRUCTOR TABLES            */
    		.mspabi.exidx : {}                 			/* C++ CONSTRUCTOR TABLES            */
    		.mspabi.extab : {}                 			/* C++ CONSTRUCTOR TABLES            */
    		.rts430x.code : {rts*.lib<*.obj>(.text)	}	/* RTS430x Runtime-Library 			 */
    		.text:_system_pre_init {}					/* System-Pre-Init-Function 		 */
    
    	} > CODE_SYSTEM
    
    	GROUP(FORBIDDEN_MEMORY_VOLATILE) :
    	{
    		.bss        : {}							/* GLOBAL & STATIC VARS              */
    		.data       : {}							/* GLOBAL & STATIC VARS              */
    
    	} > VARS_FORBIDDEN
    
    	GROUP(FORBIDDEN_MEMORY_NONVOLATILE) :
    	{
    	    .text       : {}                   			/* CODE      					 	 */
          	.const      : {}                   			/* CONSTANT DATA                  	 */
    
    	} > CODE_FORBIDDEN
    
        .TI.noinit  : {} > RAM                 			/* For #pragma noinit                */
    	.stack      : {} > RAM (HIGH)        			/* SOFTWARE SYSTEM STACK             */
    
        .info       : {} > INFO              			/* MSP430 INFO FRAM  MEMORY SEGMENTS */
    

  • Team,

    can you comment the input by tunguskar?

    Thanks!

  • Okay, in this case the short answer is that you're grouping .cinit with rts*.lib<*.obj>(.text). Put in anywhere else but in that group.