完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问PDMA集散-ping-pang模式,一个数据帧卡到了尾部和头部,这种该怎么处理比较好一些?
比如一个数据帧100字节,缓存buff[300],会导致一个数据卡在 buff[250],buff[50]之间了。 这种有she |
|
相关推荐
2个回答
|
|
集散模式是按照表格设定的搬运个数搬运完后才算结束。比如设置搬运个数=300,实际一帧收到50个数据,此时对于PDMA来说本次传输并没有结束,那么下一帧来时就会从index=50的位置继续往后写。
如果你想接收到每帧都是从数组的0地址开始,可以收完一帧数据后重启PDMA。如果是这种应用没必要用集散模式,用基本模式就可以了。 |
|
|
|
对于PDMA集散-ping-pang模式,一个数据帧卡到了尾部和头部的情况,可以采取以下几种处理方法:
1. 增大缓存大小:如果可能的话,可以增大缓存的大小,以确保能够容纳一个完整的数据帧。在这种情况下,可以将缓存的大小增加到至少350字节,以确保能够容纳100字节的数据帧。 2. 重新设计数据缓冲区:如果无法增大缓存的大小,或者有其他限制,可以重新设计数据缓冲区的结构。例如,可以使用环形缓冲区来解决数据卡在缓冲区头部和尾部之间的问题。环形缓冲区可以循环利用缓冲区的空间,使得数据帧能够被正确存储。 3. 数据拆分和组合:如果数据帧卡在缓冲区的中间,可以将数据帧拆分为两部分,分别存储在缓冲区的两个部分。然后,在数据接收端,将两部分数据进行组合,以得到完整的数据帧。这种方法需要在数据帧的头部和尾部添加额外的标识符,以标识数据帧的起始和结束。 4. 错误处理和重传:如果以上方法无法解决问题,可以在数据接收端进行错误处理,并要求数据发送端重新发送数据帧。这可以通过在通信协议中定义一些错误检测和重传机制来实现。 综上所述,具体采取哪种处理方法取决于实际情况和系统的限制。在设计过程中,需要考虑数据帧的大小、缓存大小以及通信协议等因素,以选择最合适的处理方法。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
1792 浏览 0 评论
【瑞萨RA2L1入门学习】+ MacOS安装e2studio
733 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
784 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
656 浏览 0 评论
754 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12249 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 18:29 , Processed in 0.665235 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号