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
ldd3
LDD3
读书笔记----分配内存
1. kmalloc的真实故事kmalloc分配引擎是一个有力的工具并且容易学习因为它对malloc的相似性.这个函数快(除非它阻塞)并且不清零它获得的内存;分配的区仍然持有它原来的内容.分配的区也是在物理内存中连续.kmalloc原型是:#include void*kmalloc(size_tsize,intflags); 给kmalloc的第一个参数是要分配的块的大小.第2个参数,分配标志
wuye110
·
2013-02-21 13:00
linux内核开发--
LDD3
scull错误集合,内核版本迁移清单 .
分类:linux内核源码学习笔记2012-02-0814:54487人阅读评论(0)收藏举报由于linux内核版本的升级,往往会让能在老版本内核上编译通过的驱动程序移植到新版本内核中出现各种编译和链接错误,这里就将我遇到的一些问题做个整理,让后续开发更流畅^_^!当前内核版本为3.2.41.make[1]:Enteringdirectory`/usr/src/linux-***' scripts
linuxarmsummary
·
2013-02-21 11:00
linux内核源码学习笔记
LDD3
读书笔记-----并发和竞争情况
在现代Linux系统,有非常多的并发源,并且因此而来的可能竞争情况.多个用户空间进程在运行,它们可能以令人惊讶的方式组合存取你的代码.SMP系统能够同时在不同处理器上执行你的代码.内核代码是可抢占的;你的驱动代码可能在任何时间失去处理器,代替它的进程可能也在你的驱动中运行.设备中断是能够导致你的代码并发执行的异步事件.内核也提供各种延迟代码执行的机制,例如workqueue,tasklet,以及定
wuye110
·
2013-02-20 10:00
LDD3
读书笔记--字符驱动
字符设备通过文件系统中的名子来存取.那些名子称为文件系统的特殊文件,或者设备文件,或者文件系统的简单结点;惯例上它们位于/dev目录.传统上,主编号标识设备相连的驱动,次编号被内核用来决定引用哪个设备。现代Linux内核允许多个驱动共享主编号,但是你看到的大部分设备仍然按照一个主编号一个驱动的原则来组织.依据你的驱动是如何编写的,你可以从内核得到一个你的设备的直接指针,或者可以自己使
wuye110
·
2013-02-20 09:00
LDD3
读书笔记--建立和运行模块
1.HelloWorld模块#include #include MODULE_LICENSE("DualBSD/GPL"); staticinthello_init(void) { printk(KERN_ALERT"Hello,world\n"); return0; } staticvoidhello_exit(void) { printk(KERN_ALERT"Go
wuye110
·
2013-02-19 09:00
LDD3
读书笔记---设备驱动简介
1.1 驱动程序的角色你也可以从不同的角度看你的驱动:它是一个存在于应用程序和实际设备间的软件层.机制和策略的区分是其中一个在Unix设计背后的最好观念.大部分的编程问题其实可以划分为2部分:"提供什么能力"(机制)和"如何使用这些能力"(策略).在编写驱动时,程序员应当特别注意这个基础的概念:编写内核代码来存取硬件,但是不能强加特别的策略给用户,因为不同的用户有不同的需求.驱动应当做到使硬件可用
wuye110
·
2013-02-18 16:00
LDD3
scull例子感觉不错的代码
staticstructscull_adev_info{ char*name; structscull_dev*sculldev; structfile_operations*fops; }scull_access_devs[]={ {"scullsingle",&scull_s_device,&scull_sngl_fops}, {"sculluid",&scull_u_device,&scul
高杰-Joy
·
2013-01-27 00:00
scull
scull_adev_info
Hi,I‘m here
从此以后咱就在这里安家了,趁着放假,买了两本书在家好好钻研钻研...Unix环境高级编程(第二版)Linux设备驱动程序(第三版)-》传说中的
LDD3
先签个到,安看书去了...对了,这里有我重装系统的时候留下的一个日志
ganmx
·
2013-01-25 10:37
linux
ubuntu
嵌入式
环境搭建
LDD3
学习笔记设备模型之底层实现(kobject,kset) 收藏
写在前面的一些话:
LDD3
使用的内核版本是2.6.11,很多数据结构随着内核版本的改变也发生了变化。我是依据自己系统的内核版本来学习的。
ricks_wu
·
2012-12-08 22:00
LDD3
学习笔记(一) --hello world模块
一、设置系统。我的系统环境:系统:fedora12内核:2.6.32.12-115.fc12.i686把kernel-headers kernel-devel装上。kernel-headers-2.6.32.12-115.fc12.i686 kernel-devel-2.6.32.12-115.fc12.i686说明:书上说构建一个内核源代码树,我不明白到底是什么意思。我把kernel-head
ricks_wu
·
2012-12-08 22:00
scull 在2.6.32-5内核中的编译解决方案
LDD3
作为从事驱动开发工作人员的必要参考资料,认真研究书中的附带源码具有很高的参考价值,但由于代码基于2.6.10内核,部分内核API较老,导致在2.6.32-5等较新内核上编译不能通过,由于工作需要
ricks_wu
·
2012-12-05 17:00
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
p=615#comment-1069看后感想:這点比
ldd3
上讲的都仔细2012年11月29日11:24:17:有BUG_ON就不用反汇编了。。。2012年11月30日11:
kangear
·
2012-11-23 16:00
中断处理
http://blog.csdn.net/liuhaoyutz编译环境:Ubuntu10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/short/ 本分析
LDD3
tynew
·
2012-11-23 10:00
scull在Ubuntu11.10上的编译
写在前面的话在学习Linux设备驱动程序过程中,
ldd3
是必不可少的一本书,那么在书中,我们会看到书中的一个设备驱动程序----scull。
·
2012-11-21 15:00
ubuntu
linux驱动架构体会
刚开始学习
ldd3
时,驱动架构以为是围绕这device,device_driver,bus,等等建立起来的。确实是这样,通过这样在内核建立了一个驱动框架去管理它们。
f22jay
·
2012-11-20 16:00
linux内核
编译模块--Makefile
编译模块--Makefile分类:
ldd3
笔记2008-12-2310:442606人阅读评论(0)收藏举报1.最基本的一个Makefile文件:#hello.o为你需要编译的源代码,若有多个源代码应使用方法二的方式
gangyanliang
·
2012-11-19 16:00
linux内核
ldd3笔记
ldd3笔记
LDD3
《Linux设备驱动》中的最简单的字符设备驱动实现与测试
源代码如下:#include #include #include #include #include #include #include #include #include //#include"scull.h" #defineSCULL_MAJOR0/*dynamicmajorbydefault*/ #defineSCULL_NR_DEVS4/*scull0throughscull3*/
bg2bkk
·
2012-11-18 16:00
kernel module编程(九):通过用户程序的strace检查内核模块调用情况
本文也即《LinuxDeviceDrivers》,
LDD3
的第四章DebugingTechniques的读书笔记之四,但我们不限于此内容。由于最近比较忙,赶文档,这么多天没看两页纸。
flowingflying
·
2012-11-15 21:00
编程
Module
File
System
buffer
Descriptor
Linux 设备模型浅析之 uevent 篇
Linux设备模型,仅仅看理论介绍,比如
LDD3
的第十四章,会感觉太抽象不易理解,而通过阅读内核代码就更具体更易理解,所以结合理论介
Tommy_wxie
·
2012-11-15 13:00
LINUX内核模块编译步骤
个人用的Linux版本为:Debian GNU/Linux,内核版本为:2.6.20-1-686.第一步,下载Linux内核的源代码,即构建
LDD3
(L
larryliuqing
·
2012-11-02 12:00
Linux设备模型学习参考方法
看
LDD3
中设备模型一章,觉得思维有些混乱。这里从整体的角度来理理思路。
dragon101788
·
2012-10-31 22:00
ldd3
中的lddbus修改
ldd3
的example是基于2.6.10内核写的,在新的2.6.3x上编译不过。
fanrey
·
2012-10-19 17:00
ldd
学习ldd3--llseek(第六章)
作者:张伟AreS/*******************************************************************************/参考刘昊昱博客分析
LDD3
azrael_ares
·
2012-10-14 10:52
嵌入式
对于驱动调试有用的两个小工具(devmem2、devkmem)具体工具见邮件附件(20121007)
后来我自己找了以下相关的资料,发现正好是我当年没有继续学习的《
LDD3
》的《第十五章内存映射和DMA》是知识,惭愧惭愧阿~~~~~ 后来我开始学习了一下《
LDD3
》的《第
linxi_hnh
·
2012-10-07 18:00
linux
IO
Google
测试
工具
makefile
LDD3
读书笔记(第17章 PCI设备驱动程序)
#include 这个头文件包含PCI寄存器的符号名称,以及若干厂商和设备ID值。structpci_dev; 代表内核中PCI设备的结构体。structpci_driver; 代表PCI驱动程序的结构体。所有的PCI驱动程序必须定义该结构体。structpci_device_id; 描述该驱动程序所支持的PCI设备类型的结构体。intpci_register_driver(str
hot_zcy2012
·
2012-09-14 18:00
struct
null
读书
Class
byte
linux内核
LDD3
读书笔记(第16章 USB驱动程序)
本节总结本章中介绍的符号:#include 和USB相关的所有内容所在的头文件。所有的USB设备驱动程序都必须包括该文件。structusb_driver 描述USB驱动程序的结构体。structusb_device_id 描述该驱动程序支持的USB设备类型的结构体。intusb_register(structusb_driver*d);voidusb_deregister(struc
hot_zcy2012
·
2012-09-14 18:00
struct
kill
读书
Class
buffer
interface
LDD3
读书笔记(第15章 Linux设备模型)
kobject#include 包含文件中包含了对kobject的定义,以及相关的结构和函数。voidkobject_init(structkobject*kobj);intkobject_set_name(structkobject*kobj,constchar*format,...); kobject的初始化函数。structkobject*kobject_get(structkobj
hot_zcy2012
·
2012-09-14 18:00
LDD3
读书笔记(第14章 tty设备驱动)
本节提供了一些本章所讲述概念的参考介绍。它还介绍了tty驱动程序所需要的各个头文件的作用。当tty_driver和tty_device结构中的每一个成员,这里就不再重复了。#include 包含tty_driver结构定义,以及在该结构中一些不同标志位的声明。#include 该头文件包含了tty_struct结构的定义以及许多不同的宏定义,使得对termios结构各成员值的访问更简单。它
hot_zcy2012
·
2012-09-13 22:00
LDD3
读书笔记(第13章 网络设备驱动)
这个小节给出了本章介绍过的概念的快速参考,同时解释了驱动程序应该包含的每个头文件。但是net_device和sk_buff结构的成员不会在这里重复。#include 这个头文件保存有net_device和net_device_stats结构的定义,并包含了网络驱动程序需要的其他几个头文件。structnet_device*alloc_netdev(intsizeof_priv,char*nam
hot_zcy2012
·
2012-09-13 22:00
LDD3
读书笔记(第12章 块设备驱动程序)
#includeintregister_blkdev(unsignedintmajor,counstchar*name);intunregister_blkdev(unsignedintmajor,constchar*name); register_blkdev用来向内核注册一个块设备驱动程序,还可以获得主设备号。一个驱动程序可以使用unregister_blkdev函数注销。structbl
hot_zcy2012
·
2012-09-12 22:00
关于驱动开发中mmap函数的实现
在编写设备驱动程序的时候,如果要想把设备内存映射到用户空间,那需要我们实现mmap,通过看
ldd3
上面的介绍,对实现mmap有了一点了解.
laoyouji
·
2012-09-11 23:00
linux
struct
平台
LDD3
读书笔记(第10章 内核数据类型)
#includetypedefu8;typedefu16;typedefu32;typedefu64; 确保是8、16、32和64位的无符号整数值类型。对应的有符号类型同样存在。在用户空间,读者可以使用__u8和__u16等类型。#includePAGE_SIZEPAGE_SHIFT 定义了当前体系结构的每页字节数和页偏移位数(4KB页为12,8KB页为13)的符号。#include__L
hot_zcy2012
·
2012-09-11 21:00
LDD3
读书笔记(第9章 与硬件通信)
#includevoidbarrier(void) 这个“软件”内存屏障要求编译器考虑执行到该指令时所有的内存易变性。#includevoidrmb(void);voidread_barrier_depends(void);voidwmb(void);voidmb(void); 硬件内存屏障。要求CPU(和编译器)执行该指令时检查所有必需的内存读、写(或二者兼有)已经执行完毕。#inclu
hot_zcy2012
·
2012-09-11 21:00
LDD3
读书笔记(第8章 时间、延迟及延缓操作)
计时#includeHZ HZ符号指出每秒钟产生的时钟滴答数。#includevolatileunsignedlongjiffiesu64jiffies_64 jiffies_64变量会在每个时钟滴答递增,也就是说,它会在每秒递增HZ次。内核代码大部分情况下使用jiffies,在64位平台上,它和jiffies_64是一样的,而在32位平台上,jiffies是jiffies_64的低32位
hot_zcy2012
·
2012-09-11 21:00
LDD3
读书笔记(第7章 中断处理)
顶半部中断处理#includeintrequest_irq(unsignedintirq,irqreturn_t(*handler)(),unsignedlongflags,constchar*dev_name,void*dev_id);voidfree_irq(unsignedintirq,void*dev_id); 上面这些调用用来注册和注销中断处理例程。typedefirqreturn
hot_zcy2012
·
2012-09-11 00:00
timer
struct
null
读书
Random
action
LDD3
读书笔记(第6章 内存映射和DMA)
1、介绍性材料#include#include和内存管理相关的大部分函数和结构,原型和定义在这些头文件.void*__va(unsignedlongphysaddr);unsignedlong__pa(void*kaddr);在内核逻辑地址和物理地址之间转换的宏定义.PAGE_SIZEPAGE_SHIFT常量,给出底层硬件的页的大小(字节)和一个页面号必须被移位来转变为一个物理地址的位数.stru
hot_zcy2012
·
2012-09-10 22:00
list
struct
user
读书
buffer
Allocation
LDD3
读书笔记(第5章 内存分配)
#includevoid*kmalloc(size_tsize,intflags);内存分配函数后备高速缓存#includekmem_cache_t*kmem_cache_create(constchar*name,size_tsize,size_toffset,unsignedlongflags, void(*constructor)(
hot_zcy2012
·
2012-09-09 20:00
LDD3
之scull--从open系统调用到模块的scull_open执行流程分析
本帖的主要内容提供一个从系统调用open到内核中该文件实际的open方法的调用流程分析,基本上列出来从open系统调用到scull_open过程中调用的函数。在这个过程中很多调用以及函数实现的细节还并不是很清楚。希望在随后的研究过程中,以及和别人的交流中,把这个调用流程丰富起来。intopen(constchar*pathname,intflags,mode_tmode);--系统调用
Alan0521
·
2012-09-08 01:00
function
struct
user
File
initialization
Linux设备驱动程序学习(16)-USB 驱动程序(一)
很久没有写《
LDD3
》的学习笔记了,趁着做项目的机会,学习一下USB的驱动程序,并写学习笔记。。如果刚开始接触USB,会感觉无从下手,这种感觉就像我第一次接触嵌入式Linux一样。
gujing001
·
2012-09-07 15:00
数据结构
编程
linux
api
嵌入式
linux内核
LDD3
读书笔记(第11章 高级字符驱动程序操作)
本章的目的是让读者知道:1.内核与用户空间同步2.如何使进程休眠(并唤醒)3.如何实现非阻塞I/O4.设备可读取或写入时如何通知用户空间#include 这个头文件声明了用于定义ioctl命令的所有的宏。它现在包含在中。_IOC_NRBITS_IOC_TYPEBITS_IOC_SIZEBITS_IOC_DIRBITS ioctl命令的不同位字段的可用位数。还有四个宏定义了不同的MASK(掩
hot_zcy2012
·
2012-09-06 22:00
LDD3
读书笔记(第4章 并发与竞态)
#include //定义信号量和其上操作的包含文件. 信号量的定义和初始化(1)静态定义及初始化DECLARE_MUTEX(name);DECLARE_MUTEX_LOCKED(name); (2)动态定义及初始化structsemaphoresemvoidinit_MUTEX(structsemaphore*sem);voidinit_MUTEX_LOCKED(structsemapho
hot_zcy2012
·
2012-09-06 20:00
LDD3
读书笔记(第3章 字符驱动)
#includedev_tdev_t是用来在内核里代表设备号的类型.intMAJOR(dev_tdev);intMINOR(dev_tdev);从设备编号中抽取主次编号的宏.dev_tMKDEV(unsignedintmajor,unsignedintminor);从主次编号来建立dev_t数据项的宏定义.#include"文件系统"头文件是编写设备驱动需要的头文件.许多重要的函数和数据结构在此定
hot_zcy2012
·
2012-09-06 20:00
LDD3
读书笔记(第2章 建立和运行模块)
一、内核符号表 内核符号表是linux内核提供给内核代码的一部分引用,所指的“内核代码”包括内核以及驱动程序等运行在内核内存空间的程序,“引用”包括对变量的引用,对函数的引用等。最常见的内核符号引用如printk打印输出。通常内核符号是由一部分内核代码提供给其他内核代码访问其内部数据的接口。在驱动程序中,如果该驱动程序中有被其他内核代码调用的部分,可以用EXPORT_SYMBOL导出到内核符
hot_zcy2012
·
2012-09-06 20:00
Linux设备模型浅析之uevent篇文字版
Linux设备模型,仅仅看理论介绍,比如
LDD3
的第十四章,会感觉太抽象不易理解,而通过阅读内核代码就更具体更易理解,所以结合理论介
bingqingsuimeng
·
2012-09-06 11:00
linux
function
struct
filter
Class
action
LDD3
代码: hello world
Makefile:#如果已定义KERNELRELEASE,则说明是从内核构造系统调用的 #因此可利用其内建语句 ifneq($(KERNELRELEASE),) obj-m:=hello.o #否则,是直接从命令行调用的, #这时,要从内核构造文件系统。 else KERNELDIR?=/home/linux/Desktop/samba/linux-2.6.30.4 P
xiangpingli
·
2012-08-27 22:00
shell
测试
Module
File
makefile
Ldd3
学习笔记2 — simple
翻
ldd3
书看得云里雾里的,幸好有源码,可以找到源码,编译一下,自己动手学习
ldd3
到底讲了些什么知识。
fangchongbory
·
2012-08-26 01:00
function
Module
each
makefile
initialization
linux内核
Ldd3
学习笔记1 — 环境搭建
1、
ldd3
源代码下载 Linux设备驱动程序3官方地址:http:www.oreilly.com,源代码下载地址:http://www.oreilly.com.cn/codeexample
fangchongbory
·
2012-08-25 23:00
linux
ubuntu
search
linux内核
LDD3
源码分析之内存映射
http://blog.csdn.net/liuhaoyutz编译环境:Ubuntu10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/simple/ 本文分析
LDD3
ldinvicible
·
2012-08-19 09:00
LDD3
源码分析之与硬件通信&中断处理
http://blog.csdn.net/liuhaoyutz编译环境:Ubuntu10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/short/ 本分析
LDD3
ldinvicible
·
2012-08-18 08:00
struct
File
null
buffer
parallel
Warnings
LDD3
源码分析之vmalloc
blog.csdn.net/liuhaoyutz编译环境:Ubuntu10.10内核版本:2.6.32-38-generic-paeLDD3源码路径:examples/scullv 一、scullv编译本文分析
LDD3
ldinvicible
·
2012-08-17 09:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他