![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
痞子IT
开源,共享,谋发展!
展开
-
Linux驱动 IIC简介
一、 I2C简介I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C 总线最主要的优点就是简单性和有效性,简单体现在接线简单,只有两根线数据线(SCL)和时钟线(SDA),而且 控制简单。所以一些封装较小的器件多使用I2C总线,常见的使用I2C总线的设备有EEPROM、RTC及一些传感器。转载 2015-09-08 22:10:59 · 526 阅读 · 0 评论 -
linux驱动 之 module_init解析 一
写过linux驱动的程序猿都知道module_init() 这个函数。那么我们来了解一下module_init这个函数的具体功能和执行过程在kernel源码目录中找到include\linux\init.h文件[cpp] view plain copy print?"font-family:SimSun;font-size:14px;">/** * m转载 2017-10-12 10:55:01 · 309 阅读 · 0 评论 -
linux kernel 信号量、互斥锁、自旋锁
1.信号量1.1 概念信号量又称为信号灯(semaphore),它是用来协调不同进程间的数据对象的,本质上信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。 (3) 若此信号量为0转载 2017-02-21 17:22:01 · 438 阅读 · 0 评论 -
TTY设备
一、TTY设备在*nix中,tty设备用来抽象串口类型的设备,它位于字符驱动之下,抽象了串口设备需要的特性、功能,抽象后的一个tty设备即可表示一个串行输入、输出接口(比如控制台口,串口、pty设备接口)。TTY的实现由两部分组成:Tty core:它以统一一致的方式来处理流向某个tty设备的数据以及来自某个tty设备的数据,并向用户空间提供了统一一致的用户接口,向底层即真实的设备转载 2015-09-15 09:18:53 · 938 阅读 · 0 评论 -
adb操作命令详解
提到adb.exe,一直关注我们Android系列教程的朋友们应该不会感到陌生,因为无论取得Root权限或者刷机的时候我们都通过adb直接操作管理Android手机,但是可能大多数对于adb仅仅局限于刷机教程的一个步骤,并没有对它有着深入和全面的了解。现在笔者就为各位Android手机迷们详解一下adb的功能和用法。 【天问与天答】 疑问一:adb是什么? 疑问二:adb转载 2015-09-14 12:00:53 · 439 阅读 · 0 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮助你转载 2015-09-17 09:54:57 · 366 阅读 · 0 评论 -
Linux中tty框架与uart框架之间的调用关系剖析
之前本人在"从串口驱动的移植看linux2.6内核中的驱动模型 platform device & platform driver"一文中已经写到了移植的设备是如何通过platform总线来与对应的驱动挂载。在这期间有一个问题困扰着我,那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实对应于设备的设备驱动的,本文中的对应转载 2015-09-21 20:50:29 · 464 阅读 · 0 评论 -
Linux内核中的Kconfig、Makefile、.config
首先我们来学习什么Makefile,什么是Kconfig ,什么是.config Makefile:一个文本形式的文件,其中包含一些规则告诉make编译哪些文件以及怎样编译这些文件。 Kconfig:一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项。 .config:文件是在进行内核配置的时候,经过配置后生成的内核编转载 2016-09-07 18:28:29 · 278 阅读 · 0 评论 -
class_create(),device_create自动创建设备文件结点 .
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_creat转载 2016-09-08 20:51:43 · 547 阅读 · 0 评论 -
linux设备驱动那点事儿之I2C驱动理论篇
一:I2C 概述 I2C是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中。 二:在linux下的驱动思路 谈到在linux系统下编写I2C驱动转载 2015-09-08 18:35:42 · 560 阅读 · 0 评论 -
Linux内核中的常用宏container_of其实很简单
Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。 Container_of的定义如下: [cpp] view plaincopy#define container_of(ptr, type, memb转载 2015-09-07 18:05:20 · 453 阅读 · 0 评论 -
Linux 设备文件分类
Linux 的一个重要特点就是将所有的设备都当做文件进行处理,这一类特殊文件就是设备文件,它们可以使用前面提到的文件、I/O 相关函数进行操作,这样就大大方便了对设备的处理。它通常在/dev 下面存在一个对应的逻辑设备节点,这个节点以文件的形式存在。Linux系统的设备文件分为三类:块设备文件、字符设备文件和网络设备文件。· 块设备文件通常指一些需要以块(如512 字节)的转载 2015-08-21 13:50:27 · 3606 阅读 · 0 评论 -
Linux : misc_register、 register_chrdev 的区别总结
杂项设备(misc device)杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include/linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调转载 2015-09-09 13:43:44 · 1011 阅读 · 0 评论 -
Linux内核很吊之 module_init解析 二
简单来说上篇博文介绍module_init如何注册驱动的init函数,这篇博文将详细分析kernel启动过程又是如何执行我们注册的init函数。如果了解过linux操作系统启动流程,那么当bootloader加载完kernel并解压并放置与内存中准备开始运行,首先被调用的函数是start_kernel。start_kernel函数顾名思义,内核从此准备开启了,但是start_kernel做的事转载 2017-10-12 11:36:07 · 451 阅读 · 0 评论