Linux驱动测试APP程序编写
1、open、read、write 和 close 这四个函数。
①、open 函数
int open(const char *pathname, int flags)
pathname:要打开的设备或者文件名。
flags:文件打开模式,以下三种模式必选其一:
O_RDONLY 只读模式
O_WRONLY 只写模式
O_RDWR 读写模式
返回值:如果文件打开成功的话返回文件的文件描述符。
在 Ubuntu 中输入“man 2 open”即可查看 open 函数的详细内容
②、read 函数
ssize_t read(int fd, void *buf, size_t count)
read 函数参数含义如下:
fd:要读取的文件描述符,读取文件之前要先用 open 函数打开文件,open 函数打开文件成
功以后会得到文件描述符。
buf:数据读取到此 buf 中。
count:要读取的数据长度,也就是字节数。
返回值:读取成功的话返回读取到的字节数;如果返回 0 表示读取到了文件末尾;如果返
回负值,表示读取失败。在 Ubuntu 中输入“man 2 read”命令即可查看 read 函数的详细内容。
③、write 函数
ssize_t write(int fd, const void *buf, size_t count);
write 函数参数含义如下:
fd:要进行写操作的文件描述符,写文件之前要先用 open 函数打开文件,open 函数打开文
件成功以后会得到文件描述符。
buf:要写入的数据。
count:要写入的数据长度,也就是字节数。
返回值:写入成功的话返回写入的字节数;如果返回 0 表示没有写入任何数据;如果返回
负值,表示写入失败。在 Ubuntu 中输入“man 2 write”命令即可查看 write 函数的详细内容。
④、close 函数
int close(int fd);
close 函数参数含义如下:
fd:要关闭的文件描述符。
返回值:0 表示关闭成功,负值表示关闭失败。在 Ubuntu 中输入“man 2 close”命令即可
查看 close 函数的详细内容。
2、编写测试 APP 程序
测试 APP 很简单通过输入相应的指令来对 chrdevbase 设备执行读或者写操作。
编译测试 APP -> arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp
3、运行测试
①加载驱动模块
insmod chrdevbase.ko
或
modprobe chrdevbase.ko