Linux-USB总线驱动分析 如下图所示,以windows为例,我们插上一个没有USB设备驱动的USB,就会提示你安装驱动程序 为什么一插上就有会提示信息? 是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: 识别USB设备,给USB设备找到对应的驱动程序 新接入的USB设备 ...
分类:
其他好文 时间:
2019-01-15 14:25:47
阅读次数:
210
一、驱动中的poll机制 1.简介:select()和poll()系统调用的本质一样,前者在 BSD UNIX 中引入的,后者在 System V 中引入的。 应用程序使用 select() 或 poll() 调用设备驱动程序的 file_operations 的 poll() 函数。 2.实现(1 ...
分类:
系统相关 时间:
2019-01-13 12:22:40
阅读次数:
227
一些底层基础知识 一、操作系统结构: 1、计算机内存:用户区域、内核区域 1)用户区域:普通应用程序运行在用户区域 2)内核区域:操作系统运行在内核区域设备驱动程序,操作系统内核 3)32位操作系统,如果最大内存为4G,操作系统占1G,剩下给普通应用程序 2、32位和64位系统: CPU(运算器-- ...
分类:
其他好文 时间:
2019-01-12 13:23:45
阅读次数:
265
一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …); 其中fd就是用户程序打开设备时使用ope ...
分类:
系统相关 时间:
2019-01-03 20:42:10
阅读次数:
178
在字符设备驱动开发的入门教程中,最常见的就是用device_create()函数来创建设备节点了,但是在之后阅读内核源码的过程中却很少见device_create()的踪影了,取而代之的是device_register()与device_add(),将device_create()函数展开不难发现: ...
分类:
系统相关 时间:
2019-01-03 19:34:46
阅读次数:
207
1. usb_alloc_dev中的 bus_type 中指定了匹配函数,和uevent中的环境参数。 >不同的bus_type的匹配函数可能是不同的,uevent的环境变量参数也可能是不同的。 2. 推荐《LINUX内核源代码情景分析》,里面讲USB控制器源代码讲解的非常清晰。 3.当USB设备插 ...
分类:
其他好文 时间:
2018-12-31 22:37:41
阅读次数:
339
本文主要介绍了Linux内核分配内存的两个函数 kzalloc和kmalloc函数的使用 ...
分类:
系统相关 时间:
2018-12-31 21:52:25
阅读次数:
267
title: 指定子设备号创建字符设备 tags: linux date: 2018/12/28 19:57:24 toc: true 指定子设备号字符设备 [TOC] 流程 内核中设备号分为主设备号和次设备号,以前注册字符设备驱动的时候,直接占用了主设备号包含了255个子设备号,也就是内核最多支持 ...
分类:
其他好文 时间:
2018-12-28 20:35:32
阅读次数:
246
title: MTD下的Nand驱动 tags: linux date: 2018/12/26/ 17:07:22 toc: true MTD下的Nand驱动 [TOC] 引入 我们从启动信息的打印入口 搜索 可以看到如下代码 ,可以看到这个是 平台设备驱动了,进入 开始分析 平台设备资源文件 搜索 ...
分类:
其他好文 时间:
2018-12-26 15:46:05
阅读次数:
160
参考 cs89x0.c 1.网卡驱动程序与网络驱动程序的区别网卡驱动程序:网络驱动程序中最底层的驱动,主要工作:把上面发下来的数据发送出去,收到数据后构造一个包抛给上层。有收发能力就可以了。 2.网卡设备驱动框架 (1).分配net_device结构(2).设置 ①提供发包函数:netdev_tx_ ...
分类:
其他好文 时间:
2018-12-23 11:22:21
阅读次数:
248