//////////////////////////////////////////////////////////////////////////////////
typedef unsigned char u8;
typedef unsigned int u32;
#define BUFFER_SIZE (1024*500) //缓冲区的长度,可以修改
static u32 validLen;//已使用的数据长度
static u8* pHead = NULL;//环形存储区的首地址
static u8* pTail = NULL;//环形存储区的结尾地址
static u8* pValid = NULL;//已使用的缓冲区的首地址
static u8* pValidTail = NULL;//已使用的缓冲区的尾地址
int head,tail;
/*
* 初始化环形缓冲区
* 环形缓冲区这里可以是malloc申请的内存,也可以是Flash存储介质
* */
//CRITICAL_SECTION g_cs;
//HANDLE hMutex = NULL;
void initRingbuffer(void)
{
if(pHead == NULL)
{
pHead = (u8*) malloc(BUFFER_SIZE);
}
pValid = pValidTail = pHead;
pTail = pHead + BUFFER_SIZE;
validLen = 0;
head=tail=0;
// InitializeCriticalSection(&g_cs);// 初始化临界区
// hM
环形缓冲区C语言实现
最新推荐文章于 2025-06-16 20:53:53 发布