您好!
我正在调试我的项目、我的代码正卡在一个为 CLA 分配存储器以用于数据和程序段的函数上。 函数代码如下所示:
空 CLA_configClaMemory (空)
{
//从 F28377D 复位中、没有内存资源分配给 CLA、因此需要在此处完成
EALLOW;
//设置 CPU1 <=>CLA1消息 RAM
MemCfgRegs.MSGxINIT.bit.init_CLA1TOCPU = 1;//初始化 CLA1ToCPUMsgRAM
while (MemCfgRegs.MSGxINITDONE.bit.INITDONE_CLA1TOCPU!= 1){};//等待直到完成
MemCfgRegs.MSGxINIT.bit.init_CPUTOCLA1 = 1;//初始化 CPUToCLA1MsgRAM
while (MemCfgRegs.MSGxINITDONE.bit.INITDONE_CPUTOCLA1!= 1){};//等待直到完成
//设置程序和数据存储器块供 CLA1使用
MemCfgRegs.LSxMSEL.bit.MSEL_LS4 = 1;//将 LS4 RAM 分配给 CLA1
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS4 = 1;//将 LS4设置为程序存储器
MemCfgRegs.LSxMSEL.bit.MSEL_LS5 = 1;//将 LS5 RAM 分配给 CLA1
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS5 = 1;//将 LS5设置为程序存储器
MemCfgRegs.LSxMSEL.bit.MSEL_LS0 = 1;//将 LS0 RAM 分配给 CLA1
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS0 = 0;//将 LS0设置为数据存储器
MemCfgRegs.LSxMSEL.bit.MSEL_LS1 = 1;//将 LS1 RAM 分配给 CLA1
MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS1 = 0;//将 LS1设置为数据存储器
EDIS;
}
很明显、当尝试向 CLA 分配内存时、代码卡在 while ()循环中。 我不确定是哪种原因导致了问题-我现在可能会检查一下。
有什么想法可以说明它为什么会陷入这一循环? 手动为 CLA 分配存储器是一项要求、对吧?
祝你一切顺利、
Joel