目录
(一)上篇回顾:上一篇讲到用户层怎么与驱动模块进行交互。Hello,World驱动之旅,对外接口(二)-优快云博客
(一)上篇回顾:上一篇讲到用户层怎么与驱动模块进行交互。Hello,World驱动之旅,对外接口(二)-优快云博客
1.通过insmod加载驱动
2.通过指令echo指令对驱动文件节点进行写操作
3.通过指令cat对驱动文件节点进行读操作
4.驱动底层记录写入次数,并通过cat读操作反馈出来。
(二)通过简单程序与驱动交互
前文已经通过指令echo、cat与驱动模块进行了交互,接下来我们通过简单的C语言程序与驱动程序进行交互。
读操作,代码如下:
int sys_files_read(char *path,char *buf,int len){
int ret;
int fd;
if(NULL == buf){
return -1;
}
//打开文件
fd = open(path, O_RDONLY);
if(fd > 0){
//读文件
ret = read(fd, buf, len);
if(ret<0){
close(fd);
return -2;
}
//关闭文件
close(fd);
return ret;
}else{
return -3;
}
}
open、read、close为linux系统调用,通过指令“man 2 xxxx”可以查看具体系统调用用法,包括头文件、参数、返回值、错误码等。xxx即为open、read、write等,示例指令如下: