C6678 多核程序运行跑飞 - TMS320C6678 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 477|回复: 3

[已解决] C6678 多核程序运行跑飞

[复制链接]

4

主题

13

帖子

1062

积分

金牌会员

Rank: 6Rank: 6

积分
1062
发表于 2018-12-3 17:20:29 | 显示全部楼层 |阅读模式
本帖最后由 Leo_9824 于 2018-12-3 17:20 编辑

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

最佳答案

您好:         信号量只是在您切换任务的时候会用到,就算使用的是同一个信号量也不会冲突,信号量没有说会指定到那个任务必须用某一个信号量。 ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最近访问 头像模式 列表模式
回复

使用道具 举报

4

主题

188

帖子

1698

积分

广州创龙

Rank: 8Rank: 8

积分
1698
发表于 2018-12-4 08:49:40 | 显示全部楼层
您好:
       这个要实际调试才能找到原因,这样判断不出来具体原因,建议您单步调试看看那里出的问题。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

1062

积分

金牌会员

Rank: 6Rank: 6

积分
1062
 楼主| 发表于 2018-12-4 09:20:37 | 显示全部楼层
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文档中没找到用哪个函数,能告诉我么?

回复 支持 反对

使用道具 举报

4

主题

188

帖子

1698

积分

广州创龙

Rank: 8Rank: 8

积分
1698
发表于 2018-12-4 10:41:42 | 显示全部楼层
您好:
        信号量只是在您切换任务的时候会用到,就算使用的是同一个信号量也不会冲突,信号量没有说会指定到那个任务必须用某一个信号量。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  回帖提醒

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号-1  

GMT+8, 2019-6-25 21:14 , Processed in 0.134492 second(s), 42 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表