0

次の議論:

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

VDSPコンパイラのFFTアルゴリズムをベアメタルアプリに変換してコアBで実行し、コアAで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'GNUldバージョン2.17cycle_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 toRet_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:未定義の参照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 toSave_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 toSave_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: Save_R7' / home/williamへの未定義の参照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/Development_new/Music_Recognition/code/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/cycle_count.asm:45:Ret_Add'/home/william/Development_new/Music_Recognitionへの未定義の参照/uCLinux/uclinux-dist/user/blkfin-apps/icc_utils/example/DSP_imp/CFFT_Rad4_NS_NBRev/corea/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; 

.......。

ありがとう

ウィリアム

4

1 に答える 1

0

GNUアセンブラが理解できるように、コードに_Ret_Add_Save_R7の宣言はありません。VDSPasmからGNUasmに移植する必要があります。

_Ret_Add: .int 0;

または、下位互換性を維持したい場合は、次のようにします。

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

これを見てください。

于 2011-10-31T20:08:55.580 に答える