嵌入式开发者社区

标题: C6678 多核程序运行跑飞 [打印本页]

作者: Leo_9824    时间: 2018-12-3 17:20
标题: C6678 多核程序运行跑飞
本帖最后由 Leo_9824 于 2018-12-3 17:20 编辑

平台6678f,CCS5.5
       用到了2个核心,当两个核心同时在线运行时,CCS与core0会断开连接(不知道是core0已经跑飞了还是单纯的断开连接),而且没有错误报告,完全不知道是哪里错了,每个核单独运行就没有问题。有一个现象就是core0会运行一段已经运行过的程序(此程序运行后就不再运行了),然后就断开连接了。我用PC trace追逐了一下,如图(右下角显示  emulation halt)

作者: tronlong-gxd    时间: 2018-12-4 08:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: Leo_9824    时间: 2018-12-4 09:20
tronlong-gxd 发表于 2018-12-4 08:49
您好:
       这个要实际调试才能找到原因,这样判断不出来具体原因,建议您单步调试看看那里出的问题。 ...

       嗯,好的。
我在程序中用了3个信号量,好像应用的不对,代码如下:
Semaphore_Params  par;
Semaphore_Params_init(&par);
par.mode = Semaphore_Mode_BINARY;
A = Semaphore_create(0,&par,NULL);
B = Semaphore_create(0,&par,NULL);
C = Semaphore_create(0,&par,NULL);
上面的操作我怎么知道申请的是哪个信号量,怎么避免A,B,C申请的是同一个信号量。在多核时每个核都申请信号量这样不就冲突了么。
我在API文档中没找到用哪个函数,能告诉我么?


作者: tronlong-gxd    时间: 2018-12-4 10:41
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4