0027774ワット発電中さん
2017/02/04(土) 08:53:50.48ID:OSIVln0Vコンパイル方法
export PATH=/opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/bin:$PATH
mips-mti-linux-gnu-gcc -EL -march=mips64r2 -mabi=64 -O2 -o hogehoge hogehoge.c
mips-mti-linux-gnu-g++ -EL -march=mips64r2 -mabi=64 -O2 -o hogehoge hogehoge.cpp
mips-mti-linux-gnu-gfortran -EL -march=mips64r2 -mabi=64 -O2 -o hogehoge hogehoge.f
注意:-ELはリトルエンディアンの指定、ビッグエンディアンなら-EB
qemuでの実行方法
こんな感じのシェルスクリプトを書いて実行
qemu-mips64el.sh
#!/bin/bash
export LD_LIBRARY_PATH=/opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64
/opt/imgtec/Simulators/qemu/2.5.0.2.0/bin/qemu-mips64el -cpu MIPS64R2-generic -L /opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/sysroot/mipsel-r2-hard $1
注意:ビッグエンディアンならqemu-mips64を使い、ライブラリ指定のmipsel-r2-hardのところをmips-r2-hardに変更
実行権の付加
chmod u+x qemu-mips64el.sh
実行
./qemu-mips64el.sh hogehoge
32bitなら
コンパイル
export PATH=/opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/bin:$PATH
mips-mti-linux-gnu-gcc -EL -march=mips32r2 -mabi=32 -O2 -o hogehoge hogehoge.c
mips-mti-linux-gnu-g++ -EL -march=mips32r2 -mabi=32 -O2 -o hogehoge hogehoge.cpp
mips-mti-linux-gnu-gfortran -EL -march=mips64r2 -mabi=32 -O2 -o hogehoge hogehoge.f
qemu-mipsel.sh
#!/bin/bash
export LD_LIBRARY_PATH=/opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib
/opt/imgtec/Simulators/qemu/2.5.0.2.0/bin/qemu-mipsel -cpu 24Kf -L /opt/imgtec/Toolchains/mips-mti-linux-gnu/2016.05-03/sysroot/mipsel-r2-hard $1
補足:最新の命令を試したければ24KfのところをP5600に変更
microMIPSを試したければ24Kfのところをm14kcを指定(ライブラリの指定はmipsel-r2-hardのところをmicromipsel-r2-softに変更)
コンパイル時に-mmicromips -msoft-floatの指定を追加する(m14kcはFPUを持ってないのでsoft-floatにしないとエラーになる)
/opt/imgtec/Simulators/qemu/2.5.0.2.0/bin/qemu-mipsel -cpu ?
こうするとQEMUが対応してるCPUの一覧が表示される