如何开始ADI DSP的学习

  个人认为,对DSP的学习,主要有三个方面:1)芯片的外设的使用,同时学习软件开发环境;2)DSP的内核结构与汇编指令;3DSP算法的移植和优化工作。

=================================

第一部分:芯片的使用  

  学习哪些内容:芯片的外设一般包括GPIO、SPI、UART、Timer、Interrupt等,这些常见的外设与其它MCU基本一样,参考官方例程即可;对于Blackfin系列DSP,还有高速串行口SPORT和并行口PPI,对于高速数据传输,这两种接口是必不可少的,因此一定要熟练掌握;另外一个比较重要的功能就是DMA了,包括1DDMA和2DDMA的原理与使用方法;

  建议:对于外设的学习,主要以硬件手册也就是hardware reference为主,例程为辅,通过程序来学习硬件;中文版的参考书不推荐,鄙人看过几乎全部blackfin的参考书,实在没有值得推荐的地方!

=================================

第二部分:内核结构与汇编指令 

  有人说现在都是C开发,为什么学汇编?阿朗的一位做DSP的技术员跟我说过,一个人对DSP的熟悉程度,是从他对DSP结构的理解上体现的。我也认为,学习汇编并不是要你用汇编去编写代码,而是学习DSP内部到底是如何工作的。内核结构与汇编指令的学习,二者是不可分割的。

  建议:如果想毕业后从事DSP开发、算法工程师一类的职务,这个要求是必须的。

=================================

第三部分:DSP算法的移植和优化工作 

  最后就是算法的移植工作,根据compiler reference中的C语言数据类型和语法结构,将算法转化为visual DSP++可编译的C语言描述,如果对时间要求较高,就需要在转化的同时对其进行优化等,包括算法本身的优化和结构的优化,比如for循环如何展开,如何安排代码和数据的存放位置等等。

 

题外话:为什么选择了ADI?

  博主因为导师、实验室环境,所以选择了这个方向。如果没有硬性要求,博主还是建议选择TI的DSP作为学习DSP开发的起点,资料多,应用范围广,有广大的论坛可以参与讨论。ADI相对TI来讲,中文资料实在是少的可怜,如果没人指点和交流,实在是难。

你可能感兴趣的:(学习)