- 博客(40)
- 收藏
- 关注
原创 Input子系统浅析
为何要有input子系统输入设备工作原理输入设备(如鼠标、键盘、触摸屏、按键灯)是典型的字符设备,其工作机理: 1. 底层在按键。触摸等动作产生一个中断(或者定时查询,设置一个定时器) 2. 就进入中断或定时器处理程序,CPU通过SPI、I2C或外部存储总线(还有platfrom虚拟总线)读取键值、坐标等数据,放入一个缓冲区; 3. 字符设备驱动管理这个缓冲区,驱动的read()可以让用
2017-02-17 19:15:53 499 2
原创 Platform总线、设备与驱动浅析
设备模型就需要设备和驱动挂接在一个总线上面,对有实际总线的设备和驱动那是没问题的,但有一些挂接在soc内存空间的外设,则没有对应的总线来挂接,由此引入了platform总线的概念
2017-02-05 20:41:52 499
原创 ARM设备树解析
linux-4.8.5\arch\arm\boot\dts ARM设备树文件所在位置include/linux目录下的of_xxx.h为设备树函数头文件所在位置概念设备树是一种描述硬件的数据结构,采用设备树后,许多硬件的细节可以直接通过它传给Linux。组成 它是由命令的节点(Node)和属性(Property)组成,而节点本身可以包含子节点。DTS文件 (Device Tr
2016-12-08 09:02:49 1120
原创 字符设备驱动剖析
整体流程 这是字符设备里面主要写的函数,我们接下来一个一个分析他们在系统中运作的原理。字符设备打开过程int fd = open("/dev/demo0", O_RDWR);^ | 用户空间(3G) —-系统调用—————————————– | 内核空间(1G) V 1、找inode节点,得到设备号 2、
2016-12-05 22:38:12 342
原创 IOCTL接口函数解析
什么是IOCTLIOCTL是设备驱动程序中对设备的I/O通道进行管理的函数。所谓的I/O通道管理即设备参数读写、设备状态读、以及控制设备。例如:控制串口传输的波特率、马达的转速等等。IOCTL参数命令long (*unlocked_ioctl)(struct file *filp, unsigned int cmd, unsigned long arg)工程实例
2016-12-05 15:29:12 583
原创 Linux内核配置Kconfig语法
何为Kconfig 它的作用是什么内核源码编译过程遍历每个源码目录(或配置指定的源码目录)Makefile 每个目录的Makefile 会根据Kconfig来定制要编译对象 回到顶层目录的Makeifle执行编译那么我们就得出各个文件的作用:Kconfig ---> (每个源码目录下)提供选项.config ---> (源码顶层目录下)保存选择结果Makefile---> (每个源
2016-11-29 20:20:01 28797 11
原创 Linux内核配置与编译流程
配置1.使用make menuconfig使用命令: # make ARCH=arm menuconfig命令解析 :按空格键选中(*编译进内核,M编译成模块)或编辑参数 :退到上一级或是退出menuconfig :查看该选项的说明信息,及出处 Defined at arch/arm/Kconfig:1450 :保存选择结果,且不退到上一级或是退出menuconfi
2016-11-28 22:19:06 801
原创 Linux内核代码结构简要分析
kernel下载地址:https://www.kernel.org/ 在Linux下,也可以使用命令:wget http://kernel.org/pub/linux/kernel/<版本>本文的内核版本为4.8.11 注意:使用kernel要遵守GPL协议,有兴趣的可以自己去看看。1.Linux内核模块结构图在图中可以看到字符设备是没有缓存,直接输入输出的,而网卡和文件系统有缓存器件。2.Li
2016-11-28 17:28:13 680
原创 基于ARM4412的ADC原理及实现
ADC原理及实现基本概念ADC,Analog-to-Digital Converter的缩写,指模数转换器。即将模拟信号转变为数字信号。使用领域一般使用在模拟温度转换器上,由于本次采用了4412的开发,温度器使用的是数字温度器。所以此次测验使用的是滑动变阻器【如图2所示】来模拟电压的变化,达到模拟信号的目的。 图2实现 以前接触的ADC都差不
2016-11-22 19:58:04 4318
原创 Linux标准IO编程
Linux标准IO编程linux下的标准I/O的编程方法:什么是标准I/O什么是流流的一些处理方式什么是标准I/O 即C定义来操作I/O的一系列函数首先,得明白啥是系统调用,系统调用,是一种接口,提供给程序以分配内存、创建进程、实现进程之间的通信。 因为每个系统的系统调用都不一样,所以程序员就想出来定义一个编程接口来使用这些系统调用,俗称API。而C库是使用最广的了,而在C库了定义了
2016-11-06 19:52:29 541
原创 Ubuntu 16.04 LTS 64位下安装steam游戏平台
此文章翻译来自外国的友人写的 原文链接:点我 这次安装比较有问题的就一点,steam平台下载的deb文件是32位的,而如果64位系统想安装的话,就会不断的提示libc6-i386 依赖关系出错。这是因为ubuntu没有下载支持32位的库。PS:本文挑具体的操作步骤翻译了,懂英文的童鞋还是去原作者博客上看看吧。译文如下下面的这篇文章将教你如何在 Ubuntu 16.04 L
2016-07-07 01:05:10 27310 3
原创 Unbuntu 16.04LTS 安装sogou 输入法详解
Unbuntu 16.04LTS 安装sogou 输入法详解博主最近开始学习linux 在安装输入法中遇到的一些问题,最终成功安装,也得益于网络上的前辈写的帖子,现在将全部安装步骤以及遇到的一些问题总结如下: 本文是百度经验的帖子和另外一篇帖子总结而成基本上分三步走 1,添加fcitx的键盘输入法系统,因为sogou是基于fcitx的,而系统默认的是iBus; 2,安装so
2016-07-05 00:09:18 7191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人