DSP unresolved symbol問題的解決

 使用CCS5編譯工程時出現錯誤  unresolved symbol _ADC_cal, first referenced in ./DSP2833x_SysCtrl.obj

1:Severity and Description Path Resource  Location Creation Time Id
     
 errors encountered during linking; "timer_sdram.out" not built
Severity and Description Path Resource Location Creation Time Id
unresolved symbol _ADC_cal, first referenced in ./DSP2833x_SysCtrl.obj

出現這樣的問題,通常是少了一些文件,需要手動添加這些文件到工程裏
解決的方法是:在工程上右擊links files to project,之後找到DSP2833x _ADC_cal.asm
文件添加到工程裏


2:當我在用到軟件中自帶的頭文件中的一些結構體,共用體。說白了就是要對芯片寄存器
的位進行操作時軟件給我們提供了方便,如果不能 “.” 符號不能靈活彈出對應選項時,例如
CpuTimer0Regs.TCR.all,應該檢查CpuTimer0Regs是否敲寫正確,應該編譯一下工程,
我的做法就是寫一個頭文件,和主函數,並在函數裏寫一個InitSysCtrl();(當然前提你的頭文件要
有定義這個函數)在編譯。
3:在學習中遇到了在工程中不用添加頭文件,有軟件來自動查找,就是得先設置Properties選項,指定頭文件的路徑,
在這之前我一直都是手動添加頭文件,很是麻煩,對於不太熟練的我還容易出錯,
4:還要注意要將我們寫的程序中用到的源文件全部添加到工程中(這句話聽起來好像沒說似的,其實不然),
如果我們平時在編寫程序時,不注意他,他經常會給添加不必要的麻煩(說白了就是在浪費你的時間)
5:
我在主函數裏用到(“MemCopy(&XintffuncsLoadStart, &XintffuncsLoadEnd, &XintffuncsRunStart);”)
編譯時出現下列錯誤提示:
unresolved symbol _MemCopy, first referenced in ./timer_sdram.obj
這樣的問題一看就是MemCopy這的問題,
1-可能是在你調用前沒有聲明,在工程中沒有添加這個函數
2-我們在用到這個MemCopy時拼寫錯誤
自己在學習DSP中,在看過的一些書上有的說過在自己編寫工程時不清楚自己工程裏要用到
什麼源文件可以把他們都添加到工程裏,今天就出現了問題,由此想起了“盡信書不如無書”
6:
errors encountered during linking; "cpu_flash1.out" not built  
placement fails for object ".text", size 0x1091 (page 0).  Available ranges: RAML1  
出現這樣的錯誤是因爲自己多添加了“DSP2833x_ECan.c”這個文件
7:
errors encountered during linking; "cpu_flash1.out" not built
symbol "_delay_loop" redefined: first defined in "./cpu_flash.obj"; redefined in "./DSP2833x_Mcbsp.obj"  
我的這個程序是對FLASH進行讀寫操作,正如提示我多加了“DSP2833x_Mcbsp.h”源文件出現了錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章