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 Warning #10083-D LOAD placement ignored for "SIGNATURE_MEMORY": object is uninitialized

Other Parts Discussed in Thread: MSP430FR5739

Hi all!  I'm getting started with a project on the MSP430FR5739, and I'm getting an unfamiliar compiler warning.  The warning shows that this issue is coming from the header file of my microcontroller (msp430fr5739.h).  This is the compiler warning:

#10083-D LOAD placement ignored for "SIGNATURE_MEMORY":  object is uninitialized

Even though the warning comes from outside my code, I've posted a simplified version of my code below.

#include <msp430.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>


/*
 * main.c
 */
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;	// Stop watchdog timer

	/*************CLOCK INITIALIZER*************/
	//Writes password to enable CS register access
	CSCTL0_H = 0xA5;

	//Set max. DCO setting to 24MHz
	CSCTL1 |= DCOFSEL0 + DCOFSEL1 + DCORSEL;

	// Sets the MCLK source to DCOCLK,
	// the SMCLK source to DCOCLK,
	// and the ACLK source to VLOCLK
	CSCTL2 = SELM0 + SELM1 + SELS0 + SELS1 + SELA0;

	// Sets the MCLK clock divider to 0,
	// the SMCLK clock divider to 0,
	// and the ACLK clock divider to 0,
	CSCTL3 &= 0x00;

	// Enables conditional module requests for
	// MCLK, SMCLK, and ACLK
	CSCTL6 |= MCLKREQEN + SMCLKREQEN + ACLKREQEN;


	/*************TEMPRETURE SENSOR CONTROL*************/
	// Turn off temp sensor
	REFCTL0 |= REFTCOFF;
	REFCTL0 &= ~REFON;

	/*************CONFIGURE MPU*************/
	MPUCTL0 = MPUPW;                        // Write PWD to access MPU registers

	//Add any changes to the MPU here
	MPUSEG = 0x0804;                        // B1 = 0xC800; B2 = 0xD000
											// Borders are assigned to segments

	MPUCTL0 = MPUPW+MPUENA;                 // Enable MPU protection

	return 0;
}


// trap ISR assignment - put all unused ISR vector here
#pragma vector = PORT1_VECTOR, ADC10_VECTOR, PORT2_VECTOR, \
	TIMER0_A0_VECTOR, TIMER0_A1_VECTOR, WDT_VECTOR, COMP_D_VECTOR, \
	DMA_VECTOR,	PORT3_VECTOR, PORT4_VECTOR, RTC_VECTOR, \
	SYSNMI_VECTOR, TIMER0_B0_VECTOR, TIMER0_B1_VECTOR, \
	TIMER1_A0_VECTOR, TIMER1_A1_VECTOR, TIMER1_B0_VECTOR, \
	TIMER1_B1_VECTOR, TIMER2_B0_VECTOR, TIMER2_B1_VECTOR, \
	UNMI_VECTOR, USCI_A1_VECTOR, USCI_B0_VECTOR, USCI_A0_VECTOR
__interrupt void TrapIsr(void)
{
  // this is a trap ISR - check for the interrupt cause here by
  // checking the interrupt flags, if necessary also clear the interrupt
  // flag
}

The good news is that it doesn't seem to cause any issues when I'm actually running the code (even when I add simple toggle-pin functions).  However, I would like to know what this compiler warning actually means and, if possible, fix this issue.  Any suggestions?

  • What version of CCS are you using?

    Are you sure the warning message isn't coming from the linker command file msp430fr5739.cmd?

  • Archaeologist said:
    What version of CCS are you using?

    I'm using Code Composer Studio Version: 5.5.0.00077. I should have put that in the first message (sorry about that).

    Archaeologist said:
    Are you sure the warning message isn't coming from the linker command file msp430fr5739.cmd?

    Actually, it looks like it is.  I made the mistake of just double clicking the message, and it went straight to the header file.  Once again, my mistake for overlooking that.  However, I'm still not sure what the problem is, and how I can (or can't) fix it.

  • dauletle said:
    #10083-D LOAD placement ignored for "SIGNATURE_MEMORY": object is uninitialized

    I can explain the proximate cause of this error.  I cannot tell you the best way to fix it.

    A line in the SECTIONS directive of the linker command file is similar to this ...

        SIGNATURE_MEMORY {} load = SLOW_MEMORY, run = FAST_MEMORY

    That line says to form the output section SIGNATURE_MEMORY from all the input sections also named SIGNATURE_MEMORY.  It is loaded to the memory range named SLOW_MEMORY.  Sometime after the system starts running, but before anything in SIGNATURE_MEMORY is used, it is copied from SLOW_MEMORY to FAST_MEMORY.  However, SIGNATURE_MEMORY is an uninitialized section (like .stack or .sysmem).  Uninitialized sections have no contents at build time.  There is nothing to load.  It makes no sense to have a load address.  Thus the diagnostic is issued.

    One possible fix is to remove the "load =" part.  But why is SIGNATURE_MEMORY uninitialized?  That could be the error.

    Thanks and regards,

    -George

  • George Mock said:
    One possible fix is to remove the "load =" part.  But why is SIGNATURE_MEMORY uninitialized?  That could be the error.

    In the default /lnk_msp430fr5739.cmd in CCS 5.5 the SIGNATURE memory area is:
      SIGNATURE : origin = 0xFF80, length = 0x0010, fill = 0xFFFF
    and the SIGNATURE_MEMORY GROUP is
    GROUP(SIGNATURE_MEMORY): /* MSP430 SIGNATURE MEMORY */
    {
    .jtagsignature : palign(4) {} /* JTAG SIGNATURE */
    .bslsignature : palign(4) {} /* BSL SIGNATURE */

    .jtagpassword /* JTAG PASSWORD */

      } > SIGNATURE
    I haven't (yet) found a definitive definition of the SIGNATURE memory area, but based on some other forum posts think that if you program the SIGNATURE memory area to other than the default fill ox 0xffff you may no longer be able to access the MSP430 device via JTAG or BSL.

    Maybe the MSP430 forum is the place to get a definitive answer?

  • Chester Gillon said:
    the SIGNATURE_MEMORY GROUP is

    None of the lnk_msp430fr5739.cmd files in my installation of CCS 5.5 have a group named SIGNATURE_MEMORY.  I agree that the warning can probably be ignored.  Still, this is an indication of a problem in the linker, and I'd appreciate if you could send your project so we can reproduce the error.

    Chester Gillon said:
    if you program the SIGNATURE memory area to other than the default fill ox 0xffff you may no longer be able to access the MSP430 device via JTAG or BSL.

    We who watch this forum are unable to answer detailed questions about the device.  Please start a new thread in the MSP430 forum.

    Thanks and regards,

    -George

  • Thanks everyone for all the help.  I've moved the discussion to the MSP430 forum.  The link is below for those who are interested.

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/319648.aspx