• <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 致驱动工程师的一封信

    作者:smcdef 发布于:2018-4-14 21:00 分类:统一设备模型

    作为一个算是合格的驱动工程师,总是有很多话想说。代码看的多了总是有些小感悟。可能是吧。那就总结一下自己看的代码的一些感悟和技巧。如何利用你看的这些代码?如何体现在工作的调试?#23567;?#20316;为驱动工程师,主要的工作就是移植各种驱动,接触各种?#24067;?#25509;触最多的就是dts、中断、gpio、sysfs、proc fs。如何利用sysfs、proc fs及内核提供的接口为我们降低调试难度,快速解决问题呢?

    阅读全文>>

    评论(10) 浏览(15018)

    统一设备模型:kobj、kset分析

    作者:callme_friend 发布于:2018-1-9 18:37 分类:统一设备模型

    kobj/kset作为统一设备模型的基础,?#38477;?#25552;供了哪些功能,在具体应用过?#35752;校?#22914;devicebus甚至platform_device等是如何使用kobj/kset?#27169;?#36825;是本文的主要阐述内容。

    阅读全文>>

    标签: kset kobj

    评论(3) 浏览(6911)

    Device Tree(?#27169;何?#20214;结构解析

    作者:smcdef 发布于:2017-9-24 11:08 分类:统一设备模型

    通过linuxer发表的三篇设备树的文章,我想你应该对设备已经有一个非常充分的认识了。本篇文?#24405;?#20316;为一篇Device Tree的总结性文章,同时也作为linuxer文章的补充。本篇文章曾发表在Linuxer公众号,链接为

    http://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA

    阅读全文>>

    标签: 设备树

    评论(12) 浏览(17188)

    Linux设备模型(9)_device resource management

    作者:wowo 发布于:2014-9-24 23:28 分类:统一设备模型

    蜗蜗建议,每一个Linux驱动工程师,都能瞄一眼本文。

    之所以用“瞄?#20445;?#22240;此它很简单,几乎不需要花费心思就能理解。之所有这建议,是因为它非常实用,可以解答一些困惑,可以使我们的代码变得简单、简洁。先看一个例子:

    阅读全文>>

    标签: Linux 设备模型 设备?#35797;?#31649;理 devres

    评论(49) 浏览(44132)

    Device Tree(三):代码分析

    作者:linuxer 发布于:2014-6-6 16:03 分类:统一设备模型

    Device Tree总共有三篇,分别是:

    1、为?#25105;?#24341;入Device Tree,这个机制是用来解决什么问题?#27169;浚?#35831;参考引入Device Tree的原因

    2、Device Tree的基础概念(请参考DT基础概念

    3、ARM linux中和Device Tree相关的代码分析(这是本文的主题)

    本文主要内容是:以Device Tree相关的数据流分析为索引,对ARM linux kernel的代码进行解析。主要的数据流包括:

    1、初始化流程。也就是扫描dtb并将其转换成Device Tree Structure。

    2、传递运行时?#38382;?#20256;递以及platform的识别流程分析

    3、如何将Device Tree Structure并入linux kernel的设备驱动模型。

    注:本文中的linux kernel使用的是3.14版本。

    阅读全文>>

    标签: 设备树

    评论(156) 浏览(99448)

    Device Tree(二):基本概念

    作者:linuxer 发布于:2014-5-30 16:47 分类:统一设备模型

    一些背景知识(例如:为?#25105;?#24341;入Device Tree,这个机制是用来解决什么问题?#27169;?#35831;参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念。

    简 单的说,如果要使用Device Tree,首先用户要了解自己的?#24067;?#37197;置和系统运行?#38382;?#24182;把这些信息组织成Device Tree source file。通过DTC(Device Tree Compiler),可以将这些适合人类阅读的Device Tree source file变成适合机器处理的Device Tree binary file(有一个更好听的名字,DTB,device tree blob)。在系统启动的时候,boot program(例如:firmware、bootloader)可以将保存在flash中的DTB copy到内存(当然也可以通过其他方式,例如可以通过bootloader的?#25442;?#24335;命令加载DTB,或者firmware可以探测到device的信 息,组织成DTB保存在内存中),并把DTB的起始地址传递给client program(例如OS kernel,bootloader或者其他特殊功能的程序)。对于计算机系统(computer system),一般是firmware->bootloader->OS,对于嵌入式系统,一般是bootloader->OS。

    本文主要描述下面两个主题:

    1、Device Tree source file语法介绍

    2、Device Tree binaryfile格式介绍

    阅读全文>>

    标签: Device tree

    评论(160) 浏览(123231)

    Device Tree(一):背景介绍

    作者:linuxer 发布于:2014-5-22 16:46 分类:统一设备模型

    作为一个多年耕耘在linux 2.6.23内?#35828;目?#21457;者,各个不同项目中各?#26893;?#21516;周边外设驱动?#30446;?#21457;以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备 学习的时候,突然发现linux kernel对于我似乎变得非常的?#21543;?#20102;,各?#20013;?#30340;机制,各种framework、各?#20013;?#30340;概念让我感到阅读内核代码变得举步维艰。 还好,剖析内核的热情还在,剩下的就交给时间的。首先进入视线的是Device Tree机制,这是和porting内核非常相关的机制,如果想让将我们的?#24067;?#24179;台迁移到高版本的内核上,Device Tree是一个必须要扫清的?#20064;?

    我想从下面三个方面来了解Device Tree:

    1、为?#25105;?#24341;入Device Tree,这个机制是用来解决什么问题?#27169;浚?#36825;是本文的主题)

    2、Device Tree的基础概念(请参考DT基础概念

    3、ARM linux中和Device Tree相关的代码分析(请参考DT代码分析

    阅 读linux内核代码就像欣赏冰山,有看得到的美景(各种内核机制及其代码),也有埋在水面之下看不到的基础(机制背后的源由和目?#27169;?#27785;醉于各种内核机 制的代码固然有无限乐趣,但更重要的是注入更多的思考,思考其背后的机理,真正理解软件抽象。这样才能举一反三,并应用在具体的工作和生活?#23567;?

    本文主要从下面几个方面阐述为何ARM linux会引入Device Tree:

    1、没有Device Tree的ARM linux是如何运转?#27169;?

    2、混乱的ARM architecture代码和存在的问题

    3、新内核的解决之道

    阅读全文>>

    标签: Device tree

    评论(58) 浏览(96060)

    Linux设备模型(8)_platform设备

    作者:wowo 发布于:2014-4-28 10:24 分类:统一设备模型

    在Linux设备模型的抽象中,存在着一类称作“Platform Device”的设备,内核是这样描述它们?#27169;―ocumentation/driver-model/platform.txt):

    Platform devices are devices that typically appear as autonomous entities in the system. This includes legacy port-based devices and host bridges to peripheral buses, and most controllers integrated into system-on-chip platforms.  What they usually have in common is direct addressing from a CPU bus.  Rarely, a platform_device will be connected through a segment of some other kind of bus; but its registers will still be directly addressable.

    概括来说,Platform设备包括:基于端口的设备(已不推荐使用,保留下来只为兼容旧设备,legacy);连接物理总线的桥设备;集成在SOC平台上面?#30446;?#21046;器;连接在其它bus?#31995;?#35774;备(很少见)。等等。

    这些设备有一个基本的特征:可以通过CPU bus直接寻址(例如在嵌入式系统常见的“寄存器?#20445;?#22240;此,由于这个共性,内核在设备模型的基础上(device和device_driver),对这些设备进行了更进一步的封装,抽象出paltform bus、platform device和platform driver,以便驱动开发人员可以方便?#30446;?#21457;这类设备的驱动。

    可以说,paltform设备对Linux驱动工程师是非常重要?#27169;?#22240;为我们编写的大多数设备驱动,都是为了驱动plaftom设备。本文我们就来看看Platform设备在内核中的实现。

    阅读全文>>

    标签: Linux Kernel 设备模型 platform设备

    评论(34) 浏览(41333)

    Linux设备模型(7)_Class

    作者:wowo 发布于:2014-4-23 15:17 分类:统一设备模型

    在设备模型中,Bus、Device、Device driver等等,都比较好理解,因为它?#23884;?#24212;了实实在在的东西,所有的逻辑都是围绕着这些实体展开的。而本文所要描述的Class就有些不同了,因为它是虚拟出来?#27169;?#21482;是为了抽象设备的共性。

    举个例子,一些年龄相仿、需要获取的知?#26029;?#20284;的人,聚在一起学习,就构成了一个班级(Class)。这个班级可以有自己的名称(如295),但如果离开构成它的学生(device),它就没有任何存在意义。另外,班级存在的最大意义是什么呢?是由老师讲授的每一个课程!因为老师只需要讲一遍,一个班的学生都可以听到。不然的话(例如每个学生都在?#24050;?#20064;),就要为每人请一个老师,讲授一遍。而讲的内容,大多是一样?#27169;?#36825;就是极大的浪费。

    设备模型中的Class所提供的功能也一样了,例如一些相似的device(学生),需要向用户?#21344;?#25552;供相似的接口(课程),如果每个设备的驱动都实现一遍的话,就会导致内核有大量的冗余代码,这就是极大的浪费。所以,Class说了,我帮你们实现吧,你们会用就行了。

    这就是设备模型中Class的功能,再结合内核的注释:A class is a higher-level view of a device that abstracts out low-level implementation details(include/linux/device.h line326),就容易理解了。

    阅读全文>>

    标签: Linux Kernel 内核 设备模型 class

    评论(38) 浏览(21982)

    Linux设备模型(6)_Bus

    作者:wowo 发布于:2014-4-15 19:21 分类:统一设备模型

    在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。

    内核通过struct bus_type结构,抽象Bus,它是在include/linux/device.h中定义的。本文会围绕该结构,描述Linux内核中Bus的功能,以及相关的实?#33268;?#36753;。最后,会简单的介绍一些标准的Bus(如Platform),介绍它们的用途、它们的使用场景。

    阅读全文>>

    标签: Linux Kernel 内核 设备模型 bus

    评论(31) 浏览(28033)

    Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog
    连码三全中是什么
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
    <dl id="0yoao"></dl>
  • <sup id="0yoao"></sup>
    <div id="0yoao"><tr id="0yoao"></tr></div>
  • <div id="0yoao"><tr id="0yoao"></tr></div>
  • 安徽十一选五18101058 江苏e球彩直播走势图 白小姐龙卷风救世灵码报图片 体育彩票山东11选5开奖结果 重庆快乐10分定位计划软件手机版 彩票随机选号器在线 组选593 彩票软件公式平特肖 福建十一选五开奖 湖南彩票 11选5模糊定胆的软件 快速时时彩的套路 qq刮刮乐怎么刮奖 青海快三走势图27日 全天计划pk10下载