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驱动
中实现上层select接口
在驱动中实现file_operations结构的poll方法后,上层应用可以通过select或者poll方法来查询设备是否有数据可以读写。本文记录驱动中实现上层select查询设备是否有数据可以读取的方法。1、实现file_operation实现file_operation结构体中的相关打开、关闭、查询和读取方法,在上层调用select接口时会调用poll方法,该方法完成如下动作:①在一个或多个可
yingxian_Fei
·
2020-09-15 21:03
嵌入式/驱动
linux驱动
转载_Linux 内核驱动--阻塞与非阻塞机制及Poll/Select分
在
Linux驱动
程序中,我们可以使用等待队列(waitqueue)来实现阻塞操作。waitqueue很早就作为一个基本的功能单位出现在Linux内核里了,它以队列为基础数据结构,与进
williamwanglei
·
2020-09-15 20:50
Linux内核
Linux驱动
之poll机制
上一篇文章中我们采用了中断方式来查询按键,当你仔细观察的时候,虽然我们已经睡眠了,但是read的函数一直在那里等待,一直休眠下去,有没有一种机制设置个时间,来自动唤醒呢?也可以被中断函数唤醒呢?答案是有的,就是这篇文章讲得poll机制。上篇文章的链接:http://blog.csdn.net/qq_21792169/article/details/48415987驱动程序:#include/*模块
weixin_34307464
·
2020-09-15 20:12
shell
Linux 内核驱动--阻塞与非阻塞机制及Poll/Select分析if
在
Linux驱动
程序中,我们可以使用等待队列(waitqueue)来实现阻塞操作。waitqueue很早就作为一个基本的功能单位出现在Linux内核里了,它以队列为基础数据结构,与进
公子烨
·
2020-09-15 20:45
linux驱动
linux驱动
之poll/select轮询机制实例分析(结合驱动中断使用)
poll/select轮询机制让等待队列wait_queue有了超时机制,如果阻塞一定时间后会直接返回。例如当我们实现一个中断方式的按键驱动时,虽然中断式的驱动,效率是蛮高的,但是大家有没有发现,应用程序的死循环里的读函数是一直在读的;在实际的应用场所里,有没有那么一种情况,偶尔有数据、偶尔没有数据,答案当然是有的。我们期望要做到的就是,当有数据的时候,我们才去读它,没数据的时候我们就不去读它,这
只是一些暗恋而已
·
2020-09-15 20:47
Android驱动开发
Linux 内核驱动--阻塞与非阻塞机制及Poll/Select分析
在
Linux驱动
程序中,我们可以使用等待队列(waitqueue)来实现阻塞操作。waitqueue很早就作为一个基本的功能单位出现在Linux内核里了,它以队列为基础数据结构,与进
hardy_2009
·
2020-09-15 19:58
Linux
Driver
linux驱动
开发之i2c从设备驱动at24c02的编程
编译从设备驱动编程的前奏:1,将i2ccore层和i2cadapter控制器层编译进内核makemenuconfigDeviceDrivers—>I2Csupport—>//i2c-core.cI2CHardwareBussupport—>S3C2410I2CDriver//i2c-adatper的驱动–i2c-s3c2410.c2,为创建i2cclient提供信息,内核就会根据信息自动创建i2c
辉夜星辰
·
2020-09-15 18:54
linux驱动开发
Linux驱动
之GPIO子系统和pinctrl子系统
前期知识 1.如何编写一个简单的
Linux驱动
(一)——驱动的基本框架 2.如何编写一个简单的
Linux驱动
(二)——设备操作集file_operations 3.如何编写一个简单的
Linux驱动
山无言
·
2020-09-15 18:00
修改参数后linux启动不了
跟着韦老大的学习了一段时间的
linux驱动
的开发,第一遍的时候基本上是他在讲我在听,真正思考的属于我自己的东西是很有限的。
倒骑毛驴的令狐冲
·
2020-09-15 16:29
linux
驱动
Failed
to
execute
li
Try
passing
init
opt
linux无法启动
u-boot
linux驱动
android Framework
框架中包含三个主要部分,分别为服务端、客户端和
Linux驱动
。
开到靡荼
·
2020-09-15 14:36
Android
android
linux网卡驱动对网卡类型的依赖性
前面我们对网卡的各种类型进行了描述,不同的网卡如何开发相应的
linux驱动
呢?有没有一个捷径,或者统一的标准,让我们一学就会,快速上手呢?
xiyu_1986
·
2020-09-15 12:30
linux
linux内核
工作
测试
产品
linux驱动
模块开发(一)
Linux的模块开发注意一、模块Linux模块是linux的特色,他可以在需要的时候动态加载进内核,也可以在合适的时候移除内核,这样就保证内核的简洁高效二、代码分析#include#includestaticinthello_init(void){return0;}staticvoidhello_exit(void){}module_init(hello_init);module_exit(hel
wx7year
·
2020-09-15 11:46
linux
drivers
Linux驱动
| 解读块设备驱动的重要概念
块设备驱动块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。字符设备与块设备I/O操作的不同:1.块设备只能以块为单位,接受输入和返回输出;而字符设备则以字节为单位。2.块设备对于I/O请求有对应的缓冲区,因此可调整顺序进行读写3.虽然块设备可以随机访问,但是顺序地组织块设备的访问可提高性能块设备的I/O操作方式与字符设备存
Yumin_Wu
·
2020-09-15 10:25
ARM-Linux
随笔
linux驱动
模块开发(二)----字符设备驱动
字符设备驱动(Linux的模块)开发流程一、字符设备字符设备指的是在I/O传输过程中以字符为单位进行传输的设备,例如键盘、打印机等。注意,以字符为单位并不一定意味着以字节为单位,因为编码有不同规定,有的一个字符占用两个字节。在linux中一切都是文件,所以设计驱动的最终目的是为了迎合上层系统调用对于设备文件的操作。二、系统调用(文件操作)系统调用中对于文件的操作主要有以下几个:intcreate(
wx7year
·
2020-09-15 09:24
linux
drivers
Linux 字符设备驱动(一)---cdev、file_operations、inode、file结构体详述,上层应用如何访问到底层驱动
参考资料:《
Linux驱动
开发入门与实战》,概念及源码主要参考《
Linux驱动
开发入门与实战》,务求准确。同时衷心感谢其他网友的分享。大部分内容都是手敲的,错漏之处望指正,谢谢!
the_wan
·
2020-09-15 09:49
linux
内核 驱动 硬件直接的关系
linux驱动
是直接和硬件打交道的软件程序。层次结构上它处于操作系统和硬件之间。
Farmwang
·
2020-09-15 07:52
linux
linux驱动
(网摘)
Linux驱动
程序入门—HelloWorld分类:linux1、引言记得在学习VC++和C语言的时候,一开始都会以一个HELLOWORLD的例子作为演示,将学者逐渐引入殿堂,这个几乎成了计算机编程语言学习必经的一个入门之路
tutb12345
·
2020-09-15 05:19
linux
module
linux内核
gcc
user
网络
Linux驱动
之设备模型(1)
1.Overviewl设备模型是2.6内核引入的新特性,提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构,使得系统具有以下优点:n代码重复最小化n提供诸如引用计数这样的统一机制n可以列举系统中所有的设备,观察它们的状态,并查看它们连接的总线n可以将系统中的全部设备结构以树的形式完整、有效地展现出来n可以将设备和其对应的驱动联系起来,反之亦然n可以将设备按照类型加以归类,比如归类为输入
cjok376240497
·
2020-09-15 04:07
Linux
driver
model
设备模型
Linux驱动
程序入门-1
开始学习
Linux驱动
,记录学习内容与路线,下文中超链接多为网络中前辈们的blogLinux常用头文件其中的部分头文件:#include#includeWritingInstalling:函数Intinit_module
淡定路过的我
·
2020-09-15 04:36
嵌入式
PaaS 平台的架构、现状及未来
主要工作领域:
linux驱动
,内核,容器平台,PaaS,微服务架构。查看本场Chat说起云计算平台,大家可能
Shine_安
·
2020-09-15 01:53
PaaS
Linux驱动
之设备树的基础知识
前期知识 1.如何编写一个简单的
Linux驱动
(一)——驱动的基本框架 2.如何编写一个简单的
Linux驱动
(二)——设备操作集file_operations 3.如何编写一个简单的
Linux驱动
山无言
·
2020-09-14 21:00
linux驱动
篇-touchscreen-完整版
Touchscreen本篇文章为触摸屏驱动完整版本,为的是给时间充裕的同学详细讲解。如要时间有限可以看精简版,传送门在下面。https://blog.csdn.net/chichi123137/article/details/89256532前言在嵌入式行业,有很多从业者。我们工作的主旋律是拿开源代码,拿厂家代码,完成产品的功能,提升产品的性能,进而解决各种各样的问题。或者是维护一个模块或方向,一
中年润
·
2020-09-14 18:48
linux驱动
Linux驱动
加载问题“.ko模块无法加载modprobe: module 'xxx.ko' not found”解决方法
可能是缺少相关路径、文件或是文件名不需要带扩展使用modprobeXX.ko命令后,会到文件系统/lib/modules/xxxxx目录下查找相应的XX.ko文件;这里的xxxxx是指系统内核版本,可以通过uname-r命令获得。解决方案:没有这个目录的话,自己创建一个~创建后将.ko文件放入这个目录中执行depmod命令重新执行modprobeXX.ko命令若还不行:重新执行modprobeXX
chillinght
·
2020-09-14 15:27
linux驱动相关
linux驱动
开发学习笔记二:linux系统目录以及linux内核源码目录分析
一、Linux系统目录分析登录系统后,在当前命令窗口下输入命令:ls/你会得到如下的信息:树状目录结构:以下对这些目录进行简单的解释:/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备
万能的小黑Alex
·
2020-09-14 15:07
Linux驱动开发学习笔记
内核
linux
linux驱动
编写过程中遇到的几个问题及解决办法
1)抓取qq号一直不成功,直接上程序剖析问题payload的数据类型是char指针,也就是每个元素都是char类型的,qq号的字符为(0-9),并且第一个字符不能为0.‘0’-‘9’对应的ASCII码的16进制为30-39而且得知qq号的存储方式为16进制,故这样比较:if(payload[15+qqlen]>=0x30&&payload[15+qqlen]=30&&tmpprotocol==6)
misfa
·
2020-09-14 14:17
linux
&
c语言
Linux驱动
学习笔记----------触摸屏驱动
关于触摸屏的驱动,其实也是input输入子系统,只不过是一个升级版罢了。我所说的都是基于韦老大所说,再加上自己的理解。这里关于输入子系统再做一些补充:—————–入子系统体系—————设备事件层:Linux_Dir/drivers/input/evdev.c(提供handler)提供输入设备产生的原始数据并上报给应用程序,这适用于所有输入设备,触摸屏也不例外编写基于输入子系统的驱动时只需:1.分配
小洲洲洲
·
2020-09-14 14:10
linux驱动
linux驱动
笔记---linux内核驱动目录结构
在Linux内核中新增驱动时,需要增加以下结构和文件更改,下面做一个笔记进行记录。驱动结构的Xmind展示新增驱动test详解 新增驱动为drivers下的test文件夹,里面包含了驱动源码test**.c1、在arch/arm64/Kconfig文件下增加source“drivers/test/Kconfig”,使得进行makemenuconfig时,drivers/test下的Kconf
中华田园巨龙
·
2020-09-14 12:42
Linux驱动
linux
内核
驱动程序
Linux驱动
——fatal error: asm/system.h: No such file or directory 如何解决
写字符设备驱动程序时,出现错误:fatalerror:asm/system.h:Nosuchfileordirectory错误信息可知,缺少此头文件原因:Linux内核是不断地更新换代,即3.3版本之后内核用switch_to.h替换了曾经的system.h头文件。解决方法:可在终端输入uname-r,查看自己Linux内核版本。如,我的内核版本是4.2.0-27-generic,可知为3.3之后
减肥De狗
·
2020-09-14 12:33
Linux驱动
嵌入式
linux驱动
-模块加载/卸载的两种方法
文章目录1.insmod和rmmod命令2.modprobe命令2-1.语法2-2.选项2-3.示例1.insmod和rmmod命令 insmod需要指定模块的绝对路径,用法:insmodtest.ko rmmod只需要模块的名字即可,用法:rmmodtest 需要说明的是,使用insmod和rmmod加载卸载模块时并不会加载/卸载卸载其依赖模块。2.modprobe命令 modprobe
止于至善656
·
2020-09-14 12:17
嵌入式linux驱动
Linux驱动
之串口(UART)
在嵌入式Linux系统中,串口被看成终端设备,终端设备(tty)的驱动程序分为3部分:tty_coretty_disiciplinetty_driver包括3个结构体:uart_driver,uart_port,uart_ops(include/serial_core.h)。因此,实现一个平台的uart驱动程序只要实现这3个结构体即可。a:uart_driver结构体uart_driver包含了串
weixin_34194087
·
2020-09-14 11:18
linux驱动
开发环境的配置
经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助。刚接触Linux设备驱动时,初学者往往连如何编译驱动程序都不懂,更别说编译进内核或加载测试了。一般都是在网上找个最简单的helloworld驱动程序,然后严格按照网上所说的步骤编译,结果却得到一大堆见都没见过的错误,更不要说根据错误信息来
D_kity
·
2020-09-14 11:07
linux
内核驱动环境配置
Linux驱动
(基础):10---内核模块程序结构(加载、卸载、参数、许可声明、导出符号、声明信息)
一个Linux内核模块主要由如下几个部分组成:①模块加载函数:当通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初始化工作②模块卸载函数:当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块卸载函数相反的功能③模块许可证声明:许可证(LICENSE)声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收
江南、董少
·
2020-09-14 11:51
Linux驱动(基础)
Linux驱动
之Ubuntu下下载内核源码——学习笔记(7)
PC操作系统:Ubuntu16.04LTS内核版本:4.15.0-45-generic编译器:gcc7.5.0主要是方便验证一些驱动的小问题。一、下载内核源码1、查看Ubuntu当前所使用的内核版本执行命令uname-r可以查询。2、查看一下可以下载的内核源码版本执行命令apt-cachesearchlinux-source可以查询。可以看到有4.15.0版本的源码可以下。3、下载源码及解压(1)
hrx-@@
·
2020-09-14 10:49
Linux驱动开发
linux
内核
tty驱动调试
这两周调试tty驱动从uboot到
linux驱动
,遇到了一下问题,也学到了解决的方法,乘现在还有点印象总结一下:questionone:目的是打开串口uart1,对应ttyS1设备,首先要打开uart1
gaosentao
·
2020-09-14 10:17
驱动
linux驱动
开发:触摸屏的认识(FT5x06 IC的分析)
我们板子上的触摸屏是电容屏,当然也有电阻屏。不过目前绝大多数是电容屏。原理:按下某个位置,得到某个位置的特定电阻/电容值,电阻屏(可能通过好几个adc去捕获这些电阻值),因为平面上一个点至少需要a(x,y)表示.拆开LCD屏的板子,找到触摸屏那块的主控IC:FT5206.所以我们现在研究这颗IC的SPEC就好了.IIC总线/SPI总线INT脚wakeup脚CTP–Capacitivetouchpa
changliang7731
·
2020-09-14 10:57
内核学习
linux驱动开发
触摸屏
嵌入式
Linux驱动
笔记(三十一)------SYSRQ组合键使用
你好!这里是风筝的博客,欢迎和我一起交流。ALT+SYSRQ组合键是Linux调试的一种手段,即使在系统死机、panic、卡住等情况,只要系统还能响应中断,那么SYSRQ就派上用场了(比如触发crash查看系统当前在干啥),具体的使用情况可以参考内核文档里的详细描述:Documentation/sysrq.txtnote:SYSRQ键也就是键盘上的PrintScreen键.使用SYSRQ组合键需要
风筝丶
·
2020-09-14 10:48
Linux驱动
sysrq
linux调试
串口调试
Linux
001_
linux驱动
之_驱动的加载和卸载
(一)驱动的安装:可以将驱动程序静态编译进内内核中也可以将它作为模块在使用的时候再加载注:在配置内核时候,如果某个配置被设置为m,就表示它将会被编译成模块(二)加载和卸载驱动使用命令(模块的拓展名为.ko)insmod命令加载(使用示例:insmodfirst_drv.ko)rmmod命令卸载(使用示例:rmmodfirst_drv.ko)lsmod查看内核中已经加载了哪些模块(使用示例:lsmo
陆小果哥哥
·
2020-09-14 09:46
013_linux驱动
Linux串口驱动程序(6)-串口驱动实现
在
Linux驱动
开发中,一般都不会从0开始写,我们做的更多的是移植和修改,有时候还需要对驱动程序进行优化。当然具备移植、修改驱动能力的基础是能够读懂驱动程序,同时需要对这个驱动程序的核心功能非常了解。
小虾米_2018
·
2020-09-14 09:50
Linux底层驱动
linux驱动
开发:串口协议
串口的重要性不言而喻。我们可以通过串口来打印debug的信息,以此来定位代码的错误位置。我们也可以通过串口来向内核传入命令,可以说它是开发人员常用的一个交互终端。当进行驱动开发时,总是需要用到串口来显示内核的打印信息。对于开发来说,很是重要。串口:属于串行通信的一种,与之对应的是并行通信。串行通信就是数据的各位在同一根线上顺序依次按位传输。同步通信:要求发生时钟和接收时钟保持严格同步。发送方先发送
changliang7731
·
2020-09-14 09:26
内核学习
第四章:Android灯光系统(1)-总体框架
该层主要是实现的是JNI,让APP具有调用C语言的能力(涉及java,c++,c语言)3.硬件操控层:一般都是操作硬件的封装库,其实就是相当于llinux系统中的应用层(一般由C语言编写,少数也可以使用C++)4.
linux
江南才尽,年少无知!
·
2020-09-14 05:55
RK3399移植
Linux内核PHY中断调试
Linux内核PHY中断调试分类:UBOOT
Linux驱动
Linux内核和文件系统PowerPC体系结构2010-11-0120:492098人阅读评论(5)收藏举报今天解决了一个PHY中断的问题,现在越来越觉得我以前的想法是错误的
jasonliu001
·
2020-09-14 04:39
网络设备
linux内核
嵌入式
ext
linux
测试
网络
【嵌入式
Linux驱动
开发】三、点亮LED,初探驱动与硬件交互
总盯着过去,你会瞎掉一只眼;然而忘掉历史,你会双目失明。文章目录一、IMX6ULL的GPIO操作流程1.1IMX6ULL的GPIO模块结构1.2各个模块含义及具体操作1.2.1CCM模块-向GPIO模块提供时钟1.2.2IOMUXC模块-控制引脚的复用模式及电气属性1.2.3GPIO模块1.3GPIO的读写操作步骤1.3.1读GPIO1.3.2写GPIO二、LED的驱动框架三、编写代码四、运行
ReCclay
·
2020-09-14 03:42
#
嵌入式Linux驱动入门
Linux USB驱动工作流程
1.USB主机在
Linux驱动
中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB
Arrow
·
2020-09-14 03:35
Linux驱动
linux驱动
之串口驱动分析
UART串口时序UART使用异步模式工作,不需要时钟信号,其一般格式为:起始位+数据位+校验位+停止位。其中起始位1位,数据位5~8位,校验位0或1位,停止位1、1.5或2位。不过最常用的格式是1位起始位、8位数据位、没有奇偶校验、1位停止位,简记为8/N/18/N/1格式的时序图TX、RX、GND信号外,UART中还会有诸如RTS、CTS等流控信号空闲时数据线上规定为逻辑1。开始传输数据时先发送
大侠课堂
·
2020-09-14 03:50
嵌入式
串口通信
uart
嵌入式
linux
物联网
linux驱动
学习(字符型设备驱动)
参考文档:https://segmentfault.com/a/1190000004474802记录具体操作和出现的问题,以及一些扩展知识。对于linux,设备也被看做是一个文件,对于用户来说,通过系统调用和驱动用操作普通文件的方式打开、读写设备,屏蔽硬件细节。创建设备:mknod(类似创建文件节点)这时指定一个主设备号。加载设备驱动,驱动中也有一个设备号,通过该设备号将驱动和设备对应起来。c文件
Graceyongqi
·
2020-09-14 01:38
Linux内核&驱动
如何编写一个简单的
Linux驱动
(三)——完善设备驱动
前期知识1.如何编写一个简单的
Linux驱动
(一)——驱动的基本框架2.如何编写一个简单的
Linux驱动
(二)——设备操作集file_operations前言在上一篇文章中,我们编写设备驱动遇到了不少问题
山无言
·
2020-09-13 23:00
12-虚拟串口驱动
从内核中最简单的驱动程序入手,描述
Linux驱动
开发,主要文章目录如下(持续更新中): 01-第一个内核模块程序 02-注册字符设备驱动 03-open&close函数的应用 04-read&write
夏夜晚风_
·
2020-09-13 19:21
Linux驱动
linux驱动
开发之LCD的驱动配置
一、linux内核中是将内存的某一块(驱动分配的)映射到用户空间,这样用户空间的图片以及视频数据就不需要从内存空间切换,就可以直接写入到内存中。其中申请的这块内存称为DMA内存,即直接内存访问,外设和内存直接传输数据而不需要CPU参与。存放在DMA内存的数据,每满一帧就可以自动写入到硬件(LCD屏)中。所以我们也称LCD屏为帧缓冲设备,即一块内存。总结是:操作一块LCD设备,就是操作一块内存,这块
辉夜星辰
·
2020-09-13 17:19
linux驱动开发
第一个
Linux驱动
程序
模块编程
Linux驱动
本质上是一种模块,模块要实现相应的接口,这样和Linux内核这个主体结合。但凡模块的编程模式大都相似,如PHP模块,nginx模块等。
MemoryPalace
·
2020-09-13 15:02
Linux内核
Linux驱动
开发必看
【IT168技术文档】在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念。我们将学习内核定时器、同步机制以及内存分配方法。不过,我们还是得从头开始这次探索之旅。因此,本章要先浏览一下内核发出的启动信息,然后再逐个讲解一些有意思的点。2.1启动过程图2-1显示了基于x86计算机Linux系统的启动顺序。第一步是BIOS从启动设备中
小木瓜
·
2020-09-13 14:02
Linux内核
嵌入式
linux
loops
timer
数据结构
semaphore
delay
上一页
23
24
25
26
27
28
29
30
下一页
按字母分类:
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
其他