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.
根据CPU2 BOOT Flow,我理解CPU2启动过程中有两处等待IPC0=1的地方,如图
一般我们在CPU1的main程序初始化中有一次置IPC0=1的地方,我推测上图中第2次等待IPC0=1可能是对应main中置IPC0=1的地方(不知我的推断是否正确),那么CPU2启动中第1次等待IPC0=1,对应的CPU1是在哪里置IPC0的?
很奇怪的是,当我在仿真环境下Reset CPU1时(仅仅REST,不Restart到main),IPC0就已经置1了,似乎正好可以给到CPU2启动中的第1次判断IPC0用。如图:
但是手册中清晰的写到IPC0重置后应为0,这是怎么回事?
请帮我解答以上困惑,谢谢!
这几天我仔细研究了一下CPU2的BOOT ROM的源程序,发现我的理解有一些错误,根据CPU2 BOOT Flow,确实有两处等待IPC0=1的地方,但第二处明细是有条件(Wait mode)才去再次判断IPC0=1的,所以第一处等待IPC0=1对应的就是我们通常要在CPU1的main程序中置IPC的地方。这个问题算是解决了,不知道我的理解是否正确?
但是另外一个问题还是不理解:仿真时,RESET CPU1,IPC0就已经为1了,这个现象还是没搞清楚原因,请赐教!
这几天我仔细研究了一下CPU2的BOOT ROM的源程序,发现我的理解有一些错误,根据CPU2 BOOT Flow,确实有两处等待IPC0=1的地方,但第二处明细是有条件(Wait mode)才去再次判断IPC0=1的,所以第一处等待IPC0=1对应的就是我们通常要在CPU1的main程序中置IPC的地方。这个问题算是解决了,不知道我的理解是否正确?
是的,第二处判断是处于wait mode;
仿真时,RESET CPU1,IPC0就已经为1了
您使用的是哪个例程?
例程是C2000Ware_4_01_00_00下的led,具体路径参考:C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f2838x\examples\c28x_dual\led,里面有两个工程,即:
led_ex1_c28x_dual_blinky_cpu1
led_ex1_c28x_dual_blinky_cpu2
硬件平台是评估板TMDSCNCD28388D
我又在各种条件下试了一下RESET CPU1,发现CPU1TOCPU2IPCFLG中IPC0为0和为1的情况都有,和CPU2是否连接,连接情况下,是否在跑,都有关系,但至少有情况是为1的,到底RESET CPU1时,是什么原因导致CPU1TOCPU2IPCFLG中的IPC0=1呢?
我上述所说的RESET指的是在仿真情况下点击: