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: TI Drivers.. DriverLib.. ROM drivers.. Flash APIs for MSP432P401 & MSP432P4111.. 432 SDK & Sample Projects..

Part Number: MSP432P401V

Hi Team 432,

Some questions WRT P401 & P4111..WRT TI Drivers.. Driver_Lib.. Flash APIs.. SDK format/structure.. 432 sampe code/projects..

1. Seems the 432 SDK has changed a bit in content & structure..

a. The 432 SDK used to install to C:/TI [C:\ti\simplelink_msp432p4_sdk_3_40_01_02] & now it goes to C:/TI/MSP [C:\ti\msp\MSP432Ware_3_50_00_02].. Why the change/move?

b. There used to be separate projects in the SDK for the P401 & for the P4111 but not anymore.. now it is just P4x.  Why?

2. WRT Flash APIs.. In the MSP432 Driver Lib Users Guide  (http://dev.ti.com/tirex/explore/node?node=AJIAWhC7vhw.P.ggQJeRmw__z-lQYNj__LATEST ) I see this for "Flash Memory Controller (FlashCtl_A)”.. “Note that this module is for use exclusively on the MSP432P4111. If using the MSP432P401, please refer to the non-a variant.”.  The old SDK used to have regular and flash_a sample projects.  The new SDK seems to only have one kind of flash sample project.  Since the DriverLib makes a recommend for P401/P4111 as flash/flash_a.. where are the two types of flash APIs?  Which Flash drivers should be used WRT P401/P4111?

3. In general do you recommend the use of TI drivers or DriverLib?  Can you please provide a summary of benefits/detriments to each?  What is the overall recommend WRT which to use?

4. More detailed customer question on this topic.. "In the “C:\ti\simplelink_msp432p4_sdk_3_20_00_06\examples\nortos\MSP_EXP432P401R” and C:\ti\simplelink_msp432p4_sdk_3_20_00_06\examples\nortos\MSP_EXP432P4111 folders for example, there is a “driverlib” folder and a “drivers” folder. As I recall, driverlib covers all MSP430/432 devices and TI Drivers cover just the SimpleLink family. Correct? I am using files from the driverlib folder. How does the Peripheral Library fit in to these other two. So, I could use either library. Excluding the broader compatibility with driverlib, is one better than the other? Newer? Faster? More/less abstracted?"

4. And.. which type of Flash Drivers are included in ROM.. TI Drivers.. Driver_Lib, other, etc?

6. Another customer question.. According to the “MSP432_DriverLib_API_Guide.html”, the format for flash unprotect API is:

bool FlashCtl_A_unprotectMemory ( uint32_t startAddr, uint32_t endAddr )
and examples show that if you want to unprotect just one sector, then endAddr = startAddr. However, that is inconsistent with the literal interpretation of endAddr. If endAddr were truly an end address then it should be equal to “startAddr + FLASH_A_SECTOR_SIZE – 1”. So, I am thinking that these Addr’s are really the first address of the desired sector to unlock. Is this correct? Or, since this API seems to be more sector-based than address-based, could I actually specify any address within a given sector and that entire sector would be unlocked?  So, when it comes to unlocking two consecutive sectors, is this the proper format?

7. And yet another customer DriverLib question.. "While some other DriverLib functions contain asserts. I see there are #defines for assert in debug.h, but only when DEBUG is defined.  When DEBUG is not defined, is it TI’s specific intent that we modify debug.h to provide the desired error-handling require for our application  Any other options/suggestions?"

Thanks, Merril :^)

  • Some add'l info.. Per SLAU356I–March 2015–Revised June 2019, Section Flash Controller A (FLCTL_A)..

    “FLCTL_A differs from FLCTL only in terms of the size of the addressable flash memory. FLCTL can address flash main memory up to 256KB and information memory up to 16KB. FLCTL_A can address flash main memory up to 2048KB and information memory up to 32KB. See the device-specific data sheet for details on the available flash memory and the flash controller used in the device"..

  • Hi Merrill,

    I am looking into this and will have some feedback shortly.

  • Please see the information below regarding the questions.

    1.           a.The 432 SDK is still installed to C:/ti. Please note that there is a huge difference between the simplelink_msp432p4 SDK and MSP432Ware. MSP432Ware was discontinued several years ago and always installed to C:/ti/msp.

    b. The projects in the SDK are still split into P401 and P4111, I think you might be looking at MSP432Ware and not the latest MSP432 SDK

    2. There are several flash driverlib examples in our SDK. The P401 examples use FlashCtl and the P4111 examples use FlashCtl_A. There are no flash TI-Driver examples.

    3. In general we recommend using TI-Drivers over Driverlib because TI-Drivers are easier to use and the APIs are standardized across SimpleLink devices. TI-Drivers is built off of Driverlib. Additionally, TI-Drivers is better when a customer wants to use an RTOS. The main benefit for using Driverlib over TI-Drivers is that it uses a lot less memory and can produce more optimized code.

    4. Driverlib examples are lower level, device examples while TI Drivers examples are the same across SimpleLink devices. I'm not aware of a Peripheral Library for MSP432. If there is one, it's most likely from MSP432Ware and I do NOT recommend using anything from that SDK. Please only use software and examples from the latest Simplelink MSP432 SDK.

    5. MSP432 Driverlib includes flash.c/.h and flash_a.c/.h. In case I misinterpreted the question and they are wondering what is stored in ROM then only Driverlib is stored in ROM, not TI-Drivers.

    6. From my understanding of the code, it doesn’t look like it would make a difference if the endAddr = starAddr or is a different value. They probably use the same start and end value because it is easier to ensure that only one sector is set to unprotected. If they look at the P4111 driverlib example flash_a_mass_erase they will see a use case where endAddr =! startAddr.

     

    Also just to clarify the question below about which flash to use, MSP432P401V should use flash_a since it has over 256 KB of flash.

  • Hi Eddie,

    Thx.. very helpful!  Just documenting in this thread.. the 432 SDK is here (https://www.ti.com/tool/SIMPLELINK-MSP432-SDK ).  Can you also please point me to the latest/correct corresponding documentation for bothTI_Drivers & DriverLib?

    Thanks, Merril

  • Hi Eddie,

    Ohh.. you missed question 7.. ;^)

    Thanks, Merril

**Attention** This is a public forum