- 博客(8)
- 收藏
- 关注
原创 Linux 设备树详解之设备树dts语法
Linux设备树是一个硬件配置集合。源文件后缀为dts,通过编译器dtc将dts编译为二进制文件dtb。设备树顾名思义是一个以树状结构表示资源配置。节点命名方式,节点名字只能由数字,字母和 <,> <.> <_> <+> <->,节点名称应该以字母开头,地址一般都是指定地址的首地址,就是节点reg属性值node-name@unit-address...
2022-05-29 22:41:04
5277
3
原创 浅谈Linux USB设备驱动
1、USB基础介绍1-1、USB硬件接口介绍USB接口在硬件上总共有四根线组成VCC、D+、D-、GND,通过计算D+和D-的差值来确定数据。USB设备在传输速率上可以分为低速(1.5Mbps)、全速(12Mbps),高速(480Mbps)。在USB主机控制器端D+和D-都皆有一个下拉电阻,在USB设备端的D+或D-接了一个上拉电阻,USB设备插入后USB主机控制器的D+或D-会被拉高,这样USB主机控制器就能发现有设备接入。USB设备是主从式的设备,主机是在host端的主机控制器,从机就是如鼠标、
2022-03-23 22:25:44
5488
原创 Linux字符设备驱动poll机制的原理和实现
内核版本:linux-3.10.61一、简介字符设备驱动file_oprations的poll成员对应的在应用层函数调用是poll()或select(),poll()和select()是由不同标准定义的,但在内核空间对应的都是sys_poll()函数。二、sys_poll解析poll()调用到了内核的sys_poll(),想要了解系统调用的具体过程可以看我之前的文章:ARM linux 系统调用过程。回归正题,让我们从sys_poll()作为入口分析一下IO多路复用的底层实现机制。lo
2022-03-19 17:25:00
2019
2
原创 Linux 输入子系统简介
内核版本:linux-3.10.61代码分析只截取了部分重要的内容,如需了解更多细节请亲自阅读内核源码!一、输入子系统概述输入子系统是Linux内核为输入设备 如:鼠标,键盘,触摸屏等提供的一种驱动框架。输入子系统在逻辑上可以分成三层。核心层(input.c),Handler层(evdev.c、joydev.c等),Device层(由驱动工程师实现)。handler在注册时会被添加到handler链表,并且去逐个匹配device链表下的device。device在注册时也会被添加到device链
2022-03-15 17:37:23
2210
原创 Linux Platform 平台设备驱动模型简介
内核版本:linux-3.10.611、Platform介绍Platform 平台设备设备驱动模型的作用是将驱动的实现和资源分离,是一个虚拟的总线平台。这其中存在三个成员bus,device,drive。device需要在driver之前装载进内核,因为匹配工作在注册driver时实现。Bus:由一个链表实现,不对应实际的物理总线。Device:驱动的资源比如一些 I/O端口,中断号之类的。Drive:驱动的功能实现比如 注册驱动,实现file_operations 等2、主要结构体
2022-03-11 16:12:08
2797
原创 ARM linux 系统调用过程
Linux系统调用是系统提供的从用户空间进入内核空间的方式。每一种系统调用在内核都实现了其对应功能。 在应用层我们看到的是open(),read(),write()等由C库封装好的接口,这些接口都对应了一个内核函数sys_xxx() [sys_open(),sys_read(),sys_write()]。下面开始分析C库函数是怎么调用到内核函数sys_xxx()。先提出问题:1、如何进入内核?2、内核如何知道是发生了哪一种系统调用?3、进入内核做了哪些操作?现在开始解答这些问题:..
2022-03-09 16:38:19
2117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人