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