测试驱动之前需要执行make menuconfig,去掉内核自带看门狗驱动(位于Device Drivers -> Character devices -> Watchdog Timer Support),重新编译烧写内核。
将驱动编译为wdt_drv.ko文件,insmod加载驱动,如图所示,可以看到probe函数中的提示信息:
再编写一个简单的应用程序测试驱动功能,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
int fd;
char c;
int i;
fd = open("/dev/watchdog", O_RDWR);
if(fd == -1) {
printf("no device\n");
exit(1);
}
c = argv[1][0];
for(i = 0; i < 15; i++) {
printf("%d\n", i);
sleep(1);
write(fd, &c, 1);
}
close(fd);