说起DSP的学习,人各有路。我自己感觉没有什么捷径可以采用。肯花时间,有兴趣,能够坐在板凳上学他个天昏地暗就够了!!DSP的学习是个艰苦和漫长的过程,涉及既有硬件的知识又有软件的知识,面向对象的思想,操作系统方面的,信号处理方面(我是做图像处理类)的,网络方面等等。 不甚其烦~~特别是我学习的是TMS320DM642这样的高端芯片,开发难度就更大了。
丛大四下学期到现在,差不多一年半的时间。体会还是非常深刻的。现简单的介绍几点。
(1)学习的过程是个探索的过程。因此问题越多的人,我个人越看好,觉得有更大的升值空间。学习过程中不断的问自己问题,是否能提出问题,能够解决问题,这是个很重要的学习思想,个人认为。它某种程度上决定你能否走得比别人远!我基本没人教,全靠自己发现问题,解决问题,慢慢积累兴趣的。
(2)DSP学习是个软硬结合的东西,因此难度和挑战更大。硬件方面没有什么别的技巧,自己做出一块开发板来就自然有体会了。当然,是参考开发板的基础上了。这中间涉及的东西又是一堆。Protel99se软件到不是很难用,简单。关键在于对各个芯片的了解,要看大量的英文版的Datasheet。搞不好一个芯片的就是一百多页! 只有对每个引脚的功能非常熟悉,才能保证你的开发板没问题。PCB才是制作硬件中最难和耗时的部分。细活,看你的耐心和仔细程度了,一个小错误就可能导致你开发板最后就完了!
做出硬件来,软件才是真正开发的核心。对硬件理解的一部分体现在你配置硬件的能力上。TI提供的类/微驱动模型是一定要搞懂的,难点在于调用关系上面,其实就是封装的思想,关键看你能否看穿了。调试硬件很大程度上就在这里面兜圈子了。
软件方面涉及的就多了。我们做图像处理的,学习这方面的知识是远远不够的。要会编程,写代码。 会写也是不够的,实时处理是核心!因此汇编程序是一定要会的。这和单片机的汇编是有区别的。单片机,用的是面向过程的思想,对硬件的使用上不需要太深刻的理解。而DSP却不,能写出一个具有流水编排能力的汇编程序我真的是服了你!需要对硬件(如Cache,存储器等)有很好的理解,而且编写这样的程序难度是非常大的,能看懂理解就不错了!
(3)DSP学习涉及内容多,因此有的放矢,学以致用很重要。有的不需要学习,有的一定要深入透彻的学习和理解。建议仔细学习买来的开发板上面的每个例程,不懂得问题自己一定要深入下去搞懂。有几个重要的部分时一定要学好的:硬件的制作及学习;类/微驱动模型;c/汇编程序的开发;CSL/BSL的使用和理解;RF5算法构架;图像领域的知识(太多,包括图像处理类,编码解码类等);EDA方面也需要掌握(如CPLD/FPGA的开发及编程)内容太多,以致于个人之力想在研究生阶段都学好,不可能!!但事在人为,至少多学总比少学好!
(4)资料的使用。一方面,help文档是个简单但又用的东西。不论哪个软件,都值得去掌握怎么好好利用它。另一方面, 对DM642,大多数资料直接到TI公司去下载相关的英文资料就可以了。这中间又涉及两个问题,一是你是否能搜索到需要的合适的资料了,另外,你是否能耐心的坐着看完一篇长达230页的英文资料,如果不懂,就再看一遍!!!中文资料权威的都是英文版的翻译,所以要学好,必须学习英文的,那才是源,是本!
个人感觉要说的太多,一下子也不可能都说清楚,上面只是自己的几点小体会,也希望更多的人与之交流。简单的说,品质比智商更重要,自己不算有天分的人,但能坐得住,愿意深入学下去,肯花时间和精力, 因此DSP的学习既痛苦又快乐着~~~ |