您好,
在我的项目中、硬件平台 CPU 是 RM48L950、软件开发平台是 IAR。 我使用 RM48L950的 EMIF 接口来扩展外部 SRAM,该 SRAM 的地址空间为2MB,数据总线为8位。 我想在该 SRAM 上运行程序。 因此、在 sys_startup.c 中、在 void _c_int00 (void)函数中、在_coreInitRegisters_()函数上方增加_mpuInit_()和_mpuEnable_()函数、在_cmain ()函数上方增加 SRAM 初始化函数 SlamInit()。 如下所示:
void _c_int00 (void)
{
/*用户代码开始(5)*/
/*用户代码结束*/
_mpuInit_();
_mpuEnable_();
/*初始化内核寄存器以避免 CCM 错误*/
_coreInitRegisters_();
…
esmInit();
/*用户代码开始(75)*/
SlamInit();
/*用户代码结束*/
/*调用应用程序*/
__cmain();
}
我声明一个用模式初始化的静态对象、将其放置在 SRAM 中。 代码如下:
static unsigned int myinittest[ 2 ]=
{
0x01234567、
0x89abcdef
}
但是、当目标文件下载到电路板时、myinittest 阵列未正确初始化。 初始化结果:
myinittest[0]= 0x23456700
myinittest[1]= 0xabcdef00
您能告诉我原因吗? 我需要你的帮助。
此致。