1
完善资料让更多小伙伴认识你,还能领取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一致性的代码后问题解决 |
|
|
|
只有小组成员才能发言,加入小组>>
332 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
772 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1124 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
54浏览 29评论
88浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
248浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
196浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 17:37 , Processed in 0.878008 second(s), Total 79, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号