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

📄 test.c

📁 是ISP1581 linux 操作系统下驱动源码。
💻 C
字号:
/*user mode program for test isp1581 driver
 *first make a dev node
 * #mknod /dev/usb/isp1581 c 180 192
 */

#include <stdio.h>
#include <strings.h>
#include <fcntl.h>
void usage(char * name)
{
	printf("Usage:%s {r|w num}\n",name);
	printf("\tr\tread 8 bytes from isp1581\n");
	printf("\tw\twrite 8 bytes(num) to isp1581\n");
}

void str2num(char * str,char * num,int n)
{
	int i=0;
	bzero(num,n);
	while(n && *str)
	{
		char c=*str;
		if(c<='9' && c>='0')
			num[i]=c-'0';
		else if(c<='f' && c>='a')
			num[i]=c-'a'+10;
		else if(c<='F' && c>='A')
			num[i]=c-'A'+10;
		else
			num[i]=0;

		n--;
		str++;
		i++;
	}
}

int main(int argc,char **argv)
{
	int fd=0;
	unsigned char buf[8];
	int i,len=0;

	if(argc<2)
	{
		usage(argv[0]);
		return 0;
	}

	fd=open("/dev/usb/isp1581",O_RDWR);
	if(fd==-1)
	{
		perror("open error");
		return -1;
	}

	if(argv[1][0]=='r' && argc==2)
	{	
		bzero(buf,sizeof(buf));
		len=read(fd,buf,sizeof(buf));
		if(len==-1)
			perror("read error");
		else
		{
			printf("readed %d bytes:",len);
			for(i=0;i<len;i++)
				printf("%X\t",buf[i]);
			printf("\n");
		}
	}
	else if(argv[1][0]=='w' && argc==3)
	{
		str2num(argv[2],buf,sizeof(buf));
		len=write(fd,buf,sizeof(buf));
		if(len==-1)
			perror("write error");
		else
			printf("wrote %d bytes\n",len);
	}
	else
		usage(argv[0]);

	if(fd)
		close(fd);

	return 0;


}

⌨️ 快捷键说明

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