Files
jerryscript/targets/curie_bsp
Akos Kiss d0143adc82 Replace JERRY_JS_PARSER feature guard with JERRY_DISABLE_JS_PARSER (#2036)
* Replace JERRY_JS_PARSER feature guard with JERRY_DISABLE_JS_PARSER

All feature guards of jerry-core are deciding about the inclusion
or exclusion of a feature based on the state (defined or undefined)
of a macro -- except for the JS parser guard, which requires
`JERRY_JS_PARSER` to be defined with a value of either 0 or 1. This
has some issues:
- The engine cannot be built with a "clean" compiler invocation,
  i.e., without any `-D` command line macro definitions. This is
  painful for targets that must use a different build system from
  the project's own python/cmake-based one.
- Some build systems in targets and even some code in jerry-code
  are already confused about the different semantics of
  `JERRY_JS_PARSER`, and simply define it without a value and make
  decisions based on the macro being simply defined or not.

This patch renames the guard to `JERRY_DISABLE_JS_PARSER` and makes
use of it in jerry-core based on its state, not based on its value.
As obvious from the guard name, the default for the JS parser is
that it is included in the build.

The patch also touches those targets in the repository that
explicitly defined the original macro (correctly or incorrectly).

* Make cppcheck verbose

Cppcheck can be quite slow sometimes, especially on Travis CI,
which has a "10 mins without output means failure" rule. As the
code base of the project grows, we start to undeterministically
fall over that limit. Thus, this PR makes cppcheck verbose to
ensure that it keeps Travis CI continuously fed with output.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2017-10-17 17:11:54 +02:00
..
2016-08-27 19:02:38 +08:00
2016-08-27 19:02:38 +08:00

About Curie BSP port

Intel® Curie BSP is the SDK that will help you developing software on Curie based boards, for example with the Arduino 101 board (AKA Genuino 101).

This folder contains necessary files to integrate JerryScript with Intel® Curie BSP, so that JavaScript can run on Arduino 101 board (AKA Genuino 101).

How to build

1. Preface

Curie BSP only support Ubuntu GNU/Linux as host OS envirenment.

Necessary hardwares

2. Prepare Curie BSP

You can refer to a detailed document Curie BSP. But, we summary the main steps below:

1. Get repo:
mkdir ~/bin
wget http://commondatastorage.googleapis.com/git-repo-downloads/repo -O ~/bin/repo
chmod a+x ~/bin/repo
2. In ~/.bashrc add:
PATH=$PATH:~/bin
3. Create your directory for CurieBSP (eg. Curie_BSP):
mkdir Curie_BSP && cd $_
4. Initialize your repo:
repo init -u https://github.com/CurieBSP/manifest
5. Download the sources files:
repo sync -j 5 -d
6. Get toolchain (compilation/debug):

Download issm-toolchain-linux-2016-05-12.tar.gz, and uncompress it. TOOLCHAIN_DIR environment variable needs to match the toolchain destination folder You can use the command:export TOOLCHAIN_DIR='path to files of the toolchain'

Or you can just uncompress the toolchain tarball and copy the contents (licensing readme.txt tools version.txt) into wearable_device_sw/external/toolchain.

7. Get BLE firmware:

Download curie-ble-v3.1.1.tar.gz and uncompress the retrieved package into wearable_device_sw/packages folder

You will first register in the web page. Then you will receive an email where is a download link. Click the link in the mail, choose the curie-ble-v3.1.1.tar.gz (118 KB) and download.

8. Get tools to flash the device:

https://01.org/android-ia/downloads/intel-platform-flash-tool-lite

3. Build JerryScript and Curie BSP

1. Generate makefiles

Run the Python script setup.py in jerryscript/targets/curie_bsp/ with the full path or relative path of the Curie_BSP:

python setup.py <path of Curie_BSP>
2. One time setup. It will check/download/install the necessary tools, and must be run only once.

In the directory Curie_BSP

make -C wearable_device_sw/projects/curie_bsp_jerry/ one_time_setup
3. In the directory Curie_BSP
mkdir out && cd $_
make -f ../wearable_device_sw/projects/curie_bsp_jerry/Makefile setup
make image
4. Connect JTAG Debugger and TTL Serial Cable to Arduino 101 as below:

5. Flash the firmware
make flash FLASH_CONFIG=jtag_full

4. Serial terminal

Assume the serial port is ttyUSB0 in /dev directory, we can type command screen ttyUSB0 115200 to open a serial terminal.

After the board boot successfully, you should see something like this:

Quark SE ID 16 Rev 0 A0
ARC Core state: 0000400
BOOT TARGET: 0
  6135|QRK| CFW| INFO| GPIO service init in progress..
  6307|ARC|MAIN| INFO| BSP init done
  6315|ARC| CFW| INFO| ADC service init in progress..
  6315|ARC| CFW| INFO| GPIO service init in progress...
  6315|ARC| CFW| INFO| GPIO service init in progress...
  6315|ARC|MAIN| INFO| CFW init done

To test the JavaScript command, you should add characters js e to the beginning of the JavaScript command, like this: js e print ('Hello World!');

It is the uart command format of Curie BSP. js is cmd group, e is cmd name, which is short for eval, and print ('Hello World!'); is the cmd parameters, which is the JavaScript code we want to run.

You can see the result through the screen:

js e print ('Hello World!');js e 1 ACK
Hello World!
undefined
js e 1 OK

js e 1 ACK and js e 1 OK are debug info of Curie BSP uart commands, which mean it receive and execute the command sucessfully. Hello World! is the printed content. undefined is the return value of the statement print ('Hello World!').