天桥陨石分享 http://blog.sciencenet.cn/u/chrujun 让地球物理仪器飞起来

博文

从现象看本质真难!

已有 5337 次阅读 2009-11-14 21:31 |个人分类:地球物理及仪器|系统分类:科研笔记| 现象, 本质, X86, CF卡

   我们都知道要从现象看本质。但产生某种现象的原因可能有数千种及其组合,要找到产生某种现象的原因,有时真的靠运气了。一件折腾我几个月的小事,浪费了无数时间的小事,使我对现象与本质关系有了深刻的体会。

   有一种数据采集系统,要求存储容量在2GB以上,我们用CF卡作为存储器。

   程序编好后测试发现256MB的CF卡没有问题,1GB卡有部分问题,2GB卡有大问题,4GB卡根本不行。

    由于CF卡在LINUX操作系统下使用,在WINDOWS下格式化。是不是格式化参数选择有问题。试了各种分区参数,各种格式化参数,虽然某些情况下效果有所改善,但无法从根本上解决问题。

    测试中发现相同容量的CF卡,不同品牌、不同厂家、不同生产日期的CF卡测试结果又有差别。是不是CF卡在LINUX系统下有不兼容的问题,买了正规厂家,质量绝对可靠的CF卡,问题还是存在。

    卡的容量越大,问题越多,是不是采集系统的供电能力不足?导致大容量卡工作不正常。对CF卡单独供电,问题还是无法解决。

    于是推测是不是LINUX操作系统有问题。虽然说明书表明LINUX2.4支持FAT32文件系统,但发现LINUX2.4对DMA的支持有问题。 是不是通过LINUX2.4裁减的内核有问题? 于是花费大量心血将LINUX2.4内核升级成LINUX2.6内核,发现问题还是存在。

    最后想到一招是BIOS有很多参数可以修改,改一下参数设置可能解决问题。 于是准备好开发板,将嵌入式计算机板放在开发板上。更大的问题出现了 CF卡在LINUX下根本不认了。但在DOS下可以认出来,在BIOS里面也可以看见CF卡参数。 无论如何修改BIOS参数,也无法在LINUX下识别出CF卡。

    无奈之下将嵌入式计算机板放在采集板上实验,看看写的数据究竟有什么问题。 奇迹发现了,CF卡居然正常了,换了几种容量和品牌的CF卡都可以读写。是什么原因导致CF卡正常的呢? 是将LINUX升级到2.6,还是在BIOS里面弄了什么设置? 弄了几个月,CF卡正常了居然不知道是改了什么地方就正常了。 又通过多次测试,发现是改动一个地方导致CF卡正常。 原来,BIOS里面有一项设置,大容量硬盘是什么操作系统在使用。选择项有DOS和其它。 由于在开发板上CF卡反而无法识别,修改这个参数也发挥不了作用。 一次碰巧将操作系统选择为其它,结果就全正常了。

    如果知道是这个原因,几秒钟就可以解决问题。 不知道这个原因,花了几个月时间还是碰巧解决的。 很奇怪的是在开发板上LINUX不认CF卡,在采集系统上LINUX却认CF卡,但DOS操作系统两者都认。新的问题又存在了。
   
    从现象找到原因,有时真的是很难。快要绝望的时候,却又碰巧找到了原因。 科研的刺激和艰辛就在于此吧。



https://blog.sciencenet.cn/blog-39626-271028.html

上一篇:罗总和他给我写的博士后推荐信
下一篇:人民日报:中医治疗甲流有明显优势
收藏 IP: .*| 热度|

8 鲍得海 罗帆 王号 杨秀海 吕喆 丛远新 侯振宇 yinglu

发表评论 评论 (4 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 09:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部