PicoRubyをさわってみる
#PicoRuby #mruby/c
GitHubリポジトリ
https://github.com/picoruby/picoruby
Hello World
code:sh
git clone https://github.com/picoruby/picoruby.git
cd picoruby
git submodule update --init --recursive
# macOSの場合
rake LDFLAGS=-L$(brew --prefix openssl@3)/lib CFLAGS=-I$(brew --prefix openssl@3)/include
Hello World
PicoRubyをインストールして、Hello Worldしてみる。
code:sh
$ git clone https://github.com/picoruby/picoruby.git
$ rake
$ ./build/host/bin/picoruby --verbose -e 'puts "Hello World!"'
token> MODE_NONE IDENTIFIER puts EXPR_CMDARG len=4 line=1 pos=0
token> MODE_TSTRING_DOUBLE STRING_BEG " EXPR_CMDARG len=1 line=1 pos=5
token> MODE_NONE STRING Hello World! EXPR_END len=12 line=1 pos=6
token> MODE_NONE STRING_END " EXPR_END len=1 line=1 pos=18
[ATOM_program,
[ATOM_stmts_add,
ATOM_stmts_new _,
[ATOM_fcall,
ATOM_at_ident, "puts"
_,
[ATOM_args_add,
[ATOM_args_new,
ATOM_str, "Hello World!"
_ _,
_,
_ _ _ _ _
pos: 0 / len: 10
1 000 OP_STRING R2 L(0)
1 003 OP_SSEND R1 :0 1
1 007 OP_RETURN R1
1 009 OP_STOP
52 49 54 45 30 33 30 30 | 00 00 00 5d 4d 41 54 5a RITE0300|000]MATZ
30 30 30 30 49 52 45 50 | 00 00 00 41 30 33 30 30 0000IREP|000A0300
00 00 00 35 00 01 00 04 | 00 00 00 00 00 00 00 0a 00050■0■|0000000■
51 02 00 2d 01 00 01 38 | 01 69 00 01 00 00 0c 48 Q■0-■0■8|■i0■00■H
65 6c 6c 6f 20 57 6f 72 | 6c 64 21 00 00 01 00 04 ello Wor|ld!00■0■
70 75 74 73 00 45 4e 44 | 00 00 00 00 08 puts0END|0000■
Hello World!
$
r2p2
r2p2のuf2をダウンロード
https://github.com/picoruby/picoruby/releases/tag/3.4.2
ダウンロードした「R2P2-PICORUBY-3.4.2-PICO2_W-20260329-9b94521d.uf2」をラズピコ2へ書き込む
R2P2 Web Terminalを起動
https://picoruby.org/terminal
R2P2のバージョンに「3.4.5」を指定して、Connect する
/home/app.rb の消し方
https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html の Reset flash memory にある nuke_universal.uf2 をラズピコ2へ書き込んでフラッシュの初期化を行う
再度R2P2のファームを書き込んで実行すると、/home/app.rb が(app.rb 以外も)無くなっている
レイトレを動かしてみる
app.rb へレイトレを書き込んで、reboot する
Out of memory で落ちた...
https://gyazo.com/17edab8213134b0a02f622e8cbd4615d