mrubyがIchigoJamで動くらしい 第4回戦

# あらすじ

[mrubyがIchigoJamで動くらしい 第3回戦](https://qiita.com/miyatama/items/9d877913bff666360b7a)の続き。
今回はとりあえずいったん書き込みまで正常にできていた状態までもどしてからmruby-l1vmを導入する。

 + [mruby-1.4.1に戻す](#come_back_mruby_1_4_1)
 + [mruby-l1vmを試す](#challenge_mruby_l1vm)
 + [はたして実行方法は適切か?](#validate_applorch)
 + [mmruby.binは適切か？](#validate_mmruby_bin)
 + [ふりかえり](#furikaeri)

# 結果

![result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/729ce20c-5567-11eb-e0d7-abafa2bc150d.png)


# <a name="come_back_mruby_1_4_1">mruby-1.4.1に戻す</a>

mrubyのバージョンを落とし、書き込みが正常に終了する所まで確認する。

[mruby-1.4.1 released](http://mruby.org/releases/2018/04/27/mruby-1.4.1-released.html)からコードを落としてビルドとパス設定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/2d9fe905-ec55-3fb2-54fc-146299ceba5c.png)
<font color="dark_pink">3日間中2回登場した1.4.1</font>

micro_mruby_for_lpc1114をVisual Studioで開き、code.rbをコンパイル。

```ruby:code.rb
while true
  led 1
  wait 10
  led 0
  wait 10
end
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/cfb2b387-4242-8882-a980-f7e1b6ebdb52.png)
<font color="dark_pink">まぁ、ここは無事通るだろう。</font>

無事にコンパイルできたようなので、TransCoder。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/aa54f0ca-2c12-19aa-002c-9af1e0746fcd.png)
<font color="dark_pink">まぁまぁ、前回も無事通ってるから。</font>

src配下のcode.h,symbol_ids.hを置き換えて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/838164c2-9e4b-15b5-fbe6-bf5bb8efffc6.png)

いざ、make

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/4619bbc3-ed7d-3d5e-921a-43de1bdd1ea4.png)
<font color="dark_pink">サクサク進んでるな。</font>

PC,USBシリアル変換モジュール,IchigoJamを接続すし、make writeコマンドを叩く。
syncronizingに入ったらIchigoJamの電源を投入する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/2fc3981c-5efc-2c7b-e808-39fffcae044e.png)
<font color="dark_pink">Now launching the brand new codeですって！(2日ぶり2回目)</font>

USBシリアル変換モジュールとIchigoJamを切り離し、電源投入

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/f5875b15-7120-65bc-09af-daf9af29c66e.png)
<font color="dark_pink">うん。やっぱり動いてないな。</font>

以上をもって現状(?)復帰終了。

# <a name="challenge_mruby_l1vm">mruby-l1vmを試す</a>

すでにcode.mrbが出来ているので、早速mruby-l1vmを呼び出す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/f67b94da-d697-36a5-c4df-61f161ba068d.png)
<font color="dark_pink">お、それっぽいエラーが出た。</font>

mruby_l1vm.hを見る限り23はありそうな気がするが、なんか色々あるんだろう。


# <a name="validate_applorch">はたして実行方法は適切か?</a>

ここまで来てもう一度全部ふりかえってみたいと思う。

 + 1.環境は一通りそろえた
 + 2.ビルドも書き込みも正常に終了した
 + 3.電源投入しても動かない

何が悪いのか。今までは1,2をメインで色々やってきた。最後は3だ。
本家ブログの[mruby VM level 1 in 2KB / 実用最小限VMとIchigoJam BASICと動かす組込Ruby](https://fukuno.jig.jp/2475)を見ていただきたい。

なんと、ディスプレイとキーボードがIchigoJamに接続されている！
電源投入するだけではダメな可能性が出てきた。
早速やってみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/77ea854a-1fc4-bd70-4eb6-c1cdf91a2681.png)
<font color="dark_pink">no signalですか...</font>

まだまだ、何か見落としがないか[Ruby on Jam! IchigoJamで動くROM8KBのミニ Ruby VM と、mruby ver2.0対応はじめのいっぽ - mmruby for LPC1114](https://fukuno.jig.jp/2473)を見てみる。

なんか、make all writeしたらそのまま動き出してる。
じゃぁ、電源投入すると動き出すってのもの間違えてない。


# <a name="validate_mmruby_bin">mmruby.binは適切か？</a>

code.mrb自体想定されているべきものが出力されているんだろうかと思い、
test配下のmrbと見比べるもヘッダは特に変な感じではない。

ここで俺に電流が走る。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/6a8fb31b-cc9a-e2d1-820e-08469d7805c0.png)
<font color="dark_pink">何やってんの!2日前の俺</font>

Makefileをまともな状態にもどして、再度make all writeしたが、変化なし。
よくよくIchigoJamを見てみるとやたらめったらLEDが弱ーく光ってる。
書き込んだ後はUSBシリアル変換モジュールと切り離したうえでIchigoJamの電源を再投入してみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42445/25fefc5f-8d0c-e290-5582-9856259cddb5.png)
<font color="dark_pink">しゃおらぁ！</font>

# <a name="furikaeri">ふりかえり</a>

何が原因か特定するまでに時間がかかったがその分かなり多くの知見が得られた。
何をしくじると何が起こるのか大体わかってきた。
あきらめなくてよかった。