第2回戦mrubyIchigoJamあらすじmrubyがIchigoJamで動くと聞いて試したらできなかった。出来なかったなりに公開したら、本家の方から''armコンパイラ使うといい''との情報をいただいた。LPC1114また、別の有識者の方から下記ページも教えていただいた。STM32等のARMマイコンをGCCでビルドする(2017年度後期版)早速やってみる。Windowsからバイナリを落としてインストールする。パスにbinディレクトリを追加し、makeコマンドが使える事を確認する。ToolchainをインストールARM用コンパイラ。Developperのサイトを参考にバイナリを取得する。Releaseが最新っぽいのでここからダウンロードして展開する。こんな感じさらに、arm-none-eabi-objcopy,objcopyのみ昔のバージョンから更新する。興味のある方は自分で調べるだろうから詳細は差し控える。Windowsから環境にあったものをダウンロードしてパスを通す。こんな感じGCCをインストールするMSys2経由で設定を行う。installerからMinGWをインストールしてパッケージを同期させる。続けてGCCインストールgccのパスを見つけてパスに追加する。IchigoJamをシリアル接続するさて、PCの環境が整ったら今度はIchigoJamとPCを接続する準備に入る。何となくどんな作業が必要になるか。PCにターミナルソフト入れるシリアル接続用の回路を組むターミナルでIchigoJamにアクセスするPCにターミナルソフト入れるTeratermでもCoolTermでも好きなものを入れる。今回はCoolTermにした。CoolTerm無事に入ったら起動してみる。最初にシリアルがどうたらこうたら行ってくるけど、レートを115200にしておくだけでいい。起動出来たらこんな感じの画面が出るはずこんな感じのやつシリアル接続用の回路を組む本家サイトにUSB-シリアルと言うジャストな記事があるのでその通りできる方はその通りしていただいたほうがいい。自分は手持ちにシリアル変換基盤があるのでそれを利用する。ちなみに自分の手元になったのはコレ。知っている人に力を借りたほうがいい。太ピンかったら細ピン用の穴ではんだ付けすらムズイ問題ブレッドボードに挿したけどぐらついてて不安がすごい問題シリアル変換とかでググったら大量に候補が出てくる問題etc足がついたらブレッドボードで回路を組んでゆく。回路って言ってもジャンパーでつないでゆくだけ。TXDターミナルでIchigoJamにアクセスするUSBシリアル変換モジュールを利用する場合、PC側にデバイスドライバをインストールする必要がある。MacとかLinuxとかならいらないこともあるだろうか、今回はWindowsなのでしっかり入れる。Chipからダウンロードして好きな所に展開する。こんな感じUSBシリアル変換モジュールをPCに接続して、デバイスドライバをインストールするだけ。こんな感じになってればOKついでにプロパティを開いてレートを115200に変更しておく。ここまでくれば、PC,USBシリアル変換モジュール,IchigoJamが全部つながった状態になる。IchigoJamを起動(*2)して、CoolTermからアクセスする。0''とか打ち込んでIchigoJamのLEDが光ったりすればOK。IchigoJamでmrubyを動かすさぁ、いよいよ最終局面。これ以降は、PC,USBシリアル変換モジュール,IchigoJamが全部つながった状態にして、IchigoJamを起動しておく。lpc1114を開く。Makefileがlinuxっぽくなっているので、Windowsっぽくする。失敗どうやらlpc21ispなるものが必要らしい。lpc21ispをインストールするLadvien/LPC21ISP_Winからダウンロードして好きな場所に配置する。Ladvienさんに一礼したらパスを通す。write''Synchronizingが終わらない。これはあれだな制御信号的なアレだな。言うわけで、ISPをGNDに接続してみてもう一回やる。TXDさらに手順変更。writeIchigoJamの電源入れるレッツトライでき...た...?書き込むプログラムを作るとりあえず本家サイトを見る限り、下記手順で進っぽい。writeするrubyのコードはとりあえずOUT1,2,3をチカチカするだけにする。10endコードの配置場所はここ。releasedからmrbcを取得する。mruby2.0はサポート外っぽいので1.4.1を使う。ダウンロードしたらビルドしてパス通す。後述となりますが、2.0でも(実行まで行けてないので)問題ないです。InstallerからRubyいれる。分からんけどdevelopperだからdevelopper的なの入れる。なんかよく分からんけどもう一回聞かれるので、developperだからdevelopper的なの入れる。何も行う事ないらしい。すりゃいいんだコレとりあえずctrl+cで強制的に終了させる。コマンドプロンプトで叩いてみたら無事入ってるみたいなのでよしとする。いざ、mrubyをビルドbison要るってさ...と言うわけでbison入れる。coreutilsに上書き。入ったいざ、mrubyをビルドregex2要るってさ...と言うわけでregex入れる。coreutilsに上書きして、いざmrubyビルドしゃおらぁ!後はパスを通す。codeですって!いざ、実行。あぁ、長い戦いがもうすぐ終わる...。本家の方からmruby2.0に対応したのでそちらで試してみるとよいとのこと。taisukef/mruby-L1VMと言うわけで、mrubyを2.0へバージョンアップmrby-L1VMをビルドするmrbcを作った後にmrby-L1VMを実施するをやって動かしてみる。downloadsからcurrentの2.0.1をダウンロードする。ダウンロードしたら展開してビルドする。mrubyをビルドするの慣れたよね無事ビルドできたのでパスを通す。mruby-1.4.1は消す。無事に2.0.1が入りました。mrby-L1VMをビルドするtaisukef/mruby-L1VMをダウンロードしてビルドする。