8-1 mmap设备方法
摘要:1、mmap函数原型 void *mmap(void *addr, size_t len, int prot, int flag, int fd, offset_t offset)作用:(1)内存映射函数mmap,负责把文件内容映射到进程的虚拟地址空间。这样做的目的就是减少read和write操作。
阅读全文
7-5 自动创建设备文件
摘要:1、在之前的字符设备驱动程序过程中,每次都需要直接手动创建字符设备例如:mknod /dev/char0 c 253 0 2、我去还有内核函数自动创建(2.4b版本存在)devfd_register(devfd_handle_t dir, const char *name, unsigned int
阅读全文
1-5 ARM汇编指令详解
摘要:ARM汇编指令指令集 ARM伪指令 C与ARM汇编混合编程 1、跳转指令 arm一共有两种方法实现程序的跳转: (1)直接往PC寄存器写值 mov LR,PC (2)跳转指令 B:跳转指令,不返回 BL:带返回的跳转指令 BLX:带返回和状态切换的跳转指令 BX:带状态切换的跳转指令 (2.1) B
阅读全文
7-1 ioctl设备控制
摘要:1、设备ioctl2、内核等待队列3、阻塞型字符设备4、poll设备操作5、自动创建设备文件 1、设备ioctl 作用:个人认为就是用来传递参数和命令到内核驱动,内核驱动程序接收到这个命令之后进行控制设备。用户态函数原型:int ioctl(int fd, unsigned long cmd, ..
阅读全文
7-4 poll设备方法 7-5自动创建设备文件
摘要:7-4 select系统调用 该系统调用用于多路监控,当没有一个文件满足要求时2,select将阻塞调用进程。int select(int maxfd, fd_set *readfds, fd_set*writefds, fd_set* exceptfds, const struct timeval
阅读全文
7-2 内核等待队列 7-3阻塞型字符设备驱动
摘要:7-1、设备ioctl控制 7-2、内核等待队列 7-3、阻塞型字符设备驱动 7-4、poll设备操作 7-5、自动创建设备文件 7-2、内核等待队列 在linux中,可以使用等待队列来实现进程的阻塞睡眠,可以把队列看做是保存容器中,阻塞进程形成一个队列。唤醒是从队列中取出来。 1、创建一个队列:
阅读全文