コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

SakuLua Ver 1.07リリース

GR-SAKURAってご存知でしょうか?若松通商ルネサスが共同開発したマイコンボードです。詳しくは下記のサイトで見てください。
http://japan.renesas.com/press/news/2012/news20120619.jsp
http://japan.renesas.com/products/promotion/gr/index.jsp

このGR-SAKURA通称SAKURAボードで動くLuaソフト「さくるあ」のVer1.07を公開しました。本ブログでは初めての紹介なので、使い方などを書きたいと思います。

入手方法

SakuLuaはオープンソースとしてgithubで公開しています。場所は下記です。
https://github.com/tarosay/SakuLua
ここからダウンロードしてください。

ビルド方法

sketch.binは付属しているのですが、自分のプログラムにLuaを組み込もうという人のために、ソースを公開しています。ちょっと複雑なことをさせようとすると、どうしてもメモリが足りなくなると思います。そんなときには、自分に不必要なライブラリを削って再ビルドもできるように公開しました。
どうぞ、私のサイトからforkしていじってください。
ビルドの方法だけ簡単に書いておきます。
Lua-5.1.5をダウンロードしてください。Lua-5.2も試したのですが、5.1.5の方がサイズが小さくなったので、こちらを採用しました。Lua-5.1.5は下記のURLにあります。
Lua Version history(http://www.lua.org/versions.html#5.1)

Lua-5.1.5を解凍した後、srcフォルダから以下のファイルを取り出して、gr_Lua/luaフォルダに置いてください。そして、lua-5.1.5.patchを当ててください。
gr_Lua/lua/ に下記のファイルを置く。
lapi.c lapi.h lauxlib.c lauxlib.h lbaselib.c lcode.c lcode.h ldebug.c ldebug.h ldo.c ldo.h
ldump.c lfunc.c lfunc.h lgc.c lgc.h linit.c llex.c llex.h llimits.h lmathlib.c lmem.c lmem.h
lobject.c lobject.h lopcodes.c lopcodes.h lparser.c lparser.h lstate.c lstate.h lstring.c
lstring.h lstrlib.c ltable.c ltable.h ltablib.c ltm.c ltm.h lua.h luaconf.h lualib.h
lundump.c lundump.h lvm.c lvm.h lzio.c lzio.h

$ patch < lua-5.1.5.patch

Luaの準備は以上です。
SakuLuaをビルドするには、Renesas Web CompilerにSakuLua一式をアップロードし、2つのライブラリをインポートしてください。ライブラリは「SDMMC Library for GR-SAKURA」と「I2C Library for GR-SAKURA」です。
これでビルド可能なのでbuildを実行し、sketch.binを生成してください。

SakuLuaの使い方

SakuLuaはSAKURAボードをLuaスクリプトで制御仕様というものです。LuaスクリプトはSAKURAボードのマイクロSDメモリカードに入れておきます。電源オンするとこのスクリプトが実行されます。
では、最初に実行されるファイルは何で決まるかというと、マイクロSDメモリカードにあるsakulua.xmlに書いておきます。
以下がsakulua.xmlファイルの中身です。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Config>
    <Start file="loader.lua" />
</Config>

file=に起動時に動かしたいLuaスクリプトファイルを指定しておいてください。ちなみに、SAKURAボードのファイル形式は8.3形式なので、ロングファイル名などは使えません。
実はソースを見てもらえれば分かると思うのですが、特にxmlパーサを実装しているわけではなく、file=を検索しているだけです。暴露しておきます。

実装していないLuaライブラリ

使用メモリサイズを小さくするため、標準のLuaライブラリを削っています。lua-5.1.5.patchの下の方に書いていますが、下記のライブラリは使用していません。
luaopen_package luaopen_io luaopen_os luaopen_debug、string や mathも、もし使わないのであれば、好みで削ってしまってもいいかもしれません。

実装したコマンド類

SAKURAボード用に新たに追加したコマンドを次のブログで書きたいと思います。
SakuLuaコマンド一覧へのリンク