Norimasa Okamoto
/
TinyJS
TinyJS
Fork of TinyJS by
main2.cpp
- Committer:
- va009039
- Date:
- 2014-09-10
- Revision:
- 9:f80cf055f03d
File content as of revision 9:f80cf055f03d:
#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()); } }