### About This folder contains files to run JerryScript in mbed / FRDM-K64F board. #### Installing yotta You need to install yotta before proceeding. Please visit http://yottadocs.mbed.com/#installing-on-linux ##### Cross-compiler for FRDM-K64F If you don't have any GCC compiler installed, please visit [this] (https://launchpad.net/gcc-arm-embedded/+download) page to download GCC 4.8.4 which was tested for building JerryScript for K64F. #### How to build JerryScript ``` make -f targets/mbedk64f/Makefile.mbedk64f clean make -f targets/mbedk64f/Makefile.mbedk64f jerry ``` #### JerryScript output files Two files will be generated at `targets/mbedk64f/libjerry` * libjerrycore.a * libjerrylibm.a #### Building mbed binary ``` make -f targets/mbedk64f/Makefile.mbedk64f js2c yotta ``` Or, cd to `targets/mbedk64f` where `Makefile.mbedk64f` exist ``` cd targets/mbedk64f yotta target frdm-k64f-gcc yotta build ``` #### Build at once Omit target name to build both jerry library and mbed binary. ``` make -f targets/mbedk64f/Makefile.mbedk64f ``` #### Flashing to k64f ``` make -f targets/mbedk64f/Makefile.mbedk64f flash ``` It assumes default mound folder is `/media/(user)/MBED` If its mounted to other path, give it with `TARGET_DIR` variable, for example, ``` TARGET_DIR=/mnt/media/MBED make -f targets/mbedk64f/Makefile.mbedk64f flash ``` Or you can just copy `targets/mbedk64f/build/frdm-k64f-gcc/source/jerry.bin` file to mounted folder. When LED near the USB port flashing stops and `MBED` folder shows up on the desktop(if you are using GUI), press RESET button on the board to execute JerryScript led flashing sample program in js folder. #### How blink sample program works All `.js` files in `js` folder are executed, with `main.js` in first order. `sysloop()` function in main.js is called periodically in every 100msec by below code in `main.c` `jerry_loop()`, which calls `js_loop()` in `jerry_mbedk64f.c` ``` minar::Scheduler::postCallback(jerry_loop) .period(minar::milliseconds(100)) ``` `sysloop()` then calls `blink()` in `blink.js` which blinks the `LED` in every second.