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.

MSP432E401Y: MSP432 Booting Issue - Not Booting from SDRAM Address 0x60000000

Part Number: MSP432E401Y

Dear TI Team,

I hope this message finds you well. I am writing to report an issue with the MSP432 microcontroller unit, specifically related to booting from the External SDRAM starting address is 0x60000000.

Problem Description: Our MSP432-based system is currently facing a booting problem where it fails to boot from the External SDRAM address 0x60000000 as expected. Instead, it appears to boot from an alternate location, and this behavior is causing functionality issues in our application.

Problem Facing:

                           In our custom board we are trying booting from the SDRAM.After writing simple hello world program into SDRAM it have to boot that hello world project and i should see the hello world prints. I Wrote the simple hello world program after that i changed linker script  as below

SDRAM start address = 0x60000000

here below i will share the linker script file  and image for your reference.

Linker script file of hello world project

--diag_suppress=10199

--retain=interruptVectors

#define APP_BASE 0x60000000
#define RAM_BASE 0x60100000

MEMORY
{
FLASH (RX) : origin = 0x60000000, length = 0x00100000
SRAM (RWX) : origin = 0x60100000, length = 0x00040000
}

/* The following command line options are set as part of the CCS project. */
/* If you are building using the command line, or for some reason want to */
/* define them here, you can uncomment and modify these lines as needed. */
/* If you are using CCS for building, it is probably better to make any such */
/* modifications in your CCS project and leave this file alone. */
/* */
/* --heap_size=0 */
/* --stack_size=256 */
/* --library=rtsv7M4_T_le_eabi.lib */

/* Section allocation in memory */

SECTIONS
{
#ifndef gen_crc_table
.intvecs: > 0x60000000
.text : > FLASH
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.rodata : > FLASH
.init_array : > FLASH
#else
.intvecs: > 0x00000000, crc_table(crc_table_for_intvecs)
.text : > FLASH, crc_table(crc_table_for_text)
.const : > FLASH, crc_table(crc_table_for_const)
.cinit : > FLASH, crc_table(crc_table_for_cinit)
.pinit : > FLASH, crc_table(crc_table_for_pinit)
.rodata : > FLASH, crc_table(crc_table_for_pinit)
.init_array : > FLASH, crc_table(crc_table_for_init_array)
.TI.crctab : > FLASH
#endif

.vtable : > 0x60100000
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM
}


__STACK_TOP = __stack + 512;

in main.c  i am calling the entry point

static void (*appEntry)();

UINT32 entryPiont;

entryPiont = 0x60000000;


appEntry = (void (*)(void))entryPiont;

(*appEntry)();

Expecting Solution:

                               After writing into SDRAM it have to boot from the SDRAM for that what are the things i have to modify.Please share the steps clearly such that i can fix the issue quickly.

Request for Assistance: We are seeking your expertise and support in identifying the cause of this booting issue and finding a suitable solution to ensure that the MSP432 MCU boots from the correct SDRAM address (0x60000000) as intended.

Please advise on any specific steps we should take to diagnose and rectify the problem. Your guidance in resolving this issue would be greatly appreciated.

Thank you for your time and attention to this matter. We look forward to your prompt response.

If you can arrange the call, that would be very beneficial in solving the issue, and we can move forward.

Best regards,

J.Manikandasamy

  • Hi,

     In MSP432E SDK, we have a basic SDRAM example that you can find at C:\ti\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\driverlib\epi_sdram_basic. I strongly suggest you run this example first on your board to make sure you can do the basic read/write to your external SDRAM. Once you can do basic reads and writes to SDRAM then it proves EPI module is properly configured and all signal connections between EPI and your SDRAM is good. 

    Other than the above SDK example, we don't have other SDRAM examples specifically for MSP432E. However, please take a look at this TI Reference Design. https://www.ti.com/tool/TIDM-TM4C129SDRAMNVM.  Although this design was for TM4C129 MCU but it is the same silicon as MSP432E. They use the same driverlib. This design should run code out of SDRAM. The software collateral can be found at https://www.ti.com/lit/zip/tidcaa9. I'm also attaching below. 

    TIDM-TM4C129SDRAMNVM.zip

    The TI reference design software collateral should have everything you need to get started.  The software collateral has the bootloader with hook functions to initialize EPI and SPI Flash. Look at the bl_config.h file. The bootloader example is in ektm4c129_qssi_bootloader. The application example is in ektm4c129_qssi_boot_demo1. 

    I hope this TI Design is a good reference for you to start as I myself is not an expert in this TI design.