F28M35中当仿真DSP的时候,M3没有跑,停止仿真后M3还是没跑,但是断电再上电M3就开始跑起来了。难道这双核仿真时只能跑一个?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
F28M35中当仿真DSP的时候,M3没有跑,停止仿真后M3还是没跑,但是断电再上电M3就开始跑起来了。难道这双核仿真时只能跑一个?
楼主请描述详细一点,是指仿真时M3核无法跑还是C28核无法跑?程序是跑在RAM还是FLASH?肯定是可以支持两个核同时调试的。
是这样子的,我先把M3的工程烧进去,上电单独能跑,然后再把C28的工程烧进去进行仿真,这样就发现M3根本没有跑起来。
楼主你好!
请注意如果程序跑在FLASH中时,两个核的仿真参考以下步骤:
1:[Launch Selected Configuration]
2:[Connect Target] Master Subsystem
3:[Connect Target] Control Subsystem
4:[Load Program] Master Subsystem(blinky_dc_m3.out)
5:[Load Program] Control Subsystem(blinky_dc_c28.out)
6:[Reset CPU] Control Subsystem
7:[CPU Reset] Master Subsystem
8:[CPU Restart] Master Subsystem
8:[RUN] Master Subsystem
9:[RUN] Control Subsystem {do not do a restart}
另外确保在M3项目的main(0函数之前有下面IPC指令让C28从FLASH引导:
IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
我在RT-SineFIRFFT_m3这个工程中看到:
// Pull the Control subsystem out of reset
//SysCtlReleaseSubSystemFromReset(SYSCTL_CONTROL_SYSTEM_RES_CNF);
while((HWREG(MTOCIPC_BASE + IPC_O_CTOMIPCBOOTSTS) & 0xFFFF) != CBROM_BOOTSTS_CTOM_CONTROL_SYSTEM_READY); //B.C28
master_ram_init_control_m0m1_msgram_memories();
//while((HWREG(MTOCIPC_BASE + IPC_O_CTOMIPCBOOTSTS) & 0xFFFF) != CBROM_BOOTSTS_CTOM_CONTROL_SYSTEM_READY); //B.C28
master_ram_init_control_L0_L4_memories();
是不是把这段加是系统初始化中?
另外是不是要先进行IPC初始化?
Subsystem Reset Configuration/Control (CRESCNF) Register:
BIT16:M3RSnIN
BIT17:ACIBRESETn
这2个位有什么用?
C28进入BOOT_ROM是由M3控制?M3不让C28进入时,C28一直处于复位状态?
IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
//This function will allow the M3 master system to boot the C28 control
//! system via the following modes: Boot to RAM, Boot to Flash, Boot via SPI,
//! SCI, I2C, or parallel I/O.
这个函数需要等C28给M3回IPC command,但是此时C28还没跑怎么可能回呢?