通过介绍字符设备scull(Simple Character Utility for Loading Localities,区域装载的简单字符工具)的 驱动程序编写,来学习Linux设备驱动的基本知识。scull可以为真正的设备驱动程序提供样板。 1.scull设备 编写驱动程序的第一步,就是定义驱动程序为用户程序提供的能力(机制)。ldd3里用的设备是内存的一部分,可以做任何想做的事情。
原创 2022-11-15 16:36:52
213阅读
几个要点:1.我们应该很好地了解自己面对的具体设备(强调对硬件了解的重要性)。2.驱动程序的作用在于提供机制,而不是提供策略;进程间通信(信号,管道等)。
原创 2022-09-14 10:44:19
178阅读
linux 移植到新的体系结构时,开发者遇到的若干问题都与不正确的数据类型有关型,
原创 2022-09-14 21:38:01
121阅读
本章介绍了下面符号和头文件. struct file_operations 和 struct file 中的成员的列表这里不重复了.#include <linux/types.h>dev_t dev_t 是用来在内核里代表设备号的类型.int MAJOR(dev_t dev);int MINOR(dev_t dev);从设备编号中抽取主次编号的宏.
转载 2012-03-09 11:41:00
111阅读
2评论
随着技术的不断进步,系统拓扑接口越来越复杂,对智能电源管理、热插拔支持要求也越来越高,为适应这些需求,2.6内核提供了全新的内核设备模型。设备模型三元素:总线、设备、驱动。另:采用总线模型,极大的提高程序可移植性。 1.总线总线就是处理器与设备(包括SOC设备,比如SPI控制器)之间的通道,在设备模型中,所有的设备都通过总线相连,Linux的虚拟总线platform总线。在Linux设备模型中,总
原创 2022-11-15 16:48:59
156阅读
2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c
转载 2022-12-19 21:55:23
156阅读
编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scullv   一、scull
转载 2022-12-19 21:53:23
68阅读
scull设备是一个操作内存的字符设备,不是真正的设备,只是向内核注册为字符设备,并使用内存来存取数据。 当用户向其中写数据时,它就申请空闲内存来存放用户数据;当用户读取其数据时,便按顺序读取数据。 接下来两个结构贯穿整个驱动,理解它是很必要的。 struct scull_qset { void **data; struct scull_qset *next; }; struct
转载 精选 2010-09-21 09:17:27
1499阅读
*kmalloc(size_t size, int flags);size 参数
原创 2022-11-15 16:50:40
95阅读
内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/pipe.c examples/scull/ma
转载 2022-12-07 08:49:35
82阅读
ails/7407700 作者:刘昊昱  博客:http://blog.csdn.net/liuhaoyutz 编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/ access.c
转载 2022-12-09 13:50:08
131阅读
转载Ubuntu 10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c
转载 2022-12-15 20:43:55
186阅读
转载 2022-12-19 21:54:17
100阅读
Kernel debugging        [*]   Debug
原创 2022-11-15 16:35:34
106阅读
一个“中断”仅是一个信号,当硬件需要获得处理器对它的关注时,就可以发送这个信号。 Linux 处理中断的方式非常类似在用户空间处理信号的方式。大多数情况下,一个驱动只需要为它的设备的中断注册一个处理例程,并当中断到来时进行正确的处理。本质上来讲,中断处理例程和其他的代码并行运行。因此,它们不可避免地引起并发问题,并竞争数据结构和硬件。 透彻地理解并发控制技术对中断来讲非常重要。1.安装中
原创 2022-11-15 16:50:22
209阅读
163 作者:刘昊昱  博客:http://blog.csdn.net/liuhaoyutz 编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/misc-modules/sleep
转载 2022-12-07 06:43:35
46阅读
编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/pipe.c examples/scull/main.c 本文分析LDD3第6章的poll(轮询)操作。要理解驱动程序中poll函数的作用和实现,必须先理解用户空
转载 2019-10-23 19:57:00
111阅读
2评论
转核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scull/main.c本文分析LDD3第四章
转载 2022-12-15 20:46:18
96阅读
e/details/7452289 作者:刘昊昱  博客:http://blog.csdn.net/liuhaoyutz 编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/simple/   本文分析
转载 2022-12-19 21:52:23
96阅读
转es/scull/
转载 2022-12-19 21:53:39
99阅读
  • 1
  • 2
  • 3
  • 4
  • 5