以前から以下のような記事で MSP430 マイコンを扱っていたのですが、なんの巡り合せか研究で使うことになりました。
- 「超低消費電力」のMSP430マイコンを弄ってみた(1)
- 「超低消費電力」のMSP430マイコンを弄ってみた(2)
- 「超低消費電力」のMSP430マイコンを弄ってみた(3)
- MSP430の統合開発環境を見つけた話
最終的には「IDE 見つけたぞわーい!」って言って終わっているのですが、月日が経つに連れて IDE を嫌いになり、コマンドライン至上主義的な考えが見についてしまっていることに気が付きましたww
これまでは、有志によって配布されている既存のパッケージを実行することで gcc たちをインストールしていました。が、そのバージョンは gcc7系 だとか、gcc-8系 です。今や gcc-9.1 が出ているのですから、最新版が欲しいですよね。
そこで、自前でビルドしてみっかとなったわけです。
やるぞ
ということで、せっかくなのでビルドをしたいと思います。相変わらず Mac 用ですが、多分 Ubuntu でも出来ると思います。Windows の人は頑張って。
僕のマシンでは大体20分[要出典]くらいで出来たとともいます。きっとおそらく多分。
使ったツールチェインのバージョンはこちら。
- binutils 2.32
- gcc 9.1.0
- newlib 3.1.0
共通のコマンド
このブログの読者さんなら分かると思いますが、ビルドは例えば以下のように共通したルーティーンで行っています。
$ cd binutils-2.32 # binutilsのディレクトリに移動
$ mkdir build_msp430 # msp430ビルド用のディレクトリを作成
$ cd build_msp430 # そこに移動
$ ../configure ... # 適切なconfigureをしてビルド用ファイルを生成
$ make -j16 # ビルド開始 なんとなく16並列で
$ make install # ビルドが終わったらインストール。パーミッションで怒られたらsudoさんに頼る
以下に示すのは ../configure
コマンドの詳細です。それぞれのツールチェインで当てはめて実行してください。
binutils
$ ../configure --target=msp430-elf --prefix=/usr/local/cross/msp430-elf --disable-werror --disable-nls --disable-bootstrap
gcc(1回目)
まずは C 言語用の gcc や libgcc 等を作るところから。C++ 用の g++ は newlib が必要になるので一旦パスします。
$ PATH=/usr/local/cross/msp430-elf/bin:$PATH # PATHを通す
$ ../configure --target=msp430-elf --prefix=/usr/local/cross/msp430-elf --disable-werror --disable-nls --disable-bootstrap --disable-libssp --enable-languages=c
newlib
詳しくは(あまり詳しくないが)この記事を参照あれ。
$ ../configure --target=msp430-elf --prefix=/usr/local/cross/msp430-elf --disable-werror --disable-bootstrap --disable-newlib-supplied-syscalls --enable-newlib-reent-small --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --enable-newlib-nano-malloc --disable-newlib-unbuf-stream-opt --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io --enable-target-optspace --disable-nls
gcc(2回目)
お待ちかねの C++ 用コンパイラ g++
のビルドと libstdc++
のビルドです。MSP430 マイコンで C++17 が使えるなんてワクワクしてきますね。
$ ../configure --target=msp430-elf --prefix=/usr/local/cross/msp430-elf --disable-werror --disable-nls --disable-bootstrap --disable-libssp --enable-languages=c,c++ --with-newlib
ヘッダ類のインストール
ここまで来た方々、お疲れ様です。ここからは大体ビルドターゲットに合わせたリンカスクリプト類の作成になるのですが、製造元の TI からこれらをダウンロードできますので利用させてもらいましょう。
ページ下部の msp430-gcc-support-files-1.207.zip をダウンロードし、展開してください。
そうしたら、include
の中身を /usr/local/cross/msp430-elf/msp430-elf/include
内にコピーすれば完了です。
これにて、C と C++ のコンパイル環境が出来ました。最新版が使えるということで満足です。