尊敬的 TI 团队:
我有定制电路板、它包含 S42S86400F-7TLI 外部 SDRAM、它与 MSP432E401Y 微控制器连接。 我成功地与微控制器连接了 SDRAM、我能够从其中写入和读取数据。
面临的问题:
在定制电路板中、我们将尝试从 SDRAM 进行引导。在将简单的 hello world 程序写入 SDRAM 后、它必须引导该 hello world 项目、并且我应该会看到 hello world 打印输出。 我在这之后编写了简单的 hello world 程序、 如下所示更改了链接器脚本
SDRAM 起始地址= 0x60000000
下面我将分享链接器脚本文件 和图像供您参考。
hello world 项目的链接器脚本文件
--diag_suppress=10199
--retain=interruptVectors
#define APP_BASE 0x60000000
#define RAM_BASE 0x60100000
内存
{
Flash (RX):origin = 0x60000000,length = 0x00100000
SRAM (rwx):origin = 0x60100000、length = 0x00040000
}
/*以下命令行选项作为 CCS 项目的一部分设置。 */
/*如果您正在使用命令行进行构建,或者出于某种原因想要*/
/*在此处定义它们,您可以根据需要取消注释和修改这些行。 */
/*如果您使用 CCS 进行构建、则最好制作任何此类项目*/
/*对 CCS 项目的修改,并保留该文件。 */
/**/
/*--heap_size=0 */
/*--stack_size=256 */
/*--library=rtsv7M4_T_le_eabi.lib */
/*内存中的段分配*/
部分
{
#ifndef gen_crc_table
.intvecs:> 0x60000000
.text :>闪存
.const :>闪存
cinit :>闪存
请输入您的密码:> FLASH
.rodata :>闪存
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:>闪存
#endif
.vtable:> 0x60100000
.data :> SRAM
bss :> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
__STACK_TOP =_STACK + 512;
在 main.c 中 、我将调用应用起点
静态空(*appEntry)();
uint32 entryPiont;
entryPiont = 0x60000000;
appEntry =(void (*)(void)) entryPiont;
(* appEntry)();
期望的解决方案:
写入 SDRAM 后、必须从 SDRAM 启动、因为我必须修改哪些内容。请清楚地分享这些步骤、以便我可以快速解决此问题。
注:请尽快提供支持、此任务仅用于停止我们的项目。
提前感谢