📄 test.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 + -