DSP軟體開發心得

skywalker_leo發表於2013-11-09

    如何學習一款DSP?瞭解DSP,重點是瞭解它的核心能力是什麼?它有哪些外設?它的外設都有提供哪些工作模式?系統工程師可以結合它的核心能力及外設提供什麼樣的功能來支援上層應用的實現。對,這也是我們拿到一個專案後,對DSP進行選型的關鍵。

    回想之前我重點總是放在學習如果使用DSP的某個模組,如何通過操作暫存器來使這個模組正常工作。現在看來,這些內容未免太細枝末節了,失掉了關注系統和總體的機會。但是反過來想,一個工程師不能對每一個模組都瞭如指掌,那又拿什麼來做總體設計?這是矛盾的,辯證的。我時常設想,如果是搞電子和計算機理論出身的,是否可以直接從上到下來看待系統的問題,從而不需要了解細節就可以完成系統設計工作?

    我從畢業就一直在一個很小的研發團隊工作至今,最開始隊伍裡應該是有那麼一兩個大牛的,隨著公司的變遷,後來這個“大牛”的角色不得不由我來扮演。到現在,我想這也僅僅是“扮演”罷了!很遺憾,最初那兩年經驗太少,不能從真正的大牛身上多吸取到些精髓;很遺憾,接著的兩年在DSP上面的研究基本靠單打獨鬥(其間偶得指導,但其實雙方多是不得要領),專案單一,進步如蝸牛,始終不開竅;這兩年有點積累,才算是有那麼點豁然開朗。其實,這應該是個螺旋上升的過程。所以,看來我是做不到完全是自頂向下的設計,但我可以摸著石頭過河,通過加深下細節的理解來不斷完善下層的設計。也許,隨著以後經驗的積累,可以做得到理想的脫離程式設計細節的設計。

    朝著這個目標邁進,現在可以做些什麼,讓腳步更快著,步伐更大些?我覺得應該是想辦法直接瞭解DSP每個模組最基本的工作方式。有沒有這樣的書,有沒有有經驗的人,最次只能是從閱讀DSP文件開始,自己一點一滴進行總結和抽象。

    接觸DSP已有7年,至今才有一些自己的心得。從一開始根本不關注DSP是什麼,只在uClinux編寫應用程式;接著要關注通訊介面,用DMA加快通訊效率;然後為了瞭解別人應用程式的工作邏輯開始反彙編,再反成C程式碼;再到為了瞭解DSP的每一個功能模組,逐一閱讀文件;再到自己拿到一款DSP,從文件開始去實現自己的應用;(我下一階段應該會怎麼做?……)。值得高興,有點遺憾!高興的是這段時間的努力並沒有白費,遺憾的是這麼多年才出點成果。

    本人“軟體工程”專業出身,上大學時有“嵌入式方向”,而我選的是更著重於上層邏輯的“電子商務”方向。大四實習之前,怎麼都沒有想過自己將會從事“嵌入式”相關的開發工作,這樣的想法在畢業後一兩年都還挺頑固。而現在嵌入式已經成為我工作的即成事實,除非我轉行,它仍然會是我以後的主要工作。這就是現實和理想的距離!

    偶有想法,未完待續……

相關文章