全部博文(333)
分类: 嵌入式
2014-01-14 18:07:30
DAVINCI技术所涉及的知识面是蛮广的。一个DSP,一个ARM,一堆的工具链,所以有一大堆的文档。没有一个过来人指导,很难知道从何下手。所以,情况就是“有点乱,得理一理”。这篇文章就是为了让大家理出头绪,快速入门。
在这篇文章里,我会指明提到的文章的位置,给出链接或者说明位置,方便大家去找。
DAVINCI技术的硬件无非就是一个ARM加一个DSP,ARM主要用来处理常务,像什么IO,、UI之类的,而DSP主要用来做它所擅长的DIGITAL的处理。这个ARM和DSP与平常的ARM和DSP并无大的不同,但当两个处理器放在一起,协作是一个非常重要的问题。所以,DAVINCI里最重要的东西就是ARM和DSP间的通信和协作,通信和协作的底层实现就是DSPLINK。在我理解,DAVINIC技术的精髓、灵魂、主旨、中心思想就在于ARM和DSP之间的协作。这也是学习DAVINCI的主题(针对系统工程师)。
每个人学习DAVINCI的目的都不一样,这就会造成学习路线不一样。这里(http://focus.ti.com.cn/cn/general/docs/gencontent.tsp?contentId=61575)给出了从CODEC ENGINE的角度来看的三种不同的角色的学习路线,说得蛮清楚,也给出了一些资源的链接。但这都是从一个比较高的层次来看整体系统,因为很多的内部细节被封装在了CODEC ENGINE里,我认为从一个researcher的角度来看这个系统,得从底层来了解,这样在开发的时候才会心中有数。
在这里,我给出一个对DAVINCI技术从入门到较深入的大致的流程,以供参考,仅供参考。我使用的是DVEVM,有图片。
流程如下:
翻遍手上的资料,对自己有什么资料有个了解先。再看看网上对DAVINCI进行整体介绍的文章。这里有我收集到的一些资料的链接和介绍(还没整理好,coming soon…)
按照《DVEVM Getting Started Guide》(SPRUE66B.PDF)把整个流程走一遍,这样,整个环境就搭起来了。(PDF)有我写的一个GETTING STARTED GUIDE,比TI的更详细一些。可以和TI的Getting Started Guide一起看。
Getting Started Guide里只是LINUX下的环境的搭建和系统的感性认识,而且更多的是针对ARM端。为了了解DSP端,需要安装并配置CCS环境,CCS主要是针对DSP的。有关于安装和配置CCS的文章。安装和配置开发环境并不需要太多的关于系统原理的知识,在这个过程中还会对系统有个感性的认识,起码能知道系统里面有什么东西,叫什么名字。
TIPS:在整个的学习过程中,建议自己建一个文档来作为“DAVINCI字典”,因为DAINCI技术涉及的部件多,名词缩写多,所以一下两下还是会搞不清某个东西是用来干什么的。建一个文档来理清他们之间的关系非常重要。
从CCS的使用来了解DSP端的系统。对于不熟悉DSP的同志来说,从CCS这个IDE来了解DSP端开发的相关内容是灰常好的(ARM端的开发已经在学习《GETTING STARTED GUIDE》这一步了解了)。首先,要读读CCS菜单里的 Help -> User Manuals里的
另外还有:
跟着这些文档做一下,会从CCS的角度来了解DSP这边各个组件之间的关系,并且了解一些名词的意义。
学习DSP端的MEMORY分配,学习.CMD文件(LINKER的内存配置)。
再跑跑DSP/BIOS的Tutorial,会对它有非常直观的认识。DSP/BIOS是DSP端的OS。Tutorial在Help -> Content里面(如果不在的话到CCS安装目录里的文档里找)。跟着做完这个TUTORIAL大致要花两三天时间,完成之后,会对DSP/BIOS的运行机制,它的配置、调试、任务的管理、中断等有一个灰常重要的认识。
花半天时间浏览一下Help -> Content里的RTDX等其他东西的Introduce和一些认为重要的东西,理清他们的关系。
到这里,DSP的常规使用就差不多学到了。在以后的开发过程中如果还需要什么,就翻文档现学现用吧。
学习DSPLINK。这一步是最关键的一步,是精髓,主旨,中心思想,所以,会有文章专门讨论这事。大致的过程就是,看DSPLink User Guide (在DSPLINK安装目录的DOC文件夹下),跑DEMO,分析DEMO,学习内存分配机制、通信机制,改DEMO为自己所用。这一系列文章还没写,but coming soon…
在这上一步之后,就可以在比较底层来做DAVINCI的开发工作了,只是要考虑到很多细节,开发的效率可能不高。但是,这个时候对DAVINCI平台已经有比较好的理解了,做东西的没多大问题了。接下来这一步,就是要学习CODEC ENGINE,让那些费力的细节对我们而言不可见。对于Codec Engine的学习,这篇文章(http://focus.ti.com.cn/cn/general/docs/gencontent.tsp?contentId=61575)还是蛮地道的。
当把ARM和DSP之间的协作搞清楚之后,ARM就是ARM,DSP就是DSP了。我的意思是说,剩下的跟常规的ARM和DSP开发没有大的不同了。