文件路径:工程源码\Linux\SRC\exp\driver\01_demo\test_demo.c
1.源码分析
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
void showbuf(char *buf); //声明函数,先使用再定义
int MAX_LEN=32;
int main()
{
int fd;
int i;
char buf[255];
for(i=0; i<MAX_LEN; i++){ //初始化数组
buf[i]=i;}
fd=open("/dev/demo",O_RDWR); //系统open打开ARM 端设备节点/dev/demo
if(fd < 0){
printf("####DEMO device open fail####\n");
return (-1);}
printf("write %d bytes data to /dev/demo \n",MAX_LEN);
showbuf(buf);
write(fd,buf,MAX_LEN); //系统write,向设备节点/dev/demo 写入数组内容
printf("Read %d bytes data from /dev/demo \n",MAX_LEN);
read(fd,buf,MAX_LEN); //系统read,从设备节点/dev/demo读回数组内容并显示
showbuf(buf);
//ioctl(fd,1,NULL); //系统ioctl,依据测试情况是否打开
//ioctl(fd,4,NULL);
close(fd); //驱动程序定义了release,这里使用系统调用
return 0;
}
//显示数组内容函数
void showbuf(char *buf)
{
int i,j=0;
for(i=0;i<MAX_LEN;i++){
if(i%4 ==0)
printf("\n%4d: ",j++);
printf("%4d ",buf[i]);}
printf("\n*****************************************************\n");}