DSPC6678的sysbios核间通信MessageQ新建工程

MessageQ核间通信

在使用多核时,由于使用了sysbios系统,需要每个核心都启动sysbios固件,不像linux那样可以由系统调度内核。所以需要核间通信来确保多核间的交流。
本例程基于官方例程,重新建立工程以实现核间通信。

环境:CCS9,win10

1.新建工程

我们使用新建工程,建立一个sysbios的工程,并且使用官方板卡配置。
然后选择上需要的库文件
XDC:3.23.4.60
IPC:1.24.3.32
PDK6678:1.1.2.6
sysbios:6.33.6.50

在这里插入图片描述
在这里插入图片描述

2.使用库文件

我们需要使用sysbios的CFG配置文件
在这里插入图片描述

1.MessageQ

通过此模块进行核间通信
在这里插入图片描述

2.Csl

标准库文件
在这里插入图片描述

3.Timestamp

在这里插入图片描述

4.SharedRegion

共享内存,用于给IPC(MessageQ)使用
在这里插入图片描述

5.MultiProc

多核选项,我们当前使用双核做例程,所以填上核心数量2.
在这里插入图片描述
在这里插入图片描述

3.填写库文件

我们将cfg文件使用cfg Script打开,对其中的详细参数进行配置

1.配置变量

在这里插入图片描述

2.扩大堆空间

在这里插入图片描述

3.配置核心和共享内存

在这里插入图片描述

3.代码部分

这部分我简单提一下大家看一下就可以,不用照抄,想写的同学可以参照官方例程qmssIpcBenchmark_c6678,这个包在pdk里面,但我当时参考的是C66xx的工程,其实都一样。
这里不得不说一嘴,使用者需要将官方例程中的common文件夹复制粘贴过来并添加到include路径配置才不会报错。

以下是基本的使用流程
attachAll(numCores);负责等待和其他核心同步(可有可无)
MessageQ_create:创建队列
MessageQ_registerHeap:注册使用空间
MessageQ_open:打开队列
MessageQ_alloc:申请发送空间
MessageQ_put:发送

MessageQ_get:接收
MessageQ_free:释放申请的空间

我的验证做法就是主核心向从核心发送消息,从核心一直处于接收阻塞状态等待接收,从核心一旦接收完毕就会再发回给主核心,主核心接收完成则结束。

4.调试

需要将两个核心组成一个,然后以组的形式运行,最后终端就会打印出信息了。

posted @ 2025-06-03 16:47  东风点点吹  阅读(42)  评论(0)    收藏  举报