680bafdc8c
Introduced a cmake/toolchain_mcu_artik053.cmake file that defines all the target specific compiler options. Modified the Makefile.tizenrt to do not copy the created static libraries to the TizenRT folder. Instead, the application builder Makefile (tizenrt-artik053/apps/jerryscript/Makefile) copies the required static libraries to TizenRT. JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.uszeged@partner.samsung.com
154 lines
3.6 KiB
Markdown
154 lines
3.6 KiB
Markdown
### About
|
|
|
|
This folder contains files to build and run JerryScript on [TizenRT](https://github.com/Samsung/TizenRT) with Artik053 board.
|
|
|
|
### How to build
|
|
|
|
#### TL; DR
|
|
|
|
If you are in a hurry, run following commands:
|
|
|
|
```
|
|
$ sudo apt-add-repository -y "ppa:team-gcc-arm-embedded/ppa"
|
|
$ sudo apt-get update
|
|
$ sudo apt-get install gcc-arm-embedded
|
|
$ git clone https://github.com/jerryscript-project/jerryscript.git jerryscript
|
|
$ cd jerryscript
|
|
$ make -f ./targets/tizenrt-artik053/Makefile.travis install script
|
|
```
|
|
Next, go to [step 7](#7-generate-romfs)
|
|
|
|
|
|
#### Build steps in detail
|
|
|
|
#### 1. Set up build environment
|
|
|
|
* Install toolchain
|
|
|
|
Get the build in binaries and libraries, [gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar](https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update).
|
|
|
|
|
|
Untar the gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar and export the path like
|
|
|
|
```
|
|
$ tar xvf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar
|
|
$ export PATH=<Your Toolchain PATH>:$PATH
|
|
```
|
|
|
|
* Get the jerryscript and TizenRT sources
|
|
|
|
```
|
|
$ mkdir jerry-tizenrt
|
|
$ cd jerry-tizenrt
|
|
$ git clone https://github.com/jerryscript-project/jerryscript.git
|
|
$ git clone https://github.com/Samsung/TizenRT.git -b 1.1_Public_Release
|
|
```
|
|
|
|
The following directory structure is created after these commands
|
|
|
|
```
|
|
jerry-tizenrt
|
|
├── jerryscript
|
|
└── TizenRT
|
|
```
|
|
|
|
#### 2. Add jerryscript configuration for TizenRT
|
|
|
|
```
|
|
$ cp -r jerryscript/targets/tizenrt-artik053/apps/jerryscript/ TizenRT/apps/system/
|
|
$ cp -r jerryscript/targets/tizenrt-artik053/configs/jerryscript/ TizenRT/build/configs/artik053/
|
|
$ cp jerryscript/targets/tizenrt-artik053/romfs-1.1.patch TizenRT/
|
|
```
|
|
|
|
#### 3. Configure TizenRT
|
|
|
|
```
|
|
$ cd TizenRT/os/tools
|
|
$ ./configure.sh artik053/jerryscript
|
|
```
|
|
|
|
#### 4. Configure TizenRT
|
|
|
|
```
|
|
$ cd ../../
|
|
$ patch -p1 < romfs-1.1.patch
|
|
$ cd build/output/
|
|
$ mkdir res
|
|
# You can add files in res folder
|
|
# The res folder is later flashing into the target's /rom folder
|
|
# CAUTION: You must not exceed 400kb
|
|
```
|
|
|
|
#### 5. Build JerryScript for TizenRT
|
|
|
|
```
|
|
# assuming you are in jerry-tizenrt folder
|
|
jerryscript/tools/build.py \
|
|
--clean \
|
|
--lto=OFF \
|
|
--jerry-cmdline=OFF \
|
|
--jerry-libc=OFF \
|
|
--all-in-one=OFF \
|
|
--mem-heap=70 \
|
|
--profile=es2015-subset \
|
|
--compile-flag="--sysroot=${PWD}/TizenRT/os" \
|
|
--toolchain=${PWD}/jerryscript/cmake/toolchain_mcu_artik053.cmake
|
|
```
|
|
|
|
**Note**: there is a Makefile in the `targets/tizenrt-artik053/` folder that also helps to build JerryScript for TizenRT.
|
|
|
|
```
|
|
# assuming you are in jerry-tizenrt folder
|
|
$ cd jerryscript
|
|
$ make -f targets/tizenrt-artik053/Makefile.tizenrt
|
|
```
|
|
|
|
#### 6. Build TizenRT binary
|
|
|
|
```
|
|
# assuming you are in jerry-tizenrt folder
|
|
$ cd TizenRT/os
|
|
$ make
|
|
```
|
|
Binaries are available in TizenRT/build/output/bin
|
|
|
|
#### 7. Generate romfs
|
|
|
|
```
|
|
$ genromfs -f ../build/output/bin/rom.img -d ../build/output/res/ -V "NuttXBootVol"
|
|
```
|
|
|
|
#### 8. Flash binary
|
|
|
|
```
|
|
make download ALL
|
|
```
|
|
|
|
Reboot the device.
|
|
|
|
For more information, see [How to program a binary](https://github.com/Samsung/TizenRT/blob/master/build/configs/artik053/README.md).
|
|
|
|
|
|
#### 9. Run JerryScript
|
|
|
|
You can use `minicom` for terminal program, or any other you may like, but set
|
|
baud rate to `115200`.
|
|
|
|
(Note: Device path may differ like /dev/ttyUSB1.)
|
|
|
|
```
|
|
sudo minicom --device=/dev/ttyUSB0 --baud=115200
|
|
```
|
|
|
|
Run `jerry` with javascript file(s)
|
|
```
|
|
TASH>>jerry hello.js
|
|
Hello JerryScript!
|
|
```
|
|
|
|
Without argument it prints:
|
|
```
|
|
TASH>>jerry
|
|
No input files, running a hello world demo:
|
|
Hello World from JerryScript
|
|
``` |