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.

Old code does not compile with latest CCS and MSPWare versions for MSP432 platform

Other Parts Discussed in Thread: MSPWARE, TEST2, MSP432WARE

Hello, 

I am a teaching assistant for a course in which we use the TI MSP432P401R LaunchPad at the Georgia Institute of Technology, Atlanta GA. Back in January 2016, when I took the course, we used CCS version 6.1.2.00015 and MSPWare version 2_20_00_19 which has driverlib.h version 2_20_00_08 

The problem with using this version of CCS was that it was not MacOS compatible and students with Mac laptops had to use lab computers. Therefore, we have decided to use CCS version 6.1.3.00033 as it is both MacOS compatible and it supports MSP432 platform.

However, my code does not compile when I use CCS version 6.1.3.00033 and MSPWare version 2_20_00_19 which has driverlib.h version 2_20_00_08. The reason I am using the older version of driverlib is because the MACROS have changed in recent versions as compared to what I had learnt in Spring.

We would like to stick with the old MACROS but use a MacOS compatible version of CCS. Please guide me if there is a solution for that. 

I get the following error messages in my console, when I try to flash a program onto the MSP432 launchpad:-

 

**** Build of configuration Debug for project test2 ****

"C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
'Building file: ../main.c'
'Invoking: MSP432 Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/ccs_base/arm/include" --include_path="C:/ti/ccsv6/ccs_base/arm/include/CMSIS" --include_path="C:/Users/Marcus/workspace_v6_1_3/test2/driverlib/MSP432P4xx" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="main.d" "../main.c"

>> Compilation failure
subdir_rules.mk:7: recipe for target 'main.obj' failed
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 76: warning #48-D: incompatible redefinition of macro "P1MAP" (declared at line 1286 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 77: warning #48-D: incompatible redefinition of macro "P2MAP" (declared at line 1287 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 78: warning #48-D: incompatible redefinition of macro "P3MAP" (declared at line 1288 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 79: warning #48-D: incompatible redefinition of macro "P4MAP" (declared at line 1289 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 80: warning #48-D: incompatible redefinition of macro "P5MAP" (declared at line 1290 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 81: warning #48-D: incompatible redefinition of macro "P6MAP" (declared at line 1291 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"C:\Users\Marcus\workspace_v6_1_3\test2\driverlib\MSP432P4xx\pmap.h", line 82: warning #48-D: incompatible redefinition of macro "P7MAP" (declared at line 1292 of "C:\ti\ccsv6\ccs_base\arm\include\msp432p401r.h")
"../main.c", line 47: error #20: identifier "SMCLK_EN" is undefined
"../main.c", line 47: error #20: identifier "SELM_3" is undefined
"../main.c", line 47: error #20: identifier "DIVS_0" is undefined
"../main.c", line 66: error #20: identifier "EUSCI_A0_MODULE" is undefined
"../main.c", line 72: error #20: identifier "TIMER_A0_MODULE" is undefined
"../main.c", line 74: error #20: identifier "INT_TA0_0" is undefined
"../main.c", line 80: error #20: identifier "ADC14RES_1" is undefined
"../main.c", line 81: error #20: identifier "ADC14SSEL_4" is undefined
"../main.c", line 81: error #20: identifier "ADC14PDIV_0" is undefined
"../main.c", line 81: error #20: identifier "ADC14DIV_0" is undefined
"../main.c", line 83: error #20: identifier "ADC14VRSEL_0" is undefined
"../main.c", line 83: error #20: identifier "ADC14INCH_0" is undefined
"../main.c", line 130: remark #1528-D: (ULP 3.1) Detected flag polling using UCA0IFG. Recommend using an interrupt combined with enter LPMx and ISR
"../main.c", line 113: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 113: remark #1532-D: (ULP 5.3) Detected sprintf() operation(s). Recommend moving them to RAM during run time or not using as these are processing/power intensive
"../main.c", line 115: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 110: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 113: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 115: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 110: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
"../main.c", line 183: error #20: identifier "TIMER_A0_MODULE" is undefined
"../main.c", line 175: remark #1527-D: (ULP 2.1) Detected SW delay loop using empty loop. Recommend using a timer module instead
13 errors detected in the compilation of "../main.c".
gmake: *** [main.obj] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

Thanks, 
Marcus Pereira 

email: mpereira30@gatech.edu 

  • Hi Marcus,

    Unfortunately, there is not an easy way to accomplish this. Also just FYI, if you install the latest updates for CCS version 6.1.2.00015 you will run into the same issue.

    So I would recommend to migrate your project to the latest MSPWare version and I'll be more than happy to help you with this migration.

    Please let me know if you do not want to share your project through e2e.

    Regards,

    David
  • Hello David, 

    Thanks for getting back to me so quickly. Yes, I would like your help and guidance in migrating to the latest versions of CCS and MSPWare for the MSP432 platform. I tried to do this few weeks back, but I got compilation errors stating that certain MACROs had changed. Then I tried changing those particular MACROs as per those mentioned in the latest driverlib.h file, but that didn't help as I ended up getting new errors such as it could not source the msp.h file

    Should I just post the main.c file here or do you need something else? 

    Thanks,

    Marcus Pereira 

  • Hello Marcus,

    Yes you can post/attach it here.

    Regards,

    David
  • Hi David, 

    Here is the source code :

    #include "driverlib.h"
    #include "msp432p401r.h"

    volatile char storebuf[200]; // Buffer to hold characters from Putty terminal
    volatile int i = 0; // index for the character buffer

    int main(void)
    {
    WDT_A_holdTimer(); // stop the watchdog timer

    // Configure Pin P1.0 (red LED) LED1 as an output pin
    MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0) ;
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
    // Configure Pins P1.2 and P1.3 for UART for receive and transmit
    //MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);

    // Set DCO frequency and using the sub-systems master clock source:
    unsigned int dcoFrequency = 3E+6;
    MAP_CS_setDCOFrequency(dcoFrequency);
    MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);


    // Configure the UART:
    const eUSCI_UART_Config uartConfig =
    {
    EUSCI_A_UART_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
    // Configuration parameters for 9600 baud rate:-
    19, // clockPrescalar
    8, // firstModReg
    85, // secondModReg
    EUSCI_A_UART_NO_PARITY, // No Parity
    EUSCI_A_UART_LSB_FIRST, // LSB First
    EUSCI_A_UART_ONE_STOP_BIT, // One stop bit
    EUSCI_A_UART_MODE, // UART mode
    1// Oversampling
    };

    //Configuring UART Module
    MAP_UART_initModule(EUSCI_A0_MODULE, &uartConfig);
    //Enable UART module
    MAP_UART_enableModule(EUSCI_A0_MODULE);
    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,GPIO_PIN2|GPIO_PIN3,GPIO_PRIMARY_MODULE_FUNCTION);


    // Interrupt configuration
    MAP_Interrupt_disableMaster(); // 1. Disable all interrupts
    MAP_UART_clearInterruptFlag(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT); // 2. Clear bit 0 of UCA0IFG i.e. RXIFG
    MAP_UART_enableInterrupt(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT); // 3. Arm UART interrupt to trigger when RXIFG is set
    MAP_Interrupt_setPriority(INT_EUSCIA0, 0); // 4. Set EUSCIA0 interrupt priority (highest priority)
    MAP_Interrupt_enableInterrupt(INT_EUSCIA0); // 5. Enable EUSCIA0 interrupt in NVIC
    MAP_Interrupt_enableMaster(); // 6. Enable all interrupts

    while(1)
    {
    PCM_gotoLPM0InterruptSafe();
    }

    }

    // Interrupt Service Routine
    void EUSCIA0_IRQHandler(void)
    {
    // Whenever data bits are received, red LED-1 will glow
    MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);

    uint8_t temp; // temporary local variable to store the byte available in the UCA0RXBUF register
    temp = UART_receiveData(EUSCI_A0_MODULE);


    if (temp == 0xD) // Check if "enter key" is pressed, if YES, store it into the buffer along with a newline character
    {
    storebuf[i] = temp;
    i++;
    storebuf[i] = 0xA; // store new-line character at end of buffer

    // Now transmit data to screen:-
    int j;
    for(j=0;j<=i;j++)
    {
    if((UCA0IFG & 0x0002) == 0x0002) // Condition for TXIFG to be set => TXBUF is empty
    {
    UART_transmitData(EUSCI_A0_MODULE, storebuf[j]);
    }
    else if((UCA0IFG & 0x0002) == 0x0000) // Condition for TXIFG to be reset => TXBUF is still full
    {
    while ((UCA0IFG & 0x0002) == 0x0000) // Polling the TXIFG flag bit
    {
    if((UCA0IFG & 0x0002) == 0x0002) // Stop polling once UCA0TXBUF is empty
    {
    break;
    }
    }
    UART_transmitData(EUSCI_A0_MODULE, storebuf[j]);
    }
    }

    i = 0; // Reset the data buffer index
    for(j=0;j<=199;j++) {storebuf[j]= 0x20;} // Clear out the entire buffer by storing it with black spaces (hex equivalent of SPACE)

    // Turn-off LED1
    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
    }
    else
    {
    storebuf[i] = temp;
    i++;
    }
    // Clear bit 0 of UCA0IFG i.e. RXIFG
    UART_clearInterruptFlag(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT);
    }

    I am also attaching the main.c file here 

    Thanks, 

    Marcus Pereira 

    3823.main.c
    // Lab-4 UART with Putty
    // Type-echo with COM3 (USB Port of Debugger)
    
    #include "driverlib.h"
    #include "msp432p401r.h"
    
    volatile char storebuf[200]; // Buffer to hold characters from Putty terminal
    volatile int i = 0; // index for the character buffer
    
    int main(void)
    {
        WDT_A_holdTimer(); // stop the watchdog timer
    
        // Configure Pin P1.0 (red LED) LED1 as an output pin
    	MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0) ;
    	MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
    	// Configure Pins P1.2 and P1.3 for UART for receive and transmit
    	//MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
    
    	// Set DCO frequency and using the sub-systems master clock source:
        unsigned int dcoFrequency = 3E+6;
        MAP_CS_setDCOFrequency(dcoFrequency);
        MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);
    
    
        // Configure the UART:
        const eUSCI_UART_Config uartConfig =
        {
        EUSCI_A_UART_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
    	// Configuration parameters for 9600 baud rate:-
    	19, // clockPrescalar
        8, // firstModReg
        85, // secondModReg
        EUSCI_A_UART_NO_PARITY, // No Parity
    	EUSCI_A_UART_LSB_FIRST, // LSB First
        EUSCI_A_UART_ONE_STOP_BIT, // One stop bit
        EUSCI_A_UART_MODE, // UART mode
        1// Oversampling
        };
    
       //Configuring UART Module
        MAP_UART_initModule(EUSCI_A0_MODULE, &uartConfig);
        //Enable UART module
        MAP_UART_enableModule(EUSCI_A0_MODULE);
        MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,GPIO_PIN2|GPIO_PIN3,GPIO_PRIMARY_MODULE_FUNCTION);
    
    
        // Interrupt configuration
        MAP_Interrupt_disableMaster(); 		// 1.  Disable all interrupts
        MAP_UART_clearInterruptFlag(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT);  	// 2.  Clear bit 0 of UCA0IFG i.e. RXIFG
        MAP_UART_enableInterrupt(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT);			// 3.  Arm UART interrupt to trigger when RXIFG is set
        MAP_Interrupt_setPriority(INT_EUSCIA0, 0);					// 4.  Set EUSCIA0 interrupt priority (highest priority)
        MAP_Interrupt_enableInterrupt(INT_EUSCIA0);					// 5.  Enable EUSCIA0 interrupt in NVIC
        MAP_Interrupt_enableMaster(); // 6. Enable all interrupts
    
        while(1)
        {
        	PCM_gotoLPM0InterruptSafe();
        }
    
    }
    
    // Interrupt Service Routine
    void EUSCIA0_IRQHandler(void)
    {
    	// Whenever data bits are received, red LED-1 will glow
    	MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
    
    	uint8_t temp; // temporary local variable to store the byte available in the UCA0RXBUF register
    	temp = UART_receiveData(EUSCI_A0_MODULE);
    
    
    	if (temp == 0xD) 	// Check if "enter key" is pressed, if YES, store it into the buffer along with a newline character
    	{
    		storebuf[i] = temp;
    		i++;
    		storebuf[i] = 0xA; // store new-line character at end of buffer
    
    		// Now transmit data to screen:-
    		int j;
    		for(j=0;j<=i;j++)
    		{
    			if((UCA0IFG & 0x0002) == 0x0002) // Condition for TXIFG to be set => TXBUF is empty
    			{
    				UART_transmitData(EUSCI_A0_MODULE, storebuf[j]);
    			}
    			else if((UCA0IFG & 0x0002) == 0x0000) // Condition for TXIFG to be reset => TXBUF is still full
    			{
    				while ((UCA0IFG & 0x0002) == 0x0000) // Polling the TXIFG flag bit
    				{
    					if((UCA0IFG & 0x0002) == 0x0002) // Stop polling once UCA0TXBUF is empty
    					{
    						break;
    					}
    				}
    				UART_transmitData(EUSCI_A0_MODULE, storebuf[j]);
    			}
    		}
    
    		i = 0; // Reset the data buffer index
    		for(j=0;j<=199;j++) {storebuf[j]= 0x20;} // Clear out the entire buffer by storing it with black spaces (hex equivalent of SPACE)
    
    		// Turn-off LED1
    		MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
    	}
    	else
    	{
    		storebuf[i] = temp;
    		i++;
    	}
    	// Clear bit 0 of UCA0IFG i.e. RXIFG
    	UART_clearInterruptFlag(EUSCI_A0_MODULE, EUSCI_A_UART_RECEIVE_INTERRUPT);
    }
    
    
    
    
    
    
    
    
    

  • Hi Marcus,

      Please find here the updated main.c file.

       Regards,

        David

  • Hey David,

    I am getting the same compilation errors I was getting earlier when I tried to use latest versions of CCS and MSPWare. I have the following versions installed currently : CCS 6.1.3.00033 and MSPWare 3_50_00_02

    This is what I get on my console, when I try to compile the update code you sent me:


    **** Build of configuration Debug for project test3 ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: ../main.c'
    'Invoking: MSP432 Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/ccs_base/arm/include" --include_path="C:/ti/msp/MSP432Ware_3_50_00_02/driverlib/driverlib/MSP432P4xx" --include_path="C:/ti/ccsv6/ccs_base/arm/include/CMSIS" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="main.d" "../main.c"
    "../main.c", line 89: remark #1528-D: (ULP 3.1) Detected flag polling using UCA0IFG. Recommend using an interrupt combined with enter LPMx and ISR
    'Finished building: ../main.c'
    ' '
    'Building file: ../startup_msp432p401r_ccs.c'
    'Invoking: MSP432 Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/ccs_base/arm/include" --include_path="C:/ti/msp/MSP432Ware_3_50_00_02/driverlib/driverlib/MSP432P4xx" --include_path="C:/ti/ccsv6/ccs_base/arm/include/CMSIS" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="startup_msp432p401r_ccs.d" "../startup_msp432p401r_ccs.c"
    'Finished building: ../startup_msp432p401r_ccs.c'
    ' '
    'Building file: ../system_msp432p401r.c'
    'Invoking: MSP432 Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/ccs_base/arm/include" --include_path="C:/ti/msp/MSP432Ware_3_50_00_02/driverlib/driverlib/MSP432P4xx" --include_path="C:/ti/ccsv6/ccs_base/arm/include/CMSIS" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="system_msp432p401r.d" "../system_msp432p401r.c"
    "../system_msp432p401r.c", line 112: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
    "../system_msp432p401r.c", line 160: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
    "../system_msp432p401r.c", line 193: remark #2623-D: (ULP 5.4) Detected an assignment to a type with size less than int. To avoid unnecessary sign extension, use int-sized types for local varaibles and convert to smaller types for static storage.
    'Finished building: ../system_msp432p401r.c'
    ' '
    'Building target: test3.out'
    'Invoking: MSP432 Linker'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi -z -m"test3.map" --stack_size=512 --heap_size=1024 -i"C:/ti/ccsv6/ccs_base/arm/include" -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/lib" -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" --reread_libs --display_error_number --warn_sections --diag_wrap=off --xml_link_info="test3_linkInfo.xml" --rom_model -o "test3.out" "./main.obj" "./startup_msp432p401r_ccs.obj" "./system_msp432p401r.obj" "../msp432p401r.cmd" -llibc.a
    <Linking>

    remark #10371-D: (ULP 1.1) Detected no uses of low power mode state changing instructions
    undefined first referenced
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 1 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 2 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 3 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 4 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 5 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 6 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 7 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 8 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 9 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.
    remark #10372-D: (ULP 4.1) Detected uninitialized Port 10 in this project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins.

    >> Compilation failure
    makefile:142: recipe for target 'test3.out' failed
    symbol in file
    --------- ----------------
    PCM_gotoLPM0InterruptSafe ./main.obj
    UART_clearInterruptFlag ./main.obj
    UART_receiveData ./main.obj
    UART_transmitData ./main.obj
    WDT_A_holdTimer ./main.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "test3.out" not built
    gmake: *** [test3.out] Error 1
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****
  • Hi Marcus,

     That's interesting. Could please import the attached project and let me know if you run into the same issues??

      Regards,

       David

    e2e_project.zip

  • Hello David, 

    I created an empty project in CCS and copied the files of the project you sent me into that empty project. I different compilation errors now. Here are the console messages:-


    **** Clean-only build of configuration Debug for project test2 ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k clean
    DEL /F "e2e_project.out" "e2e_project.hex"
    DEL /F "main.d" "startup_msp432p401r_ccs.d" "system_msp432p401r.d"
    DEL /F "main.obj" "startup_msp432p401r_ccs.obj" "system_msp432p401r.obj"
    Could Not Find C:\Users\Marcus\workspace_v6_1_3\test2\Debug\e2e_project.out
    Could Not Find C:\Users\Marcus\workspace_v6_1_3\test2\Debug\main.d
    Could Not Find C:\Users\Marcus\workspace_v6_1_3\test2\Debug\main.obj
    'Finished clean'
    ' '

    **** Build Finished ****

    **** Build of configuration Debug for project test2 ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: ../main.c'
    'Invoking: MSP432 Compiler'
    "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="/arm/include" --include_path="/arm/include/CMSIS" --include_path="/driverlib/MSP432P4xx" --include_path="/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="main.d" "../main.c"
    subdir_rules.mk:7: recipe for target 'main.obj' failed
    process_begin: CreateProcess(NULL, "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path=/arm/include --include_path=/arm/include/CMSIS --include_path=/driverlib/MSP432P4xx --include_path=/include --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency=main.d ../main.c, ...) failed.
    make (e=87): The parameter is incorrect.

    gmake: *** [main.obj] Error 87
    'Building file: ../startup_msp432p401r_ccs.c'
    'Invoking: MSP432 Compiler'
    "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="/arm/include" --include_path="/arm/include/CMSIS" --include_path="/driverlib/MSP432P4xx" --include_path="/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="startup_msp432p401r_ccs.d" "../startup_msp432p401r_ccs.c"
    subdir_rules.mk:14: recipe for target 'startup_msp432p401r_ccs.obj' failed
    process_begin: CreateProcess(NULL, "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path=/arm/include --include_path=/arm/include/CMSIS --include_path=/driverlib/MSP432P4xx --include_path=/include --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency=startup_msp432p401r_ccs.d ../startup_msp432p401r_ccs.c, ...) failed.
    make (e=87): The parameter is incorrect.

    gmake: *** [startup_msp432p401r_ccs.obj] Error 87
    'Building file: ../system_msp432p401r.c'
    'Invoking: MSP432 Compiler'
    "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="/arm/include" --include_path="/arm/include/CMSIS" --include_path="/driverlib/MSP432P4xx" --include_path="/include" --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="system_msp432p401r.d" "../system_msp432p401r.c"
    subdir_rules.mk:21: recipe for target 'system_msp432p401r.obj' failed
    process_begin: CreateProcess(NULL, "" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path=/arm/include --include_path=/arm/include/CMSIS --include_path=/driverlib/MSP432P4xx --include_path=/include --advice:power=all -g --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency=system_msp432p401r.d ../system_msp432p401r.c, ...) failed.
    make (e=87): The parameter is incorrect.

    gmake: *** [system_msp432p401r.obj] Error 87
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

     

  • Hi David,

    I tried importing the project and it works now. Could you please guide me through all the steps you took to make this project work? This project covers use of UART, however, there are other projects involving use of ADC14, Timer_A etc
    It would be great if you could guide me through the process to migrate these projects into latest versions of CCS and MSPWare.

    Thanks a lot,
    Marcus Pereira
  • Hi Marcus,

     Please review chapter 3 "Software Modifications" from this Application Report and let us know if you have further questions.

        Regards,

        David

**Attention** This is a public forum