自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Linux 设备树详解之设备树dts语法

Linux设备树是一个硬件配置集合。源文件后缀为dts,通过编译器dtc将dts编译为二进制文件dtb。设备树顾名思义是一个以树状结构表示资源配置。节点命名方式,节点名字只能由数字,字母和 <,> <.> <_> <+> <->,节点名称应该以字母开头,地址一般都是指定地址的首地址,就是节点reg属性值node-name@unit-address...

2022-05-29 22:41:04 4839 3

原创 ARM C语言函数调用栈帧详解

ARM C语言函数调用栈帧详解

2022-05-23 22:55:14 1473

原创 Linux I2C总线设备驱动

1、I2C总线硬件介绍 I2C总线

2022-05-11 21:16:09 1831

原创 浅谈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 5153

原创 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 1715 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 2127

原创 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 2647

原创 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 1968

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除