linux驱动
jandriux
嵌入式爱好者一枚
展开
-
class_create(),class_device_create()或device_create()自动创建设备文件结点
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_creat转载 2014-09-09 09:53:46 · 392 阅读 · 0 评论 -
size_t ssize_t loff_t 的区别
Ssize_t 与size_t跟踪linux源码得到以下宏: #ifndef _SIZE_T#define _SIZE_Ttypedef __kernel_size_t size_t;#endif #ifndef _SSIZE_T#define _SSIZE_Ttypedef __kernel_ssize_t ssize_t;转载 2014-09-09 16:26:35 · 2865 阅读 · 0 评论 -
struct pollfd
int poll (struct pollfd *fds, size_t nfds , int timeout);struct pollfd {int fd; /* 文件描述符 */short events; /* 等待的事件 */short revents; /* 实际发生了的事件 */};#include int poll(struct po转载 2014-09-21 16:25:06 · 397 阅读 · 0 评论 -
copy_to_user()和copy_from_user()
最近在研究驱动,需要使用到这两个函数。简单的介绍一下原创 2014-09-11 20:08:58 · 459 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i i++) cout转载 2014-09-11 20:57:37 · 294 阅读 · 0 评论 -
linux设备驱动:中断的实现
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是中断中断分两种:1)中断,又叫外部中断或异步中断,它的产生是由于外设向处理器发出中断请求。其中外部中断也有两种,这是由配置寄存器设定的:普通中断请求(IRQ)和快速中断请转载 2014-09-17 12:10:45 · 2042 阅读 · 0 评论