arm-linux驱动
文章平均质量分 75
LoveLifeLoveYours
这个作者很懒,什么都没留下…
展开
-
linux设备驱动的并发控制
一、中断屏蔽中断屏蔽的使用方法:local_irq_disable();//屏蔽中断....//临界区处理local_irq_enable();//开中断注:local_irq_disable()和local_irq_enable()只能禁止和使能本CPU内的中断.local_irq_save(flags);//禁止中断并保存当前CPU的中断位信息loc原创 2014-03-11 11:28:44 · 615 阅读 · 0 评论 -
数值温度传感器18b20驱动分析
#include #include #include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME "Tem"#define tp_MAJOR 232u原创 2014-04-13 23:21:11 · 927 阅读 · 0 评论 -
PCI驱动
一、PCI总线1、PCI桥Host/PCI桥:用于连接CPU与PCI根总线,即“北桥芯片组”PCI/ISA桥:用于连接PCI与旧的ISA总线,即“南桥芯片组”PCI-to-PCI桥:用于连接PCI主总线与次总线2、pci_bus结构体(PCI总线结构体)定义在include/linux/pci.h中struct pci_bus {struct list_he原创 2014-03-14 23:06:39 · 1151 阅读 · 0 评论 -
内存与IO访问
一、用户空间的内存申请malloc();//申请free();//释放二、内核空间的内存申请1、kmalloc()void *kmalloc(size_t size,int flags);2、__get_free_pages()get_zeroed_page(unsigned int flags);__get_free_pages(unsigned int原创 2014-03-12 00:02:43 · 590 阅读 · 0 评论 -
中断与时钟
一、linux中断编程1、申请中断int requet_irq(unigned int irq,irq_handler_t handler,unsigned long irqflags,const char *devname,void *dev_id);2、释放中断void free_irq(unsigned int irq,void *dev_id);3、使能和屏蔽中断v原创 2014-03-12 00:02:01 · 576 阅读 · 0 评论 -
linux设备驱动中的异步通知与异步IO
一、linux异步通知编程1、信号的接收void (*signal(int signum,coid (*handler))(int)))(int);可分解为typedef void (*sighandler_t)(int);sighandler_t signal(int signum,sighandler_t handler);//用于改变进程接收到特定信号后的行为原创 2014-03-12 00:01:25 · 748 阅读 · 0 评论 -
linux设备驱动中的阻塞和非阻塞IO
一、等待队列1、定义等待队列头wait_queue_head_t my_queue;2、初始化等待队列头init_waitqueue_head(&my_queue);3、定义等待队列DECLARE_WAITQUEUE(name,tsk);4、添加/移除等待队列void fatcall add_wait_queue(wait_queue_head_t *q,wait_原创 2014-03-12 00:00:47 · 885 阅读 · 0 评论 -
文件操作系统调用
1、文件操作系统调用1)创建int creat(const char *filename,mode_t mode);2)打开int open(const char *filename,int flags);如果flags使用了O_CREATE标志则使用int open(const char *filename,int flags,mode_t mode);3)读写i原创 2014-03-10 23:05:20 · 704 阅读 · 0 评论 -
linux内核模块
1、insmod xxx.ko 加载模块2、rmmod xxx.ko 卸载模块3、lsmod 获得系统中加载的所有模块及模块间的依赖关系4、modprode xxx.ko 加载模块时,会同时加载该模块所依赖的其他模块5、modprobe -r xxx 卸载模块,并同时卸载其他依赖的模块6、modinfo xxx 获取模块的信息1、模块的加载函数static原创 2014-03-10 22:16:57 · 502 阅读 · 0 评论 -
字符设备驱动结构
1、cdev结构体描述一个字符设备struct cdev{struct kobject kobj;//内嵌的kobiect对象struct module *owner;//所属模块struct file_operations *ops;//文件操作结构体struct list_head list;dev_t dev;//设备号unsigned int count;}原创 2014-03-10 23:34:54 · 643 阅读 · 0 评论