<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團(tuán)論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  DSP6000系統(tǒng)開發(fā)  (http://www.hufushizhe.com/bbs/list.asp?boardid=29)
    ----  HELLODSP TIC6000  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=29&id=1631)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-11-22 14:24:37
    --  HELLODSP TIC6000

      最近在hellodsp(http://www.hellodsp.com)申請了個版主,本來是要申請TMS320C6000版塊的,不過這個版塊已經(jīng)有兩位優(yōu)秀的版主,我是做圖像處理的,于是就鎖定“語音視頻處理”版塊了,不過6000版塊我還是會經(jīng)常去,看到很多初學(xué)者在問一些入門的問題,有些提問題的同志對問題描述地也不夠清楚,可能更多的是想提問題可不知道怎么提吧,我剛學(xué)DSP的時候也一樣,碰到問題了不知道怎么把問題表述清楚,真有啞巴吃黃連的痛楚。最近有空回憶下自己學(xué)DSP的過程,算是個人經(jīng)歷吧,希望對大家有用。

    我的經(jīng)歷
          錯過第一次學(xué)習(xí)機(jī)會
          我2000年進(jìn)入大學(xué),專業(yè)通信工程。入學(xué)的時候成績不錯,還拿過一等獎學(xué)金,自以為自己很聰明。當(dāng)時我們學(xué)院有個科技協(xié)會,簡稱科協(xié),那時的科協(xié)會長是個大四的學(xué)兄,給人印象深刻,感覺他很厲害,就入了科協(xié),第一堂課是用555做個流水燈,科協(xié)已經(jīng)把印制板做好,我只用把器件焊上去就行了,燈是亮了很好玩,于是自己琢磨電路的原理,那時是個剛?cè)雽W(xué)的小子,什么也不懂,看那東西根本搞不懂,感覺太難了,后來慢慢就不去參加活動,再后來放棄了。
          現(xiàn)在想想那個時候太輕言放棄了,包括后來大學(xué)里自學(xué)51單片機(jī)、學(xué)FPGA都是只淺嘗則止,而沒有持之以恒,以至于后來錯過了很多很多機(jī)會。所以在這里要告訴大家,也告訴我自己,學(xué)技術(shù)一定要堅(jiān)持,不管碰到什么困難,絕不能輕言放棄,堅(jiān)持就會有進(jìn)步,就像長跑,總有幾個困難點(diǎn),堅(jiān)持過去就覺得不是那么困難,水平才會有提升。
           第一次使用C51
           說起這個,不得不感謝下我的一個大學(xué)室友,是他帶我入門C51,第一次用protel畫印制板,第一次申請免費(fèi)樣片、第一次編寫調(diào)試程序,第一次使用示波器等等,這些都得歸功于他的指導(dǎo)。
           時間過得很快,一轉(zhuǎn)眼就大四了,想想自己大學(xué)游戲玩了三年,學(xué)業(yè)荒廢,畢業(yè)設(shè)計(jì)這個機(jī)會一定要把握住,不然自己沒什么資本找工作啊,于是在選題的時候選了個單片機(jī)的題目“基于DDS的信號發(fā)生器設(shè)計(jì)”。雖然之前接觸過51、protel,不過那都是看看書而已,實(shí)際做起來什么都不會,我確定的方案是用C51去控制AD9853輸出相應(yīng)頻率的波形,當(dāng)然這里離不開鍵盤和LCD顯示,AD9853是從AD公司申請的樣片,那時我第一次知道還有免費(fèi)午餐,大公司真的不錯,記得當(dāng)時TIDSP都可以申請,我就申請了一片6202,不過后來沒那么容易申請了,這次我堅(jiān)持了下來,一步一步地做,最終圓滿完成了畢業(yè)設(shè)計(jì)。
           我是幸運(yùn)的,因?yàn)樯磉吘陀袀很好的老師,初學(xué)者大都沒有這樣的條件,即便如此,初學(xué)者還是應(yīng)充分挖掘身邊的資源,將它們都利用起來,這樣你才能更接近成功。
           接觸DSP
           2004畢業(yè)后我到一個研究所工作,我所在的部門是做視頻跟蹤器的,主要用DSP+FPGA,對我來說入魚得水,因?yàn)槲覍@些東西很有興趣。當(dāng)時我的同事們用的還是TI C50DSP,這個很多人可能聽都沒聽過,TI的DSP按時間大概經(jīng)歷了這幾個系列,C25-C50-V33-2000-5000-6000,C50的功能很有限,只有匯編開發(fā)環(huán)境,因?yàn)楣δ芎唵危詫W(xué)起來也相對容易,加上我有51的基礎(chǔ),很快就上手了,一年半后部門器件換代直接換成了64xx,由于受C50的影響,我們開發(fā)還是習(xí)慣用匯編,2006年5月前后,我率先用C開發(fā)產(chǎn)品,取得了不錯的效果。
           這當(dāng)中我接觸到了很多,由于我個人性格的原因,學(xué)什么都想學(xué)精,走了很多彎路。比如PCB剛開始用protel,后來發(fā)現(xiàn)它畫復(fù)雜板子的時候不方便,于是學(xué)用allegro,后來又學(xué)SI;DSP也是,6000會用了想學(xué)2000、5000,后來發(fā)現(xiàn)自己很幼稚,其實(shí)一到二門精通了足以,學(xué)什么要注意學(xué)習(xí)理念,工具平臺這些始終是外家功夫,要勤修內(nèi)功。

    總結(jié)及建議
          1)選好自己的工具和平臺學(xué)DSP當(dāng)然首先要選擇一款DSP(這里主要說TI的DSP,AD公司的不熟這里就不說了)。如果是個人學(xué)習(xí)的話主要看個人需要和應(yīng)用場合,比如做圖像處理那當(dāng)然首推TI6000了,初學(xué)者不必將DSP分出三六九等,各個系列沒有明顯的優(yōu)劣,但有明確的應(yīng)用領(lǐng)域,2000偏接口控制,5000偏語音,6000適合做大數(shù)據(jù)量信號處理,比如圖像、雷達(dá)等等。初學(xué)者最好有個開發(fā)板,不然無異于紙上談兵,2000、5000的開發(fā)板相對便宜,6000的就比較昂貴。
           就上手容易度來說,我個人覺得6000更易上手,6000的結(jié)構(gòu)較2000、5000明了清晰,硬件上的條條框框比較少,你不需要看很多的硬件結(jié)構(gòu)資料就能著手編程,這個大概是技術(shù)的進(jìn)步吧。不過還是這句話,應(yīng)用場合決定你的選擇。
           2)自己先動手
           初學(xué)者如果會C語言語法,在看過一些資料后就可以著手寫自己的第一個程序,如果寫不出來,看看TI最初級的例程,完成自己第一個程序。我給我們單位新同事做6000培訓(xùn)的時候,給他們的第一個題目就是寫一個程序讓LED燈不停閃爍,這個燈可能接在GPIO上或者通過EMIF譯碼與FPGA配合控制(后者可能更有意義),更進(jìn)一步的程序是控制閃爍的頻率。我比較喜歡讓他們用GPIO和EMIF,它們可能是6000里最簡單和用的最多的外設(shè)了,它們是初學(xué)者最早要攻克的堡壘。
           初學(xué)者往往對硬件結(jié)構(gòu)和軟件的配合沒有概念,對片內(nèi)存儲空間、片外存儲空間、片上外設(shè)這些概念沒有實(shí)在的理解,這些概念需要自己的反復(fù)的思考、反復(fù)的實(shí)驗(yàn)、反復(fù)的體會才能最終搞清楚,這些弄明白了你也就入門了。
           初學(xué)者比較忌諱看太多和太復(fù)雜的例程,看得太多你的思緒會比較亂,看得太復(fù)雜你會心浮氣躁,復(fù)雜的例程一般它都有相對復(fù)雜的編程結(jié)構(gòu),這個初學(xué)者是很難體會到的,所以剛開始不要看,等你寫了20到30個程序的時候再試著看相對復(fù)雜的例程。
           3)多動手
           這個不用多說了,光看不練假把式。
           4)片上外設(shè)
          這里拿DM642來說,我把常用的外設(shè)由簡單到復(fù)雜排個序:GPIO-TIMER-EDMA-EMIF-I2C-MCASP-VideoPort-EMAC、MDIO,MCASP我沒用過,不過看過資料感覺不復(fù)雜,我給初學(xué)者的建議是先把前面4個學(xué)清楚,可以先學(xué)GPIO這個真的是簡單,剛開始不要急著用CSL,用匯編或是C寫個程序讓某個GPIO腳上輸出波形,這樣有助于理解片上外設(shè)以及有關(guān)的概念。前面4個明白了后面的具體用到再學(xué),這個時候你可以看TI相應(yīng)的例程,拿來用就可以。
           5)匯編、C和線性匯編
           現(xiàn)在開發(fā)6000的標(biāo)準(zhǔn)流程是先用C寫,C的好處很多這里不說了,有太多的文章在論述,不過對于準(zhǔn)備做優(yōu)化的同志們來說,匯編不會也不行,用匯編相對于C更助于你理解6000的架構(gòu),很多初學(xué)者對C語言中用指針對某個空間操作不理解,用匯編寫的話相對要好理解的多。
           大家不必對匯編心存畏懼,其實(shí)它也很簡單,只不過它比較晦澀,用它開發(fā)整個系統(tǒng)的時間上的花費(fèi)太多,不過關(guān)鍵算法的優(yōu)化有時還是離不開它,TI目前還提供線性匯編,它是匯編和C的折中,兼?zhèn)鋮R編的效率和C的易開發(fā)性。
           匯編和C都只是工具,關(guān)鍵還是你對架構(gòu)的理解和編程理念,所以選擇哪個都有道理,通過工具去探索架構(gòu)而已。我個人覺得初學(xué)者主要應(yīng)學(xué)習(xí)C,畢竟它是主流,可以用匯編寫4-5個小程序,熟悉它的語法就行,日后用它做優(yōu)化也不會什么都不知道,而且也助于對硬件架構(gòu)的理解。

    結(jié)束
           就寫這么多了,一家之言,里面有很多廢話,希望對初學(xué)者有點(diǎn)幫助,拋磚引玉,也希望高手們多多寫出自已的經(jīng)驗(yàn)。

    優(yōu)化一起放過來了~~~
    關(guān)于優(yōu)化我的經(jīng)驗(yàn)是這樣的:
    一、首先考慮從系統(tǒng)結(jié)構(gòu)上優(yōu)化,比如盡量減少待處理數(shù)據(jù)的無謂搬移,考慮你DSP片內(nèi)存儲量和每次處理數(shù)據(jù)量對系統(tǒng)結(jié)構(gòu)優(yōu)化,這部分的優(yōu)化應(yīng)該最早做;
    二、其次從算法層面上著手,看采用的算法有沒有更好更簡單的計(jì)算方法,算法是否有某種對稱性,可否采用更合適的數(shù)據(jù)結(jié)構(gòu)等等,這方面的優(yōu)化比程序上的優(yōu)化更明顯;
    三、如果算法層面暫時無更好的優(yōu)化辦法,看看軟件結(jié)構(gòu)能否優(yōu)化。
    比如:
             1)多層的循環(huán)結(jié)構(gòu)能否減層。我經(jīng)常看到這樣的程序:
                 for(i = 0; i++; i< A)
                     for(j = 0; j++ j< B)
                     {
                           E[j]  = C[j] - D[j];
                     }
                 這個可以優(yōu)化成:
                 for(i = 0; i++; i<A*B)
                 {
                         E = C - D;
                 }
                2) 關(guān)鍵循環(huán)結(jié)構(gòu)中的條件、跳轉(zhuǎn)指令應(yīng)盡量避免,哪怕會增加一些循環(huán)次數(shù),循環(huán)中沒有條件指令優(yōu)化器更容易優(yōu)化;
                3)關(guān)鍵循環(huán)不要調(diào)用子函數(shù)
                其它還有一些,具體可以看看手冊,手冊上講的很清楚
    四、結(jié)合DSP系統(tǒng)的硬件結(jié)構(gòu)優(yōu)化
                1)看你處理的數(shù)據(jù)是放在片內(nèi)還是片外,如果放在片外的話這個建議將數(shù)據(jù)分塊分批倒入片內(nèi)處理,類似于流水結(jié)構(gòu);
                2)針對外部數(shù)據(jù)可對L2 cache優(yōu)化
    五、結(jié)合DSP優(yōu)化器、指令系統(tǒng)等進(jìn)行優(yōu)化
               這部分可以詳細(xì)的看TI的手冊,大概有這幾個方法:
                1)優(yōu)化選項(xiàng),-o3 -pm 取消-g 等等這些選項(xiàng),如果你的軟件結(jié)構(gòu)很好,那么它們的優(yōu)化效果很明顯;
                2)加一些優(yōu)化指示符指導(dǎo)優(yōu)化,這部分看手冊,包括存儲地址無關(guān)性,SIMD(單指令多數(shù)據(jù)處理)等等;
                3)用一些專用指令,比如6000提供飽和加、溢出減指令,可以不必用條件判斷;
                4)如果效果還是不好,用線性匯編改寫你的程序,將你的優(yōu)化思想用線性匯編表述出來,一般到地步就可以了;
                5)如果線性匯編優(yōu)化未能盡顯你的優(yōu)化思想,那就匯編吧,優(yōu)化器不會再幫助你優(yōu)化,完全是你自己控制程序了,自己做軟件流水吧;
               這部分需要有比較豐富的優(yōu)化經(jīng)驗(yàn)和扎實(shí)的優(yōu)化功底,多多積累,多看資料。
    最后要重點(diǎn)說下:
               優(yōu)化是沒有止境的,在對程序?qū)?xì)致優(yōu)化前要對程序每個部分測試下時間,對非常耗時的部分做優(yōu)化,一但滿足你的要求就可以,不要為了優(yōu)化而優(yōu)化,我們應(yīng)該有更重要的東西要學(xué),不要陷在優(yōu)化上而不能自拔!!

     

    本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/ww303875615/archive/2009/12/10/4977742.aspx


    主站蜘蛛池模板: 狠狠干视频网站| www.伊人.com| 欧美xxxx少妇| 午夜福利无码不卡在线观看| 韩国公和熄三级在线观看| 夜夜高潮夜夜爽国产伦精品 | 国产极品白嫩美女在线观看看| 一区二区和激情视频| 日本三级2021最新理论在线观看| 亚洲日韩区在线电影| 狂野欧美性猛交xxxx| 国产一级强片在线观看| 黑人巨大精品大战白人美女| 大战孕妇12p| 久久96国产精品久久久| 日韩人妻无码精品无码中文字幕| 亚洲精品国产电影| 用手指搅乱吧~打烊后的...| 国产女人的高潮大叫毛片| 99热成人精品国产免国语的| 巨胸动漫美女被爆羞羞视频| 九九免费观看全部免费视频| 欧美一级免费在线观看| 佐佐木明希哔哩哔哩| 精品国产福利第一区二区三区 | 久久精品国产亚洲AV高清热| 欧美乱妇狂野欧美在线视频| 你懂的在线视频网站| 粉嫩大学生无套内射无码卡视频| 国产偷亚洲偷欧美偷精品| 黄录像欧美片在线观看| 国产精品第十页| gogo全球高清大胆啪啪| 宝宝你里面好烫很软不想出来| 久久人人爽人人爽人人片av高请| 日韩精品亚洲一级在线观看| 亚洲欧美中文日韩综合| 欧美视频免费一区二区三区| 动漫人物一起差差差漫画免费漫画| 羞羞漫画小舞被黄漫免费| 国产嫩草影院在线观看|