
Linux Kernel Driver
文章平均质量分 67
我是不良人
古之成大事者,不惟有超世之才,亦必有坚韧不拔之志!
展开
-
Linux内核模块设计
UNIT 1 Linux内核模块设计<br /> <br /> <br /> <br /> <br /> <br /> <br />1. 单体内核 VS 微内核<br />2. Hello,kernel模块实例<br />3. 内核模块的Makefile<br />4. 模块的加载与测试<br />5. 内核符号表<br />6. 应用程序 VS Linux 内核模块<br />7. 其他<br /> <br />1. 单体内核 VS 微内核<br />当前流行的操作系统内核的设计方式中,转载 2010-11-06 12:53:00 · 4071 阅读 · 2 评论 -
Linux的i2c驱动详解
1 简介 I2C 总线仅仅使用 SCL 、 SDA 两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和 PCB 板布线空间的占用。因此, I2C 总线被非常广泛地应用在 EEPROM 、实时钟、小型 LCD 等设备与 CPU 的接口中。 Lin原创 2011-08-21 13:05:22 · 15113 阅读 · 3 评论 -
input子系统详解
Input子系统详解一.Input子系统架构Linux系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,下面是Input子系统架构:Input子系统架构二.Input系统的组成输入子系统由驱动层(Driver原创 2011-08-20 18:30:36 · 23664 阅读 · 5 评论 -
image zimage uimage的区别
内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之转载 2011-09-23 22:22:28 · 1227 阅读 · 0 评论 -
sysfs文件系统
linux中所有文件都由一 一对应的inode表示。sysfs中每个结点由于一个sysfs_dirent表示,这样每个kobject就对应一个sysfs_dirent.所以要注意 inode sysfs_dirent间的关系转换。生成过程: 先有sysfs_dir转载 2011-08-29 23:34:48 · 9609 阅读 · 1 评论 -
SDIO WiFi Card Driver
(1) Wifi卡的常用接口有: –CF 接口 –USB接口 –SDIO接口 –SPI接口 –PCMCIA接口 很多时候,同一个wifi卡同时支持多种接口,譬如marvell的8686的wifi卡,既支持spi接口,也支持sdio接口. (2) SD卡与SDIO卡的异同1.SD卡使用的是SD卡协议,而SDIO卡使用的是SDIO协议;协议不一样,初始化/读写方转载 2012-06-04 11:04:15 · 16014 阅读 · 0 评论 -
SD/MMC/SDIO 驱动分析
[来 源]:http://blog168.chinaunix.net/space.php?uid=25678596&do=blog&id=2102933参考资料: 1.SD Memory Card Specifications / Part 1. Physical Layer Specification; Version 1.0 2.LDD3 CHAPTER-16 BLOCK DE转载 2012-06-04 10:28:25 · 5553 阅读 · 0 评论 -
Linux下GPIO驱动
编写驱动程序,首先要了解是什么类型的设备。linux下的设备分为三类,分别为:字符设备,块设备和网络设备。字符设备类型是根据是否以字符流为数据的交换方式,大部分设备都是字符设备,如键盘,串口等,块设备则是以块为单位进行管理的设备,如,磁盘。网络设备就是网卡等。其次要了解应用程序和驱动程序的区别,两者的主要区别分为以下三点:1入口函数的任务不相同,应用程序完成一个任务,驱动只完成初始化工作,转载 2012-06-11 15:04:49 · 1838 阅读 · 0 评论 -
Linux 2.6 字符设备驱动程序
Linux 2.6字符设备驱动程序○、说明笔记适用于Linux的2.6.10以后的内核。笔记以LinuxDeviceDriver3提供的scull程序(scull目录中的main.c和scull.h)为记录主线,并以该驱动程序中的各种系统调用和函数调用流程为记录顺序。比如,module_init( )和module_exit()为相对应的一对系统调用,一般书籍中都会转载 2012-06-11 15:06:55 · 1546 阅读 · 0 评论 -
LINUX网络子系统
一 内核结构 按功能,Linux内核可以划分为5个不同的部分,每一部分处理一项明确的功能,同时又向其他内核组件提供这项功能。这种结构也反映到内核的源代码上——这5部分都形成了自己的子树。 1进程管理 2内存管理 3文件系统 4设备驱动程序 5网络 二 网络体系结构 Linux网络体系结构由以下五个部分组成 1)系统调用转载 2012-07-02 11:16:50 · 7199 阅读 · 2 评论 -
I/O端口和I/O内存
1. CPU对外设IO端口物理地址的编址方式(1)I/O映射方式(I/O-mapped),即独立编址(2)内存映射方式(Memory-mapped),即统一 编址 1.1 独立编址 一些体系结构的CPU(典型地如X86)为外设专门实现了一个单独地地址空间,称为"I/O 地址空间"或者"I/O端口空间"。 这是一个与CPU地RAM物理地址空间不原创 2012-07-03 10:54:27 · 5094 阅读 · 0 评论 -
linux内核获取当前系统时间
转载自:http://blog.youkuaiyun.com/heanyu/article/details/65525787.2. 获知当前时间内核代码能一直获取一个当前时间的表示, 通过查看 jifies 的值. 常常地, 这个值只代表从最后一次启动以来的时间, 这个事实对驱动来说无关, 因为它的生命周期受限于系统的 uptime. 如所示, 驱动可以使用 jiffies 的当前值来转载 2013-06-18 22:42:14 · 5806 阅读 · 0 评论 -
linux内核中断实现
中断的内核实现一.中断的使用 Linux 内核需要对连接到计算机上的所有硬件设备进行管理,毫无疑问这是它的份内事。如果要管理这些设备,首先得和它们互相通信才行,一般来说,有下面两种方案可实现这种内核和设备之间的通讯:(1)轮询(polling) 让内核定期对设备原创 2011-08-19 19:23:59 · 2314 阅读 · 0 评论 -
android wifi porting
For mini-box.com picoPC we want to support several USB and miniPCI WiFi dongles, this guide provides a step by step explanation of what's in转载 2011-09-14 22:37:24 · 1347 阅读 · 0 评论 -
Linux驱动程序设计之二---Linux字符驱动程序(上)
UNIT 2 Linux字符驱动程序(上)<br /> <br /> <br /> <br /> <br /> <br /> <br />1. 机制和策略<br />2. Linux驱动程序概述<br />3. 设备节点与设备号<br />4. 重要的数据结构<br />5. 字符驱动的注册与注销<br />6. 文件操作接口<br />7. 使用新设备<br /> <br />1.机制和策略<br />机制和策略的区分是其中一个在 Unix 设计背后的最好观念. 大部分的编程问题其实可以划转载 2010-11-07 19:21:00 · 1464 阅读 · 0 评论 -
Linux驱动程序设计之三---Linux字符驱动程序(下)
<br />Linux字符驱动程序(下)<br /> <br />4.重要的数据结构<br />如同你想象的, 注册设备编号仅仅是驱动代码必须进行的诸多任务中的第一个. 我们将很快看到其他重要的驱动组件, 但首先需要涉及一个别的. 大部分的基础性的驱动操作包括 3 个重要的内核数据结构, 称为 file_operations, file, 和 inode. 需要对这些结构的基本了解才能够做大量感兴趣的事情, 因此我们现在在进入如何实现基础性驱动操作的细节之前, 会快速查看每一个.<br />文件操作<br转载 2010-11-07 19:47:00 · 1368 阅读 · 0 评论 -
Linux驱动程序设计之四---并发和竞态
UNIT 3 并发与竟态<br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />1. 并发与竞争条件概述<br />2. 信号量与互斥体<br />3. Completion<br />4. 原子操作<br />5. Spinlock<br />6. 信号量 VS spinlock<br />7. 避免死锁的规则<br /> <br />1.并发与竞争条件概述<br />在现代 Linux 系统, 有非常多的并发源, 并且因此转载 2010-11-08 17:20:00 · 1433 阅读 · 0 评论 -
Nand Flash探索之旅
<br />一 Nand flash概述:<br /> 看过一些关于Nand Flash的材料,有的说得太细,细到每个寄存器的每个位,不容易整体把握;有的讲述的太粗泛,忽略细节,所以在这里想整理一下,以背后用并愿意跟各位同仁分享,水平有限,有错误之处还请见谅并提出。<br />在arm产品的开发中,SRAM (Static RAM,静态随机存储器) - 此类静态RAM的运行速度非常快,也非常昂贵,其体积相对来说也比较大。今天我们常说的CPU内的一级、二级缓存就是使用了此SRAM。但是这种SRAM比较昂原创 2010-11-08 20:59:00 · 1537 阅读 · 1 评论 -
Linux samba服务器文本配置方法
<br /> 文本配置smb服务器<br />概念<br /> SMB windows 共享协议<br /> CIFS 通用internet系统<br />共享方式<br />1、 linux主机运行Samba服务器,Windows 主机作为客户端;<br />2、 linux主机运行Samba服务器,Linux使用samba客户程序访问;<br />3、 Windo原创 2010-11-12 13:55:00 · 1277 阅读 · 0 评论 -
Linux nfs服务器文本配置方法
<br />文本配置nfs服务器--简易版<br />相信你在配置该服务器之前对它有了一定的了解,我们就开门见山了。<br />配置nfs服务器的简单步骤如下:<br />一 服务器端的设定(以LINUX为例) <br /> 服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下:<br /> 分享的目录 主机名称1或者IP1(参数1,参数2)主机名称2或者IP2(参数3,参数4)<br />上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不原创 2010-11-12 13:47:00 · 875 阅读 · 0 评论 -
Linux内核启动进程流程
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,它是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即 init进程。它按照配置文件/etc/initab的要求,完成系统启动工作,原创 2010-11-20 16:38:00 · 1595 阅读 · 0 评论 -
proc文件系统解析
proc文件系统解析(1)proc文件系统简介 最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。 /proc 文件系统包含了一些目转载 2011-08-02 22:46:20 · 1627 阅读 · 0 评论 -
YUV / RGB 格式分析及快速查表算法设计
1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空转载 2011-08-08 14:20:50 · 1867 阅读 · 0 评论 -
驱动初始化中自动创建设备节点
Linux是一套免费使用和自由传播的操作系统,它主要用于基于Intel系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 设备驱动程序的时候,很多时候都是利用mknod命令转载 2011-08-15 19:03:04 · 2990 阅读 · 0 评论 -
Linux内核符号表
1、形成过程 Linux内核符号表/proc/kallsyms的形成过程 (1)./scripts/kallsyms.c负责生成System.map (2)./kernel/kallsyms.c负责生成/proc/kallsyms (3)./scripts/kallsyms.c解析vmlinux(.tmp_vmlinux)生成kallsyms.S(.tmp_kallsy转载 2013-10-10 18:19:34 · 8299 阅读 · 0 评论