buffer.c
来自「STR71X系列ARM微控制器原理与实践配套光盘」· C语言 代码 · 共 52 行
C
52 行
#include "Buffer.h"
static u32 Buffer[BUFFER_SIZE], *BufHead, *BufTail;
static unsigned BufUsed;
unsigned Buf_WordsUsed;
void Buf_Init(void)
{
BufUsed = 0;
BufHead = BufTail = Buffer + BUFFER_SIZE;
Buf_WordsUsed = 0;
}
unsigned Buf_GetWords(void)
{
return BufUsed;
}
int Buf_Put(u32 *data, unsigned len)
{
if(BUFFER_SIZE - BufUsed < len)
return -1;
BufUsed += len;
if(Buf_WordsUsed < BufUsed)
Buf_WordsUsed = BufUsed;
while(len)
{
if(BufTail <= Buffer)
BufTail += BUFFER_SIZE;
*--BufTail = *data++;
len--;
}
return 0;
}
int Buf_Get(u32 *data, unsigned len)
{
if(BufUsed < len)
return -1;
BufUsed -= len;
while(len)
{
if(BufHead <= Buffer)
BufHead += BUFFER_SIZE;
*data++ = *--BufHead;
len--;
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?