程序在运行IPC_start()这个函数的时候,不能够返回,最后在ipc_attach这个函数里面死循环,单步运行的时候会出现下图,这个问题是什么情况?谁能帮忙解答下?
Adam Yao94020:
请问你跑的是什么程序?
使用的是哪个版本的软件包?
测试时的操作是怎么样的?
jie qiu2:
回复 Adam Yao94020:
hi Adam yao:
谢谢你的回答。
我是自己模仿别人代码写的。在核0起来后将每个核强制起动起来,再开启的IPC_start,我中间试过一次将0x9043bb40更改,程序能够不在ipc_start卡死,但是我也没有看见其他几个核启动起来你你能帮我解释下吗?
for (i = 1; i < 8; i ++) {boot_core(i, (unsigned long)0x9043bb40);}
void boot_core(unsigned int core_id, unsigned long boot_addr){printf("core start\n");volatile unsigned long *boot_magic_addr = (void *)0x1087fffc;volatile unsigned long *ipc_gr = (void *)0x02620240;
memcpy( (void *)(0x10800000 | (core_id << 24)), (void *)0x10800000, 0x4b000);
boot_magic_addr = (void *)(0x1087fffc | (core_id << 24));*boot_magic_addr = (unsigned long)boot_addr;
ipc_gr += core_id;
*ipc_gr |= 1;
}