1.编译、安装驱动
linux系统中,驱动程序通常采用内核模块的程序结构来进行编码,因此,编译、安装一个驱动程序,其实质就是编译、安装一个内核模块。
将文件memdev.c makefile 放入虚拟机中,make 得到.ko文件
cp .ko rootfs
启动开发板
insmod *.ko
2.创建设备文件
通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制字符设备。创建字符设备文件的方法:
a.使用mkmod命令
mknod /dev/文件名 c 主设备号(将驱动和设备文件关联) 次设备号
mknod /dev/memdev0 c 253 0
b.使用函数在驱动中创建
应用程序-》通过文件名-》字符设备文件-》通过主设备号-》设备驱动程序
主设备号 cat proc/device 里面存放了不同设备的主设备号。
memdev.c 模拟一个设备,导入数据到一个数组中或从数组中输出一个数据。
3.访问设备
vim write_mem.c
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main()
{
int fd =0;//
int src = 2013;
fd=open("/dev/memdev0",O_RDWR);//以可读可写的方式打开文件,打开之后会返回一个fd,
write(fd,&src,sizeof(int));向文件中写入数据,首先写入fd,然后写入数据,数据的大小。
close(fd);
}
arm-linux-gcc write_mem.c -o write_mem -g
发现出现错误,有头文件未能包含。