DAVINCI技術所涉及的知識面是蠻廣的。一個DSP,一個ARM,一堆的工具鏈,所以有一大堆的文檔。沒有一個過來人指導,很難知道從何下手。所以,情況就是“有點亂,得理一理”。這篇文章就是為了讓大家理出頭緒,快速入門。
在這篇文章里,我會指明提到的文章的位置,給出鏈接或者說明位置,方便大家去找。
DAVINCI技術的硬件無非就是一個ARM加一個DSP,ARM主要用來處理常務,像什么IO,、UI之類的,而DSP主要用來做它所擅長的DIGITAL的處理。這個ARM和DSP與平常的ARM和DSP并無大的不同,但當兩個處理器放在一起,協(xié)作是一個非常重要的問題。所以,DAVINCI里最重要的東西就是ARM和DSP間的通信和協(xié)作,通信和協(xié)作的底層實現(xiàn)就是DSPLINK。在我理解,DAVINIC技術的精髓、靈魂、主旨、中心思想就在于ARM和DSP之間的協(xié)作。這也是學習DAVINCI的主題(針對系統(tǒng)工程師)。
每個人學習DAVINCI的目的都不一樣,這就會造成學習路線不一樣。這里(http://focus.ti.com.cn/cn/general/docs/gencontent.tsp?contentId=61575)給出了從CODEC ENGINE的角度來看的三種不同的角色的學習路線,說得蠻清楚,也給出了一些資源的鏈接。但這都是從一個比較高的層次來看整體系統(tǒng),因為很多的內(nèi)部細節(jié)被封裝在了CODEC ENGINE里,我認為從一個researcher的角度來看這個系統(tǒng),得從底層來了解,這樣在開發(fā)的時候才會心中有數(shù)。
在這里,我給出一個對DAVINCI技術從入門到較深入的大致的流程,以供參考,僅供參考。我使用的是DVEVM,這里有圖片。
流程如下:
第1天
翻遍手上的資料,對自己有什么資料有個了解先。再看看網(wǎng)上對DAVINCI進行整體介紹的文章。這里有我收集到的一些資料的鏈接和介紹(還沒整理好,coming soon…)
第2天~第6天
按照《DVEVM Getting Started Guide》(SPRUE66B.PDF)把整個流程走一遍,這樣,整個環(huán)境就搭起來了。這里(PDF)有我寫的一個GETTING STARTED GUIDE,比TI的更詳細一些??梢院蚑I的Getting Started Guide一起看。
第7天
Getting Started Guide里只是LINUX下的環(huán)境的搭建和系統(tǒng)的感性認識,而且更多的是針對ARM端。為了了解DSP端,需要安裝并配置CCS環(huán)境,CCS主要是針對DSP的。這里有關于安裝和配置CCS的文章。安裝和配置開發(fā)環(huán)境并不需要太多的關于系統(tǒng)原理的知識,在這個過程中還會對系統(tǒng)有個感性的認識,起碼能知道系統(tǒng)里面有什么東西,叫什么名字。
TIPS:在整個的學習過程中,建議自己建一個文檔來作為“DAVINCI字典”,因為DAINCI技術涉及的部件多,名詞縮寫多,所以一下兩下還是會搞不清某個東西是用來干什么的。建一個文檔來理清他們之間的關系非常重要。
第8天~第12天
從CCS的使用來了解DSP端的系統(tǒng)。對于不熟悉DSP的同志來說,從CCS這個IDE來了解DSP端開發(fā)的相關內(nèi)容是灰常好的(ARM端的開發(fā)已經(jīng)在學習《GETTING STARTED GUIDE》這一步了解了)。首先,要讀讀CCS菜單里的 Help -> User Manuals里的
SPRU509 Code Composer Studio Development Tools v3.3 Getting Started Guide
SPRAA08 Code Composer Studio™ IDE v3 White Paper
另外還有:
TMS320C6000 Code Composer Studio Tutorial (Rev. C) (找不到的話用GOOGLE搜一下)。我記得這個文檔里會從工程的搭建開始教,這個TUTORIAL的作用就像是學C時的HELLO WORLD.
Code Composer Studio User’s Guide
跟著這些文檔做一下,會從CCS的角度來了解DSP這邊各個組件之間的關系,并且了解一些名詞的意義。
第13天
學習DSP端的MEMORY分配,學習.CMD文件(LINKER的內(nèi)存配置)。
參考TMS320C6000 Assembly Language Tools User Guide (SPRU186P) 第7章
看看Tutorial里的例程里的CMD文件怎么寫的。
第14天~第16天
再跑跑DSP/BIOS的Tutorial,會對它有非常直觀的認識。DSP/BIOS是DSP端的OS。Tutorial在Help -> Content里面(如果不在的話到CCS安裝目錄里的文檔里找)。跟著做完這個TUTORIAL大致要花兩三天時間,完成之后,會對DSP/BIOS的運行機制,它的配置、調(diào)試、任務的管理、中斷等有一個灰常重要的認識。
第17天
花半天時間瀏覽一下Help -> Content里的RTDX等其他東西的Introduce和一些認為重要的東西,理清他們的關系。
到這里,DSP的常規(guī)使用就差不多學到了。在以后的開發(fā)過程中如果還需要什么,就翻文檔現(xiàn)學現(xiàn)用吧。
第18天~第25天
學習DSPLINK。這一步是最關鍵的一步,是精髓,主旨,中心思想,所以,會有文章專門討論這事。大致的過程就是,看DSPLink User Guide (在DSPLINK安裝目錄的DOC文件夾下),跑DEMO,分析DEMO,學習內(nèi)存分配機制、通信機制,改DEMO為自己所用。這一系列文章還沒寫,but coming soon…
第26天~第35天
在這上一步之后,就可以在比較底層來做DAVINCI的開發(fā)工作了,只是要考慮到很多細節(jié),開發(fā)的效率可能不高。但是,這個時候對DAVINCI平臺已經(jīng)有比較好的理解了,做東西的沒多大問題了。接下來這一步,就是要學習CODEC ENGINE,讓那些費力的細節(jié)對我們而言不可見。對于Codec Engine的學習,這篇文章(http://focus.ti.com.cn/cn/general/docs/gencontent.tsp?contentId=61575)還是蠻地道的。
第36天及以后
當把ARM和DSP之間的協(xié)作搞清楚之后,ARM就是ARM,DSP就是DSP了。我的意思是說,剩下的跟常規(guī)的ARM和DSP開發(fā)沒有大的不同了。