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.

CCS/MSP-EXP432P401R: ULP advices (ULP1.1 and ULP4.1) has been reported even my code are already use LMP0 mode (ULP1.1) and initialized all unused pins (ULP4.1)

Part Number: MSP-EXP432P401R

Tool/software: Code Composer Studio

Hi everyone,

I'm developing an application using the MSP-EXP432P401R launch pad using the lastest version of CCS (7.2.0.00013).

After building the project, CCS gives me some ULP advices which are ULP1.1 and ULP4.1:

ULP1.1:

Low power mode (LPM) usage is highly recommended. One of the necessary steps to achieve low power consumption in an MSP430 application is to minimize the time spent active mode and maximize the time in low power modes. Peripherals can be configured to operate without CPU intervention and the CPU only needs to wake up to perform critical tasks and quickly return to low power mode. (processors.wiki.ti.com/.../10371)

ULP4.1:

When an unused port pin is left undefined or non-terminated, the floating voltage or shoot-through current on the pin can increase the overall current consumption. (http://processors.wiki.ti.com/index.php/Compiler/diagnostic_messages/MSP430/10372)

But I already followed those rules by implementing the following lines of code:

For ULP1.1:

/*
 * Run the main application
 */
void App_Main_Run(void)
{
    while (1)
    {
        /* Go to sleep */
        MAP_PCM_gotoLPM0();
    }
}

For ULP4.1:

/*
 * Initialize GPIOs
 */
void GPIO_Init(void)
{
    MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P3, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P3, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P4, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P4, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P5, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P5, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P6, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P6, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P7, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P7, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P8, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P8, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P9, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P9, PIN_ALL16);

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P10, PIN_ALL16);
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P10, PIN_ALL16);
}

My schedule for calling those functions:

In main.c

/*
 * Main function
 */
int main(void)
{
    /* Halts the watch dog timer*/
    MAP_WDT_A_holdTimer();

    /* Disables master interrupt */
    MAP_Interrupt_disableMaster();

    /* Enables FPU with lazy stacking enabled for floating point operations in ISRs */
    MAP_FPU_enableModule();
    MAP_FPU_enableLazyStacking();

    /* Initializes system clock and GPIO pins */
    Clock_Init();
    GPIO_Init();

    /* Enables sleeping on ISR exits and enables master interrupt */
    MAP_Interrupt_enableSleepOnIsrExit();
    MAP_Interrupt_enableMaster();

    /* Run the application */
    Apps_Run();

    return 1;
}

In applications.c

/*
 * Run the application
 */
void Apps_Run(void)
{
    /* Run the main application first */
    App_Main_Init();
    App_Main_Run();
}

- In app_main.c

/*
 * Run the main application
 */
void App_Main_Run(void)
{
    while (1)
    {
        /* Go to sleep */
        MAP_PCM_gotoLPM0();
    }
}

Is anyone has experience in this situation? Help me please.

Thanks in advanced.