• Home
Name Date Size #Lines LOC

..--

docs/12-May-2024-

src/12-May-2024-301148

CMakeLists.txtD12-May-20242.1 KiB4942

Makefile.travisD12-May-20242 KiB5924

Makefile.zephyrD12-May-20245.2 KiB172119

README.mdD12-May-20243.6 KiB153104

prj.confD12-May-2024139 76

README.md

1### About
2
3This folder contains files to integrate JerryScript with Zephyr RTOS to
4run on a number of supported boards (like
5[Arduino 101 / Genuino 101](https://www.arduino.cc/en/Main/ArduinoBoard101),
6[Zephyr Arduino 101](https://www.zephyrproject.org/doc/board/arduino_101.html)).
7
8### How to build
9
10#### 1. Preface
11
121. Directory structure
13
14Assume `harmony` as the path to the projects to build.
15The folder tree related would look like this.
16
17```
18harmony
19  + jerryscript
20  |  + targets
21  |      + zephyr
22  + zephyr-project
23```
24
25
262. Target boards/emulations
27
28Following Zephyr boards were tested: qemu_x86, qemu_cortex_m3, arduino_101,
29frdm_k64f.
30
31
32#### 2. Prepare Zephyr
33
34Follow [this](https://www.zephyrproject.org/doc/getting_started/getting_started.html) page to get
35the Zephyr source and configure the environment.
36
37If you just start with Zephyr, you may want to follow "Building a Sample
38Application" section in the doc above and check that you can flash your
39target board.
40
41Remember to source the Zephyr environment as explained in the zephyr documenation:
42
43```
44cd zephyr-project
45source zephyr-env.sh
46
47export ZEPHYR_GCC_VARIANT=zephyr
48export ZEPHYR_SDK_INSTALL_DIR=<sdk installation directory>
49```
50
51#### 3. Build JerryScript for Zephyr
52
53The easiest way is to build and run on a QEMU emulator:
54
55For x86 architecture:
56
57```
58make -f ./targets/zephyr/Makefile.zephyr BOARD=qemu_x86 run
59```
60
61For ARM (Cortex-M) architecture:
62
63```
64make -f ./targets/zephyr/Makefile.zephyr BOARD=qemu_cortex_m3 run
65```
66
67#### 4. Build for Arduino 101
68
69```
70# assume you are in harmony folder
71cd jerryscript
72make -f ./targets/zephyr/Makefile.zephyr BOARD=arduino_101
73```
74
75This will generate the following libraries:
76```
77./build/arduino_101/librelease-cp_minimal.jerry-core.a
78./build/arduino_101/librelease-cp_minimal.jerry-libm.lib.a
79./build/arduino_101/librelease.external-cp_minimal-entry.a
80```
81
82The final Zephyr image will be located here:
83```
84./build/arduino_101/zephyr/zephyr.strip
85```
86
87#### 5. Flashing
88
89Details on how to flash the image can be found here:
90[Flashing image](https://www.zephyrproject.org/doc/board/arduino_101.html)
91(or similar page for other supported boards).
92
93To be able to use this demo in hardware you will need the serial console
94which will be generating output to Pins 0 & 1.
95
96You will need a 3.3v TTL to RS232, please follow the zephyr documentation on it.
97
98Some examples of building the software
99
100```
101make -f ./targets/zephyr/Makefile.zephyr BOARD=<board> clean
102```
103
104- Not using a Jtag and having a factory stock Arduino 101.
105You can follow the Zephyr instructions to flash using the dfu-util command
106or use this helper:
107
108```
109make -f ./targets/zephyr/Makefile.zephyr BOARD=arduino_101 dfu-x86
110```
111
112Make sure you have the factory bootloader in your device to use this method or it will not flash.
113
114- Using JTAG
115
116There is a helper function to flash using the JTAG and Flywatter2
117
118![alt tag](docs/arduino_101.jpg?raw=true "Example")
119
120```
121make -f ./targets/zephyr/Makefile.zephyr BOARD=arduino_101 flash
122```
123
124<warning> Careful if you flash the BOARD arduino_101, you will lose the bootloader
125and you will have to follow the zephyr documentation to get it back from
126the backup we all know you did at the setup. </warning>
127
128#### 6. Serial terminal
129
130Test command line in a serial terminal.
131
132
133You should see something similar to this:
134```
135JerryScript build: Aug 12 2016 17:12:55
136JerryScript API 1.0
137Zephyr version 1.4.0
138js>
139```
140
141
142Run the example javascript command test function
143```
144js> var test=0; for (t=100; t<1000; t++) test+=t; print ('Hi JS World! '+test);
145Hi JS World! 494550
146```
147
148
149Try a more complex function:
150```
151js> function hello(t) {t=t*10;return t}; print("result"+hello(10.5));
152```
153