[发明专利]长时间连续DMA传输的缓冲区管理的软件实现方法有效
申请号: | 201210572379.4 | 申请日: | 2012-12-25 |
公开(公告)号: | CN103064679A | 公开(公告)日: | 2013-04-24 |
发明(设计)人: | 张伟楠;许崴稚;邹璞;储艳丽;杨立杰;史雄伟 | 申请(专利权)人: | 北京航天测控技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F12/08 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 杨志兵;高燕燕 |
地址: | 100041 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种长时间连续DMA传输的缓冲区管理方法,该方法支持缓冲区的读方和写方循环且长时间使用该缓冲区,不会产生数据覆盖或使用效率不高问题。将以写缓冲区方完成一次数据采集和处理操作周期T1为基础,开辟的缓冲区大小为10×T1;定义缓冲区的3个标志位,flag1为写数据的当前位置,flag2为读数据的当前位置,flag4为缓冲区的开始位置。写缓冲区方从flag4开始持续写缓冲区,写位置不能超过flag2;在读过程中,读缓冲区方定期查询缓冲区内当前可读的数据量,当根据flag1和flag2之间的差距判定缓冲区内未读数据已经达到Size,便从缓冲区中连续读取Size个数据。 | ||
搜索关键词: | 长时间 连续 dma 传输 缓冲区 管理 软件 实现 方法 | ||
【主权项】:
一种长时间连续DMA传输的缓冲区管理方法,其特征在于,包括:首先定义如下参数:preDMA_sta为DMA传输过程中上一次写到的数据量,初始值为0;curDMA_sta为DMA传输过程中实际已写的数据量,初始值为0;curDMA_sta和preDMA_sta采用相同位数的无符号整形;DMAtemp为中间变量,初始值为0;LsLoop为缓冲区被循环的次数,初始值为0;当curDMA_sta溢出后,LsLoop被清零;Rtime为缓冲区被Size大小分块读的次数,初始值为0;当读操作跨越了缓冲区的首尾时,Rtime被清零;Max为curDMA_sta在不溢出情况下的最大值;Rtemp为中间变量,记录数据类型溢出时,缓冲区已被块读过的次数,初始值为0;Datatemp为中间变量,初始值为0,记录读操作跨越缓冲区首尾时,从缓冲区首部读取的数据量;flag2表示每次从缓冲区中读数据的起始位置;flag4为缓冲区的初始地址;设定缓冲区的大小为LSize,每次读数据的个数为Size,Size
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天测控技术有限公司,未经北京航天测控技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210572379.4/,转载请声明来源钻瓜专利网。