自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (5)
  • 收藏
  • 关注

原创 (六)Linux驱动子系统-I2C子系统驱动

本系列导航(一)初识Linux驱动(二)Linux设备驱动的模块化编程(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试(四)Linux设备驱动之多个同类设备共用一套驱动(五)Linux设备驱动模型介绍(六)Linux驱动子系统-I2C子系统(七)Linux驱动子系统-SPI子系统(八)Linux驱动子系统-PWM子系统(九)Linux驱动子系统-Light子系统...

2019-06-11 17:40:08 1648 4

原创 (一)初识Linux驱动

(一)初识Linux驱动1. 什么是驱动?2. 有了操作系统后,驱动实现起来反而变得更加复杂,那么还要操作系统干什么?3. 如何学习Linux驱动开发?4. 初步学习完后,要具备什么样的能力?Linux设备驱动入门进阶分享:从一个小白跟着导师看视频自学然后到工作岗位上去实践再到当培训讲师最后再回到工作实践中去研发去沉淀我清楚的知道一个小白学习Linux驱动的痛苦与困难,也清楚一个自学或者培训的...

2019-05-22 12:55:15 1570

原创 Linux下led子系统 --- 分析篇

前言:什么叫做驱动框架? 内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,并把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。即标准化的驱动实现,统一管理系统资源,维护系统稳定。概述:led子系统驱动框架:所有led共性:  有和用户通信的设备节点  亮和灭不同

2018-01-11 19:13:42 7938

原创 基于Android系统的多点触摸屏(MultiTouchScreen)驱动

理论:输入子系统由来  在Linux中, 应用层对于输入设备(鼠标、键盘、触摸屏等)的操作无非都是open、read、write、ioctl,然后调用驱动层的xxx_open、xxx_read、xxx_write、xxx_ioctl去操作具体的硬件输入设备。如果按照传统的思路,每个输入设备都按照这个套路写这些open、read等,是不是太过于累赘了。所以Linux就定义了一套标准,来标准化这些输入设

2017-09-14 16:09:14 12798

原创 Android输入系统源码分析

参考:《深入理解Android 卷III》  输入事件的源头是位于/dev/input/下的设备节点,而输入系统的终点是由WMS管理的某个窗口。最初的输入事件为内核生成的原始事件,而最终交付给窗口的则是KeyEvent或MotionEvent对象。因此Android输入系统的主要工作是读取设备节点中的原始事件,将其加工封装,然后派发给一个特定的窗口以及窗口中的控件。这个过程由InputManage

2017-09-09 16:16:52 983

原创 Android系统使用global key 一键启动指定APP或者打开WiFi/蓝牙等系统设置界面

之前使用过广播的形式,在framework中捕获到对应的按键事件就发送一个广播,然后用app静态注册一个广播接收器,接收到framework发送的广播说明有用户按下按键,这时在广播接收器中启动app。但5.0之后,Google对发送广播做出了一些处理,当注册广播接收器的app被后台杀死后就无法再接收广播,也就无法再通过这个广播接收器启动其他app了。而这次直接在framework层截取输入事件,启动app。

2017-09-08 14:17:19 6837

原创 Android系统中硬件访问服务框架(JNI HAL)及实例

Android系统 以led为例的硬件访问服务框架JNI和HAL

2017-08-02 17:57:36 3758

原创 Linux内核中的pinctrl子系统应用实例

Linux内核中的pinctrl子系统应用实例    由于近期在做一个项目用到了pinctrl子系统,但是对pinctrl子系统了解又不是很多,所以遇到了麻烦,但是找度娘发现很少有同行对pinctrl的具体用法做出说明,所以只能自己去搞了,在经过一段时间对Linux内核源码的折腾,最终搞定,并将我所应用的实例给展示一下,希望对大家有所帮助。    关于pinctrl是什么,为什么要用pin

2017-05-31 10:48:23 23962 3

原创 高通SXR平台OV8856 Camera的bring up和debug总结

参考高通文档:Camera Sensor Driver Bring-up GuideThe camera sensor driver bringup consists of the following steps:1.Locate the driver and module configuration XML files.2. Generate the inary files.3. Co...

2019-07-10 09:56:14 3915 1

原创 (五)Linux设备驱动模型介绍

本系列导航(一)初识Linux驱动(二)Linux设备驱动的模块化编程(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试(四)Linux设备驱动之多个同类设备共用一套驱动(五)Linux设备驱动模型介绍(六)Linux驱动子系统-I2C子系统(七)Linux驱动子系统-SPI子系统(八)Linux驱动子系统-PWM子系统(九)Linux驱动子系统-Light子系统...

2019-05-24 16:48:00 2752 3

原创 (四)Linux设备驱动之多个同类设备共用一套驱动

本系列导航(一)初识Linux驱动(二)Linux设备驱动的模块化编程(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试(四)Linux设备驱动之多个同类设备共用一套驱动(五)Linux设备驱动模型介绍(六)Linux驱动子系统-I2C子系统(七)Linux驱动子系统-SPI子系统(八)Linux驱动子系统-PWM子系统(九)Linux驱动子系统-Light子系统...

2019-05-24 11:43:59 7810 10

原创 (三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试

(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试1. Linux设备驱动的分类2. Linux字符设备驱动框架1). 设备号2).字符设备操作集合 -- file_operations结构体本系列导航(一)初识Linux驱动(二)Linux设备驱动的模块化编程(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试(四)Linux设备驱动之多个同类设备共用一套驱动...

2019-05-23 18:34:39 5952 6

原创 (二)Linux设备驱动的模块化编程

(二)Linux设备驱动的模块化编程1. 驱动的模块化编程a. 什么是模块?b. 模块化编程有什么好处?c. 写驱动模块和写普通的Linux应用程序有什么区别?d. 如何写驱动模块?e. 如何验证这个模块? -- 模块相关的命令f. 模块传递参数本系列导航(一)初识Linux驱动(二)Linux设备驱动的模块化编程(三)写一个完整的Linux驱动程序访问硬件并写应用程序进行测试(四)Li...

2019-05-22 17:21:35 2472

原创 win10正版系统镜像

下载win10激活工具.zip,解压后进入文件夹内,然后双击cn_windows_10_multiple_editions_version_1607_updated_jul_2016_x64_dvd_9056935.iso进入里面点击setup.exe一路下一步即可.

2019-05-22 15:29:02 1527

原创 Linux下led子系统 --- 实例篇

本例将根据上一篇分析的led子系统框架去讲述如何在子系统中注册一个led设备,前提是通过make menucong将device driver下面的LED Support和它下面的LED class support及相应的trigger打开. 具体步骤分三步:1. 分配led_classdev结构体 static struct led_classdev *led_devs

2018-01-11 19:24:23 2375 3

原创 Android5.0 framework 灯光系统 -- 电池灯源码分析

本文章分析Android系统中,灯光系统如何调用灯光服务、JNI、HAL等从而操控底层Linux驱动控制的led电池灯去闪烁或者亮不同颜色的灯来通知用户。不扯别的,直接上图,简单描述整个调用过程: 以下是详细调用过程: 1. 首先Android系统加载后会执行init进程,然后加载SystemService.java系统服务 SystemService.javaprivate void sta

2017-08-11 19:08:18 904

原创 tiny4412使用SD卡启动uboot用fastboot烧写system.img出错解决

当我们使用fastboot烧写system.img的时候 fastboot flash system system.img 由于fastboot对刷入的img文件大小有限制,所以可能存在因为system.img文件太大导致刷入失败(data is too large). 解决方法: 1. 在格式化sd卡的时候用 fdisk -c 0 1024 806 518 其中1024是syst

2017-07-27 18:20:58 999

转载 vim的配置文件vimrc让vim强大起来

我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以直接消除代码中的空行5.“F3”可列出当

2017-07-04 15:17:57 337

原创 Ubuntu各个版本的镜像下载地址

http://mirrors.melbourne.co.uk/ubuntu-releases/ 这个网址下面是Ubuntu12.04 14.04 等等各个版本的下载路径。http://mirrors.melbourne.co.uk/ubuntu-releases/12.04/ 进去之后就是具体版本的各个镜像了 其中: desktop: 桌面版(适合初学者) server

2017-06-07 12:21:22 2892

原创 I2C子系统驱动框架及应用

I2C子系统框架: 应用程序层(app层) ——————————————————————————————————– i2c driver层: 从设备驱动层(TS Sensor等) 1. 需要和应用层交互(fops cdev) 2. 封装数据,但是不知道数据如何写入到硬件,需要调用adapter层的相关函数去写 —————

2017-06-01 16:00:10 6451 1

原创 linux驱动模块Makefile解

linux驱动模块Makefile解析

2016-08-23 11:52:31 3813

原创 Linux字符驱动中container_of宏的作用

首先看看这个宏的原型:    container_of(ptr,type,member)   功能:根据一个结构体变量中的一个成员变量的指针来获取指向整个结构体变量的指针。    参数:         ptr:已知的结构体成员的首地址(指针);         type:要获取的结构体变量的类型         member:要获取的结构体变量中成员的名字,而不是类型

2016-07-08 14:10:42 1624

原创 Linux内核中ctags的安装及使用方法

我们都知道,在windows环境下查看源代码最方便的工具就是sourceinsight了,但是往往很多linux开发人员更喜欢在linux环境下进行开发,但是在linux的vim编辑器下就无法像在windows下那样鼠标点哪里就可以跟踪到某一个函数或者结构体的具体实现。这时候就要用到ctags工具进行类似的操作,新安装的vim是没有这个工具的,所以首先要安装ctags工具,然后进行相关的配置。

2016-07-04 12:04:17 5098 6

多个同类设备共用同一套驱动代码

多个同类设备共用同一套驱动模型完整版代码,可在Ubuntu上编译运行

2019-05-25

平台总线驱动模型完整版代码

platform平台总线驱动模型完整版代码,可在Ubuntu上编译运行

2019-05-25

MobaXterm终端登录工具

最好用的Linux终端登录工具、串口工具MobaXterm,解压安装即可免费使用

2019-05-24

世界上最全的vimrc配置文件

世界上最全的vimrc配置文件,包括ctrl+c赋值 ctrl+v粘贴,vim编辑界面的配置,代码对齐,自动缩进等,只需要把这个vimrc.zip在你的家目录下解压替换你的.vimrc就OK了。

2017-07-28

空空如也

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

TA关注的人

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