E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux设备驱动
关于学习Linux的经典书籍 (深入理解Linux内核、
Linux设备驱动
程序等) .
成为一名精通Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区Linux程序员月薪平均为Windows程序员的1.8倍、Java程序员的2.6倍,Linux程序员年终奖金平均为Windows程序员的2.9倍。同时数据显示,随着工作经验的增长,Linux程序员与Windows程序员的收入差距还有扩大的趋势。Denis认为,要学好Linux环境下的编程,关键是
sanchuyayun
·
2014-10-13 15:00
Linux设备驱动
程序学习笔记12:中断调用流程
通过轮询的方式去查询各个硬件的状态显得有的低效,一种更好的机制是当硬件状态准备好之后能够主动地报告给CPU。中断就是这样的一种机制,它允许硬件发信号给CPU。下面就先分析一下当一个中断发生时,Linux系统的处理流程。首CPU在收到中断线上的中断信号后,会跳到某个固定的地址去执行代码,这个地址被称为中断向量。这部分代码是同体系结构相关,主要是汇编代码,其中的主要工作有保存中断现场,切换到中断上下文
_纳格_
·
2014-09-28 11:58
Linux
Linux设备驱动
程序学习笔记11:输入设备子系统
各种不同的输入设备(如按键,鼠标,触摸屏等)都是字符设备。这些设备文件操作接口等基本是通用的,只是他们底部的硬件操作方式有所不同。Linux内核中采用了一种分层的思想,将这些上层相同的东西分类出来单独开发了一个输入子系统(inputsubsystem)。输入子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成输入系统留出的接口,在很大程度上简化输入设备的驱动开发。Linux的输入子
_纳格_
·
2014-09-24 16:48
Linux
手上的书籍
手上的书籍一、数据结构与算法分析二、算法导论三、unix环境高级编程四、设计模式五、
linux设备驱动
程序六、数学之美七、c和指针 八、boost程序库完全开发指南九、c++反汇编与逆向分析十、python
从头再来
·
2014-09-22 20:00
《
Linux设备驱动
开发详解》源码——vmem_disk.c
/home/lihacker/develop/svn/ldd6410-read-only/training/kernel/drivers/vmem_disk/**Samplediskdriver,fromthebeginning.*/#include#include#include#include#include/*printk()*/#include/*kmalloc()*/#include/*
口天土立口
·
2014-09-18 08:16
驱动程序
Linux设备驱动开发详解
《
Linux设备驱动
开发详解》源码——export
/home/lihacker/develop/svn/ldd6410-read-only/training/kernel/drivers/export/**Asimplekernelmoduletointroduceexportsymbol**TheinitialdeveloperoftheoriginalcodeisBaohuaSong*.AllRightsReserved.*/#include
口天土立口
·
2014-09-18 08:48
驱动程序
Linux设备驱动开发详解
linux设备驱动
中的并发控制
并发控制的概念----并发指的是多个执行单元并行执行,而并发的执行单元对共享资源(硬件资源和----软件上的全局变量、静态变量等)的访问则很容易导致竞态。竞态发生的情况----对称多处理器(SMP)的多个CPU----单CPU内进程与抢占它的进程----中断(硬中断、软中断、Tasklet、底半部)与进程之间解决竞态问题的途径----保证对共享资源的互斥访问,所谓互斥访问是指一个执行单元在访问共享
hbuxiaofei
·
2014-09-02 20:00
linux设备驱动
编写基础
Linux设备驱动
编写基础一、linux中的驱动是以模块的形式存在的,这样就大大提高了驱动的灵活性,linux内核模块的程序结构如下:l 模块加载函数(必须):module_init()l 模块卸载函数
hbuxiaofei
·
2014-09-01 20:00
LINUX设备驱动
程序笔记(五)中断处理
中断处理流程如下: 1、发生中断时,CPU执行异常向量vector_irq的代码。 2、在vector_irq里面,最终会调用中断处理的总入口函数asm_do_IRQ。 3、asm_do_IRQ根据中断号调用irq_desc数组项中的handle_irq。 4、hadnle_irq会使用chip成员中的函数来设置硬件,比如清除中断、禁止中断、重新使能中断等。 5、hand
To_Be_IT_1
·
2014-08-27 08:00
中断处理
linux驱动
LINUX设备驱动
程序笔记(四)并发和竞态
.并发及其管理 大部分竞态可通过使用内核的并发控制原语,并应用几个基本的原理来避免。第一个规则是,只要可能,就应该避免资源的共享,这种思想的明显应用就是避免使用全局变量。但硬件资源本质上就是共享的,软件资源经常需要对其他执行线程可用。全局变量并不是共享数据的唯一途径,只要我们的代码将一个指针传递给了内核的其他部分,一个新的共享就可能建立。在单个执行线程之外共享硬件或软件资源的任何时候,
To_Be_IT_1
·
2014-08-27 08:00
linux驱动
并发与竞态
LINUX设备驱动
程序笔记(三)字符设备驱动程序
.主设备号和次设备号 对字符设备的访问时通过文件系统内的设备名称进行的。那些设备名称简单称之为文件系统树的节点,它们通常位于/dev目录。字符设备驱动程序的设备文件可通过ls-l命令输出的第一列中的'c'来识别。块设备同样位于/dev下,由字符'b'标识crw-rw---- 1rootroot 253, 02013-09-1120:33usbmon0crw-rw---- 1rootr
To_Be_IT_1
·
2014-08-27 08:00
linux驱动
字符设备驱动程序
LINUX设备驱动
程序笔记(二)构造和运行模块
:设置测试系统 首先准备好一个内核源码树,构造一个新内核,然后安装到自己的系统中。 :HelloWorld模块#include//定义了驱动的初始化和退出相关的函数 #include//定义了内核模块相关的函数、变量及宏 MODULE_LICENSE("DualBSD/GPL");//该宏告诉内核,该模块采用自由许可证 staticinthello_init(void
To_Be_IT_1
·
2014-08-27 08:00
linux驱动
LINUX设备驱动
程序笔记(一)设备驱动程序简介
:设备驱动程序的作用 从一个角度看,设备驱动程序的作用在于提供机制,而不是策略。在编写驱动程序时,程序员应该特别注意下面这个基本概念:编写访问硬件的内核代码时,不要给用户强加任何特定策略。因为不同的用户有不同的需求,驱动程序应该处理如何使硬件可用的问题,而将怎样使用硬件的问题留给上层应用程序。 从另一个角度来看驱动程序,它还可以看作是应用程序和实际设备之间的一个软件层。 总的来说
To_Be_IT_1
·
2014-08-27 08:00
linux驱动
Linux图书学习路线
驱动 篇 《
LINUX设备驱动
程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分
XingKong_678
·
2014-08-25 22:00
应用定时器,通过应用程序控制LED闪灭(
linux设备驱动
程序学习)
驱动程序源代码:led_timer.c #include #include #include #include #include #include #include #include staticvolatileunsignedint*GPJ2CON,*GPJ2DAT; staticintmajor=0; structtimer_listtime; staticintcounter; stat
dezhihuang
·
2014-08-25 11:00
ARM-LINUX驱动学习
阅读笔记[
Linux设备驱动
开发](2014-8-24)
1.Intel于1988年首先开发出NORFlash 东芝于1989年开发出NANDFlash NANDFlash于NORFlash相比容量大、价格低;NANDFlash中每个块的最大擦写次数是100万次,而NOR的擦写是10万次;NANDFlash的擦除、编程速度远超过NORFlash。 任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须
dezhihuang
·
2014-08-24 18:00
ARM-LINUX驱动学习
kobject与kset
二 kobject 1 kobject是
linux设备驱动
模型的组成架构最主要元素,它实现了类似于C++的继承 2 每一个kobject对象对应于s
u013298300
·
2014-08-23 23:00
代码分析
linux内核
ARM9
linux设备驱动
编程Segmentation fault错误分析和调试
错误原因一个进程虚拟空间里的任何地址,在进程访问它之前必须要经过MMU转换,将它映射到物理内存的某个具体的存储位置上才是合法有效的,不然操作系统就会用“SegmetationFault”对你的进程进行宣判,然后将其kill掉调试方法printk不显示在超级终端上,保存在/var/log/messages。可以通过dmesg命令查看,如果只想显示最后几行,可以用dmesg|tail-8 驱动一般是软
黄兔之
·
2014-08-18 16:00
Linux学习经典书籍推荐..【Pnoter】
驱动篇《
LINUX设备驱动
程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对li
Pnoter
·
2014-08-18 08:00
linux
shell
应用
linux内核
linux驱动
Linux设备驱动
之Ioctl控制
大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。一、在用户空间,使用ioctl系统调用来控制设备,原型如下:intioctl(intfd,unsignedlongcmd,...); /* fd:文件描述符 cmd:控制命令 ...:可选参数:插入*argp,具体内容依赖于cmd */用户程序所作的只是通过命令码告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这
xuelin273
·
2014-08-17 22:00
c
linux
Introduction the naive“scull” 《
linux设备驱动
》 学习笔记
Introductionthenaive“scull”首先,什么是scull? scull(SimpleCharacterUtilityforLoadingLocalities).scullisachardriverthatactsonamemoryareaasthoughitwereadevice. 和第一个C程序Helloworld一样,他什么都
u011368821
·
2014-07-31 17:00
我学习linux的一些书籍
《linux内核设计与实现》robert love《操作系统原理linux篇》徐德明 《自己动手写操作系统》 于渊《
linux设备驱动
开发详解》宋宝华《
linux设备驱动
程序》(美)科波特《深入浅出:
lee244868149
·
2014-07-31 11:00
linux设备驱动
的难点重点
Linux设备驱的学习是一项浩繁的工程l 编写
linux设备驱动
要求工程师有非常好的硬件基础,懂得SRAM,FLASH,SDRAM,磁盘的读写方式,UART,IIC,USB等设备的接口以及轮询,中断,DMA
lee244868149
·
2014-07-31 11:00
关于学习Linux的经典书籍 (深入理解Linux内核、
Linux设备驱动
程序等
成为一名精通Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区Linux程序员月薪平均为Windows程序员的1.8倍、Java程序员的2.6倍,Linux程序员年终奖金平均为Windows程序员的2.9倍。同时数据显示,随着工作经验的增长,Linux程序员与Windows程序员的收入差距还有扩大的趋势。Denis认为,要学好Linux环境下的编程,关键是
sanchuyayun
·
2014-07-31 11:00
Linux设备驱动
程序简介
一、驱动程序的特点是应用和硬件设备之间的一个软件层。这个软件层一般在内核中实现设备驱动程序的作用在于提供机制,而不是提供策略,编写访问硬件的内核代码时不要给用户强加任何策略机制:驱动程序能实现什么功能。策略:用户如何使用这些功能。二、设备驱动分类和内核模块设备驱动类型。Linux系统将设备驱动分成三种类型字符设备块设备网络设备内核模块:内核模块是内核提供的一种可以动态加载功能单元来扩展内核功能的机
weicao1990
·
2014-07-31 10:00
Linux设备驱动
入门
设备驱动的作用任何一个计算机系统的运转都是系统中软硬件共同作用的结果,计算机系统的软硬件互相成就了对方。应用软件工程师需要看到一个没有硬件的纯粹的软件世界,硬件必须被透明地呈现。驱动工程师来实现硬件对软件工程师的隐形。设备驱动充当了硬件和应用软件之间的纽带。在系统中没有操作系统的情况下,工程师可以根据硬件设备的特点自行定义接口。在有操作系统的情况下,驱动的架构由相应的操作系统定义,驱动工程师必须按
刘占伟
·
2014-07-31 08:05
linux
驱动
linux设备驱动
之USB主机控制器驱动分析(二)
首先来看一下这个函数要做什么事情:我们在前面说过,int128,int64,int32……int4,int2,int1这样8个QH.我们在后面看到.会将uhci->frame的物理地址存放到UHCI控制器的FrameListBaseAddressRegister中.所以现在要做的事情就是将这些QH与uhci->frame[]关联起来.必须要按照相应的时间间隔将QH插入到uhci->frame[]中
kof98765
·
2014-07-30 10:00
linux设备驱动
之USB主机控制器驱动分析 (一)
一:前言Usb是一个很复杂的系统.在usb2.0规范中,将其定义成了一个分层模型.linux中的代码也是按照这个分层模型来设计的.具体的分为usb设备,hub和主机控制器三部份.在阅读代码的时候,必须要参考相应的规范.最基本的就是USB2.0的spec.它定义了USB协议.另外的一个是USB控制器的规范.有UHCI,EHCI,OHCI三种.其中UHCI是Intel推出的一种USB控制器标准.它将很
kof98765
·
2014-07-30 10:00
linux设备驱动
之USB数据传输分析(之四)
uhci_scan_schedule()是这个函数的核心操作.也是经常出现的一个函数.代码如下:staticvoiduhci_scan_schedule(structuhci_hcd*uhci){ inti; structuhci_qh*qh; /*Don'tallowre-entrantcalls*/ //如果正在进行scan处理.设置need_rescan之后退出 if(u
kof98765
·
2014-07-30 10:00
linux设备驱动
之USB数据传输分析(之五)
也许,有人会有这样的疑问:对于控制传输,它不也是基于toggle的纠错么,为什么它就不需要修改后续的包的toggle值呢?这是因为,控制传输的toggle都是从1开始的,删除掉当前的urb,也不会对后面的发包造成影响.之后,处理完之后,将无用的td删除.跟踪一下toggle的修正过程.对应的函数为uhci_fixup_toggles().如下所示:staticvoiduhci_fixup_togg
kof98765
·
2014-07-30 10:00
linux设备驱动
之USB数据传输分析 三
3.4:中断传输过程1:roothub的中断传输在usb_hcd_submit_urb()àrh_urb_enqueue()中:staticintrh_urb_enqueue(structusb_hcd*hcd,structurb*urb){ if(usb_endpoint_xfer_int(&urb->ep->desc)) returnrh_queue_status(hcd,urb)
kof98765
·
2014-07-29 23:00
linux设备驱动
之USB数据传输分析 一
本文出处:http://ericxiao.cublog.cn/三:传输过程的实现说到传输过程,我们必须要从URB开始说起,这个结构的就好比是网络子系统中的skb,好比是I/O中的bio.USB系统的信息传输就是打成URB结构,然后再过行传送的.URB的全称叫USBrequestblock.下面从它的接口说起.3.1:URB的相关接口1:URB的创建URB的创建是由usb_alloc_urb()完成
kof98765
·
2014-07-29 23:00
linux设备驱动
之USB数据传输分析 二
3.2:控制传输过程1:roothub的控制传输在前面看到,对于roothub的情况,流程会转入rh_urb_enqueue().代码如下:staticintrh_urb_enqueue(structusb_hcd*hcd,structurb*urb){ //如果是中断传输的端点 if(usb_endpoint_xfer_int(&urb->ep->desc)) returnrh_q
kof98765
·
2014-07-29 23:00
Linux设备驱动
程序(第三版)读书笔记1,hello world
1.构建一个内核树说是要2.6内核的源码书,所以就去kernel.org下载一个2.6的内核linux-2.6.32.63.tar.xzxz-dlinux-2.6.32.63.tar.xztar-xvflinux-2.6.32.63.tarcdlinux-2.6.32.63makeoldconfig#配置原版make-j4@编译内核(此过程耗时长,编译完后在linux-2.6.32.63多出一个v
守望尼罗河畔的初心
·
2014-07-23 10:20
Linux设备驱动
程序(第三版)读书笔记1,hello world
1.构建一个内核树说是要2.6内核的源码书,所以就去kernel.org下载一个2.6的内核linux-2.6.32.63.tar.xzxz-dlinux-2.6.32.63.tar.xztar-xvf linux-2.6.32.63.tarcdlinux-2.6.32.63makeoldconfig#配置原版make-j4 @编译内核(此过程耗时长,编译完后在linux-2.6.32.63多出一
zmnqazqaz
·
2014-07-23 10:00
c
读书笔记
内核
Linux设备驱动
程序学习笔记02:编写编译并运行驱动程序
学习一个新东西最好的方式就是去实践它。在实践的过程中会不断遇到问题、产生疑问。解决这些问题的过程就是我们进步成长的过程。我们今天就来尝试写一个驱动程序吧!一、如何写驱动程序在学习C语言的时候有一个著名的helloworld程序。在学习驱动程序的时候我们也可以写一个类似的小程序,它的源码如下://filenamemodule_ts.c#include#includestaticint__initmo
_纳格_
·
2014-07-19 22:53
Linux
浅析Linux内核同步机制
很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下《linux内核标准教程》和《深入
linux设备驱动
程序内核机制》这两本书的相关章节。
fzubbsc之雕虫小技
·
2014-07-13 19:41
Unix-LINUX开发
linux内核
同步机制
linux serial构架分析及驱动开发(3)
platform可以看作一伪总线,用于将集成于片上系统的轻量级设备与
Linux设备驱动
模型联系到一
yongbudl2012
·
2014-07-12 17:00
linux的串口驱动
linux书籍推荐
熟悉操作系统的基础知识>>> 《现代操作系统》《操作系统概念》 3熟悉系统编程 >>> 《unix环境高级编程第二版》《unix操作系统设计与实现》 4 内核按先后顺序:《linux内核设计与实现》《
linux
fanzhang1990
·
2014-07-08 15:00
linux 中断处理
Linux设备驱动
中中断处理相关的首先是申请与释放IRQ的APIrequest_irq()和free_irq()int request_irq(unsigned int irq, //irq是要申请的硬件中断号
cicue
·
2014-07-05 17:00
linux
中断处理
Linux中块设备驱动程序分析
基于《
Linux设备驱动
程序》书中的sbull程序以对Linux块设备驱动总结分析。
yuesichiu
·
2014-07-04 10:00
Linux内核开发之阻塞非阻塞IO----轮询操作
“可问题是面试官压根就没打算问我有关阻塞的问题及解决方案,但是问我说:这样吧,你给我说说在
Linux设备驱动
中有关非阻
lifan_3a
·
2014-07-01 23:00
《
Linux设备驱动
开发详解(第3版)》(即《
Linux设备驱动
开发详解:基于最新的Linux 4.0内核》)进展同步更新
本博实时更新《
Linux设备驱动
开发详解(第3版)》的最新进展。目前已经完成稿件。
linux内存和进程
·
2014-06-30 20:54
Linux
Driver开发
[置顶] 《
Linux设备驱动
开发详解(第3版)》(即《
Linux设备驱动
开发详解:基于最新的Linux 4.0内核》)进展同步更新
本博实时更新《
Linux设备驱动
开发详解(第3版)》的最新进展。目前已经完成稿件。
21cnbao
·
2014-06-30 20:00
linux
【Linux高级驱动】
linux设备驱动
模型之平台设备驱动机制
【1:引言:linux字符设备驱动的基本编程流程】1.实现模块加载函数 a.申请主设备号 register_chrdev(major,name,file_operations); b.创建字符设备cdev,注册字符设备 cdev_alloccdev_initcdev_add c.创建设备文件 class_createdevice_create d.注册中断 ret=request_
·
2014-06-22 15:00
linux
从PC的总线到ARM内部总线
从PC的总线到ARM内部总线我在学习《
Linux设备驱动
程序(第3版)》的 第九章与硬件通信 时,对I\O总线的概念不是很清晰,所以查找了有关资料。
maochengtao
·
2014-06-15 10:00
Linux设备驱动
开发详解:入门与编程实践
Linux设备驱动
开发详解:入门与编程实践本文集基于LDD6410开发板,以Linux2.6版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/
李航421
·
2014-06-13 09:00
linux
入门
设备驱动
编程实践
开发详解
《
Linux设备驱动
开发详解》-- Linux中断处理底半部机制(tasklet、工作队列和软中断)
1.tasklet tasklet的使用较简单,我们只需要定义tasklet及其处理函数并将两者关联,例如:voidmy_tasklet_func(unsignedlong);/*定义一个处理函数*/ DECLARE_TASKLET(my_tasklet,my_tasklet_func,data); /*定义一个tasklet结构my_tasklet,与my_tasklet_func(data)函
houxn22
·
2014-06-12 16:00
《
Linux设备驱动
开发详解》-- Linux 中断编程
10.3.1 申请和释放中断在
Linux设备驱动
中,使用中断的设备需要申请和释放对应的中断,分别使用内核提供的request_irq()和free_irq()函数。
houxn22
·
2014-06-12 16:00
《
Linux设备驱动
开发详解》-- Linux中断处理程序架构和Linux中断编程
设备的中断会打断内核中进程的正常调度和运行,系统对更高吞吐率的追求势必要求中断服务程序尽可能地短小精悍。但是,这个良好的愿望往往与现实并不吻合。在大多数真实的系统中,当中断到来时,要完成的工作往往并不会是短小的,它可能要进行较大量的耗时处理。 图10.2描述了Linux内核的中断处理机制。为了在中断执行时间尽可能短和中断处理需完成大量工作之间找到一个平衡点,Linux将中断处理程序分
houxn22
·
2014-06-12 16:00
上一页
23
24
25
26
27
28
29
30
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他