1 無法開啟某個標頭檔案
情況:在乙個工程資料夾中,新建了乙個include資料夾,將標頭檔案都放置在其裡面,但是在ccs中提示無法找到該標頭檔案。
解決:在project選單裡的build option中,compiler頁內,在category裡選擇proprocessor,然後在include search path(-i)後的框裡,填寫:$(proj_dir)\include
2 seed vpm642源**裡面的預編譯
情況:#ifdef _loop2_ _loop2_在各個.h .c檔案中都找不到。
解決: 還是再1裡面的那個頁面,在pre-define symbol(-d)後面的框裡,填上 _loop2_就好了,然後整個工程就預設是已經做過#define _loop2_
3 如何引用自己的庫,或是其他人的庫函式。
解決: 在cmd檔案中用 -l 這個命令寫,如-l lib\seedvpm642_vport.l64
格式好像是 -l 位址 \ 庫檔名.l64
4 函式符號 多次被定義
情況:在按照例程自己程式設計序,在cmd檔案中新增rts6400.lib和csldm642.lib後編譯
>> error: symbol _c_int00 is defined multiple times: boot.obj
(.\\lib\\rts6400.lib) and boot.o64 (c:/ccs/c6000/bios/lib/biosi.a64)
>> error: symbol __stack is defined multiple times: boot.obj
(.\\lib\\rts6400.lib) and boot.o64 (c:/ccs/c6000/bios/lib/biosi.a64)
use -heap option to change the default size.
>> error: errors in input - ./debug/seedmotiontest.out not built
解決: 將rts6400.lib去掉,該庫在bios裡面已經自動新增了
5 cmd檔案報錯
情況:把rts6400注釋掉了,編譯中未出現重定義錯誤,但連線是卻有新的報錯:
>> ~~~~~.cmd: error: can\'t open file \'/.obj\' for input
解決:cmd檔案不該用『 // 』 來注釋,應該用『 /* */ 』,導致這個的原因就是在上一步取掉rts6400.lib時,用了//
6. gel配置不當引發的問題
情況: 在通過ccs往dm642燒寫程式時,報錯:data verification failed at address 0x8~~~~~~~
解決:將開啟工程時,預設的gel檔案刪除,載入seeddm642.gel。
由於預設的gel檔案沒有配置emifa,所以若有程式要往sdram裡面燒寫時,sdram無法正確使用,所以會有驗證錯誤。
7 在bios 圖形配置裡面,加seeddm642.init函式
情況:自己仿照seedvpm642_videoloop工程,編寫乙個程式,在i2c處dsp死掉。經過檢視i2c控制代碼值,與map檔案中的控制代碼位置不一樣。
解決:i2c的控制代碼在seeddm642.init函式中生成的,所以應該在bios配置工具中system->global settings裡面的cal user init function打鉤,然後再框裡寫入 _seedvpm642_init
8 引導程式後,執行,一選擇暫停dsp,電腦上的ccs就死掉了
情況:編寫seedvpm642_videoloop程式,刪除了vp0display後,又新建了乙個。結果就執行不對,經常死。
解決:再新建的時候,忘記選io模型為iom_fxns,結果程式就無可救的跑飛了
9 指標的指標如何取結構體中的某個量
情況:capchan是gio_handle的指標,用capchan->timeout 出錯,用*capchan-> timeout 也出錯
解決:加個小括號 (*capchan)->timeout,按道理取內容運算子*的優先順序更高啊。。。搞不懂
10 使用dsp/bios 動態建立任務,失敗。
情況:在程式中動態建立任務,呼叫 tsk_creat函式,結果返回值是null
解決:在設定dsp/bios的tcf檔案時,忽略了很多初試的東西。
例如,在tsk, task manager 的屬性裡,有設定物件儲存區(object memory)、動態任務堆疊段區域(stack segment for dynamic tasks)他們都應該設定。這裡可以設定為sdram.前面建立任務失敗就是因為stack segment for dynamic tasks 的預設值是空mem_null
DM642啟動過程分析
供所有c6000系列dsp開發者參考。ti關於c6000 bootloader 文件 dm642復位後,晶元先從ce1空間讀取1k位元組的資料到內部sram,然後從位址0開始執行。因為一般的程式都遠遠大於1k位元組,所以一般都是有乙個二級bootloader,用它來載入主程式。bootloader執...
CCS3 3之DM642開發環境建立
使用的 器是seed xdsusb2.0 5v。之前用的是ccs2.2,換成了ccs3.3的。1.安裝ccs3.3.38。在我安裝完後,並沒有急著公升級,公升級的程式是sr12 ccs v3.3 sr 3.3.82.13.exe。2.執行setup ccstudio v3.3進行設定。因為選用的是s...
關於編寫android程式遇到的問題
activity傳值至fragment fragment中的onactivityresult不被呼叫 1.檢查該fragment所屬的activity中,是否重寫了onactivityresult方法。如果是該種情況,請確保寫了super.onactivityresult override prot...