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

📄 myfunction.c

📁 windrive开发的pci9054的驱动程序。
💻 C
字号:
#include "myfunction.h"

void ReadSram(P9054_HANDLE hP9054)
{
	DWORD data=0;
	int addr=0;
	int i;
	FILE *fp;

	if((fp=fopen("sram.dat","wb"))==NULL)
	{
		printf("Cannot open this file\n");
		exit(0);
	}

	for (i=0;i<256*1024;i++)
	{
		data = P9054_ReadDWord(hP9054, 2, addr);
		fwrite(&data,sizeof(int),1,fp);
		addr+=4;
	}
	fclose(fp);
}

void WriteSram(P9054_HANDLE hP9054)
{
	int data=0;
	int addr=0;
	int i;

	for (i=0;i<256*1024;i++)
	{
		P9054_WriteDWord(hP9054, 2, addr, data);
		addr+=4;
		data+=1;
	}
}

void WriteSramSameDate(P9054_HANDLE hP9054)
{
	int data=0;
	int addr=0;
	int i;

	printf("Input a data to Write:0x");
	scanf("%x",&data);

	for (i=0;i<256*1024;i++)
	{
		P9054_WriteDWord(hP9054, 2, addr, data);
		addr+=4;
	}
}

void WriteSramByByte(P9054_HANDLE hP9054)
{
	unsigned char data=0;
	unsigned long addr=0;

	for (addr=0;addr<3;addr++)
	{
		P9054_WriteByte(hP9054, AD_PCI_BAR2, addr, data);
		data++;
	}
}

void WriteDpram(P9054_HANDLE hP9054)
{
	int data=0;
	int addr=0;
	int i;

	for (i=0;i<1024;i++)
	{
		P9054_WriteDWord(hP9054, 3, addr, data);
		addr+=4;
		data+=1;
	}
}

void ReadDpram(P9054_HANDLE hP9054)
{
	int data=0;
	int addr=0;
	int i;
	FILE *fp;

	if((fp=fopen("dpram.dat","wb"))==NULL)
	{
		printf("Cannot open this file\n");
		exit(0);
	}

	for (i=0;i<1024;i++)
	{
		data = P9054_ReadDWord(hP9054, 3, addr);
		fwrite(&data,sizeof(int),1,fp);
		addr+=4;
	}
	fclose(fp);
}

void ReadPciBa0(P9054_HANDLE hP9054)
{
	int data=0;
	int addr=0;
	FILE *fp;

	if((fp=fopen("Ba0.dat","wb"))==NULL)
	{
		printf("Cannot open this file\n");
		exit(0);
	}

	for (addr=0;addr<0xff;addr+=4)
	{
		data = P9054_ReadDWord(hP9054, 0, addr);
		fwrite(&data,sizeof(int),1,fp);
	}
	fclose(fp);
}

void DMA_SG_L2P(P9054_HANDLE hP9054)
{
	unsigned char *BufferPool;
	P9054_DMA_HANDLE dma_return;
	FILE *fp;
	int i;
	unsigned char data;
	
	//分配缓冲池空间并初始化
	if ((BufferPool=(unsigned char *)malloc(BUFFER_POOL_SIZE*sizeof(unsigned char)))==NULL)
		{
			printf("Cannot allocate enough memory, terminated.\n");
		  	return;
		}
	else		printf("DMA Pool allocation ..........................COMPLETE.\n");

	for (i=0;i<BUFFER_POOL_SIZE;i++)
		*(BufferPool+i)=0;

	dma_return = P9054_DMAOpen (hP9054, 0, BufferPool, 
		BUFFER_POOL_SIZE, 1, P9054_MODE_DWORD, P9054_DMA_CHANNEL_0);
	if (dma_return=NULL)
		{
			printf("DMA open failed!\n");
			return;
		}
	else
		printf("DMA open successful!\n");
//	P9054_DMAStart (hP9054, dma_return, 0);
//	P9054_DMAClose (hP9054, dma_return);


	if((fp=fopen("dma.dat","wb"))==NULL)
	{
		printf("Cannot open this file\n");
		exit(0);
	}

	for (i=0;i<4096;i++)
	{
		data = *(BufferPool+i);
		fwrite(&data,sizeof(unsigned char),1,fp);
	}
	fclose(fp);
	free(BufferPool);

	
}



⌨️ 快捷键说明

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