
Linux驱动
文章平均质量分 64
普通网友
这个作者很懒,什么都没留下…
展开
-
字符设备驱动(1)
1、对于驱动的理解和解释(1)、字符设备和块设备都可以体现为“一切都是文件”的思想,可以使用open()、read()、write()、close()等函数进行访问。(2)、驱动的编写要体现“驱动融合入内核中的思想”,其实就是驱动必须遵循内核提供的接口规范进行编写,即驱动对硬件操作的函数,和内核系统调用函数之间有映射关系。当应用程序中系统调用open()、read()、write()等原创 2013-01-16 11:06:59 · 1014 阅读 · 0 评论 -
linux下使用3G拨号上网
linux下要实现3G拨号上网,除了3G网卡和对应的3G卡外,软件上需要对应的网卡驱动和pppd拨号程序,pppd拨号程序一般较容易得到,如果是嵌入式平台,交叉编译即可,编译过程中可能会遇到一些错误,但都不是大问题,一般很容易解决。而3G网卡驱动对于刚接触的人来说可能稍微难一点,大部分的3G模块内核中已经得到支持。如果不幸内核中没有得到支持,那么自己添加支持也是很容易的。下面介绍两种驱动3G网卡的转载 2013-06-07 11:41:31 · 981 阅读 · 0 评论 -
android 平台USB wifi驱动移植及使用
一. Android平台Wifi的基本代码路径1. Wpa_supplicant源码部分external/wpa_supplicant_6/生成库libwpa_client.so和守护进程wpa_supplicant2. Wifi的HAL层代码位于hardware/libhardware_legary/wifi/3.转载 2013-06-07 11:33:39 · 1381 阅读 · 0 评论 -
静态分配设备号和系统设备号冲突导致的错误
错误1:# insmod memdev.ko insmod: cannot insert 'memdev.ko': Device or resource busy 原因分析: 由于字符设备驱动申请的设备号采用静态申请,主设备号为254,和系统的设备号发生了冲突,所以得改设备号。 这就是静态分配设备号的缺点!!!!!!!!!! 错误2:原创 2013-05-31 00:29:01 · 2653 阅读 · 0 评论 -
memdev字符设备驱动mem_llseek文件定位函数出错
错误: 自己编写了memdev字符设备驱动程序,加载驱动模块后,执行应用程序./app_mem程序来测试驱动,出现了如下问题。 向设备文件中写入数据正常,但是当要从设备文件中读出“写入的数据时”,提示buf is null没有数据 分析: 1、printk函数打印的提示信息“written 4096 bytes(s) from 0”,原创 2013-05-31 00:30:06 · 1441 阅读 · 0 评论 -
linux设备驱动--内存和I/O访问
1、内存和I/O的硬件机制,主要涉及内存空间、I/O空间和MMU1.1 I/O空间和内存空间X86处理器中存在I/O空间的概念ARM和Power PC并不提供I/O空间,I/O空间挂接在内存空间,通过访问内存空间可以访问I/O空间1.2 内存管理单元MMUTLB:转换旁缓存TTW:即转换漫游表 2、linux的内存管理、内存区域的分布、常规内原创 2013-02-22 17:48:24 · 728 阅读 · 0 评论 -
linux设备驱动--异步通知和异步I/O
1、异步通知的概念和作用影响:阻塞--应用程序无需轮询设备是否可以访问非阻塞--中断进行通知即:由驱动发起,主动通知应用程序2、linux异步通知编程2.1 linux信号作用:linux系统中,异步通知使用信号来实现2.2 信号的处理函数(在应用程序端捕获信号)signal()函数例子://启动信号机制signal(SI原创 2013-02-21 17:22:48 · 873 阅读 · 0 评论 -
linux设备驱动--中断与定时
1、中断和定时器的概念及处理流程 2、linux中断处理程序的构架,顶半部和底半部之间的关系3、linux终端的编程方法,涉及申请和释放中断,禁止和使能中断,以及中断半部tasklet、工作队列、软中断机制等4、多个设备共享同一个中断号时的中断处理过程5、linux设备驱动编程中定时器的编程6、内核延时的方法原创 2013-02-22 17:47:54 · 742 阅读 · 0 评论 -
linux驱动--阻塞和非阻塞 I/O
1、阻塞和非阻塞 I/O定义:阻塞:指在执行设备操作时,若不能获得资源则挂起进程,知道满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列中移走,直到等待条件的满足。非阻塞:非阻塞操作的进程在不能满足操作时并不挂起,它或者放弃,或者不停地查询,知道可以进行操作为止。1.1 等待队列作用:可以用等待队列(wait queue)来实现阻塞进程的唤原创 2013-02-20 16:39:17 · 660 阅读 · 0 评论 -
globalmem虚拟字符设备驱动--字符驱动讲解(2)
1、什么是globalmem虚拟设备??(1)、globalmem字符设备驱动中,分配一片内存大小为GLOBALMEM_SIZE(4K)的空间(2)、提供对该片内存的读写、控制和定位函数(3)、用户进程能够通过linux系统调用访问这篇内存 #include #include #include #include #include #include原创 2013-01-16 14:56:43 · 4519 阅读 · 5 评论 -
并发和竞态
1、什么是并发和竞态??并发:指多个执行单元同时被执行,而并发执行单元对共享资源的访问容易导致竞态(共享资源:硬件资源和软件上的全局变量、静态变量)2、并行的例子(1)、多个cup:使用共同的系统总线,因为可以并发访问共同的外设和储存器(2)、单个cpu:内核支持抢占,高优先级的进程可以打断正在内核执行的低优先级的进程(3)、中断:(硬中断、软中断、Tasklet、原创 2013-01-16 18:12:07 · 891 阅读 · 0 评论 -
认识VFS
1、什么是VFS???VFS就是Virtual File System虚拟文件系统,这是Linux档案系统对外的接口。任何要使用档案系统的程序都必须经由这层接口来使用它 2、VFS的作用???VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系原创 2013-01-08 16:51:12 · 818 阅读 · 0 评论 -
linux--输入子系统
1、在linux开发中,输入子系统能产生那些事件呢??Linux中输入设备的事件类型有(这里只列出了常用的一些,更多请看linux/input.h中):EV_SYN 0x00 同步事件EV_KEY 0x01 按键事件EV_REL 0x02 相对坐标EV_ABS 0x03 绝对坐标EV_MSC 0x04 其它EV_LED 0x11 LEDEV_SND 0x12原创 2013-06-07 11:21:42 · 4778 阅读 · 0 评论