【技术实现步骤摘要】
一种串口通信中的双指针环形缓冲区设计方法及系统
本专利技术涉及计算机领域和通信领域,尤其涉及一种串口通信中的双指针环形缓冲区设计方法及系统。
技术介绍
环形缓冲区是嵌入式系统软件设计中的一种常用数据结构,广泛应用到数据产生速率和数据处理速率不匹配的场合,在设计上一般采用先入先出的方式,一般采用预先静态分配内存的方式,由于嵌入式系统的内存资源非常有限,动态内存管理在多数情况下的运行效率和内存利用率都非常低,特别是频繁进行小容量内存单元的分配释放,会造成内存碎片,故多采用静态分配的方式来实现。但是,目前静态环形缓冲区的设计存在如下问题:一方面,无法判断缓冲区是空还是满状态。另一方面当缓冲区满了,需要进行解决,如果通过保持一个元素不用,判断为缓冲区已满,会一直保留了一个元素空间未能使用,存在内存浪费,存储空间利用率不高;如果当缓冲区满状态时,不再写入数据,由于不再写入数据或覆盖原来的数据,会导致数据丢失;如果当缓冲区写满时,由于不再写入数据或覆盖原来的数据,会导致数据丢失。
技术实现思路
鉴于以上所述现 ...
【技术保护点】
1.一种串口通信中的双指针环形缓冲区设计方法,其特征在于,包括:/n实时获取数据状态,所述数据状态包括数据读取和数据写入;/n设置缓冲区剩余长度变量,并建立所述缓冲区剩余长度变量分别与读写数据之间的映射关系;/n根据读写数据的状态获取缓冲区剩余长度变量的变化,并根据所述变化判断静态缓冲区的状态,所述静态缓冲区的状态包括空、未满和已满;/n当静态缓冲区已满时,建立动态缓冲区,将新增写入的数据写入动态缓冲区,并继续判断静态缓冲区的状态;/n当静态缓冲区的状态由已满变为未满时,将动态缓冲区的数据写入所述静态缓冲区。/n
【技术特征摘要】
1.一种串口通信中的双指针环形缓冲区设计方法,其特征在于,包括:
实时获取数据状态,所述数据状态包括数据读取和数据写入;
设置缓冲区剩余长度变量,并建立所述缓冲区剩余长度变量分别与读写数据之间的映射关系;
根据读写数据的状态获取缓冲区剩余长度变量的变化,并根据所述变化判断静态缓冲区的状态,所述静态缓冲区的状态包括空、未满和已满;
当静态缓冲区已满时,建立动态缓冲区,将新增写入的数据写入动态缓冲区,并继续判断静态缓冲区的状态;
当静态缓冲区的状态由已满变为未满时,将动态缓冲区的数据写入所述静态缓冲区。
2.根据权利要求1所述的串口通信中的双指针环形缓冲区设计方法,其特征在于,
当数据状态为写入数据时,将缓冲区剩余长度变量减1;
当数据状态为读取数据时,将缓冲区剩余长度变量加1;
当缓冲区剩余长度变量为0时,判断静态缓冲区已满;
当缓冲区剩余长度变量与静态缓冲区的长度相等时,判断静态缓冲区为空。
3.根据权利要求2所述的串口通信中的双指针环形缓冲区设计方法,其特征在于,所述动态缓冲区包括动态内存。
4.根据权利要求3所述的串口通信中的双指针环形缓冲区设计方法,其特征在于,当静态缓冲区的状态由已满变为未满时,将动态缓冲区的数据写入所述静态缓冲区,待动态缓冲区内的全部数据写完后,释放动态缓冲区的内存。
5.根据权利要求1-4任一所述的串口通信中的双指针环形缓冲区设计方法,其特征在于,所述静态缓冲区为环形缓冲区。
6.根据权利要求5所述的串口通信中的双指针环形缓冲区设计方法,其特征在于,设置队...
【专利技术属性】
技术研发人员:王玉军,姚杰,练俊君,
申请(专利权)人:重庆川仪自动化股份有限公司,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。