我準備移植一個算法,從PC上面到DSP。
PC程序中數據的輸入輸出都是用文件IO。首先我考慮將這些文件IO保留,直接在Visual DSP++5.0中編譯運行,是沒有錯誤的。但是在執(zhí)行程序的時候出現了bug,就發(fā)生在文件IO函數里面。而在PC上是沒有錯誤的。
我覺得可能是環(huán)境不同,編譯出來的結果還是有差別,可能導致出錯?不知道對不對?同時,我考慮到實際運行在DSP上的程序,文件IO是不能使用的,所以不準備調試這個錯誤,而是直接將這部分代碼去掉。
這樣就涉及一個問題,DSP中數據的輸入和輸出問題。雖然在實際系統中,可以通過一系列接口將數據寫到DSP的存儲器,如SDRAM。但是在調試時,這么做我覺得太麻煩而且可能不知道錯誤產生在哪兒?
我覺得比較理想的方式就只是采用仿真器直接在DSP上調試。借助IDE,開始時讀入應該是一種方式我覺得。但是上面我提到了,文件IO出錯了,而我也不想花時間調試這些函數(實際是沒用的)。同時這種方式還是要做實際使用調試一步。
所以我想有沒有其他方式,可以把數據加載到存儲器中。比如SDRAM,跟實際使用的時候一致。以上是我的想法,可能不準確。請問這種情況下,一般采用哪種調試方式較好?
答:
調試方法有很多,不過要看具體情況。您這塊的問題我建議您還是先把IO的錯誤解決,不要覺得以后沒用就跳過去了。建立好的調試方法,能夠極大的加快后期的開發(fā)進度,如果您此處跳過,那么以后就面臨后期調試手段單一,更加加大后期調試的難度。我們一般調試部分占研發(fā)部分的30%以上,也就是說,很多程序為了調試和驗證,要開發(fā)很多無關的代碼,這個是避免不了的。
DSP部分的IO操作如果接上仿真器,那么是和PC上完全相同的,只是訪問速度慢一些而已。