最近在看LDD3,理解了一下,为了加深自己的印象,自己梳理一下。我用的CentOS release 6.6 (Final)系统。 一、编写编译内核模块的Makefile 以下是我用的Makefile Makefile要注意tab键和空格不能互相替换使用。这个Makfile其实会被调用2次,第一次这个 ...
分类:
其他好文 时间:
2016-04-11 18:48:32
阅读次数:
139
文章从上层应用访问字符设备驱动开始,一步步地深入分析Linux字符设备的软件层次、组成框架和交互、如何编写驱动、设备文件的创建和mdev原理,对Linux字符设备驱动有全面的讲解。本文整合之前发表的《Linux字符设备驱动剖析》和《 Linux 设备文件的创建和mdev》两篇文章,基于linux字符 ...
分类:
系统相关 时间:
2016-04-09 15:16:39
阅读次数:
195
字符设备驱动学习 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此,编译/安装一个驱动程序,其实质就是编译/安装一个内核模块。 一、编译安装字符设备驱动程序 memdev文件中:在这个文件里和真实的硬件无关,只是虚构了一个数组 该文件的Makefile文件中: 二、字符设备文件 ...
分类:
其他好文 时间:
2016-03-31 16:24:38
阅读次数:
242
文章从上层应用访问字符设备驱动开始,一步步地深入分析Linux字符设备的软件层次、组成框架和交互、如何编写驱动、设备文件的创建和mdev原理,对Linux字符设备驱动有全面的讲解。...
分类:
系统相关 时间:
2016-03-20 11:56:02
阅读次数:
282
编译/安装驱动程序 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此编译/安装一个驱动程序,其实就是编译/安装一个内核模块。 示例: make insmod memdev.ko 创建设备文件 应用程序->设备文件->驱动程序 通过字符设备文件,应用程序可以使用相应的字符设备驱动
分类:
其他好文 时间:
2016-03-06 20:57:22
阅读次数:
284
一、字符设备、字符设备驱动与用户空间访问该设备的程序三者之间的关系。 如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主、次设备号)以确定字符设备的唯一性。通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的ope
分类:
系统相关 时间:
2016-02-26 23:24:18
阅读次数:
376
首先是hello.c 文件: Hello.c: 接着是修改driver/char/Kconfig: 添加: 修改字符设备驱动里的Makefile: 打开Makefile: obj-$(CONFIG_HELLO_WORLD) += hello.o 进入配置界面: 选择Device driver:进入:
分类:
其他好文 时间:
2016-02-14 07:59:06
阅读次数:
276
字符驱动编程模型 上面就是内核的cdev的结构。他只有6个成员。有一些是内核自己回去用的,有一些是我们程序员要去用的。例如:count,表明设备有几个可以用。例如,我的开发板支持三个串口。所以count=3.还有设备号:查看设备文件: 我们从前面知道,我们是通过字符设备文件来访问我们的字符设备驱动的
分类:
其他好文 时间:
2016-02-14 00:28:18
阅读次数:
250
编译和安装驱动 下面是通过一个例子来学会使用驱动程序: 1---驱动程序: Memdev.c #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/cdev.h> #includ
分类:
其他好文 时间:
2016-02-14 00:23:20
阅读次数:
215
SRAM,SDRAM,网卡有地址总线。由cpu统一编址。 NAND flash没有地址总线。 因 此有这两者寻址方式不同。 字符设备驱动程序的框架。 驱动程序 1.有led.read,led.write,led.open 这些函数,2.定义了—个结构体fileoperation,这个结构体包括指向l
分类:
其他好文 时间:
2016-02-12 15:08:14
阅读次数:
134