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
驱动开发
的“三巨头”之一,Linux内核的启动流程要比uboot复杂的多,涉及到的内容也更多。
混分巨兽龙某某
·
2023-07-14 04:47
Linux驱动开发
Linux内核
嵌入式
驱动开发
【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
驱动
【IMX6ULL
驱动开发
学习】18.中断下半部(tasklet、工作队列、中断线程化)
下图表述了Linux内核的中断处理机制,为了在中断执行时间尽量短和中断处理需完成的工作尽量大之间找到一个平衡点,Linux将中断处理程序分解为两个半部:顶半部(TopHalf)和底半部(BottomHalf)。顶半部:用于完成尽量少的比较紧急的功能,它往往只是简单地读取寄存器中的中断状态,并在清除中断标志后就进行“登记中断”的工作。“登记中断意味着将底半部处理程序挂到该设备的底半部执行队列中去。这
晨少爱学习
·
2023-07-14 04:45
IMX6ULL
驱动开发
中断
tasklet
工作队列
中断线程化
imx6ull
中断下半部
【IMX6ULL
驱动开发
学习】15.IMX6ULL
驱动开发
问题记录(sleep被kill_fasync打断)
发现问题的契机:学习异步通知的时候,自己实现一个功能:按键控制蜂鸣器,同时LED灯在闪烁结果:LED好像也同时被按键控制了最后调试结果发现:应用层的sleep被驱动层的kill_fasync打断,所以sleep没有执行完就重新进入下一次循环了修改代码后解决该问题解决逻辑就是:既然休眠函数会被打断,则让每次休眠的时间短一点解释:sleep函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,
晨少爱学习
·
2023-07-14 04:15
IMX6ULL
驱动开发
学习
IMX6ULL
fasync
【IMX6ULL
驱动开发
学习】17.内核定时器(按键消抖)
1.内核定时器初始化setup_timer(structtimer_list*timer,void(*function)(unsignedlong),unsignedlongdata);timer:定时器结构体structtimer_listfunction:定时器处理函数data:参数2.设置定时器的超时时间timer.expires=0;3.注册内核定时器,将定时器加人到内核动态定时器链表中a
晨少爱学习
·
2023-07-14 04:15
IMX6ULL
驱动开发
定时器
内核定时器
按键消抖
imx6ull
Linux驱动
驱动开发
作业5
题目使用驱动代码实现如下要求:使用驱动通过阻塞io模型读取number变量的值number是内核驱动中的一个变量number的值随着按键按下而改变(按键中断)例如number=0按下按键number=1,再次按下按键number=0在按下按键的时候需要同时将led1的状态取反>驱动中需要编写字符设备驱动驱动中需要自动创建设备节点在这个驱动需要的所有设备信息放在设备树的同一个节点中Repo设备树文件
zjuthqy
·
2023-07-14 04:43
华清远见
驱动开发
Linux--
基础IO(2)
目录1.缓冲区1.1概念1.2C缓冲区1.3刷新策略1.3.1三种刷新方式1.3.2系统调用的问题1.缓冲区1.1概念执行下列代码:intmain(){close(1);//重定向intfd=open("log.txt",O_CREAT|O_WRONLY,0644);printf("hello\n");return0;}查看log.txt发现里面打印了hello,但是如果把fd关闭:intmain
久菜
·
2023-07-14 02:43
操作系统
linux
1024程序员节
Linux--
权限管理
学习目标1.Linux权限管理1.1用户分类2.用户类型和访问权限2.1理解什么是权限3文件类型和权限操作3.1修改权限3.2关于root3.3更改文件拥有者3.4修改组权限3.5目录权限3.5.1粘滞位3.6关于目录权限的总结3.7默认权限3.7.1自定义默认权限1.Linux权限管理1.1用户分类Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以在linux系统下做任何事情
久菜
·
2023-07-14 02:13
操作系统
linux
RK3399
驱动开发
_ 05 - Android系统中debug串口输出乱码及波特率设置
文章目录前言一、串口输出乱码及其原因二、串口波特率修改1.uboot修改2.内核中设备树dts修改3.重新编译并烧录三、串口输出测试总结前言在RK3399平台开发过程中,串口debug是一种不错的调试手段。但很多时候串口在打印过程中会出现正常输出一段时间后,莫名出现打印乱码情况。本文旨在解决设备启动后,串口正常打印一段时间后出现乱码的问题。系统:Android8.1内核:Kernel4.4.167
chenkanuo
·
2023-07-14 00:04
驱动开发
android
RK3399
驱动开发
_ 06 - wk2124 串口
驱动开发
文章目录前言一、WK21241.概述2.源码下载二、Linux驱动1.驱动简介2.驱动源码修改3.内核中设备树dts修改4.驱动模块编译三、测试1.重新编译并烧录2.编译并加载驱动模块3.查看注册到内核的串口设备节点前言在RK3399平台开发过程中,经常需要用到串口扩展芯片。本文介绍一款SPI转串口的扩展芯片WK2124。一、WK21241.概述WK2124是SPI接口的4通道UART器件,实现了
chenkanuo
·
2023-07-14 00:04
驱动开发
RK3399
驱动开发
_ 04 - Android系统中通过fdt文件系统反编译查看设备中真实生效的设备树配置信息
文章目录前言一、设备树保存在文件系哪里?二、文件系统设备树dts编译与反编译2.1设备树原始dtb格式2.2从设备中获取目标文件fdt2.3在ubuntu系统中将fdt反编译成dts2.3.1安装反编译dtc工具2.3.2使用安卓系统自带的dtc工具2.3.3将fdt反编译成dts2.3.4从文件系统反编译设备树dts2.4.在ubuntu系统中将dtb编译成dts三、重要补充前言在根文件系统中查
chenkanuo
·
2023-07-14 00:34
驱动开发
android
C++软件工程师的发展前景如何?老程序员:早知道当年就学C++了
目前国内的嵌入式开发非常火,而C++主要用于底层的嵌入式开发、
驱动开发
等,也用于WINCE等嵌入式系统的应用软件开发。可以说C++软件工程师发展前景还是不错的,下面就给大家具体介绍一下。
哪有岁月静好
·
2023-07-13 23:17
Linux--
查看常驻进程:ps
进程分为瞬时进程和常驻进程瞬时进程:瞬间完成从加载到内存、显示在输出设备、退出过程intmain(){printf("helloworld!\n");return0;}常驻进程:一直在内存中intmain(){while(1){printf("helloworld!\n");sleep(1);}return0;}根据我的文件名,显示我想查看的常驻进程相关信息:psaxj|head-1&&psaxj
一念男
·
2023-07-13 23:01
Linux
linux
服务器
运维
敏捷整洁之道 -- 第五章 技术实践
敏捷整洁之道--第五章技术实践1.测试
驱动开发
2.重构3.简单设计4.结对编程全文学习于《敏捷整洁之道》作者:[美]罗伯特·C.马丁译者:申健何强罗涛1.测试
驱动开发
测试
驱动开发
类似于复式记账:复式记账
S_numb
·
2023-07-13 16:56
CLeanCode
驱动开发
基于 Qt Quick + websocket 的 Web 扫描仪
驱动开发
基于QtQuick+websocket的Web扫描仪
驱动开发
核心需求在浏览器中点击扫描按钮,驱动扫描仪进行扫描,接收图片保存到ftp指定路径。
AaronZZH
·
2023-07-13 16:23
编程语言
qt
websocket
前端
6.20
驱动开发
作业
通过GPIO子系统编写LED驱动,应用程序控制LED灯亮灭head.h#ifndef__HEAD_H__#define__HEAD_H__//封装GPIO组寄存器结构体typedefstruct{unsignedintMODER;unsignedintOTYPER;unsignedintOSPEEDR;unsignedintPUPDR;unsignedintIDR;unsignedintODR;}
郏公柳易袁
·
2023-06-24 02:22
笔记
驱动开发
6.23
驱动开发
作业
epoll实现并发服务器代码#include#include#include#include#include#include#include#include#include#include#include#include#include#defineERR_MSG(msg)do{\fprintf(stderr,"line:%d",__LINE__);\perror(msg);\}while(0)#
郏公柳易袁
·
2023-06-24 02:22
数学建模
java
开发语言
6.22
驱动开发
作业
字符设备驱动内部实现原理1.字面理解解析:字符设备驱动的内部实现有两种情况:情况1.应用层调用open函数的内部实现:open函数的第一个参数是要打开的文件的路径,根据这个路径虚拟文件系统层VFS可以找到这个文件在文件系统中唯一的标识,也就是inode号,通过inode号作为索引可以找到储存在内核中的structinode结构体,structinode结构体内部储存着structcdev结构体和储
郏公柳易袁
·
2023-06-24 02:21
驱动开发
驱动开发
:内核远程线程实现DLL注入
在笔者上一篇文章《
驱动开发
:内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过NtCreateThreadEx这个内核函数实现注入
王 瑞
·
2023-06-23 14:35
《Windows
内核安全编程技术实践》
驱动开发
汇编
内核安全
C语言
驱动注入
信息安全
软件安全
驱动开发
:内核RIP劫持实现DLL注入
本章将探索内核级DLL模块注入实现原理,DLL模块注入在应用层中通常会使用CreateRemoteThread直接开启远程线程执行即可,驱动级别的注入有多种实现原理,而其中最简单的一种实现方式则是通过劫持EIP的方式实现,其实现原理可总结为,挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,并把相关的指令机器码和数据拷贝到里面去,然后直接修改目标进程EIP使其强行跳转到我们拷贝进去的相关
王 瑞
·
2023-06-23 12:10
《Windows
内核安全编程技术实践》
驱动开发
汇编
C语言
内核安全
系统安全
驱动开发
:内核中进程与句柄互转
在内核开发中,经常需要进行进程和句柄之间的互相转换。进程通常由一个唯一的进程标识符(PID)来标识,而句柄是指对内核对象的引用。在Windows内核中,`EProcess`结构表示一个进程,而HANDLE是一个句柄。为了实现进程与句柄之间的转换,我们需要使用一些内核函数。对于进程PID和句柄的互相转换,可以使用函数如`OpenProcess`和`GetProcessId`。OpenProcess函
lyshark
·
2023-06-23 10:00
驱动开发
6.22作业
字符设备驱动内部实现原理解析以及分布注册流程和代码示例1、内部实现原理:在用户层使用open函数打开一个文件的时候,这个文件会有一个对应的inode号,根据这个inode号,在内核中会有一个structinode类型的空间,用于保存该文件的相关信息。在structinode结构体内部找到字符设备驱动对象,字符设备驱动对象结构体内部找到相应的结构体操作方法,通过虚拟文件系统层回调相应的操作方法。2、
weixin_57486404
·
2023-06-23 07:07
驱动开发
ASP.NET MVC 介绍
如果以前用ASP.NETWEBFORM开发,来学习ASP.NETMVC的话,那么请先忘记事件
驱动开发
的模式,ASP.NETWEBFORM开发的过程是,先创建一个页面,在设计页面上,从工具栏中直接拓一个按钮出来
Dino
·
2023-06-23 05:55
驱动开发
--LED设备树
//led.c#include#include#include#include#include#defineLED_ON_IO('l',1)#defineLED_OFF_IO('l',0)structcdev*cdev;intgpiono1;intgpiono2;intgpiono3;charkbuf[128]={0};structdevice_node*dnode;structclass*cls
dsswxzy
·
2023-06-23 05:07
嵌入式学习
驱动开发
驱动开发
--字符驱动设备2
字符设备驱动1.定义以字节流的形式进行访问,且只能顺序访问的设备,针对字符设备编写的驱动叫做字符设备驱动2.字符设备框架用户空间通过IO函数如open、read、write、close等函数接口,调用内核空间中的字符设备驱动函数中的用户自定义的open、read、write、close等函数,通过内核驱动函数去操控相应的字符设备。当设备驱动注册进内核时,内核会分配给注册的设备驱动一个编号,每注册一
dsswxzy
·
2023-06-23 05:34
嵌入式学习
驱动开发
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驱动中最基本的一类设备驱动,字符设备就是一个字节,按照字节进行读写操作设备,读写数据是分先后顺序的。比如我们常见的点灯、按键、IIC、SPI、LCD等都是字符设备,这些设备的驱动就叫做字符设备驱动。在Linux中开发一般只能是用户态,也就是用户只能编写应用程序,但是要作用于内核,那么就需要了解Linux中应用程序是如何调用内核中的驱动程序的,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.1分配设备描述结构1.2初始化设备描述结构1.3.注册设备描述结构1.4.硬件初始化二、实现设备操作2.1open2.2read2.3.write2.4.lseek2.5close2.6参数分析三、驱动注销字符驱动相关概念解析1设备描述结构在任何一种驱动模型,字符、网卡驱动等,设备都会用内核的一种结构来描述。我们的字符设备在内核中使用structcdev来描述
李嘉图Y
·
2023-06-22 19:42
嵌入式相关
字符设备
驱动开发
的流程
目录1.字符设备驱动简介2.字符设备
驱动开发
步骤2.1驱动模块的加载和卸载2.2字符设备注册与注销2.3实现设备的具体操作函数3.linux设备号3.1设备号的组成3.2设备号的分配3.2.1静态分配设备号
猪突猛进进进
·
2023-06-22 19:41
驱动开发bsp
驱动开发
字符设备
驱动开发
流程详解
字符驱动相关概念解析一、驱动初始化1.1分配设备描述结构1.2初始化设备描述结构1.3.注册设备描述结构1.4.硬件初始化二、实现设备操作2.1open2.2read2.3.write2.4.lseek2.5close2.6参数分析三、驱动注销**字符驱动相关概念解析1设备描述结构*在任何一种驱动模型,字符、网卡驱动等,设备都会用内核的一种结构来描述。我们的字符设备在内核中使用structcdev
蜗蜗前行
·
2023-06-22 19:41
LINUX驱动基础解析
驱动开发
字符驱动
驱动流程
陈庙红
Linux驱动框架之i2c驱动框架解析
三、Linux下的I2C
驱动开发
思路目前,在Linux下开发i2c驱动,主要有两种途径:
陈子陌
·
2023-06-22 18:16
Linux驱动开发笔记
I2C
【IIC子系统】IIC驱动框架解析(一)
文章目录I2C设备
驱动开发
I2C设备驱动的三种匹配方式(1)通用的匹配方式:OFstylematch(2)电源管理专用的匹配方式:ACPIstylematch(3)I2C专用的匹配方式:I2Cidtable
liefyuan
·
2023-06-22 18:14
嵌入式Linux驱动
驱动开发
全志V3S嵌入式
驱动开发
(编译器升级到7.5)
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]
】看过我们文章的朋友都知道,前面为了做v3s的驱动,对linuxkernel进行了两次升级。第一次升级是从4.10.y升级到4.14.y,另外一次升级是从4.14.y升级到5.2.y。这中间最主要的原因,就是为了驱动适配的需要,更新的内核可以对硬件驱动有更好的支持,架构也更合理。如果说内核升级尚且可以理解
嵌入式-老费
·
2023-06-22 13:37
全志soc嵌入式开发
驱动开发
《RT-Thread设备
驱动开发
指南》—— 基础篇之UART设备
驱动开发
RT-Thread设备
驱动开发
-第2章UART设备
驱动开发
UART介绍UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发传输器)也常被称为串口。
YZRDEG
·
2023-06-22 10:54
驱动开发
Linux内核态内存泄露检测工具——Kmemleak
我的圈子:高级工程师聚集地我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux
驱动开发
和系统开发,曾就职于世界500强企业!创作理念:专注分享高质量嵌入式文章,让大家读有所得!
卍一十二画卍
·
2023-06-22 08:43
Linux驱动开发
linux
驱动开发
Linux驱动开发
Linux调试工具
内存泄露检测
linux pinctrl 和 gpio 子系统 LED驱动
pinctrl和gpio子系统借助pinctrl和gpio子系统来简化GPIO
驱动开发
pinctrl子系统pinctrl子系统(drivers/pinctrl)的主要工作内容:①、获取设备树中pin信息
东方欲晓w
·
2023-06-22 03:26
Linux
RAM
linux
驱动开发
运维
嵌入式 Linux LED
驱动开发
实验
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#defineLEDBASE_MAJOR200//主设备号#defineLEDBASE_NAME"LEDBASE"//主设备号#defineLEDOFF0#defineLEDO
行者甲
·
2023-06-21 18:22
Linux驱动开发
字符驱动框架
驱动开发
linux
运维
驱动开发
:内核注册表增删改查
注册表是Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息,注册表是一个巨大的树形结构,无论在应用层还是内核层操作注册表都有独立的API函数可以使用,而在内核中读写注册表则需要使用内核装用API函数,如下将依次介绍并封装一些案例,实现对注册表的创建,删除,更新,查询等操作。
lyshark
·
2023-06-21 09:00
uboot下UCLASS框架详解---结合项目工作中spi master和flash
驱动开发
文章目录一、综述二、UCLASS架构解析2.1uclass2.2udevice2.3uclassdriver2.4driver2.4.1spimasterdriver三、uboot代码解析3.1DM的初始化3.2spinorflash设备识别3.3设备树内容3.4.config配置3.5spi读写测试四、其他相关链接1、SPI协议详细总结附实例图文讲解通信过程2、Linux下spi网卡dm9051
快乐的学习
·
2023-06-21 06:25
驱动
驱动开发
Robot Framework
初识RF官网介绍:RobotFramework是用于验收测试和验收测试
驱动开发
(ATDD)的通用测试自动化框架。它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。
孤星Erwin
·
2023-06-21 03:14
Linux驱动入门——基础概念
文章目录Linux内核简介Unix的历史Linux简介操作系统和内核简介单内核与微内核设计之比较小结设备驱动简介驱动程序的角色划分内核设备和模块的分类安全问题版权条款Linux
驱动开发
概述驱动程序概述设备驱动程序的作用设备驱动的分类
Jacky~~
·
2023-06-20 22:38
linux
unix
驱动开发
系统
驱动开发
day7
led.h//LED灯1:PE102:PF103:PE8#defineLED_ON_IOW('l',1,int)#defineLED_OFF_IOW('l',0,int)test.c#include#include#include#include#include#include#include#include#include"led.h"intmain(intargc,charconst*argv
幼稚幼稚鬼
·
2023-06-20 21:25
菜鸟级
驱动开发
经验分享
彻底了解TDD、ATDD、BDD&RBE
转]https://blog.csdn.net/wangjianan7357/article/details/81592109在目前比较流行的敏捷开发模式(如极限编程、Scrum方法等)中,推崇“测试
驱动开发
我把眼睛眯起来
·
2023-06-20 18:01
Android中的测试(一)
文章目录一、前言二、Android测试描述三、项目结构四、测试方式五、测试结果六、参考链接一、前言一般在项目开发中测试
驱动开发
(TDD)在保障程序开发质量方面以及避免返工方面有较高的效果。
Mr_Tony
·
2023-06-20 15:02
测试
android
单元测试
java
驱动开发
DAY 4
分步实现字符设备驱动PART1.分析open函数的调用流程用户层中进行打开文件操作{调用intopen(constchar*pathname,intflags);},虚拟文件系统层调用sys_open{假设打开字符设备节点}:1.根据open传递的文件路径找到文件的inode结构体open参数中的pathname为文件路径,Linux中存在于文件系统中的文件拥有inode号作为文件系统中的唯一标识
OutOfMemoryError:
·
2023-06-20 14:51
驱动开发
开发语言
linux
驱动开发
:基于事件同步的反向通信
在之前的文章中LyShark一直都在教大家如何让驱动程序与应用层进行正向通信,而在某些时候我们不仅仅只需要正向通信,也需要反向通信,例如杀毒软件如果驱动程序拦截到恶意操作则必须将这个请求动态的转发到应用层以此来通知用户,而这种通信方式的实现有多种,通常可以使用创建Socket套接字的方式实现,亦或者使用本章所介绍的通过事件同步的方法实现反向通信。基于事件同步方式实现的通信需要用的最重要函数IoCr
王 瑞
·
2023-06-20 14:20
《Windows
内核安全编程技术实践》
驱动开发
内核安全
汇编
c++
信息安全
驱动通信
自定义设备扩展
Linux
驱动开发
| 驱动世界里的宏伟建筑
哈喽,我是老吴。是否每一个上进的人都会觉得自己还可以再努力一点?事情到了最后,只要没达成目的,总能把失败的原因归为"没有再努力一点"。但是,对努力的最大错误认知就是:时间越长,过程越痛苦,代表我越努力。想一想,是否有更合理的努力方式?以下是正文:一、什么是devicemodel?二、device model 的 3 个核心概念三、bus、device、driver是如何关联的?四、bus、devi
·
2023-06-20 10:46
嵌入式嵌入式linux驱动
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
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
其他