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设备驱动分类5.1.4.1、驱动分类(1)分3类:字符设备驱动、块设备驱动、网络设备驱动(2)分类原则:设备本身读写操作的特征差异5.1.4.2、三类驱动程序详细对比分析(1)字符设备,准确的说应该叫“字节设备”,软件操作设备时是以字节为单位进行的。典型的如LCD、串口、LED、蜂鸣器、触摸屏······(2)块设备,块设备是相对于字符设备定义的,块设备被软件操作时是以块(多个字节构成的
江洋之道
·
2024-01-25 08:07
linux
驱动开发
学习
Linux设备
驱动开发学习
笔记(等待队列,锁,字符驱动程序,设备树,i2C...)
1.内核工具和辅助函数1.1宏container_ofcontainer_of函数可以通过结构体的成员变量检索出整个结构体函数原型:/*pointer指向结构体字段的指针container_type结构体类型container_field结构体字段名称返回值是一个指针*/container_of(pointer,container_type,container_field);structmcp23
【linux嵌入式】玩家
·
2024-01-19 11:19
LInux嵌入式
linux
驱动开发
学习
嵌入式硬件
嵌入式软件
android
linux
驱动开发学习
3 pinctl和gpio子系统试验
linux对于gpio有专门的驱动框架借助pinctl子系统做pin的复用·和电气属性借助gpio子系统来使用gpio大多数SOC的pin都是支持复用的,比如I.MX6ULL的GPIO1_IO03既可以作为普通的GPIO使用,也可以作为I2C1的SDA等等。此外我们还需要配置pin的电气特性,比如上/下拉、速度、驱动能力等等。传统的配置pin的方式就是直接操作相应的寄存器,但是这种配置方式比较繁琐
西伯利亚大草原的狼
·
2024-01-03 21:11
Linux驱动层开发
linux
学习
运维
Linux
驱动开发学习
笔记7《并发与竞争》
目录一、并发与竞争1、并发与竞争简介2、保护内容是什么二、原子操作1、原子操作简介2、原子整形操作API函数3、原子位操作API函数4、实验(1)修改设备树文件(2)LED驱动修改(3)编写测试APP(4)运行测试三、自旋锁1、自旋锁简介2、自旋锁API函数3、其他类型的锁(1)读写自旋锁(2)顺序锁4、自旋锁使用注意事项5、自旋锁实验(1)修改设备树文件(2)LED驱动修改(3)测试APP(4)
ssz__
·
2024-01-01 23:19
Linux驱动开发学习
学习
笔记
linux
驱动开发
c语言
ubuntu
Linux
驱动开发学习
笔记6《蜂鸣器实验》
目录一、蜂鸣器驱动原理二、硬件原理分析三、实验程序编写1、修改设备树文件(1)添加pinctrl节点(2)添加BEEP设备节点(3)检查PIN是否被其他外设使用2、蜂鸣器驱动程序编写3、编写测试APP四、运行测试一、蜂鸣器驱动原理蜂鸣器常用于计算机、打印机、报警器、电子玩具等电子产品中,常用的蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器,这里的有“源”不是电源,而是震荡源,有源蜂鸣器内部带有震荡源,所以有
ssz__
·
2023-12-30 11:00
Linux驱动开发学习
驱动开发
学习
笔记
c语言
linux
Linux
驱动开发学习
笔记5《pinctrl和gpio子系统实验》
目录一、pinctrl子系统1.pinctrl子系统简介二、gpio子系统1.gpio子系统简介2.gpio子系统API函数3.与gpio相关的OF函数三、硬件原理图分析四、实验程序编写1.修改设备树文件2.LED灯驱动程序编写3.编写测试APP五、运行测试1.编译驱动程序和测试APP(1)编译驱动程序(2)编译测试APP2.运行测试上一章我们编写了基于设备树的LED驱动,但是驱动的本质还是没变,
ssz__
·
2023-12-18 11:42
Linux驱动开发学习
linux
驱动开发
学习
ubuntu
c语言
Linux
驱动开发学习
笔记4《设备树下的LED驱动实验》
目录一、设备树LED驱动原理二、硬件原理图分析三、实验程序编写1.修改设备树文件2.LED灯驱动程序编写3.编写测试APP四、运行测试1.编译驱动程序和测试APP(1)编译驱动程序(2)编译测试APP2.运行测试一、设备树LED驱动原理在上节中,我们直接在驱动文件newchrled.c中定义有关寄存器物理地址,然后使用io_remap函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地
ssz__
·
2023-12-18 11:42
Linux驱动开发学习
linux
驱动开发
学习
ubuntu
c语言
ARM开发
ARM课程介绍课程特点ARM开发-->Linux移植-->驱动开发前后联系:ARM和系统移植为
驱动开发学习
做准备工作所需知识:C语言基础及STM32需要的硬件知识课程要求目标:学习程序运行原理、硬件的控制原理会看原理图
满山的猴子我的腚最红
·
2023-12-16 16:28
ARM开发
arm开发
stm32
嵌入式硬件
c#
Windows ObjectType Hook 之 SecurityProcedure
有关ObjectType的分析见文章《Windows
驱动开发学习
记录-ObjectTypeHook之ObjectType结构相关分析》。
禁锢在时空之中的灵魂
·
2023-12-04 06:32
Windows内核
驱动开发
windows
c++
Linux
驱动开发学习
笔记1《字符设备驱动开发》
目录一、字符设备驱动简介二、chrdevbase字符设备驱动开发实验1.创建驱动程序的目录2.创建vscode工程3.编写实验程序4.编译驱动程序和测试APP代码(1)加载驱动模块(2)创建设备节点文件(3)chrdevbase设备操作测试(4)卸载驱动模块一、字符设备驱动简介字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺
ssz__
·
2023-12-03 06:02
Linux驱动开发学习
驱动开发
学习
笔记
linux
c语言
Windows ObjectType Hook 之 OkayToCloseProcedure
有关ObjectType的分析见文章《Windows
驱动开发学习
记录-ObjectTypeHook之ObjectType结构相关分析》。
禁锢在时空之中的灵魂
·
2023-11-21 02:32
Windows内核
驱动开发
windows
c++
C++开发方向之windows驱动开发
先来看看招聘网上,关于windows驱动开发的岗位要求:1.深圳的C++客户端高级岗2.四川成都的windows驱动开发岗2.如何学习windows驱动开发windows
驱动开发学习
路径主要分
haimianjie2012
·
2023-11-19 12:05
程序员的工具和书
驱动开发
windows
c++
Linux
驱动开发学习
笔记(二)异步通知
应用层程序#include#include#include#include#include#include#include#includeintfd;voidmy_signal_fun(intsignum){unsignedcharkey_val;read(fd,&key_val,1);printf("key_val:0x%x\n",key_val);}intmain(intargc,char**
Bin Watson
·
2023-11-17 12:32
驱动开发
linux
驱动开发
学习
linux
驱动开发学习
笔记二十一:异步通知
一、异步通知简介我们首先来回顾一下“中断”,中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数,在中断服务函数中做具体的处理。比如我们在裸机篇里面编写的GPIO按键中断实验,我们通过按键去开关蜂鸣器,采用中断以后处理器就不需要时刻的去查看按键有没有被按下,因为按键按下以后会自动触发中断。同样的,Linux应用程序可以
耐心的小黑
·
2023-11-12 08:25
#
Linux驱动开发学习笔记
linux
嵌入式
【嵌入式Linux
驱动开发学习
-第二部分-第六讲-汇编LED驱动实验】
实验现象一、汇编LED原理分析为什么要学习Cortex-A汇编:·①、需要用汇编初始化一些SOC外设。②、使用汇编初始化DDR,I.MX6U不需要。③、设置sp指针,一般指向DDR,设置好C语言运行环境。二、ALPHA开发板LED灯硬件原理分析:**STM32IO初始化流程:**①、使能GPIO时钟。②、设置IO复用,将其复用为GPIO③、配置GPIO的电气属性。④、使用GPIO,输出高/低电平。
旅行的橘子汽水
·
2023-11-07 12:11
linux
驱动开发
学习
Windows ObjectType Hook 之 ParseProcedure
有关ObjectType的分析见文章《Windows
驱动开发学习
记录-ObjectTypeHook之ObjectType结构相关分析》。 这里进行的Hook为其中之一的ParseProcedure。
禁锢在时空之中的灵魂
·
2023-11-06 08:54
Windows内核
windows
c++
驱动开发
linux
驱动开发学习
笔记二十二:MISC驱动
一、简介misc的意思是混合、杂项的,因此MISC驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用MISC驱动。MISC驱动其实就是最简单的字符设备驱动,通常嵌套在platform总线驱动中,实现复杂的驱动。所有的MISC设备驱动的主设备号都为10,不同的设备使用不同的从设备号。随着Linux字符设备驱动的不断增加,设备号变得越来越紧张,尤其是主设备号,MISC设备驱动
耐心的小黑
·
2023-11-03 07:28
#
Linux驱动开发学习笔记
linux
【IMX6ULL
驱动开发学习
】12.Linux驱动之设备树
承接上一篇博客【IMX6ULL
驱动开发学习
】11.驱动设计之面向对象_分层思想(学习设备树过渡部分)代码获取:https://gitee.com/chenshao777/imx6-ull_-drivers
晨少爱学习
·
2023-11-03 07:07
驱动开发
linux
设备树
dtb
dts
IMX6ULL驱动
Windows ObjectType Hook 之 OpenProcedure
有关ObjectType的分析见文章《Windows
驱动开发学习
记录-ObjectTypeHook之ObjectType结构相关分析》。 这里进行的Hook为其中之一的OpenProcedure。
禁锢在时空之中的灵魂
·
2023-11-03 03:25
Windows内核
驱动开发
windows
c++
讯为Linux驱动开发
讯为LInux
驱动开发学习
笔记第一期:驱动基础RK3568,国产瑞芯微的CPU,支持多种操作系统,如Linux,Android等1,Linux设备驱动概述驱动概念底层硬件和上层软件的桥梁,让硬件动起来使用驱动框架编程
WBushYdc
·
2023-10-25 00:18
工作笔记
linux
驱动开发
运维
linux
驱动开发学习
001:概述
linux的内核源码编译后,会生成一个总的镜像。镜像加载到内存中运行他,就会启动内核。驱动属于内核代码的一部分,对驱动修改要重编整个内核,麻烦但驱动可以独立于内核镜像外,并能动态加载和卸载字符设备驱动,他们按照字节流的方式来进行访问,如鼠标键盘等学习一类驱动,就是学习它的核心数据结构和一组API,然后是由此组成的框架linux中,万物皆是文件,设备也被当成文件。硬件准备好后会主动通知cpu,并非c
搞IT的锋
·
2023-10-23 23:19
驱动
linux
驱动开发
基于linux内核的
驱动开发学习
1驱动定义:驱使硬件动起来的程序种类:裸机驱动:需求分析--》查原理图--》查芯片手册--》code系统驱动:需求分析--》查原理图--》查芯片手册--》设备树--》code--》安装到内核中裸机开发&系统开发的优缺点?裸机开发:成本低运行效率高安全性低单任务系统开发:成本高运行效率低安全性低多任务应用程序和驱动程序的区别?应用程序驱动程序1加载方式主动加载被动加载2运行空间用户空间kernel空
谷谷呀~
·
2023-10-20 22:58
驱动开发
Windows
驱动开发学习
记录-遍历内核已加载模块之一(使用DriverSection)
附另两种方法链接:Windows
驱动开发学习
记录-遍历内核已加载模块之二(使用ZwQuerySystemInformation)Windows
驱动开发学习
记录-遍历内核已加载模块之三(使用AuxKlib
禁锢在时空之中的灵魂
·
2023-10-16 13:52
Windows内核
windows
c++
链表
Windows
驱动开发学习
记录-遍历内核已加载模块之二(使用ZwQuerySystemInformation)
附另两种方法链接:Windows
驱动开发学习
记录-遍历内核已加载模块之一(使用DriverSection)Windows
驱动开发学习
记录-遍历内核已加载模块之三(使用AuxKlib)1.原型NTSTATUSZwQuerySystemInformation
禁锢在时空之中的灵魂
·
2023-10-16 13:52
Windows内核
windows
c++
驱动程序
Windows
驱动开发学习
记录-驱动中获取当前驱动文件路径
1.背景学习驱动期间打算做一个驱动,功能中需要在驱动启动成功后删除注册表中的服务项,关机时再自动添加到注册表启动项以便下次能自动加载驱动。一般情况注册表中项目如下,其中ImagePath为驱动的路径。这个路径是在注册服务时写进入注册表里的,在DriverEntry(PDRIVER_OBJECTpDriverObject,PUNICODE_STRINGpRegistryPath)中,可以根据第二个参
禁锢在时空之中的灵魂
·
2023-10-16 13:51
Windows内核
windows
c++
linux设备
驱动开发学习
--内存和IO访问
一I/O端口1.读写字节端口(8位宽)unsignedinb(unsignedport);voidoutb(unsignedcharbyte,unsignedport);2.读写字端口(16位宽)unsignedinw(unsignedport);voidoutw(unsignedshortword,unsignedport);3.读写长字端口(32位宽)unsignedinl(unsignedp
Rocky_zhm
·
2023-09-08 14:15
驱动开发
驱动开发
【IMX6ULL
驱动开发学习
】24.关于mmap为什么能直接操作LCD显示
记录今天面试中遇到的一个提问,当时没有答上来感谢面试官(弓总)的提问,让我认识到了目前的不足,下午又深入的学习了一下,在这里做一下补充mmap为什么能直接操作LCD显示首先在内核空间申请一段或多段内存作为显存,即Framebuffer然后使用mmap把这段内存的物理地址映射到应用程序的地址空间相当于应用中也有一块内存,这两块内存的虚拟地址不一样(一个虚拟地址是内核空间的,一个是用户空间的),但是对
晨少爱学习
·
2023-09-08 10:20
IMX6ULL
驱动开发
mmap
Linux块设备
驱动开发学习
1.什么是块设备?块设备是针对存储设备的,比如SD卡、EMMC、NANDFlash、NorFlash、SPIFlash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动,块设备驱动相比字符设备驱动的主要区别如下:①、块设备只能以块为单位进行读写访问,块是linux虚拟文件系统(VFS)基本的数据传输单位。字符设备是以字节为单位进行数据传输的,不需要缓冲。②、块设备在结构上是可以进行随机
是东东东啊
·
2023-08-31 05:33
Linux驱动学习
驱动开发
c语言
【IMX6ULL
驱动开发学习
】12.Linux SPI驱动实战:DAC驱动设计流程
基础回顾:【IMX6ULL
驱动开发学习
】10.LinuxI2C驱动实战:AT24C02驱动设计流程_阿龙还在写代码的博客-CSDN博客【IMX6ULL
驱动开发学习
】11.Linux之SPI驱动_阿龙还在写代码的博客
阿龙还在写代码
·
2023-08-26 07:52
Linux驱动开发
驱动开发
学习
imx6ull
linux
嵌入式硬件
【IMX6ULL
驱动开发学习
】11.Linux之SPI驱动
参考:驱动程序开发:SPI设备驱动_spi驱动_邓家文007的博客-CSDN博客目录一、SPI驱动简介1.1SPI架构概述1.2SPI适配器(控制器)数据结构1.2SPI设备数据结构1.3SIP设备驱动1.4接口函数二、SPI驱动模板一、SPI驱动简介SPI驱动框架和I2C驱动框架是十分相似的,不同的是因为SPI是通过片选引脚来选择从机设备的,因此SPI不再需要像I2C那样先进行寻址操作(查询从机
阿龙还在写代码
·
2023-08-26 07:50
Linux驱动开发
驱动开发
学习
linux
嵌入式硬件
交互
【IMX6ULL
驱动开发学习
】10.Linux I2C驱动实战:AT24C02驱动设计流程
前情回顾:【IMX6ULL
驱动开发学习
】09.Linux之I2C框架简介和驱动程序模板_阿龙还在写代码的博客-CSDN博客目录一、修改设备树(设备树用来指定引脚资源)二、编写驱动2.1i2c_drv_read2.2i2c_drv_write2.3
阿龙还在写代码
·
2023-08-25 07:11
Linux驱动开发
驱动开发
学习
linux
嵌入式硬件
交互
【IMX6ULL
驱动开发学习
】09.Linux之I2C框架简介和驱动程序模板
参考:Linux之I2C驱动_linuxi2c驱动_风间琉璃•的博客-CSDN博客目录一、I2C驱动框架简介1.1I2C总线驱动1.2I2C设备驱动二、I2C总线-设备-驱动模型2.1i2c_driver2.2i2c_client2.3I2C设备数据收发和处理三、LinuxI2C驱动程序模板一、I2C驱动框架简介在Linux内核中I2C的体系结构分为3个部分:I2C核心:I2C核心提供了I2C总线
阿龙还在写代码
·
2023-08-25 06:02
Linux驱动开发
驱动开发
学习
【IMX6ULL
驱动开发学习
】23.驱动模块开发之Makefile解析
编写完驱动代码后要编写Makefile,并使用make进行编译,这里举一个最经典的驱动模块的Makefile写法KERN_DIR=/home/me/内核路径PWD?=$(shellpwd)all:make-C$(KERN_DIR)M=$(PWD)modules$(CROSS_COMPILE)gcc-oxxx_appxxx_app.cclean:make-C$(KERN_DIR)M=$(PWD)mo
晨少爱学习
·
2023-08-24 12:24
IMX6ULL
驱动开发
Makefile
Linux
内核
kernel
驱动
驱动开发学习
day2-->字符设备驱动框架
1字符设备驱动框架1.1字符设备定义:是指只能一个字符一个字符的读写的设备,不能数据读取设备中的某一段数据,读取数据需要按照先后顺序。字符设备是面向字节流的常见的字符设备:鼠标键盘串口控制台led设备块设备:是指可以从设备的任意位置读取一定长度数据的设备。常见的块设备:硬盘磁盘u盘光盘sd卡。。。1.2字符设备框架init:{申请设备号(静态申请动态申请)创建一个字符设备--》属性初始化字符设备-
fuyannnn
·
2023-08-24 10:17
驱动开发
学习
p2p
驱动开发学习
驱动1、驱动开发环境完成系统移植的三步:u-boot启动引导程序、内核镜像、文件系统,u-boot启动引导程序最好固化到开发板上,内核镜像通过tftp服务从ubuntu下载,文件系统通过nfs服务从ubuntu共享到开发板,开发板启动计数时按任意键进入u-boot命令模式设置bootcmd和bootargs#setenvserverip192.168.3.120#setenvipaddr192.1
零一138
·
2023-08-20 16:46
1024程序员节
c++
【IMX6ULL
驱动开发学习
】08.马达驱动实战:驱动编写、手动注册平台设备和设备树添加节点信息
目录一、使用设备树1.1修改设备树流程二、手动创建平台设备三、总结(附驱动程序)前情提要:【IMX6ULL
驱动开发学习
】07.驱动程序分离的思想之平台总线设备驱动模型和设备树_阿龙还在写代码的博客-CSDN
阿龙还在写代码
·
2023-08-19 14:30
Linux驱动开发
驱动开发
学习
c语言
嵌入式硬件
linux
交互
【IMX6ULL
驱动开发学习
】07.驱动程序分离的思想之平台总线设备驱动模型和设备树
一、驱动程序分离的思想【IMX6ULL
驱动开发学习
】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客之前编写驱动程序的代码存在不少弊端
阿龙还在写代码
·
2023-08-18 06:34
Linux驱动开发
驱动开发
学习
嵌入式硬件
linux
imx6ull
交互
【IMX6ULL
驱动开发学习
】06.DHT11温湿度传感器驱动程序编写与测试
一、DHT11简介DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有超小体积、极低功耗的特点,使用单根总线与主机进行双向的串行数据传输。DHT11测量温度的精度为±2℃,检测范围为-20℃-60℃。湿度的精度为±5%RH,检测范围为5%RH-95%RH,
阿龙还在写代码
·
2023-08-17 10:32
Linux驱动开发
学习
驱动开发
linux
嵌入式硬件
交互
【IMX6ULL
驱动开发学习
】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)
一、字符设备驱动简介字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如常见的点灯、按键、IIC、SPI、LCD等等都是字符设备,这些设备的驱动就叫做字符设备驱动。Linux驱动基本原理:Linux中一切皆为文件,驱动加载成功后会在/dev目录下生成一个相应的文件,应用程序通过对这个名为/dev/xxx的文件进行相应的
阿龙还在写代码
·
2023-08-17 10:29
Linux驱动开发
驱动开发
学习
linux
嵌入式硬件
【IMX6ULL
驱动开发学习
】04.应用程序和驱动程序数据传输和交互的4种方式:非阻塞、阻塞、POLL、异步通知
一、数据传输1.1APP和驱动APP和驱动之间的数据访问是不能通过直接访问对方的内存地址来操作的,这里涉及Linux系统中的MMU(内存管理单元)。在驱动程序中通过这两个函数来获得APP和传给APP数据:copy_to_usercopy_from_user简单来讲,应用程序与内核/驱动程序在物理空间上是隔离开的,应用程序和驱动程序是不可能互相访问到的。驱动程序里的copy_from_user得到应
阿龙还在写代码
·
2023-08-10 05:42
Linux驱动开发
linux
驱动开发
交互
【IMX6ULL
驱动开发学习
】02.hello驱动程序之cdev注册字符设备驱动程序和设置次设备号
目录编辑一、register_chrdev二、解决方法2.1alloc_chrdev_region函数:注册一系列字符设备编号2.2cdev_init函数:初始化cdev结构体2.3cdev_add函数:将字符设备添加到系统中三、驱动程序一、register_chrdevmajor=register_chrdev(0,"100ask_hello",&hello_drv);【IMX6ULL驱动开发学
阿龙还在写代码
·
2023-08-09 11:17
Linux驱动开发
驱动开发
学习
linux
【IMX6ULL
驱动开发学习
】03.Linux驱动开发之GPIO子系统、中断、定时器
一、GPIO子系统1.1引脚编号在硬件上如何确定GPIO引脚?它属于哪组GPIO?它是这组GPIO里的哪个引脚?需要2个参数。但是在Linux软件上,可以使用引脚编号来表示。以100ask_imx6ull为例在开发板上执行如下命令查看已经在使用的GPIO状态:可以看到在Linux系统中可以使用编号来访问某个GPIO。cat/sys/kernel/debug/gpio1.2基于sysfs操作引脚以1
阿龙还在写代码
·
2023-08-09 11:17
Linux驱动开发
驱动开发
学习
【IMX6ULL
驱动开发学习
】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)
目录一、驱动程序编写流程二、代码编写2.1驱动程序hello_drv.c2.2测试程序2.3编写驱动程序的Makefile三、上机实验3.1NFS挂载3.2测试示例一、驱动程序编写流程构造file_operations结构体在里面填充open/read/write/ioctl成员注册file_operations结构体intmajor=register_chrdev(0,"name",&fops)
阿龙还在写代码
·
2023-08-09 11:45
Linux驱动开发
驱动开发
学习
linux
【IMX6ULL
驱动开发学习
】22.IMX6ULL开发板读取ADC(以MQ-135为例)
IMX6ULL一共有两个ADC,每个ADC都有八个通道,但他们共用一个ADC控制器1.设备树在imx6ull.dtsi文件中已经帮我们定义好了adc1的节点部分信息adc1:adc@02198000{compatible="fsl,imx6ul-adc","fsl,vf610-adc";reg=;interrupts=;clocks=;num-channels=;clock-names="adc"
晨少爱学习
·
2023-08-03 11:56
IMX6ULL
驱动开发
IMX6ULL
ADC
Linux驱动
mq135
【IMX6ULL
驱动开发学习
】21.Linux驱动之PWM子系统(以SG90舵机为例)
1.设备树部分首先在imx6ull.dtsi文件中已经帮我们定义好了一些pwm的设备树节点,这里以pwm2为例pwm2:pwm@02084000{compatible="fsl,imx6ul-pwm","fsl,imx27-pwm";reg=;interrupts=;clocks=,;clock-names="ipg","per";#pwm-cells=;};我们要在设备树(.dts)文件中引用和
晨少爱学习
·
2023-08-02 06:00
IMX6ULL
驱动开发
学习
linux
pwm
sg90
imx6ull
驱动开发学习
之字符设备同时点亮三盏LED灯
head.h#ifndef__HEAD_H__#define__HEAD_H__#definePHY_LED1_RCC0X50000A28//PE10#definePHY_LED1_MODER0X50006000#definePHY_LED1_ODR0X50006014//PF10#definePHY_LED2_MODER0X50007000#definePHY_LED2_ODR0X5000701
顾苏洋1990
·
2023-07-26 11:47
驱动开发
学习
stm32
系统移植
Linux系统开发字符设备
Linux
驱动开发学习
笔记之Ubuntu入门
VMwareStation下的USB设备使用先说总体思路,总共有两种思路。第一种在Vmware右下角切换。第二种在首选项中更改第一种在声响标志的右边就是切换标志,右键就可切换。第二种在首选项中更改
机甲实验室
·
2023-07-26 11:10
大数据
【IMX6ULL
驱动开发学习
】16.睡眠机制_poll机制_fasync异步通知(按键控制LED)
学完了休眠唤醒机制、poll机制、异步通知、定时器、tasklet、工作队列、mmap、input子系统后,该沉淀沉淀了一、睡眠机制案例:APP程序读取按键值-睡眠机制(阻塞或非阻塞)1.等待队列头创建staticDECLARE_WAIT_QUEUE_HEAD(key_waitqueue);2.等待队列wait_event_interruptible(wq,condition);等待wq队列,当c
晨少爱学习
·
2023-07-15 20:39
IMX6ULL
驱动开发
imx6ull
poll
fasync
异步通知
睡眠机制
非阻塞
【IMX6ULL
驱动开发学习
】19.mmap内存映射
mmap将一个文件或者其它对象映射进内存,使得应用层可以直接读取到驱动层的数据,无需通过copy_to_user函数可以用于像LCD这样的外设,需要读写大量数据的一、应用层mmap用法:用open系统调用打开文件,并返回描述符fd.用mmap建立内存映射,并返回映射首地址指针start.对映射(文件)进行各种操作,显示(printf),修改(strcpy、memncpy、sprintf、直接修改等
晨少爱学习
·
2023-07-14 04:46
IMX6ULL
驱动开发
imx6ull
mmap
内存映射
Linux驱动
驱动
【IMX6ULL
驱动开发学习
】20. input子系统(按键实现ls命令)
一、input子系统相关结构体二、input子系统实例实现:staticstructinput_dev*key_input;staticvoidmy_timer_handle(unsignedlongdata){....../*5.input子系统上报事件*///第三个参数要变,如果两次上报value相同,则input子系统不会响应input_report_key(key_input,key_gp
晨少爱学习
·
2023-07-14 04:46
IMX6ULL
驱动开发
input子系统
input
Linux驱动
imx6ull
驱动
上一页
1
2
3
下一页
按字母分类:
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
其他