TinyJS

Dependencies:   mbed

Fork of TinyJS by Takehisa Oneta

Files at this revision

API Documentation at this revision

Comitter:
va009039
Date:
Wed Sep 10 08:41:53 2014 +0000
Parent:
8:819934a27c2d
Commit message:
for GAE

Changed in this revision

Mbed_Functions.cpp Show annotated file Show diff for this revision Revisions of this file
PinNameTable.h Show annotated file Show diff for this revision Revisions of this file
TinyJS_Functions.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main2.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/Mbed_Functions.cpp	Mon Jan 20 00:07:35 2014 +0000
+++ b/Mbed_Functions.cpp	Wed Sep 10 08:41:53 2014 +0000
@@ -9,6 +9,7 @@
 #include "mbed.h"
 #include "TinyJS.h"
 #include "Mbed_Functions.h"
+#include "PinNameTable.h"
 
 //---------------------------------------------
 
@@ -62,9 +63,10 @@
     string pinNameString = c->getParameter("pinName")->getString();
     PinName pinName = _mbedPinNameExchange(pinNameString);
     float val = c->getParameter("val")->getDouble();
-
+#if DEVICE_ANALOGOUT
     AnalogOut aout = AnalogOut((PinName)pinName);
     aout.write(val);
+#endif
 }
 
 //---------------------------------------------
@@ -169,6 +171,7 @@
 //---------------------------------------------
 PinName _mbedPinNameExchange(string pinNameString)
 {
+#if 0    
     if (pinNameString == "p5") return p5;
     if (pinNameString == "p6") return p6;
     if (pinNameString == "p7") return p7;
@@ -207,6 +210,22 @@
     if (pinNameString == "USBRX") return USBRX;
 
     return NC;
+#else
+    int imin = 0;
+    int imax = sizeof(pinname_table) / sizeof(pinNameStr) - 1;
+    while(imax >= imin) {
+        int i = (imin + imax) / 2;
+        int c = strcmp(pinNameString.c_str(), pinname_table[i].name);
+        if (c == 0) {
+            return pinname_table[i].pin;
+        } else if (c > 0) {
+            imin = i + 1;
+        } else {
+            imax = i - 1;
+        }
+    }
+    return NC;    
+#endif
 }
 
 //---------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PinNameTable.h	Wed Sep 10 08:41:53 2014 +0000
@@ -0,0 +1,205 @@
+/*
+ * by pinname.py on
+ * Sat Jul 19 08:40:59 2014
+ *
+ * DO NOT EDIT THIS FILE.
+ * ANY CHANGES WILL BE LOST.
+ */ 
+
+#include "mbed.h"
+#pragma once
+
+struct pinNameStr {
+    char* name;
+    PinName pin;
+};
+
+#define P(A) {#A, A}
+const struct pinNameStr pinname_table[] = {
+#if 0
+
+#elif defined(TARGET_LPC1768)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(NC),P(P0_0),P(P0_1),P(P0_10),P(P0_11),P(P0_12),P(P0_13),
+P(P0_14),P(P0_15),P(P0_16),P(P0_17),P(P0_18),P(P0_19),P(P0_2),P(P0_20),P(P0_21),
+P(P0_22),P(P0_23),P(P0_24),P(P0_25),P(P0_26),P(P0_27),P(P0_28),P(P0_29),P(P0_3),
+P(P0_30),P(P0_31),P(P0_4),P(P0_5),P(P0_6),P(P0_7),P(P0_8),P(P0_9),P(P1_0),P(P1_1),
+P(P1_10),P(P1_11),P(P1_12),P(P1_13),P(P1_14),P(P1_15),P(P1_16),P(P1_17),P(P1_18),
+P(P1_19),P(P1_2),P(P1_20),P(P1_21),P(P1_22),P(P1_23),P(P1_24),P(P1_25),P(P1_26),
+P(P1_27),P(P1_28),P(P1_29),P(P1_3),P(P1_30),P(P1_31),P(P1_4),P(P1_5),P(P1_6),P(P1_7),
+P(P1_8),P(P1_9),P(P2_0),P(P2_1),P(P2_10),P(P2_11),P(P2_12),P(P2_13),P(P2_14),P(P2_15),
+P(P2_16),P(P2_17),P(P2_18),P(P2_19),P(P2_2),P(P2_20),P(P2_21),P(P2_22),P(P2_23),
+P(P2_24),P(P2_25),P(P2_26),P(P2_27),P(P2_28),P(P2_29),P(P2_3),P(P2_30),P(P2_31),
+P(P2_4),P(P2_5),P(P2_6),P(P2_7),P(P2_8),P(P2_9),P(P3_0),P(P3_1),P(P3_10),P(P3_11),
+P(P3_12),P(P3_13),P(P3_14),P(P3_15),P(P3_16),P(P3_17),P(P3_18),P(P3_19),P(P3_2),
+P(P3_20),P(P3_21),P(P3_22),P(P3_23),P(P3_24),P(P3_25),P(P3_26),P(P3_27),P(P3_28),
+P(P3_29),P(P3_3),P(P3_30),P(P3_31),P(P3_4),P(P3_5),P(P3_6),P(P3_7),P(P3_8),P(P3_9),
+P(P4_0),P(P4_1),P(P4_10),P(P4_11),P(P4_12),P(P4_13),P(P4_14),P(P4_15),P(P4_16),P(P4_17),
+P(P4_18),P(P4_19),P(P4_2),P(P4_20),P(P4_21),P(P4_22),P(P4_23),P(P4_24),P(P4_25),
+P(P4_26),P(P4_27),P(P4_28),P(P4_29),P(P4_3),P(P4_30),P(P4_31),P(P4_4),P(P4_5),P(P4_6),
+P(P4_7),P(P4_8),P(P4_9),P(USBRX),P(USBTX),P(p10),P(p11),P(p12),P(p13),P(p14),P(p15),
+P(p16),P(p17),P(p18),P(p19),P(p20),P(p21),P(p22),P(p23),P(p24),P(p25),P(p26),P(p27),
+P(p28),P(p29),P(p30),P(p5),P(p6),P(p7),P(p8),P(p9),
+#elif defined(TARGET_LPC1549)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(LED1),P(LED2),P(LED3),P(LED4),
+P(LED_BLUE),P(LED_GREEN),P(LED_RED),P(NC),P(P0_0),P(P0_1),P(P0_10),P(P0_11),P(P0_12),
+P(P0_13),P(P0_14),P(P0_15),P(P0_16),P(P0_17),P(P0_18),P(P0_19),P(P0_2),P(P0_20),
+P(P0_21),P(P0_22),P(P0_23),P(P0_24),P(P0_25),P(P0_26),P(P0_27),P(P0_28),P(P0_29),
+P(P0_3),P(P0_30),P(P0_31),P(P0_4),P(P0_5),P(P0_6),P(P0_7),P(P0_8),P(P0_9),P(P1_0),
+P(P1_1),P(P1_10),P(P1_11),P(P1_12),P(P1_13),P(P1_14),P(P1_15),P(P1_16),P(P1_17),
+P(P1_18),P(P1_19),P(P1_2),P(P1_20),P(P1_21),P(P1_22),P(P1_23),P(P1_24),P(P1_25),
+P(P1_26),P(P1_27),P(P1_28),P(P1_29),P(P1_3),P(P1_30),P(P1_31),P(P1_4),P(P1_5),P(P1_6),
+P(P1_7),P(P1_8),P(P1_9),P(P2_0),P(P2_1),P(P2_10),P(P2_11),P(P2_12),P(P2_2),P(P2_3),
+P(P2_4),P(P2_5),P(P2_6),P(P2_7),P(P2_8),P(P2_9),P(SCL),P(SDA),P(USBRX),P(USBTX),
+
+#elif defined(TARGET_KL25Z)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(LED_BLUE),P(LED_GREEN),P(LED_RED),P(NC),P(PTA0),P(PTA1),
+P(PTA10),P(PTA11),P(PTA12),P(PTA13),P(PTA14),P(PTA15),P(PTA16),P(PTA17),P(PTA18),
+P(PTA19),P(PTA2),P(PTA20),P(PTA21),P(PTA22),P(PTA23),P(PTA24),P(PTA25),P(PTA26),
+P(PTA27),P(PTA28),P(PTA29),P(PTA3),P(PTA30),P(PTA31),P(PTA4),P(PTA5),P(PTA6),P(PTA7),
+P(PTA8),P(PTA9),P(PTB0),P(PTB1),P(PTB10),P(PTB11),P(PTB12),P(PTB13),P(PTB14),P(PTB15),
+P(PTB16),P(PTB17),P(PTB18),P(PTB19),P(PTB2),P(PTB20),P(PTB21),P(PTB22),P(PTB23),
+P(PTB24),P(PTB25),P(PTB26),P(PTB27),P(PTB28),P(PTB29),P(PTB3),P(PTB30),P(PTB31),
+P(PTB4),P(PTB5),P(PTB6),P(PTB7),P(PTB8),P(PTB9),P(PTC0),P(PTC1),P(PTC10),P(PTC11),
+P(PTC12),P(PTC13),P(PTC14),P(PTC15),P(PTC16),P(PTC17),P(PTC18),P(PTC19),P(PTC2),
+P(PTC20),P(PTC21),P(PTC22),P(PTC23),P(PTC24),P(PTC25),P(PTC26),P(PTC27),P(PTC28),
+P(PTC29),P(PTC3),P(PTC30),P(PTC31),P(PTC4),P(PTC5),P(PTC6),P(PTC7),P(PTC8),P(PTC9),
+P(PTD0),P(PTD1),P(PTD10),P(PTD11),P(PTD12),P(PTD13),P(PTD14),P(PTD15),P(PTD16),P(PTD17),
+P(PTD18),P(PTD19),P(PTD2),P(PTD20),P(PTD21),P(PTD22),P(PTD23),P(PTD24),P(PTD25),
+P(PTD26),P(PTD27),P(PTD28),P(PTD29),P(PTD3),P(PTD30),P(PTD31),P(PTD4),P(PTD5),P(PTD6),
+P(PTD7),P(PTD8),P(PTD9),P(PTE0),P(PTE1),P(PTE10),P(PTE11),P(PTE12),P(PTE13),P(PTE14),
+P(PTE15),P(PTE16),P(PTE17),P(PTE18),P(PTE19),P(PTE2),P(PTE20),P(PTE21),P(PTE22),
+P(PTE23),P(PTE24),P(PTE25),P(PTE26),P(PTE27),P(PTE28),P(PTE29),P(PTE3),P(PTE30),
+P(PTE31),P(PTE4),P(PTE5),P(PTE6),P(PTE7),P(PTE8),P(PTE9),P(TSI_ELEC0),P(TSI_ELEC1),
+P(USBRX),P(USBTX),
+#elif defined(TARGET_KL46Z)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(LED_GREEN),P(LED_RED),P(NC),P(PTA0),P(PTA1),P(PTA10),P(PTA11),
+P(PTA12),P(PTA13),P(PTA14),P(PTA15),P(PTA16),P(PTA17),P(PTA18),P(PTA19),P(PTA2),
+P(PTA20),P(PTA21),P(PTA22),P(PTA23),P(PTA24),P(PTA25),P(PTA26),P(PTA27),P(PTA28),
+P(PTA29),P(PTA3),P(PTA30),P(PTA31),P(PTA4),P(PTA5),P(PTA6),P(PTA7),P(PTA8),P(PTA9),
+P(PTB0),P(PTB1),P(PTB10),P(PTB11),P(PTB12),P(PTB13),P(PTB14),P(PTB15),P(PTB16),P(PTB17),
+P(PTB18),P(PTB19),P(PTB2),P(PTB20),P(PTB21),P(PTB22),P(PTB23),P(PTB24),P(PTB25),
+P(PTB26),P(PTB27),P(PTB28),P(PTB29),P(PTB3),P(PTB30),P(PTB31),P(PTB4),P(PTB5),P(PTB6),
+P(PTB7),P(PTB8),P(PTB9),P(PTC0),P(PTC1),P(PTC10),P(PTC11),P(PTC12),P(PTC13),P(PTC14),
+P(PTC15),P(PTC16),P(PTC17),P(PTC18),P(PTC19),P(PTC2),P(PTC20),P(PTC21),P(PTC22),
+P(PTC23),P(PTC24),P(PTC25),P(PTC26),P(PTC27),P(PTC28),P(PTC29),P(PTC3),P(PTC30),
+P(PTC31),P(PTC4),P(PTC5),P(PTC6),P(PTC7),P(PTC8),P(PTC9),P(PTD0),P(PTD1),P(PTD10),
+P(PTD11),P(PTD12),P(PTD13),P(PTD14),P(PTD15),P(PTD16),P(PTD17),P(PTD18),P(PTD19),
+P(PTD2),P(PTD20),P(PTD21),P(PTD22),P(PTD23),P(PTD24),P(PTD25),P(PTD26),P(PTD27),
+P(PTD28),P(PTD29),P(PTD3),P(PTD30),P(PTD31),P(PTD4),P(PTD5),P(PTD6),P(PTD7),P(PTD8),
+P(PTD9),P(PTE0),P(PTE1),P(PTE10),P(PTE11),P(PTE12),P(PTE13),P(PTE14),P(PTE15),P(PTE16),
+P(PTE17),P(PTE18),P(PTE19),P(PTE2),P(PTE20),P(PTE21),P(PTE22),P(PTE23),P(PTE24),
+P(PTE25),P(PTE26),P(PTE27),P(PTE28),P(PTE29),P(PTE3),P(PTE30),P(PTE31),P(PTE4),P(PTE5),
+P(PTE6),P(PTE7),P(PTE8),P(PTE9),P(SW1),P(SW3),P(TSI_ELEC0),P(TSI_ELEC1),P(USBRX),
+P(USBTX),
+#elif defined(TARGET_K64F)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(DAC0_OUT),P(I2C_SCL),P(I2C_SDA),
+P(LED1),P(LED2),P(LED3),P(LED4),P(LED_BLUE),P(LED_GREEN),P(LED_RED),P(NC),P(PTA0),
+P(PTA1),P(PTA10),P(PTA11),P(PTA12),P(PTA13),P(PTA14),P(PTA15),P(PTA16),P(PTA17),
+P(PTA18),P(PTA19),P(PTA2),P(PTA20),P(PTA21),P(PTA22),P(PTA23),P(PTA24),P(PTA25),
+P(PTA26),P(PTA27),P(PTA28),P(PTA29),P(PTA3),P(PTA30),P(PTA31),P(PTA4),P(PTA5),P(PTA6),
+P(PTA7),P(PTA8),P(PTA9),P(PTB0),P(PTB1),P(PTB10),P(PTB11),P(PTB12),P(PTB13),P(PTB14),
+P(PTB15),P(PTB16),P(PTB17),P(PTB18),P(PTB19),P(PTB2),P(PTB20),P(PTB21),P(PTB22),
+P(PTB23),P(PTB24),P(PTB25),P(PTB26),P(PTB27),P(PTB28),P(PTB29),P(PTB3),P(PTB30),
+P(PTB31),P(PTB4),P(PTB5),P(PTB6),P(PTB7),P(PTB8),P(PTB9),P(PTC0),P(PTC1),P(PTC10),
+P(PTC11),P(PTC12),P(PTC13),P(PTC14),P(PTC15),P(PTC16),P(PTC17),P(PTC18),P(PTC19),
+P(PTC2),P(PTC20),P(PTC21),P(PTC22),P(PTC23),P(PTC24),P(PTC25),P(PTC26),P(PTC27),
+P(PTC28),P(PTC29),P(PTC3),P(PTC30),P(PTC31),P(PTC4),P(PTC5),P(PTC6),P(PTC7),P(PTC8),
+P(PTC9),P(PTD0),P(PTD1),P(PTD10),P(PTD11),P(PTD12),P(PTD13),P(PTD14),P(PTD15),P(PTD16),
+P(PTD17),P(PTD18),P(PTD19),P(PTD2),P(PTD20),P(PTD21),P(PTD22),P(PTD23),P(PTD24),
+P(PTD25),P(PTD26),P(PTD27),P(PTD28),P(PTD29),P(PTD3),P(PTD30),P(PTD31),P(PTD4),P(PTD5),
+P(PTD6),P(PTD7),P(PTD8),P(PTD9),P(PTE0),P(PTE1),P(PTE10),P(PTE11),P(PTE12),P(PTE13),
+P(PTE14),P(PTE15),P(PTE16),P(PTE17),P(PTE18),P(PTE19),P(PTE2),P(PTE20),P(PTE21),
+P(PTE22),P(PTE23),P(PTE24),P(PTE25),P(PTE26),P(PTE27),P(PTE28),P(PTE29),P(PTE3),
+P(PTE30),P(PTE31),P(PTE4),P(PTE5),P(PTE6),P(PTE7),P(PTE8),P(PTE9),P(SW2),P(SW3),
+P(USBRX),P(USBTX),
+#elif defined(TARGET_LPC4088)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(LED1),P(LED2),P(LED3),P(LED4),
+P(NC),P(P0_0),P(P0_1),P(P0_10),P(P0_11),P(P0_12),P(P0_13),P(P0_14),P(P0_15),P(P0_16),
+P(P0_17),P(P0_18),P(P0_19),P(P0_2),P(P0_20),P(P0_21),P(P0_22),P(P0_23),P(P0_24),
+P(P0_25),P(P0_26),P(P0_27),P(P0_28),P(P0_29),P(P0_3),P(P0_30),P(P0_31),P(P0_4),P(P0_5),
+P(P0_6),P(P0_7),P(P0_8),P(P0_9),P(P1_0),P(P1_1),P(P1_10),P(P1_11),P(P1_12),P(P1_13),
+P(P1_14),P(P1_15),P(P1_16),P(P1_17),P(P1_18),P(P1_19),P(P1_2),P(P1_20),P(P1_21),
+P(P1_22),P(P1_23),P(P1_24),P(P1_25),P(P1_26),P(P1_27),P(P1_28),P(P1_29),P(P1_3),
+P(P1_30),P(P1_31),P(P1_4),P(P1_5),P(P1_6),P(P1_7),P(P1_8),P(P1_9),P(P2_0),P(P2_1),
+P(P2_10),P(P2_11),P(P2_12),P(P2_13),P(P2_14),P(P2_15),P(P2_16),P(P2_17),P(P2_18),
+P(P2_19),P(P2_2),P(P2_20),P(P2_21),P(P2_22),P(P2_23),P(P2_24),P(P2_25),P(P2_26),
+P(P2_27),P(P2_28),P(P2_29),P(P2_3),P(P2_30),P(P2_31),P(P2_4),P(P2_5),P(P2_6),P(P2_7),
+P(P2_8),P(P2_9),P(P3_0),P(P3_1),P(P3_10),P(P3_11),P(P3_12),P(P3_13),P(P3_14),P(P3_15),
+P(P3_16),P(P3_17),P(P3_18),P(P3_19),P(P3_2),P(P3_20),P(P3_21),P(P3_22),P(P3_23),
+P(P3_24),P(P3_25),P(P3_26),P(P3_27),P(P3_28),P(P3_29),P(P3_3),P(P3_30),P(P3_31),
+P(P3_4),P(P3_5),P(P3_6),P(P3_7),P(P3_8),P(P3_9),P(P4_0),P(P4_1),P(P4_10),P(P4_11),
+P(P4_12),P(P4_13),P(P4_14),P(P4_15),P(P4_16),P(P4_17),P(P4_18),P(P4_19),P(P4_2),
+P(P4_20),P(P4_21),P(P4_22),P(P4_23),P(P4_24),P(P4_25),P(P4_26),P(P4_27),P(P4_28),
+P(P4_29),P(P4_3),P(P4_30),P(P4_31),P(P4_4),P(P4_5),P(P4_6),P(P4_7),P(P4_8),P(P4_9),
+P(P5_0),P(P5_1),P(P5_2),P(P5_3),P(P5_4),P(USBRX),P(USBTX),P(p10),P(p11),P(p12),P(p13),
+P(p14),P(p15),P(p16),P(p17),P(p18),P(p19),P(p20),P(p23),P(p24),P(p25),P(p26),P(p27),
+P(p28),P(p29),P(p30),P(p31),P(p32),P(p33),P(p34),P(p37),P(p38),P(p39),P(p5),P(p6),
+P(p7),P(p8),P(p9),
+#elif defined(TARGET_NUCLEO_F401RE)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(NC),P(PA_0),P(PA_1),P(PA_10),P(PA_11),P(PA_12),P(PA_13),
+P(PA_14),P(PA_15),P(PA_2),P(PA_3),P(PA_4),P(PA_5),P(PA_6),P(PA_7),P(PA_8),P(PA_9),
+P(PB_0),P(PB_1),P(PB_10),P(PB_12),P(PB_13),P(PB_14),P(PB_15),P(PB_2),P(PB_3),P(PB_4),
+P(PB_5),P(PB_6),P(PB_7),P(PB_8),P(PB_9),P(PC_0),P(PC_1),P(PC_10),P(PC_11),P(PC_12),
+P(PC_13),P(PC_14),P(PC_15),P(PC_2),P(PC_3),P(PC_4),P(PC_5),P(PC_6),P(PC_7),P(PC_8),
+P(PC_9),P(PD_2),P(PH_0),P(PH_1),P(PWM_OUT),P(SERIAL_RX),P(SERIAL_TX),P(SPI_CS),P(SPI_MISO),
+P(SPI_MOSI),P(SPI_SCK),P(USBRX),P(USBTX),P(USER_BUTTON),
+#elif defined(TARGET_LPC11U68)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(LED1),P(LED2),P(LED3),P(LED4),
+P(LED_BLUE),P(LED_GREEN),P(LED_RED),P(NC),P(P0_0),P(P0_1),P(P0_10),P(P0_11),P(P0_12),
+P(P0_13),P(P0_14),P(P0_15),P(P0_16),P(P0_17),P(P0_18),P(P0_19),P(P0_2),P(P0_20),
+P(P0_21),P(P0_22),P(P0_23),P(P0_3),P(P0_4),P(P0_5),P(P0_6),P(P0_7),P(P0_8),P(P0_9),
+P(P1_0),P(P1_1),P(P1_10),P(P1_11),P(P1_12),P(P1_13),P(P1_14),P(P1_15),P(P1_16),P(P1_17),
+P(P1_18),P(P1_19),P(P1_2),P(P1_20),P(P1_21),P(P1_22),P(P1_23),P(P1_24),P(P1_25),
+P(P1_26),P(P1_27),P(P1_28),P(P1_29),P(P1_3),P(P1_30),P(P1_31),P(P1_4),P(P1_5),P(P1_6),
+P(P1_7),P(P1_8),P(P1_9),P(P2_0),P(P2_1),P(P2_10),P(P2_11),P(P2_12),P(P2_13),P(P2_14),
+P(P2_15),P(P2_16),P(P2_17),P(P2_18),P(P2_19),P(P2_2),P(P2_20),P(P2_21),P(P2_22),
+P(P2_23),P(P2_3),P(P2_4),P(P2_5),P(P2_6),P(P2_7),P(P2_8),P(P2_9),P(SCL),P(SDA),P(USBRX),
+P(USBTX),
+#elif defined(TARGET_NUCLEO_F411RE)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(NC),P(PA_0),P(PA_1),P(PA_10),P(PA_11),P(PA_12),P(PA_13),
+P(PA_14),P(PA_15),P(PA_2),P(PA_3),P(PA_4),P(PA_5),P(PA_6),P(PA_7),P(PA_8),P(PA_9),
+P(PB_0),P(PB_1),P(PB_10),P(PB_12),P(PB_13),P(PB_14),P(PB_15),P(PB_2),P(PB_3),P(PB_4),
+P(PB_5),P(PB_6),P(PB_7),P(PB_8),P(PB_9),P(PC_0),P(PC_1),P(PC_10),P(PC_11),P(PC_12),
+P(PC_13),P(PC_14),P(PC_15),P(PC_2),P(PC_3),P(PC_4),P(PC_5),P(PC_6),P(PC_7),P(PC_8),
+P(PC_9),P(PD_2),P(PH_0),P(PH_1),P(PWM_OUT),P(SERIAL_RX),P(SERIAL_TX),P(SPI_CS),P(SPI_MISO),
+P(SPI_MOSI),P(SPI_SCK),P(USBRX),P(USBTX),P(USER_BUTTON),
+#elif defined(TARGET_NUCLEO_L152RE)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(NC),P(PA_0),P(PA_1),P(PA_10),P(PA_11),P(PA_12),P(PA_13),
+P(PA_14),P(PA_15),P(PA_2),P(PA_3),P(PA_4),P(PA_5),P(PA_6),P(PA_7),P(PA_8),P(PA_9),
+P(PB_0),P(PB_1),P(PB_10),P(PB_11),P(PB_12),P(PB_13),P(PB_14),P(PB_15),P(PB_2),P(PB_3),
+P(PB_4),P(PB_5),P(PB_6),P(PB_7),P(PB_8),P(PB_9),P(PC_0),P(PC_1),P(PC_10),P(PC_11),
+P(PC_12),P(PC_13),P(PC_14),P(PC_15),P(PC_2),P(PC_3),P(PC_4),P(PC_5),P(PC_6),P(PC_7),
+P(PC_8),P(PC_9),P(PD_2),P(PH_0),P(PH_1),P(PWM_OUT),P(SERIAL_RX),P(SERIAL_TX),P(SPI_CS),
+P(SPI_MISO),P(SPI_MOSI),P(SPI_SCK),P(USBRX),P(USBTX),P(USER_BUTTON),
+#elif defined(TARGET_NUCLEO_F103RB)
+P(A0),P(A1),P(A2),P(A3),P(A4),P(A5),P(D0),P(D1),P(D10),P(D11),P(D12),P(D13),P(D14),
+P(D15),P(D2),P(D3),P(D4),P(D5),P(D6),P(D7),P(D8),P(D9),P(I2C_SCL),P(I2C_SDA),P(LED1),
+P(LED2),P(LED3),P(LED4),P(NC),P(PA_0),P(PA_1),P(PA_10),P(PA_11),P(PA_12),P(PA_13),
+P(PA_14),P(PA_15),P(PA_2),P(PA_3),P(PA_4),P(PA_5),P(PA_6),P(PA_7),P(PA_8),P(PA_9),
+P(PB_0),P(PB_1),P(PB_10),P(PB_11),P(PB_12),P(PB_13),P(PB_14),P(PB_15),P(PB_2),P(PB_3),
+P(PB_4),P(PB_5),P(PB_6),P(PB_7),P(PB_8),P(PB_9),P(PC_0),P(PC_1),P(PC_10),P(PC_11),
+P(PC_12),P(PC_13),P(PC_14),P(PC_15),P(PC_2),P(PC_3),P(PC_4),P(PC_5),P(PC_6),P(PC_7),
+P(PC_8),P(PC_9),P(PD_2),P(PWM_OUT),P(SERIAL_RX),P(SERIAL_TX),P(SPI_CS),P(SPI_MISO),
+P(SPI_MOSI),P(SPI_SCK),P(USBRX),P(USBTX),P(USER_BUTTON),
+
+#else
+#error "target error"
+#endif
+};
+
--- a/TinyJS_Functions.cpp	Mon Jan 20 00:07:35 2014 +0000
+++ b/TinyJS_Functions.cpp	Wed Sep 10 08:41:53 2014 +0000
@@ -216,14 +216,23 @@
   string sep = c->getParameter("separator")->getString();
   CScriptVar *arr = c->getParameter("this");
 
+#ifndef MBED
   ostringstream sstr;
   int l = arr->getArrayLength();
   for (int i=0;i<l;i++) {
     if (i>0) sstr << sep;
     sstr << arr->getArrayIndex(i)->getString();
   }
-
   c->getReturnVar()->setString(sstr.str());
+#else
+  std::string sstr;
+  int l = arr->getArrayLength();
+  for (int i=0;i<l;i++) {
+    if (i>0) sstr += sep;
+    sstr += arr->getArrayIndex(i)->getString();
+  }
+  c->getReturnVar()->setString(sstr);
+#endif
 }
 
 // ----------------------------------------------- Register Functions
--- a/main.cpp	Mon Jan 20 00:07:35 2014 +0000
+++ b/main.cpp	Wed Sep 10 08:41:53 2014 +0000
@@ -51,7 +51,7 @@
 
 //---------------------------------------------
 //---------------------------------------------
-
+#if 0
 int main() {
     pc.baud(57600);
 
@@ -66,3 +66,4 @@
         printf("bye bye\n");
     }
 }
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main2.cpp	Wed Sep 10 08:41:53 2014 +0000
@@ -0,0 +1,80 @@
+#include "mbed.h"
+#include "TinyJS.h"
+#include "TinyJS_Functions.h"
+#include "TinyJS_MathFunctions.h"
+#include "Mbed_Functions.h"
+#include <new>
+
+#define qq(...)  #__VA_ARGS__
+
+static const char* example = qq(
+blinker = function() {
+    var led = 0;
+    mbed.Timeout(function() {
+        led = !led;
+        mbed.DigitalOut('LED1', led);
+        blinker();
+        },
+    0.6);
+};
+blinker();
+);
+
+static const char* example2 = qq(
+function myfunc(x, y) {
+    return x + y;
+}
+print("memfree");
+print(mbed.memfree());
+var a = myfunc(1,2);
+print(a);
+);
+
+
+#if 0 //defined(TARGET_NUCLEO_F401RE)
+static const char* usr_pos = example2;
+#elif defined(TARGET_LPC1768)
+static const char* usr_pos = reinterpret_cast<const char*>(69632);
+#elif defined(TARGET_LPC4088)
+static const char* usr_pos = reinterpret_cast<const char*>(102400);
+#elif defined(TARGET_K64F)
+static const char* usr_pos = reinterpret_cast<const char*>(106496);
+#else
+#error "target error"
+#endif
+
+void js_print(CScriptVar *v, void *userdata); // Script.cpp
+void js_dump(CScriptVar *v, void *userdata);
+extern int mbedErrorFlag; // Script.cpp
+extern std::string mbedErrorMessage; // Script.cpp
+
+static void no_memory () {
+  std::printf("Failed to allocate memory!\n");
+  std::exit (1);
+}
+
+int main() {
+  std::set_new_handler(no_memory);
+  //printf("%s\n", __FILE__);
+
+  CTinyJS *js = new CTinyJS();
+#if defined(TARGET_LPC4088)||defined(TARGET_K64F)   
+  /* add the functions from TinyJS_Functions.cpp */
+  registerFunctions(js);
+  /* add Math and Trigonometry functions from TinyJS_MathFunctions.cpp */
+  registerMathFunctions(js); 
+#endif  
+  /* Add a native function */
+  js->addNative("function print(text)", &js_print, 0);
+  js->addNative("function dump()", &js_dump, js);
+
+  // add mbed functions
+  registerMbedFunctions(js);
+
+  mbedErrorFlag = 0;
+  js->execute(usr_pos);
+  if (mbedErrorFlag != 0) {
+    printf("ERROR: %s\n", mbedErrorMessage.c_str());
+  }
+}
+
--- a/mbed.bld	Mon Jan 20 00:07:35 2014 +0000
+++ b/mbed.bld	Wed Sep 10 08:41:53 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/04dd9b1680ae
\ No newline at end of file