なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

V850付録基板でOgg Vorbisプレイヤー(3)

Posted by arms22 on 2007年05月13日 0  1

Tremorは浮動小数点演算を使わず64bit整数演算のみでデコードを行います。其の為、Tremorのコンパイルにはコンパイラが64bit演算に対応している必要があります。 残念なことにNECのCコンパイラCA850は64bit演算に対応していません。そこでgccでV850のクロス開発環境を構築することにしました。
利用するパッケージはbinutils-2.17とgcc-3.4.6。gccのクロスコンパイルの手順はこちらを参考にした。

ただ今のところMacOSX(10.3)ではgccのコンパイルが通っていない。gcc/config/v850/lib1funcs.asmのコンパイルで次のようなエラーが発生している。

gcc-3.4.6/build-v850/gcc/xgcc -Bgcc-3.4.6/build-v850/gcc/ -nostdinc -Bgcc-3.4.6/build-v850/v850-nec-elf/newlib/ -isystem gcc-3.4.6/build-v850/v850-nec-elf/newlib/targ-include -isystem gcc-3.4.6/newlib/libc/include -B/usr/local/cross/v850-nec-elf/bin/ -B/usr/local/cross/v850-nec-elf/lib/ -isystem /usr/local/cross/v850-nec-elf/include -isystem /usr/local/cross/v850-nec-elf/sys-include -O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include -mno-app-regs -msmall-sld -Wa,-mwarn-signed-overflow -Wa,-mwarn-unsigned-overflow  -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../intl -mv850e -DL_callt_save_20 -xassembler-with-cpp -c ../../gcc/config/v850/lib1funcs.asm -o libgcc/v850e/_callt_save_20.o
../../gcc/config/v850/lib1funcs.asm: Assembler messages:
../../gcc/config/v850/lib1funcs.asm:1613: Error: prepare {r20-r29},0: operand out of range (0 is not between 0 and -1)
../../gcc/config/v850/lib1funcs.asm:1613: Error: prepare {r20-r29},0: operand out of range (0 is not between 0 and -1)
../../gcc/config/v850/lib1funcs.asm:1613: Error: prepare {r20-r29},0: operand out of range (0 is not between 0 and -1)
../../gcc/config/v850/lib1funcs.asm:1613: Error: prepare {r20-r29},0: operand out of range (0 is not between 0 and -1)
../../gcc/config/v850/lib1funcs.asm:1613: Error: prepare {r20-r29},0: operand out of range (0 is not between 0 and -1)
../../gcc/config/v850/lib1funcs.asm:1613: Error: dispose 0,{r20-r29},r31: operand out of range (0 is not between 0 and -1)
make[2]: *** [libgcc/v850e/_callt_save_20.o] Error 1
make[1]: *** [libgcc.a] Error 2
make: *** [all-gcc] Error 2
ソースコード自体はすでに実績があるので問題ないとして、アセンブラv850-elf-asのコンパイルがうまくいっていないのか?
エラーが発生した該当箇所のコードを抜き出してv850-elf-asに食わせてやると同じエラーが発生している。

追記:binutils-2.14では上記エラーは警告扱いになるのでgccのコンパイルが通るかも。。

Ads by Google

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。