看 linux 设备驱动开发详解时,字符设备驱动一章,注册globalmem驱动时,出现如下错误:# insmod globalmem.koinsmod: can't insert 'globalmem.ko': Device or resource busy原因:模块使用的是静态分配设备号的方式,...
分类:
系统相关 时间:
2015-04-28 17:59:44
阅读次数:
683
驱动LED灯
首先加入头文件#include
#include
#include
#include
#include
#include
#include
#include <asm/io....
分类:
其他好文 时间:
2015-04-22 09:40:18
阅读次数:
259
1 ioctl介绍:
用户空间ioctl :int ioctl(int fd,unsinged long cmd,...)
fd-文件描述符
cmd-对设备的发出的控制命令
...表示这是一个可选的参数,存在与否依赖于cmd,如cmd为修改波特率,那么....就表示波特率的值。如果cmd表示关闭,则不需要参数
成功返回0,错误返回-1。
内核空间:我用的是...
分类:
其他好文 时间:
2015-04-21 16:12:10
阅读次数:
206
Linux操作系统将所有的设备都看成文件,以操作文件的方式访问设备,应用程序不能直接操作硬件,而是使用统一的接口函数调用硬件驱动程序。这组接口被称为系统调用。如open,read.对于每一个系统调用,驱动程序中都有一个与之对应的函数,对于字符设备驱动程序,这些函数调用都集合在一个file_operation类型的数据结构中。当应用程序使用open函数打开某个设备时,设备驱动程序的file_opera...
分类:
其他好文 时间:
2015-04-21 09:48:30
阅读次数:
162
之前接触到的字符设备驱动是非常单纯的Linux字符设备驱动,他不具备工程中Linux驱动中的设备与驱动分离思想和设备驱动的分层思想,不具备“总线-设备-驱动”模型的概念。接下来通过分析platform设备驱动模型的搭建过程来看看Linux的设备驱动模型究竟是怎样的?
platform驱动模型搭建:
(1)platform核心层:为设备层和驱动层提供注册接口、为设备层和驱动层的匹配提供标准
①...
分类:
其他好文 时间:
2015-04-20 18:28:32
阅读次数:
151
linux驱动分为字符设备、块设备驱动、网络驱动三种,其中以字符驱动最为简单。说起要写驱动自然想到从字符设备驱动写起。看了开发板官方的驱动代码,写的不错,至少不是那种实习生能写出来的水平。但对新手来说要看懂,实在不容易。其中包含了很多知识和设计思想。所以我想还是尽可能从易到难来写这个系列,相信我,我会努力把我知道的都给大家讲清楚。...
分类:
其他好文 时间:
2015-04-16 19:52:27
阅读次数:
179
一.编译安装字符设备驱动模块1.要有Makefileobj-m := memdev.oKDIR := /ok6410/linux-3.10all: make -C $(KDIR)M=(PWD) modules CROSS_COMPILE=arm-linux- ARCH=armclean: rm -f...
分类:
其他好文 时间:
2015-04-15 17:01:48
阅读次数:
153
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一...
分类:
系统相关 时间:
2015-04-15 09:28:39
阅读次数:
273
在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。 下...
分类:
系统相关 时间:
2015-04-12 16:19:35
阅读次数:
209
1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode{struct hlist_node i_hash;struct list_h...
分类:
其他好文 时间:
2015-04-07 23:22:51
阅读次数:
222