完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
各位ti的工程师:
我碰到这样一个问题:我现在做的项目需要在核0里通过网口接收数据(NDK),在核一中通过BCP实现编解码,由于NDK和BCP都需要用到QMSS,就涉及在多核中配置QMSS,查看了相关文档,发现没有介绍如何在多核中使用QMSS。现在我采用如下方式做的:在MSMC中开辟了一块专门区间,并在核0以及核1将.cppi以及.qmss两个段都定位到该区间,然后在核0中调用qmss_init初始化qmss,调用qmss_insertmemregion()开辟了memregion0并调用cppi_initdescriptor初始化gloabl_fdq0供NDK使用;在核一中由于QMSS已经初始化完毕,直接调用qmss_start使得核一可以使用QMSS,接着调用qmss_insertmemregion()开辟了memregion1并调用cppi_initdescriptor()在memregion1中初始化global_fdq1,供BCP使用,现在主要有两个问题 1 请问我这样做的思路有没有问题?(程序中确保核0中初始化QMSS的程序(如上所描述)在核1中相应的程序之前运行) 2 在两个核中分别调用qmss_queue_open(),其中队列类型为QMSS_STARAVTION_QUEUE,队列号均为QMSS_QNUM_NOT_SPECIFIED,两个核都开始运行后发现只打开了一个队列,按照我的想法应该是打开两个队列才对。但我如果在核一中调用打开队列这个函数之前打上断点,然后再执行,发现就成功分配了两个队列。是不是该函数没有考虑过多核的情况(例如核0在打开队列时,占有一个semaphore,直到核0打开队列完成后才释放该semaphore,否则核1无法去打开队列)? |
|
相关推荐
2个回答
|
|
|
多核使用时,由一个core负责公共QMSS Link RAM,pktDMA global region的初始化,memory region可以每个core各自初始化各自的,pktDMA channel也可以各自初始化各自的。对于NDK及BCP,只需要一个core负责初始化公共的link ram即可,其他的都可以各自初始化各自,至于你说的queue open是否做了多核的维护,可能跟你使用的pdk板卡有关,你下载使用最新的版本看看有没有做多核资源申请处理。
|
|
|
|
|
zbb9612 发表于 2018-6-21 10:58 谢谢回复,现在问题已经解决,是由于多核维护的问题(cache一致性),我用的PDK那个版本内定义了多核维护的接口,但该接口实现是空的,添加保持cache一致性的代码后问题解决 |
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:53 , Processed in 0.604717 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
11725