亲爱的蔡杏娟:
我希望这条消息能让您满意。 我在此报告一个 MSP432微控制器单元的问题、该问题与从外部 SDRAM 启动地址0x60000000特别相关。
根据您的建议、我已下载 www.ti.com/.../TIDM-TM4C129SDRAMNVM 软件配套资料、并通过 ektm4c129_qssi_bootloader 代码和 ektm4c129_qssi_boot_deme1应用代码下载 gone. 因此、我创建了简单的 hello world (UART Print)应用程序、并根据 ektm4c129_qssi_boot_deme1应用程序代码修改了链接器脚本。
在引导加载程序中、代码初始化 SDRAM、通过 Xmodem 接收应用程序.bin 文件、然后将其写入 SDRAM 中。 暂时我不使用 Qssi 闪存、我将通过 SDRAM 接收应用程序、并将数据直接写入 SDRAM。 我在从 SDRAM 中读取数据后验证了应用程序 bin 文件数据。因此、我确认是否将数据正确写入 SDRAM、但无法在 SDRAM 上运行。下面我附加了应用程序链接器脚本和入口点代码供您参考。
应用程序链接器脚本
SDRAM 起始地址= 0x60000000
下面我将分享链接器脚本文件和图像供您参考。
hello world 项目的链接器脚本文件
CRC table 运算符无法与空输出段关联*/
--diag_suppress=10199
--retain=interruptVectors
#define APP_BASE 0x60000000
#define RAM_BASE 0x60100000
/*系统内存映射*/
内存
{
/*存储在内部闪存中并从内部闪存执行的应用程序*/
FLASH (RX):origin = APP_BASE,length = 0x00100000
/*应用程序使用内部 RAM 进行数据*/
SRAM (rwx):origin = 0x60100000、length = 0x00040000
}
/*内存中的段分配*/
部分
{
.intvecs:> app_base
.text :>闪存
.const :>闪存
cinit :>闪存
请输入您的密码:> FLASH
init_array:> FLASH
.vtable:> RAM_BASE
.data :> SRAM
bss :> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
__STACK_TOP =_STACK + 256;
在 main.c 中、我将调用应用起点
静态空(*appEntry)();
uint32 entryPiont;
entryPiont = 0x60000000;
appEntry =(void (*)(void)) entryPiont;
(* appEntry)();
期望的解决方案:
写入 SDRAM 之后、必须从 SDRAM 进行引导、我必须修改这些内容。 最初我不使用 QSSI 闪存、我通过 Xmodem 接收 bin 文件后、现在尝试将其写入 SDRAM、然后在上面运行。
请求帮助:我们正在寻求您的专业知识和支持、以确定该引导问题的原因并寻找合适的解决方案、从而确保 MSP432 MCU 根据预期从正确的 SDRAM 地址(0x60000000)引导。
感谢您花时间关注此事。 我们期待您的及时响应。
注:很抱歉响应出现延迟、因为我集中在其他待处理任务上。 请告知我们应采取的任何具体步骤来诊断和纠正问题。 非常感谢您为解决此问题提供指导。
如果您可以安排通话、这将非常有助于解决问题、我们可以继续前进。
此致、
j. 马尼坎达萨米
