MIPSはこの先生きのこれる事が出来るか [無断転載禁止]©2ch.net

1774ワット発電中さん2016/05/02(月) 17:32:38.51ID:QMkHT/Xh
90年代後半にゲーム機で席巻するも00年代後半に猛烈なARMの巻き返しを受け
風前の灯のMIPSアーキテクチャを語るスレ

16774ワット発電中さん2017/02/01(水) 17:00:53.63ID:YkFCd/O+
>>14
Microchip社、8ビットマイクロコントローラの 売り上げランキングで再びトップに
http://news.infoseek.co.jp/article/dreamnews_0000111737/

>また、32ビットMCUでは42.3%の成長を達成し、
>32ビットMCUサプライヤ トップ10入りを果たしました。

17774ワット発電中さん2017/02/01(水) 19:25:05.41ID:tDndqkta
他のメーカーは16bitに移ってるから

トップ10てwww
つまりダメダメってことだ

18774ワット発電中さん2017/02/01(水) 19:36:33.69ID:tDndqkta
ルネサスはRL78に統合したからな
PICの8bitとじゃパフォーマンスは大違い

19774ワット発電中さん2017/02/02(木) 01:02:42.45ID:oPgnAdFj
DIPだとMIPSしか選択肢がないんだよな。

20774ワット発電中さん2017/02/02(木) 07:25:47.77ID:DOGElvhw
>>19
作っているところを見ると趣味で収まらない用途があるんだろうね。
片面基板にフロー半田で32ビットってどれぐらいの用途があるんだろう。
モーター制御あたりなのかな。

21774ワット発電中さん2017/02/02(木) 08:26:51.91ID:LHHU0/9a
他のメーカーが作ってないんで、ごく限られた用途しかないのは確か

22774ワット発電中さん2017/02/02(木) 08:27:53.43ID:LHHU0/9a
低密度の安い基板を使う用途だろうけど、大型家電とか?

23774ワット発電中さん2017/02/02(木) 16:06:37.71ID:e4OrDMhc
デンソーはMIPSで行くらしい
デンソーはトヨタのグループ企業でルネサスの大株主の中の一社でルネサスの顧客企業の一つでもある
日本電産がルネサスを買収しようとしたのをトヨタと一緒に横槍を入れて止めさせたくらいの影響力はある
モノが出てないのでまだどうなるかわからないけど

デンソー、自動運転に向けたCPUのマルチスレッド技術で英企業と共同研究
https://japan.cnet.com/article/35092144/

デンソーが自動運転でMIPSコアを選んだ理由
http://techon.nikkeibp.co.jp/atcl/news/16/110704910/?rt=nocnt

24774ワット発電中さん2017/02/02(木) 16:10:29.62ID:e4OrDMhc
ちなみにルネサスは産業革新機構が7割近い株を保有してる半国有企業
http://biz-journal.jp/images/post_15758_03.jpg

25774ワット発電中さん2017/02/04(土) 07:35:23.31ID:mZTySmzQ
おまえらが使って生きのこるんだよ

26774ワット発電中さん2017/02/04(土) 08:40:08.81ID:OSIVln0V
MIPS Release 6はCodescape MIPS SDK Essentialsで試せる
Codescape MIPS SDK Essentialsといってもgcc、g++、gfortran
それとqemuも付いてるからコンパイルしたプログラムをqemu上で実行することも可能

Download Codescape MIPS SDK Essentials
https://community.imgtec.com/developers/mips/tools/codescape-mips-sdk/download-codescape-mips-sdk-essentials/

Codescape GNU Tools for MIPS IMGはMIPS Release 6用
Codescape GNU Tools for MIPS MTIはMIPS Release 5とそれ以前用

LinuxでのCodescapeのインストールの仕方は
http://codescape-mips-sdk.imgtec.com/installer/essentials/release/CodescapeMIPSSDK-1.4.1.07/CodescapeMIPSSDK-1.4.1.07-linux-x64-installer.run
をダウンロードして
chmod u+x CodescapeMIPSSDK-1.4.1.07-linux-x64-installer.run
sudo ./CodescapeMIPSSDK-1.4.1.07-linux-x64-installer.run

これでインストーラーが走る


コンパイル方法
export PATH=/opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/bin:$PATH
mips-img-linux-gnu-gcc -EL -march=mips64r6 -mabi=64 -O2 -o hogehoge hogehoge.c
mips-img-linux-gnu-g++ -EL -march=mips64r6 -mabi=64 -O2 -o hogehoge hogehoge.cpp
mips-img-linux-gnu-gfortran -EL -march=mips64r6 -mabi=64 -O2 -o hogehoge hogehoge.f
注意:-ELはリトルエンディアンの指定、ビッグエンディアンなら-EB


qemuでの実行方法

こんな感じのシェルスクリプトを書いて実行

qemu-mips64el.sh

#!/bin/bash
export LD_LIBRARY_PATH=/opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64
/opt/imgtec/Simulators/qemu/2.5.0.2.0/bin/qemu-mips64el -cpu MIPS64R6-generic -L /opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/sysroot/mipsel-r6-hard $1

注意:ビッグエンディアンならqemu-mips64を使用する

実行権の付加
chmod u+x qemu-mips64el.sh

実行
./qemu-mips64el.sh hogehoge



32bitなら
コンパイル
export PATH=/opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/bin:$PATH
mips-img-linux-gnu-gcc -EL -march=mips32r6 -mabi=32 -O2 -o hogehoge hogehoge.c
mips-img-linux-gnu-g++ -EL -march=mips32r6 -mabi=32 -O2 -o hogehoge hogehoge.cpp
mips-img-linux-gnu-gfortran -EL -march=mips64r6 -mabi=32 -O2 -o hogehoge hogehoge.f


qemu-mipsel.sh

#!/bin/bash
export LD_LIBRARY_PATH=/opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/mips-img-linux-gnu/lib/mipsel-r6-hard/lib
/opt/imgtec/Simulators/qemu/2.5.0.2.0/bin/qemu-mipsel -cpu mips32r6-generic -L /opt/imgtec/Toolchains/mips-img-linux-gnu/2016.05-03/sysroot/mipsel-r6-hard $1

27774ワット発電中さん2017/02/04(土) 08:53:50.48ID:OSIVln0V
MIPS Relase2の場合

コンパイル方法
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の一覧が表示される

28774ワット発電中さん2017/02/04(土) 09:01:24.99ID:OSIVln0V
ちなみにCodescape MIPS SDK Essentialsは全部入れると8GBくらいになります

29774ワット発電中さん2017/02/04(土) 09:13:24.05ID:OSIVln0V
アセンブラソースとリスティングファイルも出したいときはこんな感じ

mips64r6の場合
mips-img-linux-gnu-gcc -EL -march=mips64r6 -mabi=64 -O2 -S -o hogehoge.s hogehoge.c
mips-img-linux-gnu-as -a=hogehoge.lst -EL -march=mips64r6 -mabi=64 -o hogehoge.o hogehoge.s
mips-img-linux-gnu-gcc -EL -march=mips64r6 -mabi=64 -o hogehoge hogehoge.o


mips32r6の場合
mips-img-linux-gnu-gcc -EL -march=mips32r6 -mabi=32 -S -o hogehoge.s hogehoge.c
mips-img-linux-gnu-as -a=hogehoge.lst -EL -march=mips32r6 -mabi=32 -o hogehoge.o hogehoge.s
mips-img-linux-gnu-gcc -EL -march=mips32r6 -mabi=32 -o hogehoge hogehoge.o


mips64r2の場合
mips-mti-linux-gnu-gcc -EL -march=mips64r2 -mabi=64 -O2 -S -o hogehoge.s hogehoge.c
mips-mti-linux-gnu-as -a=hogehoge.lst -EL -march=mips64r2 -mabi=64 -o hogehoge.o hogehoge.s
mips-mti-linux-gnu-gcc -EL -march=mips64r2 -mabi=64 -o hogehoge hogehoge.o

mips32r2の場合
mips-mti-linux-gnu-gcc -EL -march=mips32r2 -mabi=32 -S -o hogehoge.s hogehoge.c
mips-mti-linux-gnu-as -a=hogehoge.lst -EL -march=mips32r2 -mabi=32 -o hogehoge.o hogehoge.s
mips-mti-linux-gnu-gcc -EL -march=mips32r2 -mabi=32 -o hogehoge hogehoge.o

30774ワット発電中さん2017/02/04(土) 09:21:28.32ID:OSIVln0V
ちなみに上記方法でQEMUで実行できるのはLinuxのみです
Windows版のCodescape MIPS SDK EssentialsはMIPSのLinuxで実行できるプログラムは作成できますが
WindowsではQEMUのユーザモードは使えません

31774ワット発電中さん2017/02/04(土) 11:24:29.85ID:OSIVln0V
補足
Ubuntuの16.04のapt-get installで入れたqemuでも動作するが
mips32r6の場合、ダイナミックリンクライブラリが正常に読み込まれなくて実行できなかった
mips64r6、mips64r2、mips32r2は正常に実行できた

Ubuntu16.04のapt-get installで入れたgcc-mipsel-linux-gnuやgcc-mips-linux-gnuでは
mips32r6やmips64r6のコンパイルはできない
MIPS Release 6のコンパイルには上記のようにCodescape MIPS SDK Essentialsを使うべき

32774ワット発電中さん2017/02/05(日) 13:15:04.58ID:KwkDZ3F1
今ってこんな長いの書き込めるんだな

33774ワット発電中さん2017/02/06(月) 05:08:01.31ID:IQd9QK99
Creator Ci20 Linux/Android Computer Bd
http://jp.rs-online.com/web/p/processor-microcontroller-development-kits/1253305/
¥11,208(税抜き)
単価: 購入単位は1個

MIPSアーキテクチャーCPUとグラフィックボードで3Dゲームもそのまま動く高性能
KitKatも動くハイスペックシングルボードコンピューター、出荷開始
http://ascii.jp/elem/000/000/975/975289/

高性能開発ボード「MIPS Creator CI20」を使ってみた--「Raspberry Pi」への新たな挑戦者
https://japan.cnet.com/article/35058718/


Creator Ci20ボードの仕様

MIPS CPU
Ingenic JZ4780 SoC
MIPSベースのXBurst 1.2 GHz CPU x 2

GPU
PowerVR SGX540 GPU
最大1080pビデオに対応

メモリ
1 GB DDR3 SDRAM

マルチメディア
HDMIポート
カメラインターフェイス
オーディオI/O

IO拡張
拡張ヘッダ、赤外線
Raspberry Pi B I/O

保管場所
8 GB NANDフラッシュ

接続
イーサネットポート x 1
802.11 n
Bluetooth 4.0

34774ワット発電中さん2017/02/06(月) 05:19:12.27ID:IQd9QK99
Creator Ci40 IoT Kit with Clicker Boards
http://jp.rs-online.com/web/p/processor-microcontroller-development-kits/1253307/
¥24,698(税抜き)
単価: 購入単位は1個

Creator Ci40 IoTキットの内容
Creator Ci40開発ボード(RS 125-3306)
MikroElektronika 6LoWPANクリッカボード x 2
MikroElektronikaクリックボード x 3 (Relay Click (RS 820-9858)、Motion Click (RS 882-9008)、Thermo3 Click (RS 923-6012)
マイクロUSBケーブル x 1
Ci40スタンドオフマウント x 4
オプションでmikroProg又はPICkitデバッガをクリッカボードに接続するための5ピンヘッダ x 2

Creator Ci40開発ボード
Imagination TechnologiesのCreator Ci40ボードは、
IoT用途向けに、高性能・低電力のマイクロコントローラに最適化されています。
クロック周波数550 MHzのデュアルコア、デュアルスレッドのMIPS CPUを搭載するcXT200 SoCを使用しています。
Ensigma接続エンジンにより、超高速WiFiと低電力Bluetoothによる接続が可能です。

Creator Ci40は、OpenWrt、Debian、Brillo (GoogleのIoTに最適化された新オペレーティングシステム)など、
幅広いGNU/Linuxディストリビューションに対応しています。
このボードは、多くの既存のRaspberry Pi HAT及びMikroBus クリックに対応しており、
コンセプトをすばやくプロトタイプに進めることができます。

MIPS CPU
550 MHzデュアルコア、デュアルスレッドinterAptiv
32/32 KB L1キャッシュ x 2
512 KB L2キャッシュ x 1
浮動小数点演算ユニット
OpenWRT Linux OS

IO拡張
MikroElektronikaクリックインターフェイス x 2
Raspberry Piインターフェイス x 1 (40ピンヘッダ)

接続
802.11 AC 2 x 2 WiFi
802.15.4 6LoWPAN
Bluetooth (LE及びクラシック)
RJ45イーサネットポート x 1
1 x USB

セキュリティ
TPMチップ

メモリ
2 MBブートNORフラッシュ
512 MB NANDフラッシュ
256 MB DDR3 SDRAM
SDカードスロット

35774ワット発電中さん2017/02/06(月) 05:28:45.92ID:IQd9QK99
LinkIt Smart 7688
https://labs.mediatek.com/en/platform/linkit-smart-7688

LinkIt Smart 7688
https://www.seeedstudio.com/LinkIt-Smart-7688-p-2573.html
$12.90

LinkIt Smart 7688 Duo
https://www.seeedstudio.com/LinkIt-Smart-7688-Duo-p-2574.html
$15.90

MediaTek、オープンソース開発プラットフォームLinkIt Smart 7688を発表
http://news.mynavi.jp/news/2015/12/04/369/

メディアテックがスマートホーム電化製品向けのSoCを発表
http://prw.kyodonews.jp/opn/release/201406041142/


メディアテックがスマートホーム電化製品向けのSoCを発表
http://prw.kyodonews.jp/opn/release/201406041142/

36774ワット発電中さん2017/02/06(月) 20:54:24.92ID:W7hO2caq
32bit MIPSだとしても昔のIndyより高性能なのか…

37774ワット発電中さん2017/02/12(日) 16:25:05.47ID:VWVMAbta
MIPS in space: Inside NASA’s New Horizons mission to Pluto
https://www.imgtec.com/blog/mips-in-space-inside-nasa-new-horizons-mission-to-pluto/

初代PlayStationのCPUを搭載したNASAの無人探査機が冥王星に到達
http://gigazine.net/news/20150116-playstation-pluto/

Mongoose-V
https://en.wikipedia.org/wiki/Mongoose-V

38774ワット発電中さん2017/02/26(日) 07:19:42.87ID:qRRVoSGj
Halley IoT Module
http://shimafuji.co.jp/HalleyIoTModule/index.html
http://www.ingenic.com/~editor/eweditor/uploadfile/20130116103727965.png
  ・ Powered by Ingenic M150, up to 1.0GHz, embedded 128MB LPDDR
  ・ Support Wi-Fi IEEE 802.11 b/g/n
  ・ Support Bluetooth 4.1
  ・ External interfaces to LCD, audio, SD card, USB, UART, I2C, SPI, ADC, PWM, GPIO etc.
  ・ Support 8MB SPI Flash
  ・ Open source Linux 3.10 operating system


Ingenic M150
http://www.ingenic.com/en/?product/id/12.html
http://www.ingenic.com/en/~editor/eweditor/uploadfile/20160612093224514.png
CPU
XBurst core, 1.0GHz (MIPS-based). 32KB L1 cache, 256KB L2 cache.
GPU
X2D: Resizing, Rotating, Mirror, Color Convention and OSD etc.
VPU
Video encoder: H.264, D1@30fps.
Video decoder: H.264, MPEG-1/2/4, VC-1, VP8, RV9, 720P@30fps.
Memory
On-chip 128MB LPDDR, up to 320Mbps.
64-bit ECC NAND flash, 512B/2KB/4KB/8KB/16KB page size.
Conventional and toggle NAND flash.


XBurst CPU
http://www.ingenic.com/en/?xburst.html
XBurst CPU Specification:
Architecture
MIPS32 Release 2
XBurst SIMD
Pipeline
9-stage, single issue
Dhrystone
2.0 DMIPS/MHz
MMU
32 dual-entry full associative joint TLB
4 entry ITLB
4 entry DTLB
Cache
32KB/64KB L1 cache
256KB/512KB L2 cache
Debug
EJTAG
Process
0.18um, 90nm, 65nm, 40nm
Performance andPower consumption
(1.0GHz, 0.09mW/MHz) @65nmLP
(1.2GHz, 0.07mW/MHz) @40nmLP, performance optimized
(500MHz, 0.05mW/MHz) @40nmLP, power optimized

39774ワット発電中さん2017/02/26(日) 07:39:48.66ID:qRRVoSGj
Ingenic Halley is a $20 Linux based IoT Board with Wi-Fi and Bluetooth 4.1 Connectivity
http://www.cnx-software.com/2015/02/10/ingenic-halley-is-20-linux-based-iot-board-with-wi-fi-and-bluetooth-4-1-connectivity/

40774ワット発電中さん2017/02/26(日) 14:11:22.38ID:RIIaLRYf
PIC32なんてPICでわない!

41774ワット発電中さん2017/02/28(火) 02:39:15.14ID:nUQpXHNb
かといってPIC32がMIPSの代表みたいに言われるのも違うと感じる

42774ワット発電中さん2017/02/28(火) 07:16:00.84ID:RyStpz0O
じゃあ今の代表はどちら様?

43774ワット発電中さん2017/03/08(水) 05:55:20.40ID:uAfyQY+T
MIPSでLinuxが動作する開発ボードは日本で入手するには1万円超えるな
これらを購入する人はなんらかのシングルボードコンピュータを既に持ってる人だろうけど

MIPS Creator Ci40 Development Board Powered by cXT200 SoC Launched for $53 on Kickstarter
http://www.cnx-software.com/2015/11/23/mips-creator-ci40-development-board-powered-by-cxt200-soc-launched-for-53-on-kickstarter/

MIPS Creator CI20 Development Board is Now Available for $65
http://www.cnx-software.com/2014/12/05/mips-creator-ci20-development-board-is-now-available-for-65/

Ingenic Halley is a $20 Linux based IoT Board with Wi-Fi and Bluetooth 4.1 Connectivity
http://www.cnx-software.com/2015/02/10/ingenic-halley-is-20-linux-based-iot-board-with-wi-fi-and-bluetooth-4-1-connectivity/


Creator Ci40 IoT開発ボード
http://jp.rs-online.com/web/p/products/1253306/
¥12,348(税別)
Creator Ci40 IoT開発キット
http://jp.rs-online.com/web/p/products/1253307/
¥24,698(税別)

Creator Ci20シングルボードコンピュータ
http://jp.rs-online.com/web/p/products/1253305/
¥11,208(税別)

T-Kernel 2/MIPS-M150ボード
http://www.t-engine4u.com/products/tk2mips-m150.html
標準価格 29,800円(税別)

44774ワット発電中さん2017/03/08(水) 06:02:39.46ID:uAfyQY+T
MilkCakeでLinux
このページは T-kernel2/MIPS-M150ボード 上でLinuxを動作させる手順について説明しています。
CPUモジュールはIngenic製Halley IoT Moduleです。
http://shimafuji.co.jp/HalleyIoTModule/MilkCake/index.html
http://shimafuji.co.jp/HalleyIoTModule/index.html
http://www.kumikomi.net/interface/sample/201611/if11_167.pdf

45774ワット発電中さん2017/03/08(水) 06:06:46.50ID:uAfyQY+T

46774ワット発電中さん2017/03/08(水) 07:48:33.44ID:TQfpPvJ4
繰り返し書いて何か宣伝なのか?
安いのほしいならLinkIt Smart 7688 DuoなりOmega2なりを
買えば良い話だよな

47774ワット発電中さん2017/03/08(水) 15:46:02.20ID:GoxodW4M
https://goo.gl/Nximd0
これ本当??
普通にショックだね。。

48774ワット発電中さん2017/03/10(金) 20:02:16.07ID:zHBkzwaL
MIPSなのにx86とARMアプリを高速に実行できる中国製CPU「龍芯」のカラクリ
http://pc.watch.impress.co.jp/docs/topic/feature/1048911.html

ARMとx86のコードが走る中国製の高性能MIPS64 CPU「龍芯3号」
http://pc.watch.impress.co.jp/docs/news/719645.html

中国製CPU「龍芯3号 3A3000」を搭載したノートPC、間もなく登場か
http://pc.watch.impress.co.jp/docs/news/1048409.html

49774ワット発電中さん2017/03/31(金) 07:18:58.71ID:apzTADVy
懐かしい名前が
10年以上前の中国公安版OLPCプロジェクトの時からここはMIPS押しだったな
まだやってたのか

ただ、バイナリ変換なんて歴史的に上手くいった例がないからなー
Crusoe&Efficeonを思い出してしまう
どうせ性能出ないのなら、
MacのPPC→x86のRosetta
みたいに完全ソフト実装のほうが色々融通利きそうに思う

50774ワット発電中さん2017/04/09(日) 08:42:16.11ID:NXRzDcMn
x86_64のUbuntu 16.04および16.10でMIPS32R2クロスコンパイル環境を構築

注:mips32r6やIEEE754R-2008を使う場合はこの方法ではできません
>>26,>>27の方法でやってください


$ sudo apt-get install qemu
$ sudo apt-get install g++-mipsel-linux-gnu

これで終わり


コンパイル方法
$ mipsel-linux-gnu-gcc -o test01 test01.c

数学ライブラリを使った場合は
$ mipsel-linux-gnu-gcc -o test01 test01.c -lm


アセンブル方法(アセンブルソースはtest01.s)
$ mipsel-linux-gnu-as -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-ld -o test01 test01.o

gccでアセンブルソースを出力させてアセンブルする方法
$ mipsel-linux-gnu-gcc -S -o test01.s test01.c
$ mipsel-linux-gnu-as -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-gcc -o test01 test01.o


qemuでの実行方法
$ qemu-mipsel -cpu 24kf -L /usr/mipsel-linux-gnu test01


これを実行すれば直接コマンドラインから実行できるようになる
export QEMU_LD_PREFIX=/usr/mipsel-linux-gnu

51774ワット発電中さん2017/04/09(日) 08:43:00.79ID:NXRzDcMn
x86_64のUbuntu 16.04および16.10でMIPS64R2クロスコンパイル環境を構築

注:mips64r6やIEEE754R-2008を使う場合はこの方法ではできません
>>26,>>27の方法でやってください

$ sudo apt-get install qemu
$ sudo apt-get install g++-mips64el-linux-gnuabi64

これで終わり


コンパイル方法
$ mips64el-linux-gnuabi64-gcc -o test01 test01.c

数学ライブラリを使った場合は
$ mips64el-linux-gnuabi64-gcc -o test01 test01.c -lm


アセンブル方法(アセンブルソースはtest01.s)
$ mips64el-linux-gnuabi64-as -a=test01.lst -o test01.o test01.s
$ mips64el-linux-gnuabi64-ld -o test01 test01.o

gccでアセンブルソースを出力させてアセンブルする方法
$ mips64el-linux-gnuabi64-gcc -S -o test01.s test01.c
$ mips64el-linux-gnuabi64-as -a=test01.lst -o test01.o test01.s
$ mips64el-linux-gnuabi64-gcc -o test01 test01.o


qemuでの実行方法
$ qemu-mips64el -cpu MIPS64R2-generic -L /usr/mips64el-linux-gnuabi64 test01


これを実行すれば直接コマンドラインから実行できるようになる
export QEMU_LD_PREFIX=/usr/mips64el-linux-gnuabi64

52774ワット発電中さん2017/04/09(日) 08:55:36.57ID:NXRzDcMn
QEMUが対応してるCPUの種類はこれで調べられる

$ qemu-mipsel -cpu ?
$ qemu-mips64el -cpu ?

53774ワット発電中さん2017/04/15(土) 20:38:45.08ID:xE0/koy2
MIPSの%hi()や%lo()は癖があるね

%hi(value01)
   32bitの値の上位16bitを取り出す
%lo(value01)
   32bitの値の下位16bitを取り出す
ここで注意が必要なのは
・value01の15bit目が1の場合、
 %hi(value01)の値はvalue01の上位16bitの値に1を加えたものになる
 このように使うことで$4にvalue01の正しい値が入る模様
lui $4, %hi(value01)
addiu $4, $4, %lo(value01)

 addiu $4, $4, imm16はimm16が符号拡張されて$4に加算されるので
 そのための%hi()の値が調整されてる模様
 なぜかMIPSは符号拡張が好きみたい

54774ワット発電中さん2017/04/15(土) 20:39:53.13ID:xE0/koy2
64bitの場合は

%highest(value01)
64bitの値のbit48からbit63までの16bitを取り出す
%higher(value01)
64bitの値のbit32からbit47までの16bitを取り出す
%hi(value01)
64bitの値のbit16からbit31までの16bitを取り出す
%lo(value01)
64bitの値のbit0からbit15までの16bitを取り出す

ここでも注意が必要で
・value01の47bit目が1の場合、
 %highest(value01)はvalue01のbit48-63の16bit値に1を加えたものになる
・value01の31bit目が1の場合、
 %higher(value01)はvalue01のbit32-47の16bit値に1を加えたものになる
・value01の15bit目が1の場合、
 %hi(value01)はvalue01のbit16-31の16bit値に1を加えたものになる

64bitイミディエイトのロードは下記のようになる模様
lui $4, %highest(value01)
daddiu $4, $4, %higher(value01)
dsll $4, $4, 16
daddiu $4, $4, %hi(value01)
dsll $4, $4, 16
daddiu $4, $4, %lo(value01)

55774ワット発電中さん2017/04/15(土) 21:06:01.96ID:xE0/koy2
mips64r6では新しくdahi、datiが追加され下記のように
64bitイミディエイト値を読み込める模様
%highest()、%higher()、%hi()、%lo()の仕様はmips64r2と同じ

lui $4, %hi(value01)
dahi $4, %higher(value01)
dati $4, %highest(value01)
daddui $4, $4, %lo(value01)

注意:MIPS64R6はあまり使われない命令を削除し、新しい命令を追加したもので
MIPS64R5、MIPS64R3、MIPS64R2などとはバイナリ互換性はありません。

56774ワット発電中さん2017/04/18(火) 18:31:05.00ID:YFaFclpS
>>55
dadduiじゃなくてdaddiuですよ
dahiとdatiのオペランドも違ってます

lui $4,%hi(value01)
dahi $4,$4,%higher(value01)
dati $4,$4,%highest(value01)
daddiu $4,$4,%lo(value01)



>>50
mipsel-linux-gnu-asに-march=mips32r2をつけないとエラーがでますね

$ mipsel-linux-gnu-gcc -S -o test01.s test01.c
$ mipsel-linux-gnu-as -march=mips64r2 -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-gcc -o test01 test01.o

57774ワット発電中さん2017/04/18(火) 18:52:27.07ID:YFaFclpS
ミス
こうです

$ mipsel-linux-gnu-gcc -S -o test01.s test01.c
$ mipsel-linux-gnu-as -march=mips32r2 -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-gcc -o test01 test01.o

58774ワット発電中さん2017/04/18(火) 19:47:22.30ID:epCQHyiq
浮動小数みたいにメモリ経由じゃだめなん?

59774ワット発電中さん2017/04/18(火) 22:34:35.71ID:YFaFclpS
MIPS64R2のCコンパイラだと倍精度浮動小数点の値はこういう感じで読み込んでる
ld $2,%got_page(.LC1)($28)
ldc1 $f1,%got_ofst(.LC1)($2)
$28にはGOT(Global Offset Table)のアドレスを関数の冒頭で読み込んでる
MIPS64R2にはPC相対ロード命令がないから面倒になるね
あらかじめリテラルプールの先頭のアドレスをレジスタに読み込んでおいて
そこからのオフセットで読み込めばもっと効率よくなるね
MIPS32R6、MIPS64R6ではPC相対ロード命令が追加されてる

60774ワット発電中さん2017/04/29(土) 06:45:16.31ID:HJ7qszEI
>>59
MIPS64R2のコンパイラで通常のコンパイルをすると
グローバル変数は下記のように1命令で読み込んでるぞ
ld $4,%got_disp(test01)($28)

ただ、1つのオブジェクトファイルで参照できるグローバル変数の個数に制限があるようだ
int型だと約8000個まででそれを超えるとコンパイルは通るがリンク時にエラーが出る
あくまで1つのオブジェクトファイルから参照できるグローバル変数の数で
グローバル変数の宣言はもっと多くの数を宣言できるようだ

61774ワット発電中さん2017/04/29(土) 06:49:28.60ID:HJ7qszEI
あくまで一つのオブジェクトファイルから参照できる数の制限で
たとえば2つのC言語のソースa.cとb.cにわけてコンパイルして
a.o、b.oに分かれるようにしておけば
a.c、b.cはそれぞれ約8000個のグローバル変数を参照できるようだ

62774ワット発電中さん2017/04/29(土) 07:05:08.96ID:HJ7qszEI
あと、あくまで

ld $4,%got_disp(test01)($28)

で読み込んでるのはグローバル変数のアドレスだね

63774ワット発電中さん2017/06/20(火) 19:44:10.77ID:HzUei2fa
新MIPSコア、Mobileyeの「EyeQ5」に搭載へ
http://eetimes.jp/ee/articles/1706/20/news034.html

MobileyeのEyeQ 5に搭載のCPUコア、Imaginationが発表
http://techon.nikkeibp.co.jp/atcl/news/16/061607990/?ST=print
英Imagination Technologies社は、機能安全規格の対応に向けた64ビットCPUコア「MIPS I6500-F」を発表した。
同社の既存64ビットCPUコア「MIPS I6500」に、機能安全を確保するための各種仕様を追加したものである。

64774ワット発電中さん2017/07/20(木) 21:48:59.41ID:bC58O0y8
☆ 日本人の婚姻数と出生数を増やしましょう。そのためには、☆
@ 公的年金と生活保護を段階的に廃止して、満18歳以上の日本人に、
ベーシックインカムの導入は必須です。月額約60000円位ならば、廃止すれば
財源的には可能です。ベーシックインカム、でぜひググってみてください。
A 人工子宮は、既に完成しています。独身でも自分の赤ちゃんが欲しい方々へ。
人工子宮、でぜひググってみてください。日本のために、お願い致します。☆☆

65774ワット発電中さん2017/12/27(水) 13:55:25.55ID:22mySsTl
家で不労所得的に稼げる方法など
参考までに、
⇒ 『武藤のムロイエウレ』 というHPで見ることができるらしいです。

グーグル検索⇒『武藤のムロイエウレ』"

OCF1RPKZWQ

66774ワット発電中さん2018/01/11(木) 07:35:59.01ID:3ywVNp09
>>43
Linux 動かすレベルならARM で良いだろ。

新着レスの表示
レスを投稿する