有时因为一个问题,而花去一周时间也无法解决。这时需要做的是从头开始重新整理问题,测试环境,测试条件,编译环境等等。具体可以有以下的原则:
(1)重新阅读文档(规格文档,设计文档,测试用例)
(2)检查测试条件
(3)检查测试环境
(4)检查编译环境
(5)走读代码
(6)召集有关人员开会,集体讨论问题可能在哪里
例子1:
在MPEG4图像编码项目中,由于CPU处理能力不足,播放出来的图像,在帧之间有很明显的延时。看起来图像在跳跃。
在解决以上问题时,首先想到的是改善程序的执行速度,调整中断处理程序和TASK等的前后关系。在做了这些修改以后,还是没有明显的效果。之后想到是否可以使用CPU所具有的Cache内存,并在程序初始化时,打开了Cache内存。可是Cache好像没有起到作用。在快走途无路时,开始重新阅读CPU的用户手册和技术手册(这次使用的是ARM CPU)有关Cache的部分。结果发现,该CPU支持命令Cache和数据Cache,最大可达到1MB。并可以有Write Throug Cache和Write Back Cache。最后,在使用汇编语言将运行部的执行程序全部放入Cache后,运行速度增加很大,从根本上解决了图像延时问题。
从这个例子来看,在一个问题无法进展下去的时候,“开始重新阅读CPU的用户手册和技术手册”起到了关键作用。这里,大家要掌握的是,在遇到难解的问题时,可以先Reset,然后重新开始。 |