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:如何在 MSP432E401Y 中将引导顺序从内部闪存更改为外部 SDRAM

Guru**** 657980 points
Other Parts Discussed in Thread: MSP432E401Y
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1232031/msp432e401y-how-to-change-the-booting-sequence-from-internal-flash-to-external-sdram-in-msp432e401y

器件型号:MSP432E401Y

尊敬的 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 启动、因为我必须修改哪些内容。请清楚地分享这些步骤、以便我可以快速解决此问题。

注:请尽快提供支持、此任务仅用于停止我们的项目。

提前感谢