linux设备驱动
文章平均质量分 80
woyimibayi
这个作者很懒,什么都没留下…
展开
-
linux设备驱动归纳总结
本文转载自chinaunix,作者:diytvgy,感觉总结的不错,代码和原理结合,适合初学者学习前言:(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。 我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版转载 2016-10-12 13:17:44 · 552 阅读 · 0 评论 -
linux内存地址的三个概念区分-物理地址、虚拟地址、总线地址
在linux内核书籍中,介绍内存管理的部分,频繁出现三个概念,物理地址、虚拟地址、总线地址他们区别如下:物理地址:MMU看到的内存的地址虚拟地址:cpu,程序员操作的地址总线地址:设备看到的地址比如一块内存,物理地址是0,在 设备端看起来是0x80000000,而物理地址0又通常被映射为虚拟地址0xc0000000,从而同一地址就具备了三个身份,但他们在物理上...原创 2018-01-25 16:20:12 · 2171 阅读 · 0 评论 -
linux系统为用户提供的文件接口
linux系统为用户提供了大量的文件接口来改变操作系统的参数,由于接口文件繁多,实际用到的时候往往记不住文件所在的路径和文件名,此文仅用于个人备忘和查找。通常我们也可以使用sysctl命令查看,修改响应的内核参数。sysctl -a 可查看系统全部的内核参数,和他们的值。附上内核参数列表:http://blog.sina.com.cn/s/blog_a44094ea0102xbff.h原创 2018-01-29 13:22:23 · 1777 阅读 · 0 评论 -
linux下竞态分析和避免
这部分内容是linux设备驱动学习总结-keyPoints中的子集,独立出来方便查找。1、linux产生竞态主要三种情况:中断、抢占、多处理器。一个cpu运行在进程上下文或者中断上下文(且这段上下文是临界区域)的时候可能被中断打断,且这个中断要访问临界资源;被其它进程抢占,且这个进程要访问临界资源;或者其它的cpu也要访问临界区域。这个时候就会发生竞态。原创 2017-10-27 17:00:19 · 612 阅读 · 0 评论 -
内存管理四
本文是任督二脉之内存管理课程第四节课的总结说明,由于水平有限,可能无法对宋老师所讲完全理解通透,如有错误,请及时指证。 发了前几天的总结后,有群里的朋友@jeff表示,我这样大篇幅的文字描述,估计没几个人有耐心看下去,想想也是,内存管理本身就比较复杂,枯燥,我听了宋老师的课,了解个一知半解,转述的过程可能也不到位。所以这一次尽量使用图片进行说明,然后逐步展开。话不多说,先上图吧。...原创 2018-06-04 16:23:24 · 734 阅读 · 0 评论 -
内存管理一
任督二脉之内存管理第一节课总结 本文是任督二脉之内存管理课程第一节课的总结说明,由于水平有限,可能无法对宋老师所讲完全理解通透,如有错误,请及时指证。 本文从5个方面进行说明:1、 物理/虚拟/总线地址概念说明。2、 MMU是什么,为什么,怎么做。3、 内存分区和内存映射区。4、 Buddy算法是个什么鬼。5、 CMA的工作原理。 物理/虚拟/总线地址概...原创 2018-06-04 16:21:00 · 699 阅读 · 0 评论 -
内存管理五
本文是任督二脉之内存管理课程第五节课的总结说明,由于水平有限,可能无法对宋老师所讲完全理解通透,如有错误,请及时指证。 第五节课的内容多且杂,其实完全可以合并到前四节课中。但考虑前四篇总结已经完成,章节插入不方便,所以还是多写一篇。 本文分成两部分来论述1、 DMA与Cache一致性问题。2、 常用的命令接口和文件接口简要说明。 DMA与Cache一致性问题 ...原创 2018-06-04 16:24:32 · 432 阅读 · 0 评论 -
内存管理二
任督二脉之内存管理第二节课总结本文是任督二脉之内存管理课程第二节课的总结说明,由于水平有限,可能无法对宋老师所讲完全理解通透,如有错误,请及时指证。 本文从4个方面进行说明:1、 Slab的基本原理以及它的文件接口说明2、 kmalloc、vmalloc、malloc比较3、 OOM是什么,为什么,怎么做4、 FAQ:群里经常问到的,也是比较容易误解的问题 slab的基本...原创 2018-06-04 16:21:59 · 491 阅读 · 0 评论 -
oops和panic的区别
本文转载自Linux公众号宋宝华: Kernel Oops和Panic是一回事吗?Oops英文单词的中文含义是“哎呀”,表示“惊叹”;Panic英文单词的中文含义是“惊慌”。所以panic的程度显然是高于oops的,因为惊叹不一定会惊慌,而惊慌最容易失措,内核panic后,就死机了,俗称内核崩溃。但是内核报oops,这个时候不见得会panic,它可能只是报个oops,杀死进程而已。当oops发生的...转载 2018-02-23 14:42:52 · 4980 阅读 · 0 评论 -
抢占关闭总结
本文是阅读宋宝华老师是谁关闭了Linux抢占,而抢占又关闭了谁?的这篇文章后的总结1、抢占发生的必要条件 a、preempt_count抢占计数必须为0,不为0说明其它地方调用了禁止抢占的函数,比如spin_lock b、中断必须是使能的状态,因为抢占动作要依赖中断具体源码实现参考如下:2、spin_lock系列函数总结 a、spin_lock会调用preempt_disable...原创 2018-06-13 17:38:06 · 1796 阅读 · 0 评论 -
内存管理三
本文是任督二脉之内存管理课程第三节课的总结说明,由于水平有限,可能无法对宋老师所讲完全理解通透,如有错误,请及时指证。 本文从7个方面进行说明:1、 VMA到底是个什么鬼?2、 Linux提供的VMA查看文件接口和命令接口说明。3、 Page fault的产生原因分析以及与VMA的关系。4、 物理内存、页表、进程之间的爱恨情仇。5、 VSS、RSS、PSS、USS概念说...原创 2018-06-04 16:22:24 · 500 阅读 · 0 评论 -
Ftrace的一个完整案例
本文来自linuxer公众号Ftrace即function trace,顾名思义,他的trace过程是以函数为单位的,标识出每一级函数占用的cpu时间。比如我们进入一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布。Ftrace用于内核态代码的跟踪,实现方式是内核代码插桩。1、写一个proc模块,包含一个proc的读和写的入口。te原创 2018-01-24 17:01:04 · 545 阅读 · 1 评论 -
宋牧春: Linux设备树文件结构与解析深度分析(1)
作者简介宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot、linux、ucos、rt-thread等),对于优秀的代码框架及其痴迷。现就职于一家手机研发公司,任职Android BSP开发工程师。正文开始1. Device Tree简介设备树就是描述单板资源以及设备的一种文本文件。至于出现的原因,大家可以上网查询更多关于设备树的文章。本篇文章主要是更深层次转载 2017-08-25 15:28:23 · 4825 阅读 · 1 评论 -
宋牧春: Linux设备树文件结构与解析深度分析(2)
宋牧春: Linux设备树文件结构与解析深度分析(2) 原创2017-08-26 宋牧春 Linuxer Linuxer 微信号 LinuxDev 功能介绍 发布Linux内核、应用和驱动开发,Linux运维相关的资讯和学习资料。Linux爱好者的交流学习平台。 作者简转载 2017-08-29 10:26:49 · 1156 阅读 · 0 评论 -
linux设备驱动学习总结-keyPoints
1、linux设备模型把linux驱动分为三部分:总线、设备、驱动,设备与驱动相对独立,由总线负责设备和驱动的匹配,设备注册匹配驱动,驱动注册匹配设备。2、linux内核充分体现了面向对象的思想,为了实现高内聚,低耦合的软件模型,linux驱动尽量的把独立的功能模块分离出来,分离的手段是通过分层,比如设备和驱动分出一个总线层,做到了设备和驱动的分离;分出一个input层,做到了输入设备和文件操原创 2017-08-22 16:54:36 · 650 阅读 · 0 评论 -
5分钟理解udev
5分钟理解udevUdev到底是个什么鬼?简单讲:udev负责在用户空间,根据用户设置的规则,在监测到设备被插入后,在/dev/下自动创建并命名设备文件节点。 经常会遇到这种情况,在/sys/目录下的event0、event1、event2等文件跟/dev/input/event的设备文件对不上,不理解他们到底是如何对应的。没错,是udev在负责这个工作。 2.4版本内核使原创 2017-10-23 17:15:49 · 11726 阅读 · 0 评论 -
IPU到底是个什么鬼?
在 i.MX6 应用处理器中,有一个很重要的单元:IPU(Image Processing Unit)图像处理单元。图像处理单元的目标是提供从图像输入(摄像头传感器 / 电视信号输入等)到显示设备(LCD显示屏 / TV输出 / 外部图像处理单元等)端到端的数据流信号处理的全面支持。IPU库(IPU Library)是基于IPU硬件的,它能实现以下功能:调整大小。旋转。色彩空间 / 格转载 2017-11-02 10:43:46 · 10660 阅读 · 0 评论 -
Perf -- Linux下的系统性能调优工具,第 1 部分
Perf -- Linux下的系统性能调优工具,第 1 部分应用程序调优的使用和示例刘 明2011 年 5 月 26 日发布Perf 简介Perf 是用来进行软件性能分析的工具。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性转载 2017-11-15 15:52:43 · 427 阅读 · 0 评论 -
process interview keyPoints
first courses1、进程是资源封装的最小单位,线程是任务调度的最小单位进程封装的资源主要有:进程ID、mm_struct(内存管理相关结构)、文件系统结构(当前用户,当前目录等)、文件相关结构(全部 打开的文件描述符)、信号相关结构(进程使用的信号以及对应的信号处理函数)。2、进程ID的数量是有限的,通常默认为32768,所以通过这个弊端,可以使用进程炸弹直接干掉整个系...原创 2019-02-18 16:30:54 · 252 阅读 · 0 评论