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设备驱动
开发详解》-- 内核定时器
10.5.1 内核定时器编程 软件意义上的定时器最终依赖硬件定时器来实现,内核在时钟中断发生后检测各定时器是否到期,到期后的定时器处理函数将作为软中断在底半部执行。实质上,时钟中断处理程序执行update_process_timers()函数,该函数调用run_local_timers()函数,这个函数处理TIMER_SOFTIRQ软中断,运行当前处理器上到期的所有定时器。在Linux设备驱
houxn22
·
2014-06-12 15:00
《
Linux设备驱动
开发详解》-- 等待队列
基础知识:阻塞与非阻塞 阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。 驱动程序通常需要提供这样的能力:当应用程序进行read()、write()等系统调用时,若设备的资源不
houxn22
·
2014-06-12 14:00
《
Linux设备驱动
开发详解》-- 互斥体(mutex)
尽管信号量已经可以实现互斥的功能,而且包含DECLARE_MUTEX()、init_MUTEX()等定义信号量的宏或函数,从名字上看就体现出了互斥体的概念,但是mutex在Linux内核中还是真实地存在的。下面代码定义名为my_mutex的互斥体并初始化它。structmutexmy_mutex;mutex_init(&my_mutex);下面的两个函数用于获取互斥体。voidfastcallmu
houxn22
·
2014-06-12 14:47
Linux内核驱动
《
Linux设备驱动
开发详解》-- 互斥体(mutex)
尽管信号量已经可以实现互斥的功能,而且包含DECLARE_MUTEX()、init_MUTEX()等定义信号量的宏或函数,从名字上看就体现出了互斥体的概念,但是mutex在Linux内核中还是真实地存在的。下面代码定义名为my_mutex的互斥体并初始化它。structmutexmy_mutex;mutex_init(&my_mutex); 下面的两个函数用于获取互斥体。voidfastcallm
houxn22
·
2014-06-12 14:00
《
Linux设备驱动
开发详解》-- 中断屏蔽
在单CPU范围内避免竞态的一种简单方法是在进入临界区之前屏蔽系统的中断。CPU一般都具备屏蔽中断和打开中断的功能,这项功能可以保证正在执行的内核执行路径不被中断处理程序所抢占,防止某些竞态条件的发生。具体而言,中断屏蔽将使得中断与进程之间的并发不再发生,而且,由于Linux内核的进程调度等操作都依赖中断来实现,内核抢占进程之间的并发也就得以避免了。中断屏蔽的使用方法为:local_irq_disa
houxn22
·
2014-06-12 13:00
《
Linux设备驱动
开发详解》-- 原子操作
原子操作指的是在执行过程中不会被别的代码路径所中断的操作。Linux内核提供了一系列函数来实现内核中的原子操作,这些函数又分为两类,分别针对位和整型变量进行原子操作。它们的共同点是在任何情况下操作都是原子的,内核代码可以安全地调用它们而不被打断。位和整型变量原子操作都依赖底层CPU的原子操作来实现,因此所有这些函数都与CPU架构密切相关。7.3.1 整型原子操作1设置原子变量的值voidatomi
houxn22
·
2014-06-12 13:00
linux
kernel
内核
原子操作
《
Linux设备驱动
开发详解》-- 信号量的使用(semaphore)
信号(semaphore)是用于保护临界区的一种常用方法,它的使用方式和自旋锁类似。与自旋锁相同,只有得到信号量的进程才能执行临界区代码。但是,与自旋锁不同的是,当获取不到信号时,进程不会原地打转而是进入休眠等待状态。Linux系统中与信号量相关的操作主要有如下4种。1定义信号量下列代码定义名称为sem的信号量。structsemaphoresem;2初始化信号量voidsema_init(str
houxn22
·
2014-06-12 11:00
《
Linux设备驱动
开发详解》-- 自旋锁(spinlock)
7.4.1 自旋锁的使用自旋锁(spin lock)是一种对临界资源进行互斥手访问的典型手段,其名称来源于它的工作方式。为了获得一个自旋锁,在某CPU上运行的代码需先执行一个原子操作,该操作测试并设置(test-and-set)某个内存变量,由于它是原子操作,所以在该操作完成之前其他执行单元不可能访问这个内存变量。如果测试结果表明锁已经空闲,则程序获得这个自旋锁并继续执行;如果测试结果表明锁仍被占
houxn22
·
2014-06-12 10:00
Linux设备驱动
工程师之路——内核链表的使用
Linux设备驱动
工程师之路——内核链表的使用K-Style转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498邮箱:
houxn22
·
2014-06-12 10:00
linux
链表
kernel
内核
Linux设备驱动
学习(4)-字符设备驱动
原文地址:
Linux设备驱动
学习(4)-字符设备驱动作者:lison0103本篇文章记录的是我阅读《EssentialLinuxDeviceDrivers》-字符设备驱动的阅读笔记和思考纪录。
guo8113
·
2014-06-07 17:00
Linux设备驱动
程序调式 GDB调式 内核调式KDB调式
具体:http://www.verydemo.com/demo_c167_i79789.html 今天进入《
Linux设备驱动
程序(第3版)》第四章调试技术的学习。
guoming521579
·
2014-06-03 12:00
linux
linux书籍
驱动篇 《
LINUX设备驱动
程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对l
linshixina
·
2014-05-15 14:00
Linux设备驱动
程序学习之分配内存
内核为设备驱动提供了一个统一的内存管理接口,所以模块无需涉及分段和分页等问题。我已经在第一个scull模块中使用了kmalloc和kfree来分配和释放内存空间。kmalloc函数内幕kmalloc是一个功能强大且高速(除非被阻塞)的工具,所分配到的内存在物理内存中连续且保持原有的数据(不清零)。原型:#includevoid*kmalloc(size_tsize,intflags);size参数
jklinqing007
·
2014-05-11 23:00
Class create, device create, device create file
来自:http://www.hovercool.com/en/Class_create,_device_create,_device_create_file开始写
Linux设备驱动
程序的时候,很多时候都是利用
luckywang1103
·
2014-05-09 17:00
OpenRisc-67-OR的汇编
引言之前我们写过OR的裸机程序,写过基于OR的
linux设备驱动
程序,也反汇编过OR的机器码。本小节,我们将通过一个简单的实验,对OR的汇编(指令集)做一个简单的梳理和测试。
rill_zhen
·
2014-04-28 19:00
80-NC839-50_A_MSM8x10_Display_Driver_Architecture笔记
[1]IOMMU:[
Linux设备驱动
开发详解(第2版)]宋宝华 IOMMU的工作原理针对的是外设总线地址和内存地址之间的转化[2] staticvoidmdp3_iommu_heap_unmap_iommu
TopicDev
·
2014-04-18 09:00
LDD3源码分析之hello.c与Makefile模板
一、hello.c文件分析 这个程序非常简单,它的目的是向我们展示Linux模块编程的架构,而
Linux设备驱动
程序的开发方法,就是利用了Linux模块编程。首先来分析一下这个程序。
ncepu307
·
2014-04-18 09:00
编程
linux
android
makefile
linux内核
Linux设备驱动
程序的Makefile文件例子
最近研究QQ2440,想做水下机器人的位姿检测,用Linux需要对设备驱动编程,学了学,挺麻烦的,麻烦在编译和加载上,在网上找到一个例子不错,抄下来备用。PC机上的:obj-m := hello.o KERNELDIR := /lib/modules/$(shell uname -r)/build default: make -C $(KERNELDIR) M=$(shel
hwmt2012
·
2014-04-17 21:00
Linux设备驱动
模型之Kobject
Sysfs文件系统(Linux2.6) 基于RAM的文件系统,与proc系统类似(不存在本地磁盘,掉电易失),对应Linux系统下的/sys目录。该文件系统的说明可参考Linux内核源码Documentation/filesystems/sysfs.txt文档。该文档中对其功能叙述为:sysfsisaram-basedfilesysteminitiallybasedonramfs.Itpro
xgmiao
·
2014-04-17 00:00
Linux设备驱动
之HID驱动
------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言继前面分析过UHCI和HUB驱动之后,接下来以HID设备驱动为例来做一个具体的USB设备驱动分析的例子.HID是HumanInte
kevinx_xu
·
2014-04-14 11:00
Linux内核架构
Linux设备驱动
Linux电源管理 Linux音频子系统 Linux中断子系统 Linux时间管理系统 Linux输入子系统
http://blog.csdn.net/droidphone/article/details/7467436点击打开链接移动开发之Android(11)Linux内核架构(15)
Linux设备驱动
(16
wocao1226
·
2014-04-09 13:00
ioctl
Linux设备驱动
之Ioctl控制 http://www.cnblogs.com/geneil/archive/2011/12/04/2275372.htmlioctl的实现 http://blog.chinaunix.net
shixha
·
2014-04-08 23:00
零基础Android手机嵌入式开发实战课程(网吧计费系统、多功能播放器、驱动开发)
手机嵌入式开发实战课程(网吧计费系统、多功能播放器、驱动开发)视频教程下载 联系QQ:1026270010本套课程从最础的C语言和数据结构起步,一步步学习ARM裸机开发、Linux应用开发、Linux系统移植、
Linux
菊花侠
·
2014-04-08 15:52
驱动开发
android零基础
手机嵌入式开发
网吧计费系统
多功能播放器
[arm驱动]linux内核时钟
二、
linux设备驱动
编程 linux内核提供一组
lilin9105
·
2014-04-07 20:38
jiffies
内核时钟
timer_list
linux设备驱动
归纳总结(五):3.IO静态映射
linux设备驱动
归纳总结(五):3.操作硬件——IO静态映射xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
hktkfly6
·
2014-03-28 23:00
Linux设备驱动
之HID驱动
Linux设备驱动
之HID驱动------------------------------------------本文系本站原创,欢迎转载!
SdustLiYang
·
2014-03-28 10:00
君君学
Linux设备驱动
第三天之linux内核简简简介
内核这东西不是一篇博客,日志能说清楚的,但是简要总结一下有利于后面的学习。。。。。。一内核的演变和发展 Linux是unix的一种克隆系统。它的发展依赖于五大支柱:unix系统(分时操作系统),minx系统,GNU计划,Posix标准和internet。因为从0.95以后对内核的许多改进和扩充均已为其他人士,而Linus的主要任务开始变成维护内核和选择补丁程序。 从19
lzjsqn
·
2014-03-18 16:00
linux
makefile
linux内核
君君学
Linux设备驱动
第二天之硬件基础
一处理器1通用处理器(GPP) 不针对具体应用领域进行体系结构和指令的优化,具有通用性,以支持复杂的运算和添加新功能。2微控制器(MCU):含有CPU和一些基本外设的芯片 微处理器(MPU):等价于CPU。 两者都含有一个通用处理器核。3典型MCU结构包括时钟,定时器,看门狗,中断控制器,UART,IIC,USB,DMA,MMU以及最重要的CPU。4主流的嵌入式CPU:(1)ARM
lzjsqn
·
2014-03-16 02:00
linux
硬件
linux内核
有关 Linux 下内核模块的开发方式的记录 .
前几天照着《
Linux设备驱动
开发详解》上的代码翘入了计算机一段内核模块代码,但是完全没有
TopicDev
·
2014-03-14 17:00
Linux设备驱动
之semaphore机制
Linux设备驱动
之semaphore机制在Linux系统中,信号号是一种重要的加锁机制,特别在互斥型资源中,semaphore更能很好的工作。
psvoldemort
·
2014-03-14 12:00
君君学
Linux设备驱动
第一天之概述及开发环境搭建
一.设备驱动的作用: 1计算机系统里面的软件和硬件是互相成就的,没有软件的硬件是废铁,没有硬件作为依托的软件是空中楼阁。 2当应用软件工程师不想了解硬件底层的具体操作的时候,就需要设备驱动的设计来实现硬件对应用层的透明。 3没有操作系统的时候,硬件的调用接口是任意的,应用程序是可以和硬件进行交互的,但是当有了操作系统以后,必须根据具体系统的架构设计相应的设备驱动。 4在行业里,也许驱动工
lzjsqn
·
2014-03-14 00:00
模块化
软件
硬件
linux内核
Linux内核学习四库全书
LinuxKernel四库全书1.Linux内核设计与实现Edition2 2.
Linux设备驱动
Edition3 3.Linux内核源代码情景分析
wconvey
·
2014-03-12 08:00
linux设备驱动
——andriod平台wlan驱动
点击打开链接
linux设备驱动
——andriod平台wlan驱动 关于这一部分的blog,所有的内容均摘自自己的工作总结笔记,在很多网站都发现了自己写的技术总结的转载感到很高兴,虽然我还是个菜鸟,
wocao1226
·
2014-03-11 17:00
class_create(),device_create(),device_create_file()
开始写
Linux设备驱动
程序的时候,很多时候都是利用mknod命令手动创建设备节点(包括ldd3中不少例子也是这样),实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev
hustyangju
·
2014-03-11 16:00
struct
文件系统
linux驱动
第四章--调试技术
一、打印调试
linux设备驱动
调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用printk(KERN_DEBUG)来输出打印信息。
apple_guet
·
2014-03-11 11:00
linux驱动
一个字符型设备的简单例子
一个字符型设备的简单例子一、概述作为一名Android应用开发工程师,略懂些
linux设备驱动
的知识是有必要的,因为我们常见的Log框架和Binder框架都离不开底层驱动的支持。
y658t
·
2014-03-07 15:00
Linux设备驱动
的分层设计思想(转自宋宝华老师)
1.1设备驱动核心层和例化在面向对象的程序设计中,可以为某一类相似的事物定义一个基类,而具体的事物可以继承这个基类中的函数。如果对于继承的这个事物而言,其某函数的实现与基类一致,那它就可以直接继承基类的函数;相反,它可以重载之。这种面向对象的设计思想极大地提高了代码的可重用能力,是对现实世界事物间关系的一种良好呈现。Linux内核完全由C语言和汇编语言写成,但是却频繁用到了面向对象的设计思想。在设
hwmt2012
·
2014-03-06 22:00
Linux主机驱动与外设驱动分离思想[转宋老师]
1主机、外设驱动分离的意义在
Linux设备驱动
框架的设计中,除了有分层设计实现以外,还有分隔的思想。
hwmt2012
·
2014-03-06 21:00
LINUX设备驱动
开发入门之环境搭建
一个基本的
Linux设备驱动
开发环境由宿主机和目标机组成,宿主机就是用来做驱动开发工作的主机,目标机就是用来运行和测试设备驱动的主机,在宿主机上需要有开发工具(gcc,gdb,make等)和linux源码
hustyangju
·
2014-02-24 21:00
linux驱动
Android SMD数据通信概述
在Linux中,基于SMD的数据通信是以信道的形式作为一个设备存在的,作为一种双向信道,其接口的实现遵循
Linux设备驱动
规范。
TopicDev
·
2014-02-20 16:00
Linux设备驱动
模型 .
尽管LDD3中说对多数程序员掌握设备驱动模型不是必要的,但对于嵌入式Linux的底层程序员而言,对设备驱动模型的学习非常重要。Linux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而
TopicDev
·
2014-02-20 09:00
linux设备驱动
之UART总结
第一次分析内核源代码,整个内核代码绕来绕去,人比较容易晕,而且深入追踪几次后不知道自己要干什么呢?自己看内核代码,看驱动,上网搜资料也有好一段时间了,大概总结一下自己的一些心得,很简单的,不是写驱动的心得,而是怎么去查看,最近看UART终端设备驱动,就以这个为例吧。第一,弄清楚主要结构框架这人是大概弄清楚主要框架,流程,一般linux内核驱动都是封装,分层,抽象,继承的,所以要弄个大概,知道几个关
hwmt2012
·
2014-02-19 10:00
linux设备驱动
之UART移植
对于串口驱动的移植准备自己分析一下源代码的,但是发现自己好多地方都只知道一些皮毛,不明白其中的道理,所以我上网搜的时候发现有好多人写了很多很好的文章了,下面我转载的这篇就非常不错,一个困恼我好久的问题是驱动代码中只是注册了platform驱动,而platform设备注册在哪里?这个问题困恼我好久,源代码中一直没找到,下面文章就解决了这个问题。当然文章中详细了讲述了很多细节的知识。原文地址 htt
hwmt2012
·
2014-02-19 10:00
Linux内核学习四库全书
LinuxKernel 四库全书1.Linux内核设计与实现 Edition2 2.
Linux设备驱动
Edition3 3.Linux内核源代码情景分
redouba
·
2014-02-18 21:00
linux
kernel
驱动开发
linux内核
USB 驱动程序
Linux设备驱动
程序学习(16)-USB驱动程序(一)http://linux.chinaunix.net/techdoc/install/2009/08/05/1128373.shtml
Linux设备驱动
程序学习
xiaozhuzhu1
·
2014-02-18 17:00
简单linux字符设备驱动程序与编程小技巧(上)
今天就来介绍一下linux的字符设备驱动程序:字符驱动应该是驱动学习的第一站了,在《
linux设备驱动
程序第三版》这本书的第三章介绍了一个简单的字符设备scull的程序设计,这一章很
jiebaoabcabc
·
2014-02-15 17:00
linux
小技巧
字符设备驱动
Linux设备驱动
之Ioctl控制
Linux设备驱动
之Ioctl控制大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。
jwc2436
·
2014-02-13 22:00
在驱动模块初始化函数中实现设备节点的自动创建
http://blog.csdn.net/zhenwenxian/article/details/5424434在驱动模块初始化函数中实现设备节点的自动创建 我们在刚开始写
Linux设备驱动
程序的时候,
xbl1986
·
2014-02-12 16:00
Linux经典书籍推荐
驱动 篇 《
LINUX设备驱动
程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比较多,基于2440
wxqian25
·
2014-02-12 09:00
Linpus Linux 安装QQ 2013详解
: 1)Longene Longene是一个自由、开源的操作系统项目,目的是要把Linux的内核扩充成一个既支持Linux应用、也支持Windows应用,既支持
Linux
爱罗
·
2014-02-09 19:00
linux
Linpus
上一页
24
25
26
27
28
29
30
31
下一页
按字母分类:
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
其他