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.

MSP432P401V: with simplelink_msp432p4_sdk_3_20_00_06, linker generates Error[Li005] on ADC14 and CS Modules

Part Number: MSP432P401V

Using IAR 8.40.1.

A call to MAP_ADC14_getMultiSequenceResult() generates "Error[Li005]: no definition for "ADC14_getMultiSequenceResult"..." even though numerous other calls to ADC14 Module within the same "C" file compile/link without error.

Calls to MAP_CS_getACLK(), MAP_CS_getMCLK(), MAP_CS_getSMCLK(), MAP_CS_getHSMCLK() and MAP_CS_getBCLK() generate the same linker error. But other calls to the CS Module from within the same "C" file, including MAP_CS getDCOFrequency() compile/link without error.

driverlib.h and rom_map.h are included in all files.

What's wrong and how do I fix it?

  • Can you test with this project?

    You may need use the latest SDK, C:\ti\simplelink_msp432p4_sdk_3_20_00_06 .

    exampleProj.zip

  • I see this is the P401r example project. I've been using P4111 projects, which I don't think is an issue or me at this time. Correct me if I'm wrong. I am also using C:\ti\simplelink_msp432p4_sdk_3_20_00_06.

    Per our other ongoing post,

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/p/823759/3047467#3047467

    the failing calls are not in ROM.

    The solution to this issue is to add "$SIMPLELINK_MSP432_SDK_INSTALL_DIR$/source/ti/devices/msp432p4xx/driverlib/iar/msp432p4xx_driverlib.a" to the IAR Embedded Workbench Linker/Extra Options as shown in the IAR version of the Example Projects. I also dropped the MAP_ prefix to explicitly show these calls are not in ROM, even though I could have kept the prefix and allowed the mappings in rom_map.h take care of it.

    Thanks for your help.

  • David,

    Just a quick note on the difference between the MSP432P401R and the P4111.  You are correct in using the P4111 instead of the P401R.  The MSP432P401V is part of the larger memory family within MSP and uses the FLCTL_A as well as the SYSCTL_A where the smaller memory devices (MSP432P401R/M) use the non-A versions.

    I will go back and confirm that the driverLib binary is included in the linker options when importing the P4111 examples.

    Thanks and Regards,
    Chris

  • I investigated this more yesterday after your post. The P401V datasheet indicates FLCTL_A as well as the SYSCTL_A are present. However, the

    MSP432_DriverLib_API_Guide.html appears to be incorrect. Within the Module Description sections of FLCTL_A as well as the SYSCTL_A, the manual says

    "Note that this module is for use exclusively on the MSP432P4111. If using the MSP432P401, please refer to the non-a variant".

    So, that led me astray.

    Thanks again for your help.

**Attention** This is a public forum