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