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
事件等待队列一般用于
linux驱动
的异步通信,也可以叫做申请设备使用权等待队列。当多个进程去操作一个设备时,这个时候一般要用到事件队列。
能睡
·
2023-07-25 02:53
同步与互斥linux系统
Linux驱动
开发(同步与互斥)
为什么在驱动程序中需要引入同步与互斥三、内嵌汇编四、原子操作1.原子操作概念2.内核中原子变量的定义3.内核中怎么实现原子操作1.ARMV6以下的架构2.ARMV6以上的架构五、原子操作示例总结前言本篇文章带大家来学习
Linux
花落已飘
·
2023-07-25 02:53
Linux驱动开发
linux
驱动开发
java
【
Linux驱动
】字符设备的初始化、加载 / 卸载
字符设备的注册分为两部分:注册设备号、注册设备本身。下面的两个函数将用于初始化字符设备,并将字符设备加载到内核。目录一、字符设备数据类型二、字符设备初始化函数三、字符设备加载/卸载函数1、设备加载函数2、设备卸载函数一、字符设备数据类型在Linux中使用cdev结构体表示一个字符设备,cdev结构体及其相关api函数在include/linux/cdev.h文件中,结构体的定义如下。structc
仲夏夜之梦~
·
2023-07-25 00:16
#
Linux驱动
linux
运维
服务器
【
Linux驱动
】字符设备驱动框架(一)—— 模块初始化(设备号注册、设备创建)
驱动运行有两种方式:将驱动编译进Linux内核,内核启动时自动运行驱动程序将驱动编译成模块(.ko文件),内核启动以后,使用insmod或modprobe加载驱动模块这里我们采用第二种方式,方便调试,只需加载驱动,无需编译内核,等确定没问题以后再根据需要编译到内核。目录一、驱动模块的加载/卸载二、注册字符设备1、注册设备号2、创建并加载字符设备3、注销设备号、卸载字符设备三、自动创建字符设备节点1
仲夏夜之梦~
·
2023-07-25 00:15
#
Linux驱动
linux
运维
服务器
【
Linux驱动
】自动创建 / 删除设备节点
我们将设备驱动加载到内核以后,并不会在/dev目录下生成对应的设备节点文件,应用程序读写设备,本质就是在读写/dev下对应的设备节点文件。因此,我们需要在加载到驱动的时候自动创建设备节点。这个就需要依靠mdev来实现,mdev是一个简化版的udev,能够检测系统中的硬件设备状态,以此来创建或者删除设备文件。目录一、类的创建/销毁1、创建类2、销毁类二、设备节点的创建/移除1、创建设备节点2、移除设
仲夏夜之梦~
·
2023-07-25 00:15
#
Linux驱动
linux
运维
服务器
13_Linux无设备树Platform设备驱动
目录
Linux驱动
的分离与分层驱动的分隔与分离驱动的分层platform平台驱动模型简介platform总线platform驱动platform设备platform设备程序编写platform驱动程序编写测试
Tree-gg
·
2023-07-24 22:44
Linux驱动
linux
设备树
I.MX6ULL
arm开发
嵌入式硬件
1、
Linux驱动
开发:模块_加载卸载
目录点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。 想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔
遇雪长安
·
2023-07-24 20:27
Linux驱动开发
linux
驱动开发
运维
内核模块
腾达Tanda U6无线网卡(RTL8192EU)与Ubuntu 18.04自带驱动不兼容的解决方案
red_tag=2337747734Ubuntu18.04的linux内核是4.15,目前腾达官方只有支持到4.4的
Linux驱动
,官方驱动在Ubuntu18.04是安装不上的。
一只烟酒僧
·
2023-07-24 18:47
嵌入式
linux驱动
编译打卡
1.首先先编译内核2.编译驱动如hello.ko3.加载驱动insmodhello.ko4.卸载驱动rmmodhello注意不要加.ko
一个跟头十万八千里
·
2023-07-22 16:06
【ubuntu 22.04不识别ch340串口】
这个真是挺无语的,发现国内厂商普遍对开源环境不感兴趣,ch340官方
linux驱动
好像被厂家忘了,现在放出来的驱动还是上古内核版本:于是,驱动居然要用户自己编译安装。。
来碗豆腐脑
·
2023-07-20 04:16
linux
ubuntu
ch340
ch341
韦东山
Linux驱动
入门实验班(2)hello驱动---驱动层与应用层通讯,以及自动产生设备节点
所以阅读本教程之前建议先阅读:韦东山
Linux驱动
入门实验班(1)hello驱动(4)gite
风正豪
·
2023-07-19 22:32
Linux
linux
驱动开发
韦东山
Linux驱动
入门实验班(1)hello驱动
前言(1)学习韦东山老师的Linux,因为他讲的很精简,以至于很多人听不懂。接下来我讲介绍韦东山老师的驱动实验班的第一个Hello程序。(2)注意,请先学习完视频再来看这个教程!本文仅供入门学习!如需深入,请搜索其他博客!(3)gitee仓库;GitHub仓库;代码先上代码,代码增加了注释。如果仅看注释就能够理解的话,就没必要再花时间往下看了。具体代码在我仓库里面。驱动代码/*说明:*1,本代码是
风正豪
·
2023-07-19 22:32
Linux
linux
运维
服务器
韦东山
Linux驱动
入门实验班(3)hello驱动---申请指定数量的次设备号
前言(1)前面我们介绍了如何自动产生设备节点,详细分析了驱动层代码。但是我们有没有发现一个问题,我们每次设备节点的主设备号都是240,次设备号是0。主设备能够理解,这个是系统自动分配的,那么为什么次设备号永远是0呢?我能不能是其他的?(2)答案是可以的。什么是Linux设备号(1)为了方便管理,Linux中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成,主设备号表示某一个具体的驱动,
风正豪
·
2023-07-19 22:02
Linux
linux
运维
服务器
韦东山
Linux驱动
入门实验班(4)LED驱动
(2)如果还有对于hello驱动程序还不太了解的,请看:韦东山
Linux驱动
入门实验班(1)hello驱动;韦东山
Linux驱动
入门实验班(2)hello驱动—驱动层与应用层通讯,以及自动产生设备节点;
风正豪
·
2023-07-19 22:28
Linux
linux
运维
服务器
Linux驱动
学习笔记1-学习路径
准备切入
Linux驱动
学习,购买了正点原子“i.MX6ULLLinux阿尔法开发板”,下载了学习资料。
coffee_baba
·
2023-07-19 21:15
linux
学习
笔记
Linux_网蜂ARM Cortex-A8学习笔记_
Linux驱动
篇
第七部分:
Linux驱动
篇7.1初识
Linux驱动
Linux驱动
类型主要包括字符设备驱动、块设备驱动、网络驱动。
黑崎江
·
2023-07-19 21:13
Linux
编程
Linux
驱动
《5.
linux驱动
开发-第2部分-5.2.字符设备驱动基础》最简单的模块源码分析 lsmod insmod modinfo rmmod dmesg
5.1.6.1、先学好C语言5.1.6.2、掌握相关预备知识(1)硬件操作方面(2)应用层API5.1.6.3、驱动学习阶段(1)注重实践,一步一步写驱动(2)框架思维,多考虑整体和上下层(3)先通过简单设备学
linux
大漠飞鹰6666
·
2023-07-19 11:12
朱老师
5linux驱动开发
驱动开发
Linux驱动
开发:设备树dts详解
前言:掌握设备树是
Linux驱动
开发人员必备的技能!
混分巨兽龙某某
·
2023-07-19 11:12
Linux驱动开发
Linux
设备树
嵌入式
嵌入式
Linux驱动
开发初级-内核模块编译方法
嵌入式
Linux驱动
开发初级-内核模块编译方法一、向内核添加新功能1.1静态加载法1.2动态加载法二、内核模块基础代码解析三、内核模块的多源文件编程四、内核模块信息宏一、向内核添加新功能1.1静态加载法所谓静态加载法
芬达在学习
·
2023-07-18 18:04
驱动开发
linux
运维
linux驱动
开发:驱动开发框架,linux内核字符设备驱动开发过程
一、驱动框架1.Linux内核模块和字符驱动的关系模块是Linux进行组建管理的一种方式,结构体:对设备的管理内核需要抽象出来一个结构体来描述设备所有的共性信息写驱动需要申请一个结构体并赋值(初始化),然后注册给内核让内核统一管理驱动:由内核统一管理,所以驱动在编写时需要遵循内核提供的字符设备的一个框架3.SI4完整安装及破解文件解压密码biu二:结构体及其信息1.描述所有字符设备驱动的结构体cd
吻等离子
·
2023-07-18 11:10
嵌入式
linux
驱动开发
运维
linux驱动
开发:Linux 内核的一些函数
1、MKDEV(ma,mi)构造设备号,将主设备号和次设备号转换为设备号类型(dev_t)。MKDEV宏将主设备号(ma)左移20位,然后与次设备号(mi)相与,得到设备号。dev_t结构主设备号12位
吻等离子
·
2023-07-18 11:39
嵌入式
算法
i.MX6ULL(十五) 根文件系统
以后我们就在这个最小系统上编写、测试
Linux驱动
,移植一些第三方组件,逐步的完善这个最小系统。最终得到一个功能完善、驱动齐全、相对完善的操作系统uboot
江太翁
·
2023-07-16 18:26
重学嵌入式
服务器
linux
运维
嵌入式学习(五)——嵌入式Linux设备驱动开发(二)
19020100103学院:电子工程学院转自:https://blog.csdn.net/light_in_dark/article/details/73368942【嵌牛导读】:对于嵌入式系统的学习来说,学习嵌入式
Linux
d895d298aaa1
·
2023-07-16 04:53
Ubuntu 开发ESP8266 详细过程
这里面需要注意的是,ESP8266需要通过USB模拟串口实现程序下载和通信功能,因此针对特定的下载器电脑上需要安装专门的
linux驱动
。ESP8266的工作模式主要包括:AP模式:ESP8266模
gitdive
·
2023-07-16 03:30
Linux驱动
进阶(三)——中断与时钟机制
文章目录前言中断简述中断的概念中断的宏观分类中断产生的位置分类同步和异步中断中断小结中断的实现过程中断信号线(IRQ)中断控制器中断处理过程中断的安装与释放按键中断实例按键设备原理图有寄存器设备和无寄存器设备按键设备相关端口寄存器按键中断实例程序分析按键驱动程序组成初始化函数s3c2440_buttons_init()中断处理函数isr_button()退出函数s3c2440_buttons_ex
Jacky~~
·
2023-07-15 19:25
Linux驱动开发
linux
运维
服务器
Linux驱动
进阶(一)——设备驱动中的并发控制
文章目录前言并发与竞争原子变量操作原子变量操作原子整型操作原子位操作自旋锁自旋锁概述自旋锁的使用自旋锁的使用注意事项信号量信号量概述信号量的实现信号量的使用自旋锁与信号量的对比完成量完成量概述完成量的实现完成量的使用小结前言现代操作系统有三大特征:中断处理、多任务处理和多处理器(SMP)。这些特性导致当多个进程、线程或者CPU同时访问一个资源时,可能会发生错误,这些错误是操作系统运行所不允许的。在
Jacky~~
·
2023-07-15 19:55
Linux驱动开发
linux
驱动开发
Linux驱动
进阶(二)——设备驱动中的阻塞和同步机制
文章目录前言阻塞与非阻塞等待队列等待队列概述等待队列的实现等待队列的使用同步机制实验同步机制设计实验验证小结前言阻塞和非阻塞是设备访问的两种基本方式。使用这两种方式,驱动程序可以灵活地支持阻塞与非阻塞访问。在写阻塞与非阻塞的驱动程序时,经常用到等待队列,所有本章将对等待队列进行简要介绍。阻塞与非阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有得到结果之后才会返回。有人也许会把阻塞调用和
Jacky~~
·
2023-07-15 19:55
Linux驱动开发
linux
驱动开发
Linux驱动
进阶(四)——内外存访问
文章目录前言内存分配kmalloc函数vmalloc()函数后备高速缓存页面分配内存分配物理地址和虚拟地址之间的转换设备I/O端口的访问LinuxI/O端口读写函数I/O内存读写使用I/O端口小结前言驱动程序加载成功的一个关键因素,就是内核能够为驱动程序分配足够的内存空间。这些控件一部分用于驱动程序必要的数据结构,另一部分用于数据交换。同时,内核也应该具有访问外部设备端口的能力。一般来说,外部设备
Jacky~~
·
2023-07-15 19:22
Linux驱动开发
linux
驱动开发
嵌入式
linux驱动
开发之移远4G模块EC800驱动移植指南
回顾下移远4G模块移植过程,还是蛮简单的。一通百通,无论是其他4G模块都是一样的。这里记录下过程,分享给有需要的人。环境使用正点原子的imax6ul开发板,板子默认支持中兴和移远EC20的驱动,这里要移植使用的是移远4G模块EC800。环境准备imax6ul开发板虚拟机(Ubuntu18.04)交叉编译工具链内核源码安装依赖#安装lzop工具,用于生成压缩或解压镜像sudoapt-getinsta
特立独行的猫a
·
2023-07-15 08:32
嵌入式应用开发实战
linux应用开发
linux
驱动开发
运维
基于pinctrl与gpio子系统点灯实验,灯不亮问题
基于pinctrl与gpio子系统点灯实验,灯不亮问题实验平台:正点原子alpha开发板,核心板V1.6,底板V2.1芯片:IMX6ULL现象跟着《I.MX6U嵌入式
Linux驱动
开发指南V1.8》第四十五章做实验驱动挂载上了
JasonComing
·
2023-07-14 19:01
linux
imx6ull
pinctrl
gpio
驱动问题
Linux驱动
开发:Linux内核启动流程详解
前言:Linux内核同样作为
Linux驱动
开发的“三巨头”之一,Linux内核的启动流程要比uboot复杂的多,涉及到的内容也更多。
混分巨兽龙某某
·
2023-07-14 04:47
Linux驱动开发
Linux内核
嵌入式
驱动开发
RK3399 驱动开发 _ 06 - wk2124 串口驱动开发
文章目录前言一、WK21241.概述2.源码下载二、
Linux驱动
1.驱动简介2.驱动源码修改3.内核中设备树dts修改4.驱动模块编译三、测试1.重新编译并烧录2.编译并加载驱动模块3.查看注册到内核的串口设备节点前言在
chenkanuo
·
2023-07-14 00:04
驱动开发
petalinux之简易字符设备驱动开发
目录一、模块工程1.创建驱动模块2.模块编译二、运行在传统的
Linux驱动
开发中,一般是以Linux内核为基础进行模块编译,但是以petalinux创建的工程系统,并没有找到对应的内核源码,不过赛灵思的官网肯定能找得到的
风间琉璃•
·
2023-06-22 19:43
ZYNQ
驱动开发
编写最简单的字符设备驱动
编写最简单的字符设备驱动1编写驱动代码2编写makefile3编译和加载驱动4编写应用程序测试驱动参考文章:
linux驱动
开发第1讲:带你编写一个最简单的字符设备驱动
linux驱动
开发第2讲:应用层的write
p0inter
·
2023-06-22 19:13
Linux内核设计与实现
linux驱动
驱动开发(1)——字符设备驱动
一、驱动含义字符设备是
Linux驱动
中最基本的一类设备驱动,字符设备就是一个字节,按照字节进行读写操作设备,读写数据是分先后顺序的。
大家好我是覃同学
·
2023-06-22 19:13
驱动基础
linux
Linux之字符设备驱动框架
.内核模块参数二、字符设备驱动(一)1.模块加载2.注册字符设备驱动3.内存映射三、字符设备驱动(二)1.模块加载2.申请设备号3.注册字符设备4.自动创建设备节点5.文件私有数据总结前言一、驱动介绍
Linux
风间琉璃•
·
2023-06-22 19:13
#
Linux驱动开发
linux
驱动开发
运维
字符设备驱动
前面内容:1
Linux驱动
—内核模块基本使用2
Linux驱动
—内核模块参数,依赖(进一步讨论)字符设备驱动字符设备驱动基础通过mknod命令来创建一个设备文件文件目录下添加目录项字符设备驱动框架cdev
Half-up
·
2023-06-22 19:42
linux驱动
驱动开发
linux
网络
linux驱动
之字符设备驱动(一)
先给自己打个广告,本人的微信公众号正式上线了,搜索:张笑生的地盘,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题,二维码如下:本篇文章是为了记录学习韦东山老师的嵌入式linux教学视频的课程笔记,给大家一个购买韦东山老师视频的链接一前言引导关于linux操作系统,相信做过嵌入式开发的人或多或少都有所了解,都听说过它是一个优秀的,
拉玛西亚影视学院的奥斯卡影帝
·
2023-06-22 19:12
linux系统
linux系统
字符设备驱动
Linux驱动
框架之i2c驱动框架解析
一、引言本文会通过简要的文字描述和源码分析,为大家分析梳理出Linux下的I2C驱动框架。(文本所有代码都是经过删减的,所以不要纠结和源代码有出入的地方)。二、I2C总线I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(时钟线和数据线)即可在连接于总线上的器件之间传送信息。三、Linux下的I2C驱动开发思路目前,在Linux下开发i2c驱动,主要有两种途径:
陈子陌
·
2023-06-22 18:16
Linux驱动开发笔记
I2C
【IIC子系统】IIC驱动框架解析(一)
I2C设备驱动开发I2C设备驱动的三种匹配方式(1)通用的匹配方式:OFstylematch(2)电源管理专用的匹配方式:ACPIstylematch(3)I2C专用的匹配方式:I2Cidtable参考:
Linux
liefyuan
·
2023-06-22 18:14
嵌入式Linux驱动
驱动开发
Linux内核态内存泄露检测工具——Kmemleak
我的圈子:高级工程师聚集地我是董哥,高级嵌入式软件开发工程师,从事嵌入式
Linux驱动
开发和系统开发,曾就职于世界500强企业!创作理念:专注分享高质量嵌入式文章,让大家读有所得!
卍一十二画卍
·
2023-06-22 08:43
Linux驱动开发
linux
驱动开发
Linux驱动开发
Linux调试工具
内存泄露检测
ds18b20-温度传感器-
linux驱动
-混杂设备
文章目录ds18b20读取温度数据步骤ds18b20时序图:初始化时序DS18B20初始化时序的步骤:读/写时序DS18B20写步骤:DS18B20读步骤:DS18B20驱动实现结果如下:参考:ds18b20读取温度数据步骤初始化:将总线拉低至少480μs,然后释放总线并等待15μs。发送“跳过ROM”命令(0xCC):该命令用于跳过在总线上连接的所有设备的唯一地址,直接定位到DS18B20。发送
Yengi
·
2023-06-22 07:09
linux驱动
c语言
linux
驱动模块加载与卸载时常用指令
1、驱动模块的加载
Linux驱动
程序编译为模块,.ko。测试的时候只需要加载.ko模块就可以。将编译出来的.ko文件存放到根文件系统里面。加载驱动会用到加载命令:insmod,modprobe。
行者甲
·
2023-06-21 18:52
字符驱动框架
Linux驱动开发
linux
嵌入式硬件
c语言
Linux驱动
入门(三)——源码下载阅读、分析和嵌入式文件系统介绍
文章目录从内核出发获取内核源码使用Git安装内核源码使用补丁阅读Linux内核源码SourceInsight简介阅读源码内核开发的特点无libc库抑或无标准头文件GNUC没有内存保护机制不要轻易在内核中使用浮点数容积小而固定的栈同步和并发可移植性的重要性Linux源码分析Linux源码结构分析arch目录drivers目录fs目录其他目录内核配置选项配置编译过程常规配置模块配置块设备层配置CPU类
Jacky~~
·
2023-06-20 22:38
Linux驱动开发
linux
驱动开发
Linux驱动
入门(二)——嵌入式处理器介绍和构建驱动程序开发环境
文章目录嵌入式处理器和开发板介绍处理器简述处理器种类Intel的PXA系列处理器StrongARM系列处理器MIPS处理器摩托罗拉龙珠(DragonBall)系列处理器日立SH3处理器德州仪器OMAP系列处理器ARM处理器ARM处理器简介ARM处理器的特点ARM处理器系列ARM处理器的应用ARM处理器选型STM32MP157开发板构建嵌入式驱动程序开发环境小结Linux操作系统复习Linux内核子
Jacky~~
·
2023-06-20 22:08
Linux驱动开发
linux
驱动开发
Linux驱动
入门——基础概念
文章目录Linux内核简介Unix的历史Linux简介操作系统和内核简介单内核与微内核设计之比较小结设备驱动简介驱动程序的角色划分内核设备和模块的分类安全问题版权条款
Linux驱动
开发概述驱动程序概述设备驱动程序的作用设备驱动的分类
Jacky~~
·
2023-06-20 22:38
linux
unix
驱动开发
linux驱动
中probe函数的返回值
在一个驱动的probe函数中,如果返回值为0的话,上层的核心层会认为驱动的初始化函数成功,此后驱动的一些回调函数将在适当的时候被调用,例如suspend类的回调函数,如果一个probe函数探测失败,驱动向系统申请的有关资源都会被释放,如中断号,申请的内存等,因些如果返回值为0但实际探测是失败的,上层的核心层将会调用驱动的一些回调函数,在回调函数中,可能会访问没有申请的内存而产生panic。
a254373829
·
2023-06-20 12:32
linux
2023
linux驱动
中probe函数的返回值,返回0成功。返回负数则失败,这个时候驱动向系统申请的有关资源都会被释放,如中断号,申请的内存等。实际测试。
一、在
linux驱动
里面申请一个gpip,,gpip2b4变换是76,dts如下:m117b@45{compatible="xxx,m117b";reg=;pinctrl-names="default"
海月汐辰
·
2023-06-20 12:01
数学建模
imx6ul开发板环境搭建
二、步骤1.编辑代码先按照正点原子的《【正点原子】I.MX6U嵌入式
Linux驱动
开发指南V1.6.pdf》第四章,安装好虚
killer-p
·
2023-06-19 11:12
驱动开发
linux
环境搭建
linux驱动
开发—— 2、字符设备驱动基础知识
来自朱有鹏老师的课堂笔记模块和驱动的区别:1、模块是驱动的雏形,驱动:模块+硬件。2、模块是一个机制,驱动调用了这个机制。3、就像是汽车和发动机的区别。一、字符设备驱动工作原理1、系统整体工作原理(1)应用层->API->设备驱动->硬件(2)API:open、read、write、close等(3)驱动源码中提供真正的open、read、write、close等函数实体2、file_operat
想文艺一点的程序员
·
2023-06-18 23:35
#
5.linux驱动开发
内核
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
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
其他