阅读:2368回复:1
环形缓冲在VxWorks中如何创建一个环形缓冲,如何对它进行操作? 谢谢! |
|
沙发#
发布于:2005-06-23 00:28
恩,这个不是很难的,一般比较简单。
给你个例子: typedef struct /* RING - ring buffer */ { int pToBuf; /* offset from start of buffer where to write next */ int pFromBuf; /* offset from start of buffer where to read next */ int bufSize; /* size of ring in bytes */ char *buf; /* pointer to start of buffer */ } RING; 这个WindRiver公司的一个结构,可以参考使用。 该结构主要用于比较小的I/O系统的缓冲,比如串口等等。我明天会公司帮帮查查我写过的一个文档的。 提供的最基本的操作: rngCreate rngDelete 从缓冲区中取或者放多少个bytes rngBufGet(RING *rng, void *buffer, int maxBytes) rngBufPut(RING *rng, void *buffer, int maxBytes) 清空缓冲区: rngBufFlush 释放多少个bytes rngFreeBytes(RING *rng, int maxBytes) rngIsEmpty rngIsFull 这些都是最基本的操作,和数据结果类似! |
|
|