⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 link.c

📁 这是单板上DPRAM的驱动程序
💻 C
字号:
#include <types.h>
#include "link.h"

#define LINK_TRACE

#ifdef LINK_TRACE
int link_trace_index=0;
struct {LinkBufStruct *head, *tail; int num;} link_trace_table[20];
#endif

void LinkInit(LinkStruct *link)
{
    if(link!=NULL){
        link->Head=link->Tail=NULL; 
        link->Number=0; 
        }
}
void LinkAppendBuf(LinkStruct *link, LinkBufStruct *buf)
{
    int ilev;
    if(link==NULL)return;
    if(link->Tail==NULL){ link->Head=link->Tail=buf; }
    else { link->Tail->Next=buf; link->Tail=buf; }
    link->Number++;

#ifdef LINK_TRACE
    link_trace_index=(link_trace_index+1)%20;
    link_trace_table[link_trace_index].head=link->Head;
    link_trace_table[link_trace_index].tail=link->Tail;
    link_trace_table[link_trace_index].num=link->Number;
#endif
}

int link_buffer_error=0;
LinkBufStruct *LinkGetBuf(LinkStruct *link)
{
    int ilev;
    LinkBufStruct *buf;
    if(link==NULL)return NULL;
    if(link->Number==0)return NULL;
    if(link->Number==1)
    {
        buf=link->Head;
        link->Head=NULL;
        link->Tail=NULL;
    }
    else
    {
        buf=link->Head;
    	if(memcmp(((char *)buf)-4,"abcd",4)!=0){
    		link_buffer_error++;
		return NULL;
	}
        link->Head=(link->Head)->Next;              
    }
    link->Number--;
    buf->Next=NULL;

#ifdef LINK_TRACE
    link_trace_index=(link_trace_index+1)%20;
    link_trace_table[link_trace_index].head=link->Head;
    link_trace_table[link_trace_index].tail=link->Tail;
    link_trace_table[link_trace_index].num=link->Number;
#endif

    return buf;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -