摘要:曾經(jīng),會(huì)單片機(jī)的工程師牛的一塌糊涂。如今,ARM開(kāi)始嶄露頭角,看到單片機(jī)工程師的牛氣,ARM工程師笑了。本文,就是希望以實(shí)例的形式,講述開(kāi)發(fā)ARM+DSP雙核處理應(yīng)用過(guò)程中,遇到的問(wèn)題,期待為大家答疑解惑。 關(guān)鍵字:DaVinci ARM DSP GPU ARM+674x TI OMAPL處理器介紹 0 曾經(jīng),會(huì)單片機(jī)的工程師牛得一塌糊涂。想十年前一個(gè)會(huì)單片機(jī)的工程師幾乎就是嵌入式工程師的代名詞。 若干年前,ARM開(kāi)始暫露頭角,看到單片機(jī)工程師的牛氣,ARM工程師笑了。 而從包括合眾達(dá)在內(nèi)的中國(guó)DSP三巨頭開(kāi)始在中國(guó)推廣DSP時(shí),所有開(kāi)始使用DSP的工程師笑了。他們有理由笑,他們有資格笑。因?yàn)樵谀菚r(shí),DSP就代表著高高在上,收入高、職位高、聲譽(yù)高,典型的三高。 而經(jīng)過(guò)若干年的推廣,DSP已經(jīng)脫下了神的外衣,走下了神壇。會(huì)DSP的人越來(lái)越多。 但隨著DSP開(kāi)發(fā)者的日漸增多,DSP的娘嫁人(TI)發(fā)現(xiàn),純DSP血統(tǒng)的姑娘們?cè)絹?lái)越難嫁了。時(shí)代的青年對(duì)于姑娘的要求已經(jīng)不再在能做一手漂亮而高效的女紅(計(jì)算)。人們希望娶到家的姑娘是出得廳堂,進(jìn)得廚房,能歌而善舞。大戶(hù)人家的公子希望媳婦兒如DSP般賢良淑德,又像ARM般千妖百媚。 2005年TI推出了DaVinci技術(shù),這一血統(tǒng)的姑娘既賢良淑德又千嬌百媚。ARM926 + 64x+ 在世界各地的選美比賽中,DaVinci小姐一路過(guò)關(guān)斬將,一屆又一屆地當(dāng)選為世界小姐。 但后來(lái)人們發(fā)現(xiàn),所有的評(píng)委都是對(duì)AV比較感興趣的。一時(shí)間,AV門(mén)事件波及全球。 在人民大眾強(qiáng)大的呼聲里,OMAPL小姐,姍姍來(lái)遲。 ARM+674x(定浮點(diǎn)DSP)。 她是如此的大方美麗,如此的平易近人,她是無(wú)冕的后冠。 接下來(lái)的幾天,我會(huì)繼續(xù)介續(xù)OMAPL處理器家族。在我做完基本介紹之后,我的同事even會(huì)講述如何實(shí)現(xiàn)ARM+DSP的通信。 我們不否認(rèn),將目光盯在TI提供的DSPLink層面來(lái)看,在做除了音視頻以外的設(shè)計(jì)時(shí),通常項(xiàng)目會(huì)死掉。 但我不認(rèn)為這是TI的錯(cuò)。 當(dāng)你需要巨大的運(yùn)算量時(shí),GPU能給你做嗎,還是VPU能?比如電力系統(tǒng)中,數(shù)字調(diào)音臺(tái),各種物理化學(xué)分析儀中,這樣的需求太多了。 幾乎每一個(gè)人在遇到這樣的需求時(shí),都會(huì)非常自然的想到DSP. 區(qū)別僅在于以前是一片ARM加上一片DSP. 現(xiàn)在的情況僅僅是TI將這樣的兩個(gè)內(nèi)核放到一個(gè)器件中來(lái)了。但沒(méi)有本質(zhì)區(qū)別的。 DSP依然是占用一段存儲(chǔ)器來(lái)運(yùn)行程序,ARM與DSP依然是通過(guò)RAM交互數(shù)據(jù)。 所不同的僅是現(xiàn)在DSP的啟動(dòng)由ARM說(shuō)了算,交互數(shù)據(jù)從昂貴的雙口RAM變成了共享RAM. 但本質(zhì)上,對(duì)于ARM來(lái)講,仍是一個(gè)字符型調(diào)備的驅(qū)動(dòng)! 另外TI最近提供了很多簡(jiǎn)化開(kāi)發(fā)的工具,比如我們后面會(huì)講到的C6Run,讓你可以以寫(xiě)一個(gè)普通C程序的方式來(lái)給DSP編程,在ARM上像訪問(wèn)本地函數(shù)一樣訪問(wèn)DSP函數(shù)。 (未完待續(xù)) 轉(zhuǎn)自:電子工程世界( EEWORLD ) |
OMAP-L處理器介紹 1 器件功能組成 名詞解釋?zhuān)?br /> OMAPL = Oh My Application Processor Low-power edition. (Blacksword獨(dú)家解釋?zhuān)? OMAPL處理器內(nèi)部構(gòu)成: 介紹OMAPL內(nèi)部構(gòu)成之前,我們先來(lái)回顧一下TI的DSP功能結(jié)構(gòu)。 下圖是TMS320C6748的blockdiagram 從圖上可以看出DSP器件其實(shí)本質(zhì)上就是一個(gè)DSP運(yùn)算核心,通過(guò)Switch Fabric/EDMA連接了一堆片上外設(shè)而已。至于核心那部分,我們大部分只是DSP器件的使用者,而不是設(shè)計(jì)者,不需要花過(guò)多的精力去深究。 我們以前講DSP的開(kāi)發(fā):就硬件而言即將需要用到的片內(nèi)外設(shè)引出來(lái)而已,把片外的外設(shè)連接到總線上而已;而做硬件,我個(gè)人認(rèn)為都無(wú)所謂是否DSP工程師,因?yàn)镈SP也好、ARM也好、X86也好,考驗(yàn)工程師的都是指定的板子硬件線路連接正確性,能不能在指定面積上布完,電路會(huì)否出現(xiàn)局部過(guò)熱,電磁兼容性好否,高速接口線長(zhǎng)線寬是否合理等,而這一切不會(huì)因是否DSP而有任何的不同。 個(gè)人認(rèn)就DSP而言,軟件的開(kāi)發(fā),才是真正的DSP開(kāi)發(fā)。而就軟件而言,即設(shè)置好SwitchFabric以便能夠選中指定的外設(shè),然后讀取指定外設(shè)上的數(shù)據(jù),將這此處理好的數(shù)據(jù)再寫(xiě)到其它指定的外設(shè)上而已。從這一點(diǎn)上講,開(kāi)發(fā)DSP本身并非高高在上的神話。大部分所謂的DSP高手,其實(shí)嚴(yán)格來(lái)講應(yīng)該說(shuō)是數(shù)學(xué)高手,邏輯高手,他們小小的一點(diǎn)手段,就可以讓算法效率提高很多。真正的高手,只有實(shí)在在算法沒(méi)什么可以摳的,才會(huì)使用匯編。 那我們不管高手不高手的,總之其實(shí)要會(huì)寫(xiě)一個(gè)簡(jiǎn)單的DSP程序,做基本的處理,大家都覺(jué)得比較容易的。 在第0講中,我們提到TI從2005年推出了DaVinci系列平臺(tái)。但很多人用了后,心里有著說(shuō)不出的委屈,尤其是少部分因?yàn)镈aVinci而被減員下來(lái)的。這部分人看到了OMAP-L,覺(jué)得OMAP-L這個(gè)平臺(tái)非常“親切”,“親切”得讓他們牙癢癢。怎么看怎么像DaVinci。且放下“親切”的問(wèn)題不談,我們先來(lái)看看DaVinci的表妹OMAP-L到底長(zhǎng)得什么樣。蓋頭掀開(kāi),OMAP-L的臉蛋身材如下圖(圖為OMAP-L138): 與表姐DaVinci相好過(guò)的人,一定能看出來(lái)。表姐表妹的區(qū)別僅在于一個(gè)胸大(在VICP),一個(gè)秀氣(DSP為定浮點(diǎn)) 但我更希望大家將目光從胸部移開(kāi),這樣才有助于我們從整體上認(rèn)識(shí)DaVinci與OMAP-L這對(duì)姐妹花。 請(qǐng)大家看看OMAP-L138與TMS320C6748(代表了傳統(tǒng)DSP)之間的聯(lián)系與區(qū)別。 你一定會(huì)很容易就發(fā)現(xiàn): 共同點(diǎn)就是同樣是處理器核心通過(guò)Switch連接到各種不同的片上外設(shè)。 而最大的不同點(diǎn)就是OMAP-L片內(nèi)有兩個(gè)處理器核心,一個(gè)ARM 一個(gè)DSP。 你要是問(wèn)一下有經(jīng)驗(yàn)的DSP開(kāi)發(fā)工程師,開(kāi)發(fā)DSP難不難,你會(huì)得到什么答案? 同樣你可以問(wèn)一下有經(jīng)驗(yàn)的ARM開(kāi)發(fā)工程,開(kāi)發(fā)ARM難不難,你會(huì)得到什么答案? 很多公司在很多項(xiàng)目中已經(jīng)同時(shí)使用ARM和DSP,那怎么將ARM和DSP混搭出來(lái)的DaVinci/OMAP-L怎么就有很多人覺(jué)得不好用呢? 其實(shí)這個(gè)問(wèn)題誠(chéng)然有TI的原因,但與我們本身的用法也有很大的關(guān)系。覺(jué)得他不好用、不美是很正常的。不信: 你去問(wèn)一下有經(jīng)驗(yàn)的DSP工程師,ARM開(kāi)發(fā)容易否? 很多早期開(kāi)發(fā)DaVinci的公司,一個(gè)像樣的ARM工程師都拿不出來(lái),然后就在那里叫嚷TI提供的東西不全,DaVinci的架構(gòu)不好,到今天他們也還在說(shuō)OMAP-L架構(gòu)不好,就是看著OMAP-L看著像DaVinci。 我們承認(rèn)對(duì)于你的應(yīng)用TI提供的軟件可能相當(dāng)不全。但這正在DaVinci的魅力所在,畢竟DaVinci提供的不是山寨貨,而是提供給大家實(shí)現(xiàn)無(wú)限創(chuàng)意的能力。 那么在基本組件方面,TI會(huì)致力于提供給大家符合Linux標(biāo)準(zhǔn)的各種驅(qū)動(dòng)及軟件中間件。有了標(biāo)準(zhǔn)的保證,你會(huì)發(fā)現(xiàn)如GUI或是RTP/RTSP等更上一個(gè)層次的軟件組件上,你根本就不缺軟件,因?yàn)榇罅康拈_(kāi)源項(xiàng)目都是你的項(xiàng)目。 我曾經(jīng)有一個(gè)移植Gnash(Linux下的Flash播放器)的慘痛教訓(xùn),在TI DaVinci平臺(tái)僅花了幾天時(shí)間,所有軟件就移植成功。D1以下的基本上能達(dá)到15FPS。 但在另一個(gè)廠商所謂完善的平臺(tái),確認(rèn)有對(duì)于某幾個(gè)特定應(yīng)用的完整方案,幾乎可以直接將代碼用于量產(chǎn)。但當(dāng)客戶(hù)需要Flash時(shí),找到了我。我遇到的第一個(gè)問(wèn)題是該平臺(tái)提供的C語(yǔ)言庫(kù)是不完整的,不得已我給客戶(hù)重新移植了C語(yǔ)言庫(kù)以及編譯器。我們都知道在嵌入式產(chǎn)品上要顯示就通常會(huì)用到Framebuffer。我的第二個(gè)問(wèn)題,就是Gnash要用到SDL,SDL最輕量的backend就是framebuffer。但我無(wú)比痛苦的發(fā)現(xiàn),該平臺(tái)上的framebuffer的驅(qū)動(dòng)并不標(biāo)準(zhǔn)...... 做了無(wú)數(shù)的修改之后,終于將Gnash在客戶(hù)的平臺(tái)上運(yùn)行起來(lái),新的問(wèn)題是該平臺(tái)提供的那些完整解決方案,不能運(yùn)行在新的C庫(kù)上,然后是非常痛苦的改“解決方案”中程序的過(guò)程,總共浪費(fèi)了好幾個(gè)月。 因此,我們認(rèn)為T(mén)I的平臺(tái)還是比較容易使用的,關(guān)鍵是你得讓合適的人干合適的事情。后面我們會(huì)分析這個(gè)架構(gòu),并講述基本的開(kāi)發(fā)流程。 暫時(shí)講到這里,稍候繼續(xù) 轉(zhuǎn)自:電子工程世界( EEWORLD )http://bbs.eeworld.com.cn/thread-209453-1-1.html |