完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位威廉希尔官方网站
人员好:
我最近在使用多核导航器进行核间通讯功能开发,使用论坛里下载的keystone_navigator修改而来。 设计程序功能如下: tx queue 800 tx fdq 5000 rx queue 712 rx fdq 7000 其中tx在core0,rx在core1上执行。 问题1:tx queue和tx fdq比较好理解,初始化将descriptor指针压入fdq,使用时从fdq pop出来,再 push到tx queue中即完成发送。rx queue和rx fdq如何使用,我也将descriptor压入fdq,接收时候需要 pop出来 push到rx queue,还是pktdma自动从rx fdq取出? 问题2:pktdma的channel与core和queue的对应关系如何实现?例如tx channel 0 固定对应queue 800 是否它只能core0 使用?而rx 0是否只能与tx 0 通讯,tx 0 没有固定对应的queue队列编号,如何将rx 0 与queue 712联系到一起,并且能够core1使用它。 问题3:初始化descriptor指针时,ll2的地址 0x00800000 都处理为 :core0使用的0x10800000地址, core1使用的0x11800000地址,这样做有没有必要? 问题4:发送的时候pop并push后,分别查看5000和800 queue的寄存器,发现5000的queue_count比初始 化少了1,说明pop成功了,800的queue_count仍然是0,原本程序问题还很多的时候push后看到这里为1, 那么是不是说发送出去了,如何将发送完成的descriptor回收进fdq,pktdma能自动完成吗? 看了手册就写程序,感觉对硬件的理解还差很多,望指教,谢谢。 |
|
相关推荐
1个回答
|
|
发布出去是因为在写queue的management reg D时低4位为descriptor长度,程序中未填入长度,使用默认16字节与rx flow里的接收长度冲突,所以发送失败。
1、rx flow选择长度合适的fdq 里的descriptor进行数据接收,然后pktdma将descriptor压入 rx queue,用户查询接收后将使用过的descriptor和对应指针清空再压入对应fdq进行回收。 2、接收使用那个queue是通过rx flow设置,rxflow选择对应descriptor长度的fdq和rx queue进行接收,tx与rx flow的对应关系是在descriptor中的src_tag_lo中,手册有明确说明。 3、不同核心使用相同地址申请空间,在多核导航器初始化时加上他们空间的全局偏移,这样可以省事,因为相对不同核心他们相对硬件是几乎相同的。这不是问题,主要是一种开发习惯。 4、自动完成。 |
|
|
|
只有小组成员才能发言,加入小组>>
532 浏览 1 评论
386 浏览 1 评论
584 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
831 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
689 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
137浏览 29评论
725浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
294浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
250浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
100浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 07:12 , Processed in 0.846965 second(s), Total 76, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号