驱动
qq_28219531
这个作者很懒,什么都没留下…
展开
-
驱动调试接口-debugfs
创建目录spidev->root_dir = debugfs_create_dir(SPIDEV, NULL);在目录下创建文件节点 spidev->debug_level = debugfs_create_file("debug_level", 0664, spidev->root_dir, spidev, &debug_level_ops); if (spidev->debug.原创 2021-09-27 14:19:20 · 125 阅读 · 0 评论 -
设备驱动篇-1
注册字符设备register_chrdev(SPIDEV_MAJOR, "spi", &spidev_fops);这个注册字符设备方式会连续注册0~255个次设备号,使它们绑定在同一个file_operations操作方法结构体上,在大多数情况下,都只用极少的次设备号,所以会浪费很多资源.创建类class_create(THIS_MODULE, HOBOT_SPIDEV);找到一个空闲的次设备号find_first_zero_bit(minors, N_SPI_MINOR.原创 2021-09-27 11:10:08 · 89 阅读 · 0 评论 -
i2c设备时序
i2c有时钟信号线和数据信号线默认情况下数据信号线拉高。当数据信号线由高电平变换到低电平时,表示数据传输开始。数据传输时,数据在时钟信号低电平时进行变换。然后主设备开始发送从设备地址,8位。当每个字节发送完成后,从设备在第九个时钟周期,会发送一个回应ack信号。当一方需要停止传输,需要回复no ack信号停止信号,当时钟信号为高电平时,数据信号由低电平转化为高电平。...原创 2019-07-03 17:23:00 · 248 阅读 · 0 评论 -
usb枚举过程
描述枚举:当设备插入时,检测端口信号线的电平,若电平由低电平变换为高电平,则表示有设备接入。检测到有设备接入后,主机会对这个设备发起重新启动操作,通过获取端口状态辨别是否已经重启。并通过信号线的电平状态辨别是低速还是高速状态。然后获取设备描述符第一次获取配置描述符获取所有描述符获取字符串描述符主机得到设备的信息后,开始安装对应驱动程序。加载驱动后设置配置描述符。枚举结束。...原创 2019-07-03 13:45:46 · 81 阅读 · 0 评论 -
usb描述符
USB技术论坛 USB 产品 USB技术文档 USB开源项目 USB开发网 ...转载 2018-07-26 19:12:55 · 198 阅读 · 0 评论 -
软中断知识
参考:http://blog.csdn.net/yiyeguzhou100/article/details/49909787 http://blog.csdn.net/adaptiver/article/details/6177646 http://yaoyang.blog.51cto.com/7657153/1261841 在说软中断前,先说一下preempt_cou原创 2017-08-23 17:58:41 · 344 阅读 · 0 评论 -
irq中断子系统
参考:http://blog.csdn.net/adaptiver/article/details/6834337 1 因为当中断发生的时候系统由中断门 进入时自动关中断(对于x86平台就是将eflags寄存器的if位置为0),在irq_exit中恢复中断 2 貌似在handle_edge_irq中也有对中断关闭和打开的操作 3 两点说明:一是因为linux不支持 中断优先级,因此任何中断都原创 2017-08-23 17:57:05 · 1045 阅读 · 0 评论 -
gpio子系统之2440
先看板级定义的结构体struct s3c_gpio_chip s3c24xx_gpios[] = { [0] = { .base = S3C2410_GPACON, .pm = __gpio_pm(&s3c_gpio_pm_1bit), .config = &s3c24xx_g原创 2017-08-21 18:07:45 · 491 阅读 · 0 评论 -
uboot之flash初始化
nand_init()函数其实现过程与内核nand驱动大致差不多,涉及到的结构体有pxa3xx_nand,此结构体包含mtd_info,mtd_info结构体在注册进mtd子系统时需要用到 比较重要的结构体还有nand_chip,这个结构体实现对nand操作的基本方法。应该提供:选中,发命令,发地址,发数据,读数据,判断状态的功能void nand_init(){ struct原创 2017-05-17 18:07:39 · 936 阅读 · 0 评论 -
usb驱动之初识 ohci ehci和uhci区分
什么是 ehci?什么是 ohci?就是host controller 的接口EHCI和OHCI,UHCI的比较和区别 什么是 ehci?什么是 ohci?就是host controller 的接口.从硬件上来说,usb 设备要想工作,除了外设本身,必须还有一个咚咚叫做 usb host controller.一般来说,一个电脑里有一个 usb host controller就可以转载 2017-04-19 18:20:36 · 683 阅读 · 0 评论 -
串口驱动之写操作
继上分析读操作后。。。。。。。。。。。。。。。。。 “drivers/char/tty_io.c” 此文件完成核心层函数的实现。包含file_operations结构体与用户空间进行数据交互。 整体流程如: tty_write–>do_tty_write–>ld->ops->write(n_tty_write)–>uart_write–>uart_start–>__uart_sta原创 2017-04-12 16:20:08 · 855 阅读 · 0 评论 -
串口驱动详细分析
串口驱动(使用中断)完整读操作当串口数据满,fifo数据达到设定阈值时,发生接收中断。当串口数据空时,发生发送中断。如下:1)发送和接收:发送: 循环buffer -(驱动做)-> 发送 fifo -(硬件自己做)-> 发送移位寄存器 把数据写到发送fifo中。fifo把收到的数据传给发送移位寄存器(自动的,非driver控制),然后每个时钟脉冲往串口线原创 2016-12-20 17:51:13 · 1778 阅读 · 0 评论