2014年9月11日木曜日

TinyJS on mbedをLPC4088,FRDM-K64Fで動かす



TinyJS on mbedをLPC4088,FRDM-K64Fで動かしてみました。

GAEでオンラインコンパイラ風(ソースコードを繫げてるだけ)にしています。
オンラインエディタでコードを入力してbuildボタンでバイナリーがダウンロードされます。
次のURLで試すことが出来ます。
http://tinyjsmbed.appspot.com/

PinNameの違いはpython-on-a-chipで使っていたPinNameテーブルを使っています。PinNameTable.h

LPC1768版ではメモリの都合で外されていたjavascriptの関数を追加しました。
TinyJS_Functions.cpp(registerFunctions)
exec(jsCode) eval(jsCode) trace() Object.dump() Object.clone() Math.rand() Math.randInt(min, max) charToInt(ch) String.indexOf(search) String.substring(lo,hi) String.charAt(pos) String.charCodeAt(pos) String.fromCharCode(char) String.split(separator) Integer.parseInt(str) Integer.valueOf(str) JSON.stringify(obj, replacer) Array.contains(obj) Array.remove(obj) Array.join(separator)

更に数値・三角関数も追加しました。
TinyJS_MathFunctions.cpp(registerMathFunctions)
Math.abs(a) Math.round(a) Math.min(a,b) Math.max(a,b) Math.range(x,a,b) Math.sign(a) Math.PI() Math.toDegrees(a) Math.toRadians(a) Math.sin(a) Math.asin(a) Math.cos(a) Math.acos(a) Math.tan(a) Math.atan(a) Math.sinh(a) Math.asinh(a) Math.cosh(a) Math.acosh(a) Math.tanh(a) Math.atanh(a) Math.E() Math.log(a) Math.log10(a) Math.exp(a) Math.pow(a,b) Math.sqr(a) Math.sqrt(a)

メモリが多いNucleo-F401REでも動いてほしいのだが、microlibのボードとは相性が良くないみたいです。

print(mbed.memfree());での残りメモリの表示。
LPC4088版
47645バイト
36301バイト TinyJS_Functions.cpp(registerFunctions)を使用。
23733バイト TinyJS_Functions.cpp(registerFunctions)と TinyJS_MathFunctions.cpp(registerMathFunctions)を使用。

FRDM-K64F版
122101バイト TinyJS_Functions.cpp(registerFunctions) と TinyJS_MathFunctions.cpp(registerMathFunctions)を使用。

TinyJS on mbed
http://mbed.org/users/ohneta/code/TinyJS/

GAE用に修正したTinyJS on mbed
http://mbed.org/users/va009039/code/TinyJS/

GAEで動いているWebアプリのソースコード
https://bitbucket.org/va009039/tinyjsmbed

(2014/9/11)
---

0 件のコメント: