linux驱动程序之-调试经验
文章平均质量分 91
bingqingsuimeng
这个作者很懒,什么都没留下…
展开
-
sd调试
SD卡初始化及读写流程 SD卡调试关键点:1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。2. SD卡发送复位命令CMD0后,要发送版本查询命转载 2012-09-08 18:49:13 · 1981 阅读 · 0 评论 -
I2C设备没有响应的可能的原因
1. SCL/SDA没有,2. i2c地址不对;有些平台的i2c地址需要右移一位,有些不需要。例如如果IO芯片的地址是0xEA, 那么你的函数里面可能需要使用使用(0xEA>>1)作为设备的地址3. 时钟速率不匹配,有的芯片支持的是SMBus协议,和I2C有点差异。一般出错是主机SCK过快。 4.I2C设备工作不正常,如电压不正常,时钟不正常转载 2012-09-08 22:59:04 · 7481 阅读 · 0 评论 -
SD卡驱动调试经验
做SD/MMC卡驱动的项目也有大半年了,总觉得该总结些什么了。在这里,主要就是记录一些比较常见的问题及解决方法,以免再一次遇到。首先就是SD/MMC卡的初始化错误问题。在找错误之前,先确认:1.用读卡器确认这张SD卡是否损坏;2.用另一套环境(一样的程序)读取同一张卡,是否正常;3.用相同的环境读取另外一张SD卡是否正常。如果是1,那么就直接退出本文章了;如果是2,那么就是该环境上出现虚焊短路转载 2012-09-08 11:35:39 · 4679 阅读 · 3 评论 -
DM9000AEP调试的时候注意事项:
DM9000AEP调试的时候注意事项:1.首先要判断芯片的真假。常见的方法是读取芯片的ID号。当然有些工程师朋友的寄存器设置,以及时序设置有问题,读取芯片的ID号就会错。读取ID是最基本的操作。2.其次确认芯片无质量问题后,再确定是硬件,还是软件方面的问题。一般软件方面,问题很容易解决。硬件问题,需要注意:网络变压器的CT端,一般要接DM9000AEP的管脚2,9脚输出的2.5V,输出转载 2012-09-11 11:58:18 · 3389 阅读 · 0 评论 -
DM9000AEP调试经历
DM9000AEP调试经历:操作系统Wince6.0 ,硬件平台S3C6410,网卡芯片DM9000AEP....... 调试DM9000AEP调试了近两个礼拜了,今天终于好了。郁闷死了。最开始调试的时候,把主要的经历放在了驱动程序上了。其实不是这样的。经过两个礼拜的调试,发现最重要的就是接收和发送端得那四个电阻了。先说说我的调试现象,然后在给出解决方法。 1.第一次调试转载 2012-09-11 11:56:48 · 3053 阅读 · 0 评论 -
dmesg打印信息如何后台保存到文件中
dmesg调试i信息常常作为判断系统异常退出的重要信息,但是当个系统异常退出或重启时,信息又难以保存下来,于是才有了将dmesg调试信息保存到文件中的想法:[cpp] view plaincopy#include #include #include #include #include //#include转载 2013-10-31 11:31:24 · 8327 阅读 · 1 评论 -
ump: version magic '3.0.0 SMP preempt mod_unload ARMv7 ' should be '3.0.0+ SMP preempt mod_unload AR
最近在TI 的DVSDK下写驱动模块时老受linux内核svn版本号问题的困扰,如"2.6.37-svn41"、"2.6.37-svn51"等等,svn版本变一次,从上面取下的代码内核版本就要变一次,这样造成原来驱动模块ko文件必须重新拷贝到新的lib/modules/2.6.37-svn51下,非常麻烦且不利于发版本。因此找到一篇博文《去掉SVN管理kernel编译后版本自动变化》,见我的转转载 2016-02-29 13:50:51 · 4098 阅读 · 0 评论 -
SecureCRT中make menuconfig乱码以及不能进行删除操作解决
1.乱码问题export LANG=C2.不能进行删除操作问题这是我当初在编译Linux内核的时候出现的一个小插曲错误,当时使用secureCRT登陆自己的Linux系统,在配置内核的时候,我按照项目需求,要在内核中删除“broadcom linux”标识,可是出现一个奇怪的现象,进入make menuconfig界面的时候居然删除不了!我那时郁闷啊,以为是权限的问题什么的,后转载 2016-09-18 16:51:21 · 2678 阅读 · 0 评论 -
使用truss、strace或ltrace诊断软件的"疑难杂症"
简介进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。truss和strace用来 跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来 跟踪进程调用库函数的情况。truss是早期为System V转载 2017-12-14 17:58:31 · 403 阅读 · 0 评论