驱动学习
文章平均质量分 66
StarLish0715
以后,没有结果的事,就不开始了。
展开
-
Known Hardware Issues(multi-touch devices->a single touch 'mouse' )
http://support.touch-base.com/Documentation/50231/Known-Hardware-Issuesmice okreason list:Known Hardware IssuesThis document lists any known issues or configuration considerations.General issues...转载 2020-04-10 12:54:44 · 457 阅读 · 0 评论 -
QT环境搭建(1):tslib移植(not a touchscreen)
https://blog.csdn.net/qq_40732350/article/details/865077851、下载tslib的源码tslib的安装包:https://pan.baidu.com/s/1WC90hbxE1Y8f4DhhEC9SMQ2.解压 # tar -jxvf tslib_1.4.tar.bz3.配置# cd tslib# ./autogen.sh //如果...转载 2020-04-10 12:21:03 · 385 阅读 · 0 评论 -
Linux Multi-Touch
http://blog.sina.com.cn/s/blog_5375a6c60100ngpz.html多点触摸(Multi-touch,MT)协议 Copyright (C) 2009 Henrik Rydberg<rydberg[AT]euromail[DOT]se> 翻译 &nbs...转载 2020-04-10 12:17:21 · 467 阅读 · 0 评论 -
X Input 驱动开发教程
http://blog.sina.com.cn/s/blog_5375a6c60100ngq1.htmlX Input驱动教程(本文为本人翻译自http://www.x.org/wiki/Development/Documentation/XorgInputHOWTO,引用时无需申明译者,但请务必指明原始英文文档位置)这是关于如何为X开发输入驱动的教材. 读者必须具备C知识, 具备 X ...转载 2020-04-10 10:55:01 · 1021 阅读 · 0 评论 -
ZYNQ-ZedBoard USB HOST问题二探(gpio端口号详解)
https://www.cnblogs.com/qiantuo1234/p/6665638.html 上一次讲到USB不启动问题是由与Vivado工程中的EMIO引脚未正确配置造成的,那么软件上又是如何使用这个引脚的呢?首先,Xilinx提供的Linux 开发包中已经包含了gpio的驱动和sysfs进行配套,并在设备树文件中对OTG-RESETN进行了初始化配置和声明。其次,在实际使...转载 2020-04-08 12:36:38 · 1190 阅读 · 0 评论 -
Linux ——usb触摸屏驱动 - usbtouchscreen
https://blog.csdn.net/hanglinux/article/details/45576117驱动编译: 目前的kernel中都是自带了usbtouchscreen驱动的,我的版本3.1.10源码位于:/kernel/drivers/input/touchscreen/usbtouchscreen.c从这个路径可以看出所属驱动分支,我...转载 2020-04-08 12:35:13 · 3164 阅读 · 1 评论 -
Simple framebufferを有効にする
http://se.hatenablog.jp/entry/2014/11/19/081514Linux上からディスプレイに出力する方法を調べているとSimple framebufferという物がある様なのでqemu上で試したメモ。qemuは前回のqemu2svの環境を流用。qemu側の変更点hw_if.cからソケット通信を削除して単体で動作する様に修正ベースアドレスの変更qemu-...转载 2020-03-27 14:41:50 · 427 阅读 · 0 评论 -
ZYBO26 (Linux + simple framebuffer でX Windowを動かすまで)
ZYBOでLinuxを動かし、その上で X Windowを立ち上げ X アプリを動作させることが出来た。以下はgnome-terminalとgnome-system-monitorを起動しgnome-screenshotで撮ったscreenshotだ。これまでDFT IPのスペクトル表示等、ZYBOのHDMIを使うデザインを作成してきたが、これらはフレームバッファを使わずデータをリアルタイ...转载 2020-03-27 14:23:48 · 733 阅读 · 0 评论 -
Xilinx PCIe axi memory mapped(XPDMA)手册笔记
最近新调试的一个项目,用的PS端芯片只支持memory mapped模式,原来的XDMA的PCIE不能用,连Link都找不到,只能重新学习这个新的IP核的使用。a). 官方手册地址链接:https://china.xilinx.com/support/documentation/ip_documentation/axi_pcie/v2_8/pg055-axi-bridge-pcie.pdfb)...转载 2019-09-27 16:50:59 · 6097 阅读 · 1 评论 -
Visual Studio调试dump文件(Windows/C/C++)
https://baike.baidu.com/item/memory.dmp/5373528如何调试MEMORY.DMP 用WinDBG调试,调试方法如下:1、启动 windbg, windbg界面: file->symbol file path (ctrl+s) 输入:“SRV*c:\temp*http://msdl.microsoft#com/download/symbols”(不...转载 2019-03-14 16:22:30 · 1759 阅读 · 0 评论 -
一张图教你如何使用debugview
一张图教你如何使用debugview1.捕捉Release模式的Win32程序输出的调试信息,请选中“Capture Global Win32”选项2. 只有调用了WinDebug中的方法输出的Debug打印信息才能被Debugview捕获...转载 2019-02-18 09:28:12 · 2983 阅读 · 0 评论 -
DebugView 调试入门
https://blog.csdn.net/jiankunking/article/details/44984487软件下载地址:点击打开链接debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。支持Debug、Release模式编译的程序(即该软件捕获的是exe直接运行时,抛出的信息,而不是Visual Studio调试时的),甚至支持...转载 2019-02-18 09:27:22 · 7703 阅读 · 0 评论 -
windbg 常用命令详解
解析错误:kd> !analyze -v一、1、 !address eax查看对应内存页的属性 2、 vertarget 显示当前进程的大致信息3 !peb 显示process Environment Block 4、 lmvm 可以查看任意一个dll的详细信息例如:我们查看cyusb.sys的信息5.reload !s...转载 2019-02-22 11:07:44 · 9730 阅读 · 0 评论 -
一个命令永久禁用Win10驱动程序强制签名
在Win10中,未经签名的驱动程序不能使用,这会导致部分硬件出现问题,此时就需要手动关闭Windows10的默认驱动验证。好在这个永久关闭验证的方法很简单,只需一个命令就可以搞定。▲要关闭强制验证只需执行第一个命令步骤如下:1、在开始按钮点击右键,选择“命令提示符(管理员)”2、执行以下命令(复制后,在命令提示符中单击鼠标右键即可完成粘贴,然后按回车键执行):bcdedit.exe /s...转载 2018-08-30 12:39:14 · 12828 阅读 · 3 评论 -
IRP数据的传输方式,对应彭荣
Windows 操作系统家族支持三种数据传输机制: 缓存IO(BufferedI/O)在内核模式上操作对用户数据的拷贝 直接IO(Direct I/O)通过内存描述元列表(MDL, Memory DescriptorList)以及内核模式的指针直接访问用户数据 非上述方法IO(Method neither I/O,既非缓存,也非直接IO)通过用户模式的指转载 2017-09-05 16:45:21 · 791 阅读 · 0 评论 -
windbg 常用命令详解
一、1、 !address eax查看对应内存页的属性 2、 vertarget 显示当前进程的大致信息3 !peb 显示process Environment Block 4、 lmvm 可以查看任意一个dll的详细信息例如:我们查看cyusb.sys的信息5.reload !sym 加载符号文件6、 lm转载 2017-07-31 16:10:51 · 845 阅读 · 0 评论 -
调试通用驱动程序 - 分步(Echo 内核模式)
本文档已存档,并且将不进行维护。调试通用驱动程序 - 分步(Echo 内核模式)本实验中引入了 WinDbg 内核调试器。 WinDbg 用于调试 Echo 内核模式的示例驱动程序代码。实验目标本实验包含以下练习:引入调试工具、介绍常见调试命令、阐述断点的用法,以及演示调试扩展的用法。在本实验中,使用实时内核调试连接,以了解以下内容:使用 Windows 调转载 2017-05-26 11:28:48 · 2819 阅读 · 0 评论 -
Bug Check 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
The DRIVER_VERIFIER_IOMANAGER_VIOLATION bug check has a value of 0x000000C9. This is the bug check code for all Driver VerifierI/O Verification violations.Important This topic is for programmers转载 2017-05-26 11:33:17 · 2053 阅读 · 0 评论 -
调试内存泄漏 - DRIVER_VERIFIER_DETECTED_VIOLATION (C4): 0x62
调试内存泄漏 - DRIVER_VERIFIER_DETECTED_VIOLATION (C4): 0x62当驱动程序上载而没有首先释放其所有池分配时,驱动程序验证程序生成 Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION,并具有 0x62 的参数值 1。未释放的内存分配(也称为内存泄漏)是操作系统性能降低的一个常见原因。这些转载 2017-05-26 11:55:05 · 3160 阅读 · 0 评论 -
中断处理 - IoConnectInterrupt和中断处理例程
版权声明:本文采用【DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE】协议由于PCI设备的多样化,而系统的中断数量是有限的。所以采用多个设备共用一个中断号。在获取到中断后,操作系统会询问这条中断线上的所以设备。设备通过查询中断寄存器就可以知道是不是自己的中断,如果不是则在中断处理例程中返回FALSE,如果是则处理并返回TRUE。在操作系转载 2017-05-26 12:07:50 · 774 阅读 · 0 评论 -
IRQL 中断请求级别
什么是IRQL?IRQL是Interrupt ReQuestLevel,中断请求级别。处理器在一个IRQL上执行线程代码。IRQL是帮助决定线程如何被中断的。在同一处理器上,线程只能被更高级别IRQL的线程能中断。每个处理器都有自己的中断IRQL。我们经常遇见的有四种IRQL级别。“Passive”, “APC”, “Dispatch” and “DIRQL”.“DriverEntry转载 2017-05-26 13:52:55 · 889 阅读 · 0 评论 -
IRQL APC_LEVEL and APC
这篇文章主要说明俩个问题:1. 在APC_LEVEL上,Thread为何不能被suspend。 2. 在 APC_LEVEL上,可以使用分页内存的原因。 关于线程如何响应APC,要看是何种APC,请参考MSDN文档。我在看微软提供的资料的时候,发现俩个比较难懂的问题,把它们单独拿出来讨论。 首先看中断请求级:IRQL(Interrupt Request Levels)转载 2017-05-26 14:02:27 · 831 阅读 · 0 评论 -
ISR 中断服务例程
原文链接:http://blog.csdn.net/keepdoingit/article/details/5122702 当硬件设备的中断信号发生后, IRQL会提升至相应的DIRQL级别, 操作系统会调用相应的中断服务例程. 如何在驱动程序中写中断处理程序呢?当硬件启动的时候,会有一个IRP_MN_START_DEVICE包发送给驱动程序, 在这个包中包含中断信息, 驱动程序调用I转载 2017-05-26 14:04:50 · 2363 阅读 · 0 评论 -
StartIO例程
原文链接:http://blog.csdn.net/keepdoingit/article/details/5113673 为什么要有StartIO例程? 如果你开发了一个串口设备,并为其开发了一个驱动程序, 还有一个应用程序。用户使用这个应用程序来操作这个串口设备,进行读取或者写信数据。 现在你可以会面临这样一个问题,即如果你的应用程序使用多线程来同时对这个设备进行读取数据转载 2017-05-26 14:06:05 · 853 阅读 · 0 评论 -
PCIe驱动开发-驱动加载
上篇中,我们探讨了PCIe设备是如何在Bios中被初始化的,Bios中各种准备工作做好后,就开始引导装载操作系统,系统的控制权移交给操作系统,操作系统中也要对系统中各PCI设备进行扫描以及初始化(和上文中提到的Bios对PCI设备的枚举和配置一样),事实上,早期的操作系统也是通过Bios调用的方式来获取系统PCI设备信息的,只不过现在变成亲自动手了。总体来说,操作系统对PCI的枚举以及初始化的过程转载 2017-05-26 14:15:17 · 2442 阅读 · 2 评论 -
PCIe驱动开发-设备打开/关闭
上篇中,我们从驱动层面上探讨了系统是如何为我们PCIe设备分配资源以及如何启动它的。现在的问题是,我们的上层软件如何才能对我们的设备进行访问呢。这其中首先涉及的就是设备的开打与关闭。1:设备打开针对本次PCI设备,上层程序打开设备函数的具体代码如下。[cpp] view plaincopyprint?/****************转载 2017-05-26 14:16:46 · 1987 阅读 · 0 评论 -
IRP(I/O Request Package)详解
篇一:简介:IRP(I/O Request Package)在windows内核中,有一种系统组件——IRP,即输入输出请求包。当上层应用程序需要访问底层输入输出设备时,发出I/O请求,系统会把这些请求转化为IRP数据,不同的IRP会启动I/O设备驱动中对应的派遣函数。IRP类型由于IRP是响应上层应用程序的。可想而知,IRP类型是与上层对底层设备的访问类型相对转载 2017-06-12 10:39:12 · 6369 阅读 · 0 评论 -
创建IRP的相关内容
篇一:在驱动程序中,经常会调用其他的驱动程序;其中,手动构造IRP,然后将IRP传递到相应驱动程序的派遣函数中是一种比较简单的方法,下面就来介绍下手动创建IRP的几种不同的方法及其特点。 创建IRP总共有4种方法。分别通过调用:IoBuildSynchronousFsdRequest、IoBuildAsynchronousFsdRequest、IoBuildDevice转载 2017-06-13 13:56:07 · 660 阅读 · 0 评论 -
三种设备读写方式和I/O设备控制操作
原文链接:http://www.blogfshare.com/buffer-direct-other.html1.IRP的处理机制类似Windows应用程序中的 “消息处理”机制,驱动程序接受到不同的IRP后,会进入不同的派遣函数,在派遣函数中IRP得到处理。IRP(输入输出请求包),它是输入输出相关的重要数据结构,上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求。操作系转载 2017-06-13 13:59:37 · 5250 阅读 · 0 评论 -
WDM驱动开发 电源管理
本文章已收录于: 目录(?)[-] 一电源管理WDM电源管理模型WDM驱动程序的角色设备电源状态与系统电源状态电源状态转换POWER_STATUSIRP_MN_QUERY_CAPABILITIESIRP_MJ_POWERIRP_MN_SET_POWER与IRP_MN_QUERY_POWERIRP_MN_POWER_SEQUENCEIRP_MN_WAIT_WAKE在Add转载 2017-05-26 11:14:01 · 1106 阅读 · 0 评论