完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在我们的应用中,GETH Rx DMA 被暂停(即 DMA 通道 i 状态寄存器.RBU ==1),因为 Rx DMA 无法获得 Rx 描述符。
根据"TC3xx 用户手册 part2.pdf" 第 2921 页、 "要恢复处理 Rx 描述符,应用程序应更改 描述符的所有权,并发出接收轮询需求命令。 如果不发出该命令,则在收到下一个 识别到的传入数据包时恢复 Rx 进程。 在环模式下,应用 应将通道的接收描述符尾指针寄存器提前。 " 但是,我们在手册中找不到有关"Receive Poll Demand 命令的任何介绍。" 。 那么,如何从 Rx DMA 暂停状态恢复? 在应用程序 将通道的接收描述符尾指针寄存器提前后,是否只需清除 RBU 位并重新启动 Rx DMA 即可? |
|
相关推荐
1个回答
|
|
在TC397上从DMA暂停状态恢复GETH RX DMA的过程可以分为以下几个步骤:
1. 首先,确保应用程序已经正确地更新了Rx描述符。这包括设置正确的缓冲区地址、缓冲区大小以及将描述符的所有权从CPU更改为DMA。 2. 在更新Rx描述符后,需要发出接收轮询需求命令(Receive Poll Demand,简称RPD)。这个命令的作用是通知DMA引擎检查Rx描述符并开始处理它们。在TC3xx用户手册中,可能没有明确提到RPD命令的具体实现,但我们可以通过以下方式来实现它: a. 编写一个宏定义或函数,用于生成RPD命令。例如: ```c #define RPD_COMMAND 0x00010001 // 这个值可能需要根据实际硬件和驱动进行调整 void issueRPDCommand(volatile uint32_t *dmaBaseAddr) { *(dmaBaseAddr + RPD_OFFSET) = RPD_COMMAND; } ``` 注意:`dmaBaseAddr`是指向DMA通道基地址的指针,`RPD_OFFSET`是RPD命令在DMA通道寄存器中的偏移。 b. 在应用程序中,调用这个函数来发出RPD命令: ```c issueRPDCommand(dmaBaseAddr); ``` 3. 在环模式下,应用程序需要提前更新通道的接收描述符尾指针寄存器。这可以通过以下方式实现: a. 编写一个宏定义或函数,用于更新尾指针寄存器。例如: ```c #define RDES_RING_END_OFFSET 0x18 // 这个值可能需要根据实际硬件和驱动进行调整 void updateRDESRingEnd(volatile uint32_t *dmaBaseAddr, uint32_t tailPointer) { *(dmaBaseAddr + RDES_RING_END_OFFSET) = tailPointer; } ``` 注意:`dmaBaseAddr`是指向DMA通道基地址的指针,`RDES_RING_END_OFFSET`是尾指针寄存器在DMA通道寄存器中的偏移。 b. 在应用程序中,调用这个函数来更新尾指针寄存器: ```c updateRDESRingEnd(dmaBaseAddr, newTailPointer); ``` 其中`newTailPointer`是新的尾指针值,指向更新后的最后一个Rx描述符。 4. 在执行上述操作后,GETH Rx DMA应该能够从暂停状态恢复并开始处理Rx描述符。 请注意,上述代码示例仅供参考,实际实现可能需要根据具体的硬件和驱动进行调整。建议仔细阅读TC3xx用户手册和相关硬件文档,以确保正确实现这些操作。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
346 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6120 浏览 2 评论
4101 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3628 浏览 9 评论
1229 浏览 8 评论
452浏览 2评论
267浏览 2评论
374浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6127浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
451浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 13:05 , Processed in 0.701907 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号