1.dmesg指令是通过读/proc/kmsg来获取打印信息,也可以通过cat /proc/kmsg打印: 说明:kmsg是环形缓存区,只能读一次 2.内核中fs/proc目录下有相关文件,比如proc_misc.c,在入口函数中可以看到(4.3.2内核改到kmsg.c文件中) #ifdef CINFIG_PRINTK entry = create_proc_entry("kmsg"--------);//在proc下创建kmsg文件 entry ->proc_fops = &a…
目录 前言 示例代码 总结 前言 很多时候需要编写串口代码,但是又没有真实串口设备来调试代码.以及本身就是要操作2个串口的情况,可以使用"虚拟串口驱动"工具方便的调试代码. 使用方法就是点击添加端口,此时"COM1 <-> COM2"是一组,及对COM1写数据会让COM2读到,对COM2写数据会让COM1读到,是不是很方便. 下面是"虚拟串口驱动"工具的截图,我是在网上随便找的一个汉化版,大家可自行百度下载吧. 示例代码 串口收发都是…
参考博客与书籍: <Linux设备驱动开发详解> <Linux设备驱动程序> http://blog.chinaunix.net/uid-24219701-id-2884942.html 对于驱动程序设计来说,核心问题之一就是如何完成调试.当前常用的驱动调试技术可分为: 1. 打印调试 printk 重定向控制台消息 消息记录 开启和关闭消息速度限制 打印设备编号 2. 调试器调试 gdb kdb内核调试器 kgdb补丁 3. 查询调试 使用/proc文件系统 ioctl方法 4.…
关键词:android  电容屏 tp 工作队列 中断 坐点计算  电容屏主要参数平台信息:内核:linux2.6/linux3.0系统:android/android4.0  平台:S5PV310(samsung exynos 4210)  作者:xubin341719(欢迎转载,请注明作者) android 电容屏(一):电容屏基本原理篇 android 电容屏(二):驱动调试之基本概念篇 android 电容屏(三):驱动调试之驱动程序分析篇 以goodix的gt8105为例 一.总体架构…
驱动程序的调试一. 打印: prink, 自制proc文件UBOOT传入console=ttySAC0 console=tty11. 内核处理UBOOT传入的参数console_setup add_preferred_console // 我想用名为"ttySAC0"的控制台,先记录下来 2. 硬件驱动的入口函数里: drivers/serial/s3c2410.c register_console(&s3c24xx_serial_console); 3. printk vpr…
目录 驱动调试(一)-printk 引入 框架 入口console_setup add_preferred_console register_console s3c24xx_serial_initconsole write printk vprintk release_console_sem 打印级别 使用printk 修改打印级别 使用dmesg打印所有日志 测试 小结 参考文档 附录(3.4内核的分析) title: 驱动调试(一)-printk date: 2019/1/9 19:35:1…
linux驱动调试 linux 目录 /proc 下面可以配置驱动的调试信息,比如给proc目录的自己定制的驱动的一文件设置一个变量,然后驱动程序跟了proc的参数值来配置调试级别.类似于内核调试的级别来配置自己驱动调试级别.可以在dev目录创建一个设备专门用来打印相应的驱动调试信息.…
本文转载自:http://blog.chinaunix.net/uid-20671208-id-4940381.html 原文地址:linux驱动调试--修改系统时钟终端来定位僵死问题 作者:枫露清愁 曾经遇到过一个bug是这样的,通过串口终端和开发板交互时,执行一个程序后,整个系统就挂了,也不接受输入了,只能重启,后来发现是死在某段代码里了,当时可是费了一番功夫,今天来说一下怎么调试这种系统僵死的程序. 首先说一下linux的时钟中断.linux的时钟中断也是一种硬件中断,通过计数器产生输出脉…
linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id=4923447 1. 分析coredump打印信息 2. 确定发生错误的函数 看发生错误的地方的函数和pc PC is at segment_test_open+0x14/0x1c [segdrv] 看pc值: pc : [<7f000014>]    lr : [<800d958c>…
v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri", "sans-serif" } p.MsoHeader,li.MsoHeader,div.MsoHeader { mar…
目录 驱动调试(四)oops确定调用树 内核开启调用树 栈指针分析 原理 寄存器别名 基础解释 例子分析 找到PC地址的位置 栈分析 附录:原文的excel title: 驱动调试(四)oops确定调用树 date: 2019/1/14 19:30:32 toc: true --- 驱动调试(四)oops确定调用树 内核开启调用树 如果内核开启调用信息的打印 # 这个需要配置内核 #│ Symbol: FRAME_POINTER [=y] │ #│ Prompt: Compile the ker…
目录 驱动调试(三)oops确定函数PC 什么是oops 流程简述 代码仓库 模块例子分析 找到PC值 判断是否属于模块 查看符号表 找到模块 反汇编模块 内核例子分析 找到PC值 判断是否属于模块 反汇编内核 分析汇编 title: 驱动调试(三)oops确定函数PC date: 2019/1/14 17:30:32 toc: true --- 驱动调试(三)oops确定函数PC 什么是oops oops是 Linux 内核的一部分出现了偏差行为,你有做错了什么吗?可能没有.它实际上就是"哎呀…
paip. 调试技术打印堆栈 uapi print stack java php python 总结. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax ---------uapi 打印堆栈:printStack    god.printstack() 得到堆栈String:getStack ----------------php, debug_print_backtrace…
工欲善其事必先利其器,之前做WinCE开发时,经常写一些小工具以提高开发调试的效率,如WinCE驱动调试助手.WinCE串口调试助手.WinCE6.0寄存器访问工具.WinCE远程桌面助手和S3C2410 IIC调试助手等,虽然有些功能不算完善,但在实际工作中还是发挥了一些作用.现在搞Android开发,基本不用自己造轮子了,Linux下有瑞士军刀美称的Busybox就足以处理大多数问题. 今天就以测试一个字符设备驱动为例简单介绍下BusyBox的使用. Busybox官网下载地址:http:/…
人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行windows8.1的WDK调试所要做的准备工作. 软件安装: 1.VS2013. 2.WDK8.1 3.Windows Kits安装目录下的8.1\Romote\x86(x64)\wdk Test Target Setup x86-x86_en-us.exe(远程调试使用) 调试环境设置: 安装WDK8.1之后,驱动开发.部署.调试等工具都集成到VS2013 IDE中了,在进行调试之前,我们需要对开发环境做必要的…
平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博客:http://weibo.com/cpjphone   电容屏驱动调试先了解Linux电容屏驱动中几个常用的概念:              中断下半部-工作队列:              input机制:              Linux与Android 多点触摸协议.   一.中断下半…
关键词:android  电容屏 tp 工作队列 中断 多点触摸协议平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210)  作者:xubin341719(欢迎转载,请注明作者) 参考网站:http://edsionte.com/techblog/archives/1582这部分参考别人的多一点 android 电容屏(一):电容屏基本原理篇 android 电容屏(二):驱动调试之基本概念篇…
关键词:android LCD TFTSN75LVDS83B  TTL-LVDS LCD电压背光电压 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210.exynos 4412 .exynos 5250 作者:xubin341719(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 下载链接:LCD规格书(404份),之前工作用用到的 . LCD规格书00  . LCD规格书01   .   LC…
windbg源码驱动调试   环境信息 虚拟机:win7 32位 windbg:6.12(版本不存在太大影响) 设置过程 windbg与虚拟机连接:链接 配置windbg 配置好双机调试后,点击windbg菜单栏的debug->Break产生中断,控制权交给windbg 中断产生后,点击File->Open Sourse File(Ctrl+O)打开源码文件,就会显示出代码窗口 因为有驱动源码,可以直接在驱动入口处下断点进行调试,格式为"bu 驱动名!DriverEntry"…
原文发表于百度空间,2009-01-09========================================================================== 这一节的内容是Windbg入门,用一些基本的命令告诉你如何使用Windbg~~仅作入门,更详细的可以参考Raymond老师的<软件调试>的第30章---"WinDbg用法详解"和Windbg自带的帮助文件 我使用调试器的经验完全来自于Ring3的Ollydbg,所以我在初用Windbg时…
原文发表于百度空间,2009-01-08========================================================================== Windbg+Vmware驱动调试入门,写给wakaka小童鞋,很强大的小童鞋,同时也做为自己的存档~~ Windbg的设置 Windbg本身可以直接从微软的网站上下载下载地址:http://www.microsoft.com/whdc/devtools/debugging/default.mspxWindb…
MTK camera 闪光灯Flashlight驱动调试流程 分类: MtkDev  |  作者: topicdev 相关  |  发布日期 : 2014-09-26  |  热度 : 153°     Camera Flash 驱动分析 一.Flash驱动涉及到的文件包含: mediatek /custom/common/kernel/flashlight/src/kd_flashlightlist.c mediatek /custom/huaqin_bsp/at808p/base/kerne…
[转] C# DEBUG 调试信息打印及输出详解 1.debug只在[debug模式下才执行](运行按钮后面的下拉框可选) 2.debug提供了许多调试指令,如断言          System.Diagnostics.Debug.Assert(false,"信息");          将出现一个对话框 3.debug可以自定义监听器      (下例将信息存入磁盘文件)      System.Diagnostics.TextWriterTraceListener   t=new…
在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到.本文章针对该文件进行简单的总结. 基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含如下内容: # cat /proc/cpuinfo processor : vendor_id : GenuineIntel cpu family : model : mode…
proc文件系统介绍 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的. /proc目录中有一些以数字命名的目录,它们是进程目录.系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pi…
/proc/cpuinfo文件分析 根据以下内容,我们则可以很方便的知道当前系统关于CPU.CPU的核数.CPU是否启用超线程等信息. <1>查询系统具有多少个逻辑核:cat /proc/cpuinfo | grep "processor" | wc -l   //逻辑处理器的id(逻辑核数) <3>查询系统CPU的个数:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l …
转载http://www.cnblogs.com/itcomputer/p/4888438.html /proc/cpuinfo文件分析 根据以下内容,我们则可以很方便的知道当前系统关于CPU.CPU的核数.CPU是否启用超线程等信息. <1>查询系统CPU的个数:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l        //物理封装的处理器的id(CPU个数) <2>查询系统每颗CP…
以上输出项的含义如下: processor :系统中逻辑处理核的编号.对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核.或者使用超线程技术虚拟的逻辑核 vendor_id :CPU制造商 cpu family :CPU产品系列代号 model :CPU属于其系列中的哪一代的代号 model name:CPU属于的名字及其编号.标称主频 stepping :CPU属于制作更新版本 microcode : 微码 (详解见: http://blog.csdn.net/zhl1224…
/proc/stat 文件内容 # cat /proc/stat cpu 1411 1322 3070 1193539 2790 0 268 0 0 0 cpu0 472 658 787 297933 695 0 19 0 0 0 cpu1 314 157 728 299238 170 0 1 0 0 0 cpu2 322 441 1069 296914 1727 0 246 0 0 0 cpu3 302 66 485 299452 197 0 1 0 0 0 intr 299813 52 96…
今天发生个怪事:在 Solution Explorer 中,x project 内建立文件夹(folder)时,同时在磁盘目录下也创建了同名的文件夹. 1, 原本:应该只是创建一个“虚拟文件夹”用来“组织”文件(方便管理&查找&阅读),且此功能对应于 *.vcxproj.user 文件. 2,现在:创建“文件夹”的同时,生成了“磁盘物理文件夹”:且移动文件到该文件夹的同时,物理文件路径被同步了(物理文件也从之前的地址移动到了新的文件夹地址内),这导致了:cpp(或其他文件)在查找(依赖,…