在DDR初始化遇到一些问题:
1、在软仿真时观测到DDR_Regs在Memory Browser里的内存分配和赋值都是正确的,但硬仿真时Memory Browser里观测到DDR_Regs->RDWR_LVL_CTRL所给赋值却是一个错误的值,这是为什么呢?
2、遇到同样的问题boot_cfg_regs软仿真时在Memory Browser里的内存分配和赋值都是正确的,但硬仿真时发现boot_cfg_regs->KICK_REG0 = 0x83e70b13;
boot_cfg_regs->KICK_REG1 = 0x95a4f1e0;等不能赋值,boot_cfg_regs->DDR3_CONFIG_REG[0] |= 0xF; boot_cfg_regs->DDR3_CONFIG_REG[23]|=0x00000200;赋值错误。
请大家帮忙分析一下!
谢谢!
Bruce Chen1:
您好!
方便的话上传你的代码,供大家分析。
Zhang Jerry:
回复 Bruce Chen1:
你好!
附件里的程序是根据我们的需要对例程里相对应程序改编的,遇到的问题如上,请大家帮忙分析!
谢谢!
Bruce Chen1:
回复 Zhang Jerry:
您好!
关于KICK REG硬仿与软仿的差异,
硬仿的确是返回0,你只需往REG里写值,unlock即可。
软仿之所以显示,是CCS的BUG。
Zhang Jerry:
回复 Bruce Chen1:
您好!
请问您说的硬仿返回值是0,是Kicker Mechanism Register解锁的情况还是锁住的情况呢?
我仿真时发现以下两种情况的返回值都是0
CSL_IDEF_INLINE void CSL_BootCfgUnlockKicker (void)
{
hBootCfg->KICK_REG0 = 0x83e70b13;
hBootCfg->KICK_REG1 = 0x95a4f1e0;
return;
}
和
CSL_IDEF_INLINE void CSL_BootCfgLockKicker (void)
{
hBootCfg->KICK_REG0 = 0x1;
hBootCfg->KICK_REG1 = 0x1;
return;
}