2011-10-31 122 views
0

繼discution:的Blackfin GCC-工具鏈連接錯誤未定義參考`Ret_Add」

https://blackfin.uclinux.org/gf/project/uclinux-dist/forum/?_forum_action=ForumMessageBrowse&thread_id=46813&action=ForumBrowse&forum_id=39

我轉換FFT算法中爲VDSP編譯裸機應用核B上運行,並且具有uclinux的運行核心答:我有一個鏈接錯誤,我不明白它來自哪裏:

調用:'/opt/uClinux/bfin-elf/bin/../bfin-elf/bin/ld.real' '-v''-o''test_ad1836_driver''-T''coreb_test_ad1836_driver.lds''--just-symbol''../../icc_core/icc''queue.o''ezkit_561.o''heap_2 .o''port.o''tasks.o''test_ad1836_driver.o''list.o''croutine .o''u​​ser_isr.o''bfin_isr.o''app_c.o''context_sl_asm.o''cycle_count.o''CFFT_Rad4_NS_NBRev.o''--Ttext''0x3c00000''-L''/ opt/uClinux/bfin-elf/bfin-elf/lib''-L''/ opt/uClinux/bfin-elf/bfin-elf/lib''-lc' GNU ld version 2.17 cycle_count.o:功能Compute_Cycle_Count': /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:22: undefined reference to Ret_Add' /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:23:undefined reference to Ret_Add' /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:27: undefined reference to Save_R7' /home/william /Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:28:undefined reference to Save_R7' /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:44: undefined reference to Save_R7' /home/william/Development_new/Music_Recognition /代碼/ uCLinux的/ uclinux的 - 距離/用戶/ blkfin-應用/ icc_ut ils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:45:undefined reference to Save_R7' /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:48: undefined reference to Ret_Add' /home/william/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev /科雷亞/ cycle_count.asm:49:未定義參考`Ret_Add」

代碼如下:

.section僞l1.data;
.align 4;
.var _Ret_Add = 0;
.var _Save_R7 = 0;

.section l1.text;
.global _Compute_Cycle_Count;
.align 8;
_Compute_Cycle_Count: P0.L = _Ret_Add;
P0.H = _Ret_Add;
R3 = RETS;
[P0] = R3;

P0.L = _Save_R7;              
    P0.H = _Save_R7;              
    [P0] = R7; 

........

感謝

威廉

+0

呃......你真的相信這個問題是提出來的,它會激發人們閱讀它? –

回答

0

你沒有_Ret_Add_Save_R7的聲明在代碼由GNU彙編理解。你應該端口從VDSP彙編到GNU ASM:

_Ret_Add: .int 0; 

也許如果你願意把它向後兼容:

.if defined (__GNUC__) 
_Ret_Add: 
.int 0; 
.else 
.var _Ret_Add =0; 
.endif 

看看this

+0

太棒了!它使sens –

+0

偉大!有道理。感謝pmod。代碼現在編譯。對於問題演示,我認爲我給了所有信息:上下文,編譯器輸出和相關的代碼。我雖然理解這種方式更清楚。讓我知道一個更好,更有吸引力的方式來問這種類型的問題,所以我改善了。再次感謝 –

+0

我很高興我能提供幫助。您可以清理問題以刪除不相關的長路徑名 – pmod

相關問題