完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-19 14:25 编辑
在C6670中,因只有一个bcp硬件加速器,不同核所来数据怎样同时运行起来而不发生一个核经常抢占BCP加速器,导致其它核数据不能送入到BCP加速器中进行处理?请问是否有什么好的办法或者机制来处理这种情况?(比如说以core 0和core 1都在给bcp加速器持续送数据为例(它们送数据的时间可以是同时的,也可以是非同时的),请老师给我的回答稍微详细点,谢谢。) |
|
相关推荐
7个回答
|
|
BCP是navigator device,进出的数据包都由QMSS进行队列管理,所以只需要将数据包压送到队列,BCP会根据优先级的配置进行队列的处理。简单来说应用程序需要做的是根据应用分配好BCP的TX及RX资源,配置相应的优先级,而不需要由应用程序完成更多的资源调度管理。具体请参考BCP手册3.2.3关于queue mapping and prioritization一节。
|
|
|
|
zbb9612 发表于 2018-6-19 00:56 感谢Andy Yin 的解答,在EVM板上,仅在core0上运行bcp例程没问题,如果在core0和core1上同时运行,仅core0能正常通过,core1未通过,发现core1已经把输入数据送给了BCP,中断没有起来。bcp的TX和RX分别有8个channel,修改后core0和core1的TX和RX分别用了不同的channel和Queue,但是core1还是没能正常运行,请问是否还有什么细节地方没有注意到?请给予帮助。(单核到双核测试,主要修改如下:1、MultiProc.setConfig(null, ["CORE0", "CORE1"]); 2、txCfg.txQNum += CSL_chipReadReg (CSL_CHIP_DNUM)。) 测试的的提示信息如下: [C66xx_0] ************************************************** [C66xx_0] *************** BCP Testing Start *************** [C66xx_0] ************************************************** [C66xx_0] Using BCP Driver version: 0x1000007 Version Info: BCP Driver Revision: 01.00.00.07:Oct 9 2012:10:11:03 [C66xx_0] [Core 0]: L1D cache size 0. L2 cache size 0. [C66xx_1] ************************************************** [C66xx_1] *************** BCP Testing Start *************** [C66xx_1] ************************************************** [C66xx_1] Using BCP Driver version: 0x1000007 Version Info: BCP Driver Revision: 01.00.00.07:Oct 9 2012:10:11:03 [C66xx_1] [Core 1]: L1D cache size 0. L2 cache size 0. [C66xx_1] Waiting for Sys Init to be completed ... [C66xx_0] [Core 0]: BCP instance 0 successfully initialized [C66xx_0] [Core 0]: BCP driver successfully opened [C66xx_0] Global FDQ 877 successfully setup with 64 descriptors [C66xx_0] [C66xx_0] -------------- LTE DL Test Start -------------- [C66xx_0] Rx FDQ 736 successfully setup with 62 descriptors [C66xx_0] Flow 0 opened to send data to RxQ: 900 [C66xx_0] Tx FDQ 737 successfully setup with 2 descriptors [C66xx_0] LTE DL Test: PASS [C66xx_0] [C66xx_0] -------------- BCP Testing Complete -------------- [C66xx_0] Num Test Failures = 0 [C66xx_0] Waiting for other cores to finish ... [C66xx_1] [Core 1]: BCP driver successfully opened [C66xx_1] Global FDQ 878 successfully setup with 64 descriptors [C66xx_1] [C66xx_1] -------------- LTE DL Test Start -------------- [C66xx_1] Rx FDQ 737 successfully setup with 62 descriptors [C66xx_1] Flow 1 opened to send data to RxQ: 901 [C66xx_1] Tx FDQ 738 successfully setup with 2 descriptors |
|
|
|
fu6845463651 发表于 2018-6-19 01:06 看了一下程序,可能有两点原因造成: 1. 在register_rx_interrupts中修改如下代码 eventId = 49 + CSL_chipReadReg (CSL_CHIP_DNUM);为 eventId = 49; 即不需要加上coreID,这个事件对每个核是一样的; 2. 从上述打印信息来看,Core1的RxFDQ与core0的TxFDQ复用,建议修改代码避开使用不同的queue。 先修改第1点试试看,实际应用中请避免问题2的出现。 |
|
|
|
zbb9612 发表于 2018-6-19 01:20 谢谢,主要是原因1造成的。 |
|
|
|
按照您和Andy的方法修改后依然不成功,请指点! -------------- LTE DL Test Start -------------- Rx FDQ 736 successfully setup with 1 descriptors Flow 0 opened to send data to RxQ: 900 Tx FDQ 737 successfully setup with 1 descriptors [C66xx_1] Waiting for Sys Init to be completed ... subFN number is 0 core1 msg received [Core 1]: BCP driver successfully opened Global FDQ 878 successfully setup with 64 descriptors -------------- LTE DL Test Start -------------- Rx FDQ 738 successfully setup with 1 descriptors Flow 1 opened to send data to RxQ: 901 Tx FDQ 739 successfully setup with 1 descriptors 麻烦问一下修改后core0和core1的TX和RX分别用了不同的channel和Queue的具体方法有么? 其实他自动刚已经是不同的queue了。 具体可以看http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/45206/100321.aspx#100321 谢谢 |
|
|
|
zbb9612 发表于 2018-6-19 01:20 ************************************************** *************** BCP Testing Start *************** ************************************************** Using BCP Driver version: 0x1000100 Version Info: BCP Driver Revision: 01.00.01.00:Sep 29 2013:15:11:24 [Core 0]: L1D cache size 0. L2 cache size 0. [C66xx_1] ************************************************** *************** BCP Testing Start *************** ************************************************** Using BCP Driver version: 0x1000100 Version Info: BCP Driver Revision: 01.00.01.00:Sep 29 2013:15:11:24 [Core 1]: L1D cache size 0. L2 cache size 0. Waiting for Sys Init to be completed ... [C66xx_0] [Core 0]: BCP instance 0 successfully initialized [Core 0]: BCP driver successfully opened Global FDQ 877 successfully setup with 64 descriptors -------------- LTE DL Test Start -------------- Rx FDQ 736 successfully setup with 62 descriptors Flow 0 opened to send data to RxQ: 900 Tx FDQ 737 successfully setup with 2 descriptors LTE DL Test: PASS -------------- BCP Testing Complete -------------- Num Test Failures = 0 Waiting for other cores to finish ... [C66xx_1] [Core 1]: BCP driver successfully opened Global FDQ 878 successfully setup with 64 descriptors -------------- LTE DL Test Start -------------- Rx FDQ 736 successfully setup with 62 descriptors Flow 1 opened to send data to RxQ: 901 Tx FDQ 737 successfully setup with 2 descriptors 736和737问题是自动申请的,在core0 调用free后 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
334 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
773 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1126 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
55浏览 29评论
112浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
250浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
199浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:00 , Processed in 1.008187 second(s), Total 91, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号