C6000 DSP技術深度探索-圖像處理算法仿真到硬件實現踩過的那些坑

C6000 DSP技術深度探索-圖像處理算法仿真到硬件實現踩過的那些坑

寫在前面

時間如白馬過隙,今天登錄CSDN,發現距離自己上次發佈的博客已經過了三年有餘,但依然記得當時註冊CSDN時的想法,學習大神的經驗,通過撰寫博客記錄自己工作中的點滴,提升自己的文字編輯能力,卻發現很多事情堅持下來真的不容易,一方面自己工作中難於使用網絡,另一方面,作爲一名有娃的程序員,自己的時間少的可憐,工作之餘還要擔負帶娃的職責,即使不帶娃,娃也不會給你一個安安靜靜上網碼字的機會。

圖像處理算法-仿真篇

說起圖像處理算法仿真,肯定離不開MATLAB,MATLAB以其強大的科學計算仿真能力和數據可視化能力,爲圖像處理算法的仿真提供了強大的工具基礎,針對圖像及視頻數據處理,MATLAB提供了專業的圖像處理工具箱,裏面提供了各種常用的圖像處理算法以及圖像可視化工具。在我的工作中,對於一些簡單的算法原理,直接可以使用MATLAB提供的函數即可,對於絕大多數想法需要自己進行設計,以源碼的形式完成各種仿真,以方便後期向硬件平臺的移植工作。

DSP硬件移植篇-挖坑篇

工作多年,深知一套正規的軟件開發流程、軟件編程規範及好的編程習慣的重要性,奈何始終無法從一而終的貫徹執行,經常是虎頭蛇尾,最終挖了一些需要自己付出深刻代價才能填掉的坑,與在MATLAB平臺仿真不同,硬件移植過程更需要我們考慮更多的東西,首先要對我們所使用的硬件平臺的資源做到心中有數,最少要清楚有多少一級存儲資源,多少二級存儲資源,多少片外存儲資源,使用的硬件接口有哪些(串口、網絡、SRIO、GPIO、SPI),其次要對C語言及數據結構有一個深入的瞭解,此外還要了解所使用硬件平臺的一些特性,如 針對TI公司的多核DSP,要對其編譯器和優化原理有一些深入的瞭解,這才能在你的算法移植完成,無法滿足實時處理要求時進行深度的優化。

DSP硬件移植篇-坑的種類

  1. 硬件接口:出現問題,首先要確保不是硬件接口的問題,這個確定的方式比較簡單,通過數據源端構建測試數據流來對DSP端進行驗證,常用的做法就是發送遞增數據,或者其他有規律方便定位問題的數據
  2. 語言篇:這裏的坑可多可少,就要看每個人的水平和實際的項目經歷,作爲程序員,不要害怕出錯,可以通過不斷爲自己填坑和爲他人填坑,來提高自己的能力。
  3. 編程中最害怕的問題就是程序跑飛的問題,如果可以排除硬件的問題(如看門狗等),則基本可以斷定是內存訪問越界的問題,涉及到內存訪問越界,基本逃不出數組和指針的使用問題,如果代碼量不算大,可以約個好友,一起把代碼從頭到尾覈查一遍;如果比較大,則可以逐步屏蔽新增的代碼,直至定位到出問題的代碼段,範圍縮小後,配合單步調試定位出錯原因。
  4. 算法移植過程中另外的一個問題就是,對於MATLAB和DSP 中的圖像訪問方式不太一樣,此外MATLAB作爲一種腳本語言,操作及存儲數據時,一般不需要定義數據類型,而DSP中使用C語言作爲編程語言,需要嚴格確定數據類型,這還涉及到定點與浮點數據的確定及轉換問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章