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驱动(二十、
linux设备驱动
中的并发控制)
本文参考自宋宝华老师的《linux驱动开发详解》并发(Concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(RaceConditions)只要并发的多个执行单元存在对共享资源的访问,竞态就可能发生。1.对称多处理器(SMP)的多个CPUSMP是一种紧耦合、共享存储的系统模型,,它的特点是多个CPU使用
to_run_away
·
2020-07-14 16:07
从零开始系列
从零开始学linux驱动
Linux设备驱动
程序学习(十六)——Linux设备树解析
设备树简介 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data绝大多数纯属垃圾冗余代码。为了解决这一问题,ARM内核版本3.x之后引入了原先在PowerP
Alex-wu
·
2020-07-14 07:58
Linux设备驱动程序
Linux设备驱动程序
Linux设备驱动
---获知当前时间(高于jiffies精度)
内核一般通过jiffies值来获取当前时间。尽管该数值表示的是自上次系统启动到当前的时间间隔,但因为驱动程序的生命期只限于系统的运行期(uptime),所以也是可行的。驱动程序利用jiffies的当前值来计算不同事件间的时间间隔。硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tickrate),每一个周期称作一个tick(节拍)。Linux内核从2.5
all8023
·
2020-07-14 07:11
Linux
关于自旋锁spinlock的一些理解
在《LINUX内核设计与实现》《
LINUX设备驱动
程序》里都提过,在非抢占式的单处理器系统上的自旋锁被优化为不做任何事情。
老猪jim
·
2020-07-14 00:44
Linux内核比较出名的四本书
windows下阅读Linux内核源代码:阅读代码一般用sourceinsight3.到百度可以搜索到,序列号到百度也可以搜索到Linux内核比较出名的四本书为:深入理解Linux内核(ulk3),情景分析,
Linux
xingwang_ye
·
2020-07-13 22:16
Linux设备驱动
--------platform虚拟总线
一、platform总线引入的目的自内核2.6版本开始,需要关注的是总线、设备和驱动这3个实体,总线将设备和驱动绑定。在Linux内核系统中注册一个设备的时候,会寻找与之对应驱动进行匹配;相反地,系统中注册一个驱动的时候,会去寻找一个对应的设备进行匹配。匹配的的工作由总线来完成。将设备和驱动独立开,驱动尽可能写的通用,当来了一个类似的设备1后也可以使用这个驱动,让驱动程序可以重用。这体现了Linu
xiedapang_pang
·
2020-07-13 22:06
ifconfig相关
参考资料:《
Linux设备驱动
程序第三版》,scull源码,Linux内核源码来源:http://blog.csdn.net/rose
丶不断追寻
·
2020-07-13 21:08
linux
ifconfig
linux
kernel
源码
Linux设备驱动
(三)—— 块设备驱动
块设备驱动在前一章,我们具体的介绍了简单字符设备驱动的编写,在具体的工程中,需要考虑的比我们写的复杂得多,还要考虑电源管理,以及定时器的一些东西。这一章,我们会介绍linux三种设备驱动中的块设备驱动。块设备与字符设备有很大的不同。字符设备与块设备I/O操作的不同如下:1)块设备只能以块为单位接受输入和返回输出,而字符设备则是以字节为单位;大多数的设备是字符设备,因为他们不需要缓冲而且不易固定块大
Thanos Yan
·
2020-07-13 12:52
linux设备驱动
Linux设备驱动
(五)—— 中断机制
Linux设备驱动
(五)——中断机制一、基础概念什么是中断?
Thanos Yan
·
2020-07-13 12:21
linux设备驱动
Linux设备驱动
(二)—— 字符设备驱动程序(二)——手动创建设备节点
手动加载字符设备驱动手动注册字符驱动流程先使用register_chrdev_region()或alloc_chrdev_region()来注册一个字符设备的设备号,大家都知道Linux是通过设备号来找到相应的驱动程序的,所以你要注册字符设备的时候,需要一个设备号或系统为你指定一个设备号。这两函数的差别就是register_chrdev_region()是注册指定设备号的字符设备,这个如果注册设备
Thanos Yan
·
2020-07-13 12:21
linux设备驱动
自旋锁
以下笔记摘自《
linux设备驱动
开发详解》自旋锁的描述:自旋锁是一种典型的对临界资源进行互斥访问的手段。
_lin55
·
2020-07-13 10:28
linux驱动笔记
驱动开发
linux
如何学习
linux设备驱动
Alessandro的《
linux设备驱动
程序》,编写驱动时,发现并不能够成功的在你的linux平台上编译通过、或不能正常执行。你的朋友会告诉你,你用的内核和书里的不一致。那该怎么办呢?
刘艳磊
·
2020-07-13 07:17
杂七杂八
Linux设备驱动
开发
一个基本的
Linux设备驱动
开发环境由宿主机和目标机组成,宿主机就是用来做驱动开发工作的主机,目标机就是用来运行和测试设备驱动的主机,在宿主机上需要有开发工具(gcc,gdb,make等)和linux源码
Linux先生
·
2020-07-13 06:11
embedded
dev
Linux
一点Linux心得: 编译 modutils-2.4.27-1.src.rpm
我目前在看宋宝华老师的《
Linux设备驱动
开发详解》;书中提到Linux内核编译部分,需要升级modutils和module-init-tools.module-init-tools还好一下就编译过。
Golden_Chen
·
2020-07-13 00:17
linux
linux设备驱动
(字符)练习 #1 基本框架
环境:board:JZ2440arch:armCPU:arm920tkernel:linux2.6基本框架本篇作为linux驱动练习第一篇,理应从零开始,优先将基本框架准备好,而后根据需要往框架中填充需要的功能。驱动作为linux内核功能的补充,在已有的linux内核框架基础上,驱动可以作为模块很容易地加入到内核并发挥其预期的功能。一般驱动可以以build-in和modules的方式加入到内核中,
CryptonymAMS
·
2020-07-13 00:42
linux驱动练习
驱动程序
linux
c语言
内核
嵌入式
Linux设备驱动
开发-linux驱动中的阻塞访问方式
阻塞与非阻塞是设备访问的两种不同的模式。什么是阻塞操作呢?其是指在执行设备操作的时候,如果不能获得资源,则挂起进程直到满足可操作的条件后再进行操作.而非阻塞操作则是在进程不能进行设备操作时,并不挂起到等待队列,而是放弃或者不断的查询,直到能够进行操作。应用程序以阻塞的方式进行read操作的时候,会调用一个systemcall,将系统的控制权交给kernel后就进入等待状态,等kernel将这个sy
强强的博客
·
2020-07-12 20:14
学习《
Linux设备驱动
程序》在Vmware里面搭建程序测试环境
平台:VmWare+Fedora7版本:Linux2.6.21-1.3194.fc71.安装gcc由于默认安装没有gcc,所以只能选择rpm安装。因为各个安装文件有依赖关系,故按以下顺序安装(安装文件存放在安装光盘的Fedora目录下)才能成功:rpm-ivhcpp-4.1.2-12(默认已安装)rpm-ivhgcc-4.1.2-12.i386.rpmrpm-ivhgcc-c++-4.1.2-12
ysr1980
·
2020-07-12 18:16
LINUX设备驱动
之设备模型五--device&driver&bus(三)
uthor:EricFangDate:2010-01-18-----------------------------------------------------------------本站分析linux内核源码,版本号为2.6.32.3转载请注明出处:http://ericfang.cublog.cn/----------------------------------------------
yangzhu1982
·
2020-07-12 18:58
Driver
《
Linux设备驱动
程序开发详解》中的virtualBox下的ubuntu在vmware下使用
最近在看宋宝华老师的《
Linux设备驱动
程序开发详解》第三版,在看到1.5小节
Linux设备驱动
的开发环境构建时,我也打算在自己电脑使用宋老师的系统(里面有书配套的源码)。
xlh1191860939
·
2020-07-12 17:44
Linux驱动
virtualbox
vmware
ubuntu
linux
Linux设备驱动
开发详解-Note(13)--- 字符设备驱动(2)
字符设备驱动(2)成于坚持,败于止步globalmem程序源码#include#include#include#include#include#include#include#include#include#include#include#include#defineGLOBALMEM_SIZE0x1000/*4KB*/#defineMEM_CLEAR0x1/*clearglobalememory
Ela--学海无涯
·
2020-07-12 17:08
Linux设备驱动
程序加载/卸载方法汇总
linux加载/卸载驱动有两种方法。1.modprobe注:在使用这个命令加载模块前先使用depmod-a命令生成modules.dep文件,该文件位于/lib/modules/$(uname-r)目录下;modprobe命令智能地向内核中加载模块或者从内核中移除模块,可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的依赖关系,决定要载入哪些模块。若在载入过程
were0415
·
2020-07-12 15:12
linux驱动
20181215《
linux设备驱动
开发详解》宋宝华 学习笔记(2)
第二章驱动设计的硬件基础1.处理器通用处理器主流的ARM移动处理芯片供应商包括高通(Qualcomm)、三星(Samsung)、英伟达(Nvidia)、美满(Marvell)、联发科(MTK)、海思(HiSilicon)、展讯(Spreadtrum)等。德州仪器(TI)、博通(Broadcom)则已淡出手机芯片业务。中央处理器的体系结构可以分为两类,一类为冯·诺依曼结构,另一类为哈佛结构。Inte
木木今日子
·
2020-07-12 10:38
QEMU
Linux设备驱动
编程之内存与I/O操作
Linux设备驱动
编程之内存与I/O操作2006-10-2713:35作者:宋宝华出处:天极开发责任编辑:方舟(2)内存映射方式(Memory-mapped)RISC指令系统的CPU(如ARM、PowerPC
weixin_34268310
·
2020-07-12 09:32
《Linux4.0设备驱动开发详解》笔记--第一章:
Linux设备驱动
概念及基础
1.1.设备驱动的分类字符驱动块驱动网络驱动1.2硬件基础中央处理器结构的分类:冯诺依曼:指令和数据合并在一起,数据宽度相同(Intel和arm7)哈弗:指令和数据分开,可以有不同的数据宽度(arm9-cortex系列)通用处理器分类:为控制器(MCU),又称单片机微控制器(MPU)DSP分类:定点DSP和浮点DSP浮点用硬件来实现,处理速度高于定点定点DSP只能用定点运算来模拟浮点运算指令集分类
weixin_30840573
·
2020-07-12 07:44
class_create(),class_device_create()创建/dev/xxx 名字
在刚开始写
Linux设备驱动
程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点
weixin_30337251
·
2020-07-12 05:19
《
Linux设备驱动
开发详解》学习笔记(一)
1、安装好光盘提供的虚拟机和Ubuntu系统,Linux内核在/home/baohua/develop/linux目录中。在编译内核时,需要配置内核,可以使用下面命令中的一个:#makeconfig(基于文本的最为传统的配置界面,不推荐使用)#makemenuconfig(基于文本菜单的配置界面)#makexconfig(要求QT被安装)#makegconfig(要求GTK+被安装)在/home/
jfyh5388
·
2020-07-12 01:16
嵌入式
linux
device_create 函数详细分析
我们在刚开始写
Linux设备驱动
程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点
tanyjin
·
2020-07-12 00:34
Linux
驱动
file_operations中各项解析
linux设备驱动
中file_operations结构体分析structmodule*owner第一个file_operations成员根本不是一个操作;它是一个指向拥有这个结构的模块的指针.这个成员用来在它的操作还在被使用时阻止模块被卸载
sunsea1026
·
2020-07-12 00:20
驱动
《
linux设备驱动
开发详解》中支持阻塞操作的globalfifo设备驱动
代码解析基于上文”《
linux设备驱动
开发详解》中globalmem代码笔记“的代码,只是将globalmem中的全局内存(devp所指)变成FIFO,并将globalmem重命名为”globalfifo
star714cong
·
2020-07-11 23:15
LINUX
注册字符设备时的 class_create() 与 device_create()
在刚开始写
Linux设备驱动
程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点
sir_zeng
·
2020-07-11 23:00
android
驱动
《linux 设备驱动开发详解4.0》 第一章
Linux设备驱动
概念及基础--总结
设备驱动最通俗的解释就是“驱使硬件设备行动”(1)无操作系统时的设备驱动在没有操作系统的情况下,设备驱动的接口被直接提交给应用软件工程师,应用软件没有跨越任何层次就直接访问设备驱动的接口。(2)有操作系统时的设备驱动有操作系统把单一的“驱使硬件设备行动”变成了操作系统内与硬件交互的模块,它对外呈现为操作系统的API,不再给应用软件工程师直接提供接口。(3)设备的分类及特点计算机系统的硬件主要由CP
技术芯
·
2020-07-11 23:30
linux
设备驱动开发详解4
DMA(
Linux设备驱动
程序)
直接内存访问DMA是一种硬件机制。它允许外围设备和主内存之间直接传输它们的I/O数据,而不需要系统处理器的参与。DMA需要设备驱动程序分配一个或者多个适合执行DMA的特殊缓冲区。许多驱动程序在初始化阶段分配了缓冲区,一直使用它们直到关闭。分配DMA缓冲区设备使用ISA或者PCI系统总线传输数据时,这两种方式使用的都是物理地址。但SBus在外围总线上使用了虚拟地址。模块只能在运行时刻分配它们的缓冲区
s651665496
·
2020-07-11 22:36
Linux编程学习
Linux设备驱动
程序学习(12) -Linux设备模型(底层原理简介)
以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式Linux的底层程序员来说,这部分内容是很重要的。以我学习的ARM9为例,有很多总线(如SPI、IIC、IIS等等)在Linux下已经被编写成了子系统,无需自己写驱动;而这些总线又不像PCI、USB等在《LDD3》上有教程,有时还要自己研究它的子系统构架,甚至要自己添
ruixj
·
2020-07-11 22:14
嵌入式系统的研究与开发
基于类linux的开发
Linux设备驱动
开发(一)—— platform总线、设备和驱动
platform总线、设备和驱动一个现实的Linux设备和驱动通常都需要挂载在一种总线上,对于本身依附于PCIUSB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统中,SoC系统中集成的独立的外设控制器,挂接在SoC内存空间的外设却不依附于此类总线。因此,Linux发明了一种虚拟的总线,称为platform总线(虚拟总线),相应的设备称为platform_device,驱动称为pla
Thanos Yan
·
2020-07-11 21:27
linux设备驱动
宋宝华《
Linux设备驱动
开发详解》——sysfs文件系统与linux设备模型(5.4.2)
以下读书笔记内容,摘自宋宝华《
Linux设备驱动
开发详解》一书。
天糊土
·
2020-07-11 14:04
读书笔记
linux设备驱动
模型一三基础结构之Kobject
在linux的驱动表示中,主要有三个基本的结构,分别是kobject,kset,ktype.Kobject,kset,kypte这三个结构是设备模型中的下层架构。模型中的每一个元素都对应一个kobject.kset和ktype可以看成是kobject在层次结构与属性结构方面的扩充。将三者之间的关系用图的方示描述如下:如上图所示:我们知道。在sysfs中每一个目录都对应一个kobject.这些kob
new_abc
·
2020-07-11 13:10
Linux
linux设备驱动模型
[转载]基于platform总线的驱动分析
原因详见
Linux设备驱动
模型与sys
西西人
·
2020-07-11 12:38
linux
嵌入式
Linux设备驱动
程序:在运行时读取驱动程序状态
嵌入式
Linux设备驱动
程序:在运行时读取驱动程序状态EmbeddedLinuxdevicedrivers:Readingdriverstateatruntime在运行时了解驱动程序一旦有了一个正在运行的
吴建明wujianming
·
2020-07-11 12:00
Linux设备驱动
开发详解总结(一)之字符设备驱动结构
Linux字符设备驱动结构1.1cdev结构体在Linux2.6内核中,使用cdev结构体来描述一个字符设备,cdev结构体的定义如下:structcdev{structkobjectkobj;structmodule*owner;/*通常为THIS_MODULE*/structfile_operations*ops;/*在cdev_init()这个函数里面与cdev结构联系起来*/structl
lwj103862095
·
2020-07-11 12:13
Linux驱动
Linux设备驱动
之字符设备(三)
在
Linux设备驱动
之字符设备(一)中学习了设备号的构成,设备号的申请与释放。在
Linux设备驱动
之字符设备(二)中学习了如何创建一个字符设备,初始化,已经注册到系统中和最后释放该字符设备。
Loopers
·
2020-07-11 11:43
Linux设备驱动
Linux设备驱动
之Kobject、Kset
纠结又纠结,虽然看了一些关于kobject和kset的书与文章,但是对于这两个东西,还是不太明白,又分析了一遍2.6.32.2内核的代码,结合前人的努力,终于有了一点眉目。总结一下,给自己做个笔记,也给初学者一点指引。LDD3中说,Kobject的作用为:1、sysfs表述:在sysfs中出现的每个对象都对应一个kobject,它和内核交互来创建它的可见表述。2、热插拔事件处理:kobject子系
Linux学习之路
·
2020-07-11 11:08
Device
Model
linux设备驱动
--globalmem字符设备框架分析
linux设备驱动
--globalmem字符设备框架分析最近正在学习设备驱动开发,因此打算写一个系列博客,即是对自己学习的一个总结,也是对自己的一个督促,有不对,不足,需要改正的地方还望大家指出,而且希望结识志同道合的朋友一起学习技术
liufei_learning
·
2020-07-11 11:46
linux驱动开发
关于召回《
Linux设备驱动
开发详解-基于最新的Linux 4.0内核》的通知
问题描述关于《
Linux设备驱动
开发详解:基于最新的Linux4.0内核》一书1.华章分社在没有征得作者同意的情况下,修改了作者稿件,其后也未发给作者审核,造成许多错误;比如把criticalsection
Linux阅码场
·
2020-07-11 09:47
转)Linux学习路线
《
Linux设备驱动
设计》:必买必看,实用性强;4.《AdvancedPrograminginUni
吾日三省-
·
2020-07-11 09:07
linux
linux设备驱动
模型之总线、设备、驱动三者的关系
总线、设备、驱动,也就是bus、device、driver,在内核里都有对应的结构体,在include/linux/device.h里定义。Device.h(linux-3.4.2\include\linux)1、总线、设备、驱动三者的关系2、结构体(1)总线结构体structbus_type{constchar*name;/*总线名*/constchar*dev_name;structdevi
【星星之火】
·
2020-07-11 06:33
linux设备驱动
程序--在用户空间注册文件接口
linux字符设备驱动程序--创建设备节点基于4.14内核,运行在beagleBonegreen在上一讲中,我们写了第一个
linux设备驱动
程序——hello_world,在驱动程序中,我们什么也没有做
did59261
·
2020-07-11 05:17
LINUX—字符设备驱动之-globalmem
下面将以
linux设备驱动
开发详解上的globalmem设备驱动为例来详细分析字符设备驱动的过程。
califan
·
2020-07-11 03:42
《
Linux设备驱动
开发详解》学习笔记
Linux设备驱动
开发详解学习笔记书名:《
Linux设备驱动
开发详解》第二版主机环境:Linuxversion2.6.25-14.fc9.i686@Fedoraarm-linux-gcc版本:version4.4.1
bafei4705
·
2020-07-11 02:05
Linux设备驱动
开发详解(宋宝华)学习笔记-第一章 设备驱动概述
对设备驱动最通俗的解释就是“驱使硬件设备行动”。设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据。驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU核。Linux将存储器和外设分为3个基础大
BradleyBill
·
2020-07-10 20:38
Linux相关
《
Linux设备驱动
开发详解》源码(4.1)——hello
/home/lihacker/develop/svn/ldd6410-read-only/training/kernel/drivers/hello/**Asimplekernelmodule:"helloworld"**TheinitialdeveloperoftheoriginalcodeisBarrySong*.AllRightsReserved.*/#include#includestat
口天土立口
·
2020-07-10 20:10
驱动程序
Linux设备驱动开发详解
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他