TinyJS on mbed が面白そうなので動かしてみた。
TinyJSとは : 2000行以下で書かれた非常に小さいJavaScriptインタプリタエンジン
「LPC1768では利用できるメモリは非常に少ない(9kbytes以下)」とのことなので、メモリの多いFRDM-K64F(1MB FLASH, 256KB RAM)に移植してみた。
【手順 】
オリジナルのままではFRDM-K64F用にコンパイルが通らなかったので、一か所修正した。
”Mbed_Functions.cpp”のpinNameStringの変換をしているところを以下のようにした。
//-----------------------------------------------------------------
PinName _mbedPinNameExchange(string pinNameString)
{
#if defined(TARGET_K64F)
if (pinNameString == "D0") return D0;
if (pinNameString == "D1") return D1;
if (pinNameString == "D2") return D2;
if (pinNameString == "D3") return D3;
if (pinNameString == "D4") return D4;
if (pinNameString == "D5") return D5;
if (pinNameString == "D6") return D6;
if (pinNameString == "D7") return D7;
if (pinNameString == "D8") return D8;
if (pinNameString == "D9") return D9;
if (pinNameString == "D10") return D10;
if (pinNameString == "D11") return D11;
if (pinNameString == "D12") return D12;
if (pinNameString == "D13") return D13;
if (pinNameString == "D14") return D14;
if (pinNameString == "D15") return D15;
if (pinNameString == "A0") return A0;
if (pinNameString == "A1") return A1;
if (pinNameString == "A2") return A2;
if (pinNameString == "A3") return A3;
if (pinNameString == "A4") return A4;
if (pinNameString == "A5") return A5;
#elif defined(TARGET_LPC1768)
if (pinNameString == "p5") return p5;
if (pinNameString == "p6") return p6;
if (pinNameString == "p7") return p7;
if (pinNameString == "p8") return p8;
if (pinNameString == "p9") return p9;
if (pinNameString == "p10") return p10;
if (pinNameString == "p11") return p11;
if (pinNameString == "p12") return p12;
if (pinNameString == "p13") return p13;
if (pinNameString == "p14") return p14;
if (pinNameString == "p15") return p15;
if (pinNameString == "p16") return p16;
if (pinNameString == "p17") return p17;
if (pinNameString == "p18") return p18;
if (pinNameString == "p19") return p19;
if (pinNameString == "p20") return p20;
if (pinNameString == "p21") return p21;
if (pinNameString == "p22") return p22;
if (pinNameString == "p23") return p23;
if (pinNameString == "p24") return p24;
if (pinNameString == "p25") return p25;
if (pinNameString == "p26") return p26;
if (pinNameString == "p27") return p27;
if (pinNameString == "p28") return p28;
if (pinNameString == "p29") return p29;
if (pinNameString == "p30") return p30;
#endif
if (pinNameString == "LED1") return LED1;
if (pinNameString == "LED2") return LED2;
if (pinNameString == "LED3") return LED3;
#if defined(TARGET_LPC1768)
if (pinNameString == "LED4") return LED4;
#endif
if (pinNameString == "USBTX") return USBTX;
if (pinNameString == "USBRX") return USBRX;
return NC;
}
//-----------------------------------------------------------------
【実行】
実行ファイルをFRDM-K64Fに書き込んでLチカを動かしてみた。
使い方の詳細はこちらを参照。
TinyJSが使えるmbed上での残りメモリのバイト数は、207,093バイト!
注意:TeraTermを使った場合「端末の設定:改行コード:受信」をAUTOにしないと表示がうまくいかなかった。
とりあえずLチカしか動かしてないが、時間があったら他のことも試してみたい。
ー以上ー