现象如下:参考例程,我将cpu1和cpu2的代码烧写入flash,断电重启后,发现CPU1运行正常,但是cpu2却无法运行,在cpu2的main中设置断点,发现没有进入到main函数中,请问我还有哪里没做对吗?cpu1使用2837xD_FLASH_lnk_cpu1.cmd,cpu2使用2837xD_FLASH_lnk_cpu2.cmd
附上代码
CPU1
int main(void) {
InitSysCtrl(); //关WD,片外晶振,系统时钟设置为200MHz,外设时钟全开,SYSCLK=200MHz LSPCLK=50MHz
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
InitGpio(); //打开GPIO的LOCK开关,并将所有控制和数据寄存器清零,不包括上拉
DINT; //set INTM
InitPieCtrl(); //屏蔽PIE所有中断,ENPIE=0
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();//初始化PIE中断向量表,ENPIE=1
EINT; //clr INTM
ERTM;
while(1)
{
DELAY_US(20000); //20ms delay
}
}
CPU2
int main(void) {memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
InitSysCtrl(); //关WD,片外晶振,系统时钟设置为200MHz,外设时钟全开
// InitFlash();
DINT; //set INTM
InitPieCtrl(); //屏蔽PIE所有中断,ENPIE=0
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();//初始化PIE中断向量表,ENPIE=1
EINT; //clr INTM
ERTM;
while(1)
{
DELAY_US(20000); //20ms delay
}
}
Seven Han:
同贴:http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/p/130934/366074.aspx#366074