<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇DSP專區DSP6000系統開發 → HELLODSP TIC6000


      共有7988人關注過本帖樹形打印

    主題:HELLODSP TIC6000

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    HELLODSP TIC6000  發帖心情 Post By:2010-11-22 14:24:37

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

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

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

    結束
           就寫這么多了,一家之言,里面有很多廢話,希望對初學者有點幫助,拋磚引玉,也希望高手們多多寫出自已的經驗。

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

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ww303875615/archive/2009/12/10/4977742.aspx


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    HELLODSP TIC6000








    簽名
    主站蜘蛛池模板: 国产无套粉嫩白浆在线| 日本免费一区二区三区最新| 四虎影院成人在线观看俺也去色官网| 91麻豆最新在线人成免费观看| 性色av无码不卡中文字幕| 亚洲中文字幕久久无码| 波多野结衣一区二区三区高清av | 亚洲人成色7777在线观看不卡| 男女交性特一级| 国产午夜精品久久久久免费视| 97人人在线视频| 天天综合天天综合| 久久久www成人免费精品| 日韩高清在线免费观看| 亚洲精品国产高清不卡在线 | 亚洲一卡一卡二新区无人区| 欧美肥臀bbwbbwbbw| 又爽又黄又无遮挡的视频在线观看| 这里只有精品视频| 国产精品免费看久久久| www.精品国产| 戍人视频fc2最近一周| 久久综合中文字幕| 樱桃直播免费看| 天天操夜夜操视频| 久久久久国色av免费看| 最新中文字幕一区| 亚洲精品v天堂中文字幕| 狠狠色丁香九九婷婷综合五月| 国产丝袜制服在线| 青草影院内射中出高潮| 国产精品免费视频播放器| a一级毛片免费高清在线| 女人让男人桶的小视频| 久久99精品九九九久久婷婷| 日本护士取精视频xxxxx全部| 亚洲午夜久久久久妓女影院| 欧美成年黄网站色视频| 俄罗斯大荫蒂女人毛茸茸| 竹菊影视国产精品| 国产a三级三级三级|