主题:C2000WARE 中讨论的其他器件
工具/软件:
尊敬的 champs:
用户需要在 main ()之前初始化 RAM、如 M0/M1。
他们曾使用此类 F28003x 进行编码、并且确实有效。
// By default RAM is only initialized to zero by power-on reset, but not by warm reset
// _system_pre_init() is to initialize RAM to zero on all reset including warm reset. TI RTS library will call _system_pre_init() before main().
int _system_pre_init(void)
{
EALLOW;
*(volatile int *)(MEMCFG_BASE + MEMCFG_O_DXINIT) = 0x0003; // RAM INIT FOR M0/M1 Memory
while(!(*(volatile int *) (MEMCFG_BASE + MEMCFG_O_DXINITDONE) == 0x3)); // Wait for InitDone Status
EDIS;
return 1;
}
但现在、它在 F28P550SJ9x 上发生上电复位(POR)(首次上电)后失败。
"失败"表示它在 POR 后无法运行到 main()。
请注意、我们 还确认用户可以正常使用
1、仅在 POR 或由 nXRS 复位后初始化 LSx RAM 和 GSx RAM。
2.仅 在 由 nXRS 复位后初始化 M0/M1 RAM。
也就是说、仅当用户在首次上电后初始化 M0/M1时才会失败。
这是否与 F28P55x 上 POR 的 ROM 引导代码有关?
在 F280039C 上未观察到此问题、因为用户在此处使用相同的代码。
因此、请您支持我们如何处理这一问题?
目标是在 main ()之前初始化 RAM、无论它是 POR 还是由 nXRS 复位。
顺便说一下、 我无法在 CCS 上重现此问题、只能在首次上电后从闪存独立运行时看到它。 是否可以在 POR 后使用 CCS 模拟闪存启动?
