Files
jerryscript/targets/tizenrt-artik053/README.md
T
Roland Takacs 680bafdc8c Modify the build method of TizenRT target
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
2018-01-16 10:57:37 +09:00

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
```