Files
jerryscript/targets/mbedk64f/readme.md
T
SaeHie Park fe24452460 Add target build for mbed / FRDM-K64F board.
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 07:24:57 +09:00

86 lines
2.1 KiB
Markdown

### 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
* libfdlibm.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.cpp` `jerry_loop()`, which calls `js_loop()` in
`jerry_mbedk64f.cpp`
```
minar::Scheduler::postCallback(jerry_loop)
.period(minar::milliseconds(100))
```
`sysloop()` then calls `blink()` in `blink.js` which blinks the `LED` in
every second.