Akos Kiss 3ba286f3e1 Turn modified fdlibm into Jerry's own libm
* Rename modified fdlibm to jerry-libm
  * Move third-party/fdlibm to jerry-libm
  * Rename original fdlibm.h to jerry-libm-internal.h
    * And remove it from the public headers.
  * Rename jerry-libm's public header to math.h
    * This also makes jerry-core sources include `<math.h>`. Therefore,
      should anyone want to use a different libm implementation with
      jerry, it becomes possible. (The same way as we provide a minimal
      libc with standard headers, but should it be insufficient or
      conflicting for someone, it can be replaced.)
  * Drop `s_` prefix from jerry-libm sources
    * The original fdlibm implementation had various prefixes (e.g., `k_`
      for sources of kernel routines, and `w_` for wrapper routines), but
      after the specialization of fdlibm to jerry, only `s_` remained.
      Since it does not encode anything anymore, it can be dropped.
  * Stylistic edits to jerry-libm's CMakeLists
    * Align project name with other CMakeLists in the code base
  * Move Jerry-LibM under Apache License
    * Using the same approach as was used by linux-wireless when ath5k
      driver license needed clarification. Solution was proposed by SFLC.
      External mail for future reference: http://lwn.net/Articles/247806/

* Tests & checks
  * Remove FD from the name of libm unit test-related files
  * Make vera++ and cppcheck check jerry-libm

* Targets
  * Speculative update of targets to use jerry-libm

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-08 15:38:47 +02:00
..

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.

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.