
linux驱动编写
文章平均质量分 83
关在家
这个作者很懒,什么都没留下…
展开
-
file、inode在应用层和驱动层之间的联系
应用层和驱动的衔接,一直是一个老大难问题,若弄不清楚,总觉得驱动写起来似是而非的。下面就说说我对他们的理解,还有就是如何实现一个驱动支持多个上设备的问题。最主要涉及两个机制:inode和file在驱动中:(1)、我们先找到一个设备号devno,可以动态申请,也可以静态设定,假设静态设定为major,minor,通过宏MKDEV(major,minor)来生成devno(2)、构转载 2015-11-03 23:04:32 · 723 阅读 · 0 评论 -
应用层open如何调用驱动open函数的?
应用层open(read、write、close)如何调用驱动open(read、write、close)函数的?华清远见2014-09-29 北京海淀区 张俊浩三大数据结构关系图转载 2016-01-21 16:54:14 · 3026 阅读 · 0 评论 -
如何利用s3c2440的gpio实现数据输入和输出
这些函数的实现在linux内核源代码的/arch/arm/plat_s3c24xx/gpio.c中实现,这些函数的具体内容就不在这里介绍了,可以通过源代码进行查看,这里对这些函数的用法进行解读:1.void s3c2410_gpio_cfgpin(unsigned int pin,unsigned int function)第一个参数pin 是对应的io引脚(这里用宏S3C2410_GPB(5转载 2015-10-27 23:48:30 · 1619 阅读 · 0 评论 -
linux内核定时器struct timer_list
内核中最终的计时资源是定时器。定时器用于定时器超时处理程序在未来某个特定时间点执行,或者周期性的轮询硬件的状态。Linux提供了内核定时器完成这类工作。 定时器的只需要执行一些初始化的操作,如:设置一个超时时间,指定超时要调用的函数,然后激活定时器就可以了。它的处理和工作队列还是有点类似的。和任务队列一样,内核定时器并不是周期运行,它在超时后自动销毁。因此,如果要实现周期轮询,就需要在定转载 2015-10-31 00:42:30 · 3140 阅读 · 1 评论 -
fl2440开发板hello world模块驱动编写
hello world 许多的编程都是从hello world开始编写,虽然简单但是意义重大。原创 2015-10-28 22:07:47 · 558 阅读 · 0 评论 -
飞凌2440开发板的led驱动和应用程序
led驱动程序#include /* Every Linux kernel module must include this head */#include /* Every Linux kernel module must include this head */#include /* printk() */#include /* struct原创 2015-10-28 22:54:03 · 885 阅读 · 0 评论 -
mdev 自动创建设备结点
mdev是busybox自带的一个简化版的udev作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点用转载 2015-10-28 09:32:49 · 1532 阅读 · 0 评论 -
内核定时器struct timer_list
内核中最终的计时资源是定时器。定时器用于定时器超时处理程序在未来某个特定时间点执行,或者周期性的轮询硬件的状态。Linux提供了内核定时器完成这类工作。 定时器的只需要执行一些初始化的操作,如:设置一个超时时间,指定超时要调用的函数,然后激活定时器就可以了。它的处理和工作队列还是有点类似的。和任务队列一样,内核定时器并不是周期运行,它在超时后自动销毁。因此,如果要实现周期轮询,就需要在定转载 2015-10-28 00:30:40 · 772 阅读 · 0 评论 -
plat_led 驱动的应用程序
app.c 1 /*******************************原创 2015-11-04 11:31:50 · 519 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
转载:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET 从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int max转载 2015-11-09 20:22:56 · 324 阅读 · 0 评论 -
wait_queue_head_t 使用
1、定义:wait_queue_head_t my_queue;2、初始化 init_waitqueue_head(&my_queue);3、在一个函数里面等待:wait_event(queue, condition) ;(别在中断里面搞)4、在另一个函数里面唤醒:wake_up(wait_queue_head_t *queue); (这个可以在中断调用,去唤醒别的进程转载 2015-11-09 19:54:51 · 811 阅读 · 0 评论 -
嵌入式采集温度DS18B20-platform驱动
我用的是FL2440开发板查看好datasheet后找到相应的管脚写的platform 总线编写/********************************************************************************* * Copyright: (C) 2016 guanlei * All原创 2017-02-16 16:15:54 · 581 阅读 · 0 评论