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驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include#include#include#include#include#include#include#defineI2C_MAJOR365//主设备号#defineI2C_MINOR0//从设备号#defineI2C_COUNT1//设备数量MODULE_LICENSE("DualBSD/GPL");/*函数声明*/
wangluojisuan
·
2013-10-19 17:08
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include #include #include #include #include #include #include #defineI2C_MAJOR365//主设备号 #defineI2C_MINOR0//从设备号 #defineI2C_COUNT1//设备数量 MODULE_LICENSE("DualBSD/G
wangluojisuan
·
2013-10-19 17:04
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include#include#include#include#include#include#include#defineI2C_MAJOR365//主设备号#defineI2C_MINOR0//从设备号#defineI2C_COUNT1//设备数量MODULE_LICENSE("DualBSD/GPL");/*函数声明*/
wangluojisuan
·
2013-10-19 17:04
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include #include #include #include #include #include #include #defineI2C_MAJOR365//主设备号 #defineI2C_MINOR0//从设备号 #defineI2C_COUNT1//设备数量 MODULE_LICENSE("DualBSD/G
wangluojisuan
·
2013-10-19 17:55
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include#include#include#include#include#include#include#defineI2C_MAJOR365//主设备号#defineI2C_MINOR0//从设备号#defineI2C_COUNT1//设备数量MODULE_LICENSE("DualBSD/GPL");/*函数声明*/
wangluojisuan
·
2013-10-19 17:55
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include #include #include #include #include #include #include #defineI2C_MAJOR365//主设备号 #defineI2C_MINOR0//从设备号 #defineI2C_COUNT1//设备数量 MODULE_LICENSE("DualBSD/G
wangluojisuan
·
2013-10-19 17:50
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include#include#include#include#include#include#include#defineI2C_MAJOR365//主设备号#defineI2C_MINOR0//从设备号#defineI2C_COUNT1//设备数量MODULE_LICENSE("DualBSD/GPL");/*函数声明*/
wangluojisuan
·
2013-10-19 17:50
linux
include
cccccc
Linux驱动编程
--基于I2C子系统的I2C驱动
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正#include #include #include #include #include #include #include #defineI2C_MAJOR365//主设备号 #defineI2C_MINOR0//从设备号 #defineI2C_COUNT1//设备数量 MODULE_LICENSE("DualBSD/G
尤鱼
·
2013-10-19 17:00
Ubuntu 12.04 LTS建立内核树(1)
最近开始学习
linux驱动编程
,看的资料是经典的《linux设备驱动开发第3版》。 开始驱动练习的前提条件是需要自己的内核树。
蛋清蛋黄
·
2013-09-16 22:00
内核定时器编程
在
LINUX驱动编程
中,可以利用Linux内核中提供的一组函数和数据结构来完成定时触发工作或完成某周期性的事务。time_list结构体的一个实例对应一个定时器。
buaa_shang
·
2013-06-16 13:00
C++学习总结1
学习C++之前,都是使用c或者汇编对硬件或者
linux驱动编程
,几乎没怎么使用过C++。因为一直C语言,对C语言的使用语法和规则有一定的了解。而C++则没有系统的学习过。
lujingbiao
·
2013-03-31 11:00
LINUX驱动编程
之LED驱动
/*gpio_drv.c*/ #include #include #include #include #include/*printk()*/ #include/*kmalloc()*/ #include/*everything...*/ #include/*errorcodes*/ #include/*size_t*/ #include #include #include #include #
heqiuya
·
2013-01-14 08:00
fsck命令修复受损文件系统
由于做
linux驱动编程
时经常造成系统死机重启,所以在经历了无数次死机之后,机器终于”罢工"了,当我再次重启时,出现了这样的问题:***ANerroroccurredduringthefilesystemcheck
H_armony
·
2012-07-15 21:00
linux
shell
centos
File
System
磁盘
对
linux驱动编程
中的“信号量”和“自旋锁”的一些理解
1.如果一个非抢占的单处理器系统进入一个锁上的自旋,它将永远自旋;没有其他的线程再能够获得CPU来释放这个锁.因此,自旋锁在没有打开抢占的单处理器系统上的操作被优化为什么不作;2.持有所的代码(临界代码),必须原子性的,即它不能睡眠,否则系统可能完全死锁。3.持有自旋锁时禁止中断4.不管是信号量还是自旋锁,都不允许第2次请求锁(在临界代码中调用另外一个函数,而这个函数也请求同一个锁) 自旋锁API
duanlove
·
2012-04-26 14:00
嵌入式开发网站
分类:
linux驱动编程
2010-11-1220:071086人阅读评论(1)收藏举报嵌入式开发网站集锦!国内站点:电子设计信息网,尽管是个业界新秀,但潜力无量!这里能带给你无限精彩和希望!
wulong117
·
2012-03-27 11:00
linux驱动编程
Linux驱动编程
step-by-step (十)
终于可以清闲下来打理一下我的blog了,台资企业真的事情很多很烦……前几篇文章对字符设备有个简单介绍,并以简单的一个字符设备驱动作结尾,其实linux上大部分驱动程序都是字符设备程序,Linux源码中也可以看到很多的字符设备驱动,所以供学习的代码还是很多的。这一节本想说一下如何测试设备驱动,但是因为最近看了看内核链表,所以趁还记的比较清楚赶紧记录下来。有不到位的地方烦请指正。Linux内核链表(1
jshazk1989
·
2012-03-15 13:00
Linux驱动编程
step-by-step (九)
字符设备模拟pipe的驱动程序让我们用一个”pipe“的设备驱动去结束简单字符设备吧(这里所说的pipe并非标准的pipe只是模拟了一个从一端写入从另一端写入的设备)测试代码1 测试代码2设计思路用一个图来说明(可是画了很久哟)简单说来就是一个进程写入缓冲区,另一个进程可以读出,读出后原buffer中的数据被置为无效值,自定义一个结构#defineMAX_SIMPLE_LEN1024//bu
jshazk1989
·
2011-11-29 23:00
编程
linux
struct
user
Semaphore
buffer
Linux驱动编程
step-by-step (八)
阻塞型字符设备驱动前面说到了如何实现readwrite等操作,但如果设备缓冲已满,现在想而用户此时又想写入设备,此请求就无法立即执行,那怎么办呢?第一种情况是:驱动程序想用户返回请求失败的信息。第二种情况是:使调用进程阻塞等待设备可以被操作。而用户更希望自己选择在请求无法满足时候如何操作,所以在用户空间有了O_NONBLOCK标志在打开设备的时候如果用户指定了此标志(会保存到filp->f_fla
jshazk1989
·
2011-11-24 00:18
C/C++
Linux
linux
编程
struct
up
null
table
Linux驱动编程
step-by-step (八)
阻塞型字符设备驱动前面说到了如何实现readwrite等操作,但如果设备缓冲已满,现在想而用户此时又想写入设备,此请求就无法立即执行,那怎么办呢?第一种情况是:驱动程序想用户返回请求失败的信息。第二种情况是:使调用进程阻塞等待设备可以被操作。而用户更希望自己选择在请求无法满足时候如何操作,所以在用户空间有了O_NONBLOCK标志在打开设备的时候如果用户指定了此标志(会保存到filp->f_fla
jshazk1989
·
2011-11-24 00:00
LINUX驱动编程
第三次看了LDD3了(虽然现在已经是kernel3.0但从这本书商还是能学到很多)每次都有一些收获现在终于能够些一些代码了驱动程序的作用:简单来说驱动程序就是使计算机与设备通信的特殊的代码,在作单片机时候(无OS)我们自己定义接口及自定义的结构来操作相关硬件,而在有OS的模式下我们操作的硬件是去实现对应的接口(这些接口是已定义好的,我们需要实现这些接口)而无需自己定义接口,这样既能正确的控制设备
zjt289198457
·
2011-11-21 22:00
linux
struct
File
Semaphore
Module
user
Linux驱动编程
step-by-step (七)
并发竞态(信号量与自旋锁)代码传至并发竞态控制并发进程导致竞态的一个例子前面所述的字符驱动都是没有考虑并发竟态的情况,想象一下一个进程去读一个字符设备,另一个进程在同一时间向这个设备写入(完全有这种情况)原来设备中存有ABCD要想设备写入1234每次读写一个字节t1t2t3t4t5t6t7t8RWWRWRRWA12233D4R:readW:write所以最后读出了A23D不是原来的ABCD而如果两
jshazk1989
·
2011-11-17 00:00
编程
linux
struct
Semaphore
任务
Signal
linux驱动编程
实践之LED驱动
开发板:TQ2440内核:2.6.30.4-EmbedSky实现目标:控制led开关,并当前读取状态-------驱动实现 mini2440_leds.c-------#include #include #include #include #include #include #include #include #include #include #include #inclu
wyz365889
·
2011-11-16 12:00
Linux驱动编程
step-by-step (六)
说点上节没有讲完的话题用户地址检测简单模块调试以及一些杂项检测用户空间地址的有效性上一节中提到在readwrite时候要检测用户空间传递的参数地址是否是有效地址,有的内核函数会自行检测,但是在调用轻量级的内核函数时候,就可能不去检测用户空间的地址是否有效,如果此时用户无传递一个无效地址,而内核函数去操作了它,这时棘手的问题出现了,轻则内核oops关机重启就OK了,在特别严重的情况下,可能你的系统就
jshazk1989
·
2011-11-13 00:00
编程
linux
struct
user
Access
structure
Linux驱动编程
step-by-step (五)
主要的文件操作方法实现文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作structfile_operations{ ... loff_t(*llseek)(structfile*,loff_t,int); ssize_t(*read)(structfile*,char__user*,size_t,loff_t*); ssize_t(*write)(
jshazk1989
·
2011-11-11 00:00
编程
linux
struct
File
Semaphore
user
Linux驱动编程
step-by-step (四)
似乎每一章介绍的内容比较少,但学习是一个循序渐进的过程,不在于一天学多少,重要的一天能真正的学懂多少,所以我主张一步一步来,从多个渠道去学习知识,实现互补。本节测试代码传到此处了:char_step1大家可以下载测试一下。字符设备的注册与设备节点的自动创建cdev结构内核内部使用structcdev来表示一个字符设备struct cdev { struct kobject kobj; //k
jshazk1989
·
2011-11-05 23:00
编程
linux
struct
Module
null
Class
Linux驱动编程
step-by-step (三)
字符设备中重要的数据结构大部分字符驱动设计三个重要的数据结构struct file_operationsstruct filestruct inode 一、文件操作 在之前的一篇文章中已经有介绍了如何去生情字符设备设备号,但是没有做任何的工作,也就只能写一个不能工作的字符设备;structfile_operations结构域用来连接设备与操作,实现系统调用。重要字段介绍:struct f
jshazk1989
·
2011-11-05 16:00
数据结构
编程
linux
struct
File
linux内核
Linux驱动编程
step-by-step (二)
简单字符设备驱动1、主次设备号主设备号标识设备连接的的驱动,此设备号由内核使用,标识在相应驱动下得对应的设备在linux中设备号是一个32位的dev_t类型typedef __u32 __kernel_dev_t;typedef __kernel_dev_t dev_t;crw------- 1root root 10, 1Apr 11 2011psaux crw------- 1
jshazk1989
·
2011-10-30 16:00
编程
linux
Module
存储
Linux驱动编程
step-by-step (一)
第三次看了LDD3了(虽然现在已经是kernel3.0但从这本书上还是能学到很多)每次都有一些收获现在终于能够写一些代码了驱动程序的作用:简单来说驱动程序就是使计算机与设备通信的特殊的代码,在作单片机时候(无OS)我们自己定义接口及自定义的结构来操作相关硬件,而在有OS的模式下我们操作的硬件是去实现对应的接口(这些接口是已定义好的,我们需要实现这些接口)而无需自己定义接口,这样既能正确的控制设备。
jshazk1989
·
2011-10-26 23:00
编程
linux
网络
Module
makefile
编译了一把linux内核
想学习
linux驱动编程
,LDD3说最好自己编内核建立起编译环境,所以编译了一把linux内核,但是内核编出来后,这个内核启动不起来,大概是因为内核的配置没搞好吧。
ustcxiangchun
·
2011-05-20 11:00
ext
System
deprecated
networking
debugging
linux内核
上一页
1
2
下一页
按字母分类:
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
其他