各种怪问题 ...... to be continued

工作中,我们经常遇到莫名奇妙的问题,无从下手的问题,总之很头疼,最后这些问题都怎样解决或没有解决的呢?

 

问题:在公司设计的板子上,linux系统,sim900a芯片,通过GPRS拨号上网,拨号脚本的AT指令返回正常,从PPP server获得IP成功,但是ping不通。

结果:修改内核配置,PPP神马的多勾点,重新配置GPIO,把LCD的有关io口按着硬件的要求配置为普通Io的输入或输出。ping通了。具体原因还没找着。

结果2:禁掉了LCD驱动,可以ping通了,公司设计的板子,LCD不用了,但LCD接口有二十多根线,有不少连到了GPRS芯片的控制线上,这些线我们也不知有什么用,就没管。

 

问题:linux启动脚本,什么什么rc,修改了也不执行

结果:setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 init=/init console=ttySAC0,115200把里面init=/init改为init=/linuxrc就行了。这是是菜鸟不懂linux。

 

问题:在公司设计的板子上,GPS芯片连在串口2,输出是乱码

结果:review代码,发现在linux内核里,串口2配置成红外模式了

 

问题:vk3214串口扩展驱动,已经在实验板调试好,正式的板卡做好,放上去不好用。检查发现晶振频率变了,使用的串口变了,RST,TR,IRQ引脚等,都修正,还不行。用示波器量芯片各脚,看起来也挺正常。

结果:GPIO引脚搞混了,GPC15,GPD14,GPD13,用串了,结果RST应该拉高一直没拉。仔细检查代码,发现了问题。程序员细心真重要啊。

后续:发现vk3214只能发不能收,原来接收中断从EINT13改为EINT7,程序没改全,改完OK。

 

问题:热敏微打,接手同事的工作,测试程序在PC执行没问题,在板子上执行没反应
结果:按打印机手册说明,上电自动打印测试页,吱吱响,打印出一条黑线,判断马达转不动。硬件同事说是排线问题,没有立即验证排线问题,而是继续从软件方面验证,第二天才验证果然是排线问题。

后续:硬件OK,执行测试程序仍打印无效,串口驱动加log显示,数据只发送一部分。原来是异步方式打开串口,产生SIGPOLL,程序未做处理,默认为终止进程。

 

问题:syn6288语音播报芯片,同事做好的测试程序和库,我接手。执行出错,芯片回传状态不正确。

结果:看串口输出的数据,不知道含义,看手册。加log,理解了执行流程。用示波器抓到波形,但看不出来芯片回传是什么数,想在程序里打印,发现读取回传状态的代码分散在各处,重构代码,封装为函数,加log,打印出回传状态,跟波形对应上,并且发现有时没收到回传状态,于是增加延时,回传状态也正常了。

后续:跟硬件同事确认连哪个脚能听声音,但是声音都不对,看了手册上的字符集编码说明,很简短,用英文试验,发现双字节字符的字节序不对,修改代码,其间把&写成了&&,耽误了一会,在下午3点前终于声音正常了。但是经由pt2314之后的声音还不对

后续2:第二天电话联系硬件组同事,试也另外几个配置 ,也不行。没招了,什么也不干等吃午饭了,不甘心的翻出原理图看,突然来了灵感,发现每个能听见声音的pin前都有一个电容,听不见声音的pin都没有电容,马上在输出pin连接的电容之后接耳机,声音正常了。据说这叫隔离直流。


 

 

 

你可能感兴趣的:(各种怪问题 ...... to be continued)