diff --git a/targets/tizenrt-artik05x/Makefile.tizenrt b/targets/tizenrt-artik05x/Makefile.tizenrt new file mode 100644 index 0000000000..7958a90112 --- /dev/null +++ b/targets/tizenrt-artik05x/Makefile.tizenrt @@ -0,0 +1,55 @@ +# Copyright JS Foundation and other contributors, http://js.foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +CURDIR = `pwd` +JERRYHEAP ?= 16 +BUILD_DIR ?= build/tizenrt-artik05x/ +LIBTARGET_DIR ?= ../tizenrt/build/output/libraries + +EXT_CFLAGS += -mcpu=cortex-r4 -mfpu=vfpv3 +EXT_CFLAGS += -fno-builtin -fno-strict-aliasing +EXT_CFLAGS += -fomit-frame-pointer +EXT_CFLAGS += -fno-strength-reduce +EXT_CFLAGS += -Wall -Werror -Wshadow +EXT_CFLAGS += -Wno-error=conversion +EXT_CFLAGS += -I. -isystem ../tizenrt/os/include + +.PHONY: libjerry clean + +all: libjerry + +libjerry: + mkdir -p $(BUILD_DIR) + mkdir -p $(LIBTARGET_DIR) + cmake -B$(BUILD_DIR) -H./ \ + -DENABLE_LTO=OFF \ + -DFEATURE_VALGRIND=OFF \ + -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain_external.cmake \ + -DJERRY_LIBC=OFF \ + -DJERRY_CMDLINE=OFF \ + -DENABLE_ALL_IN_ONE=OFF \ + -DEXTERNAL_CMAKE_SYSTEM_PROCESSOR=armv7l \ + -DEXTERNAL_CMAKE_C_COMPILER=arm-none-eabi-gcc \ + -DEXTERNAL_CMAKE_C_COMPILER_ID=GNU \ + -DEXTERNAL_COMPILE_FLAGS="$(EXT_CFLAGS)" \ + -DMEM_HEAP_SIZE_KB=$(JERRYHEAP) \ + -DCMAKE_BUILD_TYPE=Release + + make -C$(BUILD_DIR) jerry-core + make -C$(BUILD_DIR) jerry-libm + cp $(BUILD_DIR)/lib/libjerry-core.a $(LIBTARGET_DIR) + cp $(BUILD_DIR)/lib/libjerry-libm.a $(LIBTARGET_DIR) + +clean: + rm -rf $(BUILD_DIR) diff --git a/targets/tizenrt-artik05x/README.md b/targets/tizenrt-artik05x/README.md new file mode 100644 index 0000000000..39f4e2fbcb --- /dev/null +++ b/targets/tizenrt-artik05x/README.md @@ -0,0 +1,102 @@ +### About + +This folder contains files to build and run JerryScript on [TizenRT](https://github.com/Samsung/TizenRT) with Artik05x board. + +### How to build + +#### 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=:$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 tizenrt +``` + +The following directory structure is created after these commands + +``` +jerry-tizenrt +├── jerryscript +└── tizenrt +``` + +#### 2. Add jerryscript configuration for TizenRT + +``` +$ cp -r jerryscript/targets/tizenrt-artik05x/apps/jerryscript/ tizenrt/apps/system/ +$ cp -r jerryscript/targets/tizenrt-artik05x/configs/jerryscript/ tizenrt/build/configs/sidk_s5jt200/ +``` + +Apply following diff in jerry-tizenrt/tizenrt/os/FlatLibs.mk. +(The line number may differ since tizenrt is under developing.) + +```diff +--- a/os/FlatLibs.mk ++++ b/os/FlatLibs.mk +@@ -142,6 +142,12 @@ endif +# Add library for Framework +TINYARALIBS += $(LIBRARIES_DIR)$(DELIM)libframework$(LIBEXT) + ++# Add library for Jerryscript ++ifeq ($(CONFIG_JERRYSCRIPT),y) ++TINYARALIBS += $(LIBRARIES_DIR)$(DELIM)libjerry-core$(LIBEXT) ++TINYARALIBS += $(LIBRARIES_DIR)$(DELIM)libjerry-libm$(LIBEXT) ++endif ++ +# Export all libraries +``` + +#### 3. Configure TizenRT + +``` +$ cd tizenrt/os/tools +$ ./configure.sh sidk_s5jt200/jerryscript +``` + +#### 4. Build JerryScript for TizenRT + +``` +# assuming you are in jerry-tizenrt folder +$ cd jerryscript +$ make -f targets/tizenrt-artik05x/Makefile.tizenrt +``` + +#### 5. Build TizenRT binary + +``` +# assuming you are in jerry-tizenrt folder +$ cd tizenrt/os +$ make +``` +Binaries are available in tizenrt/build/output/bin + +#### 6. Flash binary + +The official guide will be announced on [TizenRT page](https://github.com/Samsung/TizenRT). + + +#### 7. 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 +``` diff --git a/targets/tizenrt-artik05x/apps/jerryscript/Kconfig b/targets/tizenrt-artik05x/apps/jerryscript/Kconfig new file mode 100644 index 0000000000..6f8ff369a5 --- /dev/null +++ b/targets/tizenrt-artik05x/apps/jerryscript/Kconfig @@ -0,0 +1,56 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config JERRYSCRIPT + bool "Jerryscript" + default n + ---help--- + Enable Jerryscript ECMAScript 5.1 interpreter + +if JERRYSCRIPT + +config JERRYSCRIPT_PROGNAME + string "Program name" + default "jerry" + depends on BUILD_KERNEL + ---help--- + This is the name of the program that will be + use when the NSH ELF program is installed. + +config JERRYSCRIPT_PRIORITY + int "Jerryscript task priority" + default 100 + +config JERRYSCRIPT_STACKSIZE + int "Jerryscript stack size" + default 16384 + +config JERRYSCRIPT_HEAPSIZE + int "Jerryscript heap size" + default 107520 + +config JERRYSCRIPT_ERROR_MESSAGES + bool "Enable error messages for builtin error objects" + default n + +config JERRYSCRIPT_MEM_STATS + bool "Enable memory statistics" + default n + +config JERRYSCRIPT_SHOW_OPCODES + bool "Enable parser byte-code dumps" + default n + +config JERRYSCRIPT_DEBUGGER + bool "Jerryscript debugger" + default n + +if JERRYSCRIPT_DEBUGGER +config JERRYSCRIPT_DEBUGGER_PORT + int "Jerryscript debugger port" + default 5001 +endif + +endif diff --git a/targets/tizenrt-artik05x/apps/jerryscript/Make.defs b/targets/tizenrt-artik05x/apps/jerryscript/Make.defs new file mode 100644 index 0000000000..940e7301b8 --- /dev/null +++ b/targets/tizenrt-artik05x/apps/jerryscript/Make.defs @@ -0,0 +1,17 @@ +# Copyright JS Foundation and other contributors, http://js.foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ifeq ($(CONFIG_JERRYSCRIPT),y) +CONFIGURED_APPS += system/jerryscript +endif diff --git a/targets/tizenrt-artik05x/apps/jerryscript/Makefile b/targets/tizenrt-artik05x/apps/jerryscript/Makefile new file mode 100644 index 0000000000..4131f4a1ac --- /dev/null +++ b/targets/tizenrt-artik05x/apps/jerryscript/Makefile @@ -0,0 +1,177 @@ +# Copyright JS Foundation and other contributors, http://js.foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +########################################################################### +# +# Copyright 2016 Samsung Electronics All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +# + +############################################################################ +# +# Copyright (C) 2008, 2010-2013 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/.config +-include $(TOPDIR)/Make.defs +include $(APPDIR)/Make.defs + +# Jerryscript built-in application info + +CONFIG_JERRYSCRIPT_PRIORITY ?= SCHED_PRIORITY_DEFAULT +CONFIG_JERRYSCRIPT_STACKSIZE ?= 32768 +CONFIG_JERRYSCRIPT_HEAPSIZE ?= 64000 +CONFIG_JERRY_DEBUGGER_PORT ?= 5001 + +APPNAME = jerry +# path to the project dir, "tizenrt-artik05x" by default +ROOT_DIR = ../../../.. +PRIORITY = $(CONFIG_JERRYSCRIPT_PRIORITY) +STACKSIZE = $(CONFIG_JERRYSCRIPT_STACKSIZE) +CFLAGS += -std=c99 -DJERRY_NDEBUG -DJERRY_JS_PARSER '-DCONFIG_MEM_HEAP_AREA_SIZE=$(CONFIG_JERRYSCRIPT_HEAPSIZE)' +CFLAGS += -I$(ROOT_DIR)/ $(shell find $(ROOT_DIR)/jerryscript/jerry-core -type d | sed -r -e 's/^/-I/g') + +ifeq ($(CONFIG_JERRYSCRIPT_MEM_STATS),y) + CFLAGS += -DJMEM_STATS +endif + +ifeq ($(CONFIG_JERRYSCRIPT_SHOW_OPCODES),y) + CFLAGS += -DPARSER_DUMP_BYTE_CODE +endif + +ifeq ($(CONFIG_JERRYSCRIPT_DEBUGGER),y) + CFLAGS += -DJERRY_DEBUGGER '-DJERRY_DEBUGGER_PORT=$(CONFIG_JERRY_DEBUGGER_PORT)' +endif + + +EXTRA_LIBS += libjerry-core.a libjerry-libm.a +LINKLIBS=$(EXTRA_LIBS) + + +ASRCS = +CSRCS = jerry_port.c +MAINSRC = jerry_main.c + +AOBJS = $(ASRCS:.S=$(OBJEXT)) +COBJS = $(CSRCS:.c=$(OBJEXT)) +MAINOBJ = $(MAINSRC:.c=$(OBJEXT)) + +SRCS = $(ASRCS) $(CSRCS) $(MAINSRC) +OBJS = $(AOBJS) $(COBJS) + +ifneq ($(CONFIG_BUILD_KERNEL),y) + OBJS += $(MAINOBJ) +endif + +ifeq ($(CONFIG_WINDOWS_NATIVE),y) + BIN = ..\..\libapps$(LIBEXT) +else +ifeq ($(WINTOOL),y) + BIN = ..\\..\\libapps$(LIBEXT) +else + BIN = ../../libapps$(LIBEXT) +endif +endif + +ifeq ($(WINTOOL),y) + INSTALL_DIR = "${shell cygpath -w $(BIN_DIR)}" +else + INSTALL_DIR = $(BIN_DIR) +endif + +CONFIG_JERRYSCRIPT_PROGNAME ?= jerry$(EXEEXT) +PROGNAME = $(CONFIG_JERRYSCRIPT_PROGNAME) + +ROOTDEPPATH = --dep-path . + +# Common build + +VPATH = + +all: .built +.PHONY: context depend clean distclean + +$(AOBJS): %$(OBJEXT): %.S + $(call ASSEMBLE, $<, $@) + +$(COBJS) $(MAINOBJ): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +.built: $(OBJS) + $(call ARCHIVE, $(BIN), $(OBJS)) + $(Q) touch .built + +install: + +context: + +# Create dependencies + +.depend: Makefile $(SRCS) + $(Q) $(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep + $(Q) touch $@ + +depend: .depend + +clean: + $(call DELFILE, .built) + $(call CLEAN) + +distclean: clean + $(call DELFILE, Make.dep) + $(call DELFILE, .depend) + +-include Make.dep +.PHONY: preconfig +preconfig: diff --git a/targets/tizenrt-artik05x/apps/jerryscript/jerry_main.c b/targets/tizenrt-artik05x/apps/jerryscript/jerry_main.c new file mode 100644 index 0000000000..ceca9b136d --- /dev/null +++ b/targets/tizenrt-artik05x/apps/jerryscript/jerry_main.c @@ -0,0 +1,325 @@ +/* Copyright JS Foundation and other contributors, http://js.foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "jerryscript.h" +#include "jerryscript-port.h" +#include "jmem.h" + +#include // To register tash command + +/** + * Maximum command line arguments number. + */ +#define JERRY_MAX_COMMAND_LINE_ARGS (16) + +/** + * Standalone Jerry exit codes. + */ +#define JERRY_STANDALONE_EXIT_CODE_OK (0) +#define JERRY_STANDALONE_EXIT_CODE_FAIL (1) + +/** + * Print usage and available options + */ +static void +print_help (char *name) +{ + printf ("Usage: %s [OPTION]... [FILE]...\n" + "\n" + "Options:\n" + " --log-level [0-3]\n" + " --mem-stats\n" + " --mem-stats-separate\n" + " --show-opcodes\n" + " --start-debug-server\n" + "\n", + name); +} /* print_help */ + +/** + * Read source code into buffer. + * + * Returned value must be freed with jmem_heap_free_block if it's not NULL. + * @return NULL, if read or allocation has failed + * pointer to the allocated memory block, otherwise + */ +static const uint8_t * +read_file (const char *file_name, /**< source code */ + size_t *out_size_p) /**< [out] number of bytes successfully read from source */ +{ + FILE *file = fopen (file_name, "r"); + if (file == NULL) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: cannot open file: %s\n", file_name); + return NULL; + } + + int fseek_status = fseek (file, 0, SEEK_END); + if (fseek_status != 0) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Failed to seek (error: %d)\n", fseek_status); + fclose (file); + return NULL; + } + + long script_len = ftell (file); + if (script_len < 0) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Failed to get the file size(error %ld)\n", script_len); + fclose (file); + return NULL; + } + + rewind (file); + + uint8_t *buffer = jmem_heap_alloc_block_null_on_error (script_len); + + if (buffer == NULL) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Out of memory error\n"); + fclose (file); + return NULL; + } + + size_t bytes_read = fread (buffer, 1u, script_len, file); + + if (!bytes_read || bytes_read != script_len) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to read file: %s\n", file_name); + jmem_heap_free_block ((void*) buffer, script_len); + + fclose (file); + return NULL; + } + + fclose (file); + + *out_size_p = bytes_read; + return (const uint8_t *) buffer; +} /* read_file */ + +/** + * Provide the 'assert' implementation for the engine. + * + * @return true - if only one argument was passed and the argument is a boolean true. + */ +static jerry_value_t +assert_handler (const jerry_value_t func_obj_val __attribute__((unused)), /**< function object */ + const jerry_value_t this_p __attribute__((unused)), /**< this arg */ + const jerry_value_t args_p[], /**< function arguments */ + const jerry_length_t args_cnt) /**< number of function arguments */ +{ + if (args_cnt == 1 + && jerry_value_is_boolean (args_p[0]) + && jerry_get_boolean_value (args_p[0])) + { + return jerry_create_boolean (true); + } + else + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Script Error: assertion failed\n"); + exit (JERRY_STANDALONE_EXIT_CODE_FAIL); + } +} /* assert_handler */ + +/** + * Provide the 'gc' implementation for the engine. + * + * @return undefined. + */ +static jerry_value_t +gc_handler (const jerry_value_t func_obj_val __attribute__((unused)), /**< function object */ + const jerry_value_t this_p __attribute__((unused)), /**< this arg */ + const jerry_value_t args_p[] __attribute__((unused)), /**< function arguments */ + const jerry_length_t args_cnt __attribute__((unused))) /**< number of function arguments */ +{ + jerry_gc (); + return jerry_create_undefined (); +} /* gc_handler */ + +/** + * Print error value + */ +static void +print_unhandled_exception (jerry_value_t error_value) /**< error value */ +{ + printf ("print_unhandled_exception\n"); + (void)(error_value); +} /* print_unhandled_exception */ + +/** + * Register a JavaScript function in the global object. + */ +static void +register_js_function (const char *name_p, /**< name of the function */ + jerry_external_handler_t handler_p) /**< function callback */ +{ + jerry_value_t global_obj_val = jerry_get_global_object (); + + jerry_value_t function_val = jerry_create_external_function (handler_p); + jerry_value_t function_name_val = jerry_create_string ((const jerry_char_t *) name_p); + jerry_value_t result_val = jerry_set_property (global_obj_val, function_name_val, function_val); + + jerry_release_value (function_name_val); + jerry_release_value (function_val); + jerry_release_value (global_obj_val); + + if (jerry_value_has_error_flag (result_val)) + { + jerry_port_log (JERRY_LOG_LEVEL_WARNING, "Warning: failed to register '%s' method.", name_p); + print_unhandled_exception (result_val); + } + + jerry_release_value (result_val); +} /* register_js_function */ + + + +/** + * Main program. + * + * @return 0 if success, error code otherwise + */ +#ifdef CONFIG_BUILD_KERNEL +int main (int argc, FAR char *argv[]) +#else +int jerry_main (int argc, char *argv[]) +#endif +{ + if (argc > JERRY_MAX_COMMAND_LINE_ARGS) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, + "Too many command line arguments. Current maximum is %d\n", + JERRY_MAX_COMMAND_LINE_ARGS); + + return JERRY_STANDALONE_EXIT_CODE_FAIL; + } + + const char *file_names[JERRY_MAX_COMMAND_LINE_ARGS]; + int i; + int files_counter = 0; + + jerry_init_flag_t flags = JERRY_INIT_EMPTY; + + for (i = 1; i < argc; i++) + { + if (!strcmp ("-h", argv[i]) || !strcmp ("--help", argv[i])) + { + print_help (argv[0]); + return JERRY_STANDALONE_EXIT_CODE_OK; + } + else if (!strcmp ("--mem-stats", argv[i])) + { + flags |= JERRY_INIT_MEM_STATS; + } + else if (!strcmp ("--mem-stats-separate", argv[i])) + { + flags |= JERRY_INIT_MEM_STATS_SEPARATE; + } + else if (!strcmp ("--show-opcodes", argv[i])) + { + flags |= JERRY_INIT_SHOW_OPCODES | JERRY_INIT_SHOW_REGEXP_OPCODES; + } + else if (!strcmp ("--start-debug-server", argv[i])) + { + flags |= JERRY_INIT_DEBUGGER; + } + else + { + file_names[files_counter++] = argv[i]; + } + } + + if (files_counter == 0) + { + printf ("No input files, running a hello world demo:\n"); + char *source_p = "var a = 3.5; print('Hell world ' + (a + 1.5) + ' times from JerryScript')"; + + jerry_run_simple ((jerry_char_t *) source_p, strlen (source_p), flags); + return JERRY_STANDALONE_EXIT_CODE_OK; + } + + jerry_init (flags); + register_js_function ("assert", assert_handler); + register_js_function ("gc", gc_handler); + jerry_value_t ret_value = jerry_create_undefined (); + + for (i = 0; i < files_counter; i++) + { + size_t source_size; + const jerry_char_t *source_p = read_file (file_names[i], &source_size); + + if (source_p == NULL) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Source file load error\n"); + return JERRY_STANDALONE_EXIT_CODE_FAIL; + } + + ret_value = jerry_parse_named_resource ((jerry_char_t *) file_names[i], + strlen (file_names[i]), + source_p, + source_size, + false); + + jmem_heap_free_block ((void*) source_p, source_size); + + if (!jerry_value_has_error_flag (ret_value)) + { + jerry_value_t func_val = ret_value; + ret_value = jerry_run (func_val); + jerry_release_value (func_val); + } + else + { + printf("jerry_parse error\n"); + break; + } + + if (jerry_value_has_error_flag (ret_value)) + { + printf("jerry_run error\n"); + break; + } + + jerry_release_value (ret_value); + ret_value = jerry_create_undefined (); + } + + int ret_code = JERRY_STANDALONE_EXIT_CODE_OK; + + if (jerry_value_has_error_flag (ret_value)) + { + jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Unhandled exception: Script Error!\n"); + ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL; + } + + jerry_release_value (ret_value); + jerry_cleanup (); + + return ret_code; +} /* main */ + +int jerry_register_cmd() { + const tash_cmdlist_t tash_cmds[] + = { { "jerry", jerry_main, TASH_EXECMD_SYNC }, { 0, 0, 0 } }; + tash_cmdlist_install(tash_cmds); + return 0; +} + diff --git a/targets/tizenrt-artik05x/configs/jerryscript/Make.defs b/targets/tizenrt-artik05x/configs/jerryscript/Make.defs new file mode 100644 index 0000000000..32537bcfd3 --- /dev/null +++ b/targets/tizenrt-artik05x/configs/jerryscript/Make.defs @@ -0,0 +1,165 @@ +############################################################################ +# configs/stm32_tiny/nsh/Make.defs +# +# Copyright (C) 2011, 2012-2013 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-r/Toolchain.defs + +ifeq ($(CONFIG_BOOT_RUNFROMFLASH),y) +ifeq ($(CONFIG_BOARD_FOTA_SUPPORT),y) +LDSCRIPT_OTA1 = ld_s5jt200_flash_ota1.script +endif +LDSCRIPT = ld_s5jt200_flash.script +else +LDSCRIPT = ld_s5jt200.script +endif +ifeq ($(CONFIG_UCLIBCXX_HAVE_LIBSUPCXX),y) +LIBSUPXX = ${shell $(CC) --print-file-name=libsupc++.a} +EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}" +EXTRA_LIBS = -lsupc++ +endif + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" -isystem "${shell cygpath -w $(TOPDIR)/include/uClibc++}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/../framework/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx -isystem $(TOPDIR)/include/uClibc++ + ARCHSCRIPT = -T$(TOPDIR)/../build/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +ifeq ($(CONFIG_BOARD_FOTA_SUPPORT),y) + ARCHSCRIPT_FOTA = -T$(TOPDIR)/../build/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT_OTA1) +endif + +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} +ARCHCCMINOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f2} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ifeq ($(CONFIG_FRAME_POINTER),y) + ARCHOPTIMIZATION += -fno-omit-frame-pointer -mapcs -mno-sched-prolog +endif + +ifeq ($(CONFIG_ARM_UNWIND),y) + ARCHOPTIMIZATION += -fasynchronous-unwind-tables +endif + + +ARCHCFLAGS = -fno-builtin -mcpu=cortex-r4 -mfpu=vfpv3 +ARCHCXXFLAGS = -fno-builtin -fexceptions -mcpu=cortex-r4 -mfpu=vfpv3 +ifeq ($(QUICKBUILD),y) +ARCHWARNINGS = -Wall -Werror -Wstrict-prototypes -Wshadow -Wundef -Wno-implicit-function-declaration -Wno-unused-function -Wno-unused-but-set-variable +ARCHWARNINGSXX = -Wall -Werror -Wshadow -Wundef +else +#ARCHWARNINGS = -Wall -Werror -Wstrict-prototypes -Wshadow -Wundef -Wno-implicit-function-declaration -Wno-unused-function -Wno-unused-but-set-variable +#ARCHWARNINGSXX = -Wall -Werror -Wshadow -Wundef +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -Wno-implicit-function-declaration -Wno-unused-function -Wno-unused-but-set-variable +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +# only version 4.9 supports color diagnostics +ifeq "$(ARCHMAJOR)" "4" +ifeq "$(ARCHMINOR)" "9" + ARCHWARNINGS += -fdiagnostics-color=auto + ARCHWARNINGSCC += -fdiagnostics-color=auto +endif +endif + +endif +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ +MAXOPTIMIZATION = -O2 + + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + +#################### SIDK_S5JT200 DOWNLOAD LOGIC ################################### +# function : DOWNLOAD +# prototype : DOWNLOAD +# arguments : [ALL | RESOURCE ] +# example : DOWNLOAD ALL; DOWNLOAD RESOURCE; +define DOWNLOAD + @$(TOPDIR)/../build/configs/$(CONFIG_ARCH_BOARD)/$(CONFIG_ARCH_BOARD)_download.sh $(1) +endef +#################### END ####################################################### diff --git a/targets/tizenrt-artik05x/configs/jerryscript/defconfig b/targets/tizenrt-artik05x/configs/jerryscript/defconfig new file mode 100644 index 0000000000..0d1b53fea0 --- /dev/null +++ b/targets/tizenrt-artik05x/configs/jerryscript/defconfig @@ -0,0 +1,932 @@ +# +# Automatically generated file; DO NOT EDIT. +# TinyAra Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set + +# +# Build Configuration +# +CONFIG_APPS_DIR="../apps" +CONFIG_FRAMEWORK_DIR="../framework" +CONFIG_TOOLS_DIR="../tools" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_PROTECTED is not set +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +CONFIG_SAMSUNG_NS2=y +# CONFIG_UBOOT_UIMAGE is not set +# CONFIG_DOWNLOAD_IMAGE is not set +# CONFIG_SMARTFS_IMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set + +# +# Debug Options +# +CONFIG_DEBUG=y +CONFIG_DEBUG_ERROR=y +# CONFIG_DEBUG_WARN is not set +CONFIG_DEBUG_VERBOSE=y + +# +# Subsystem Debug Options +# +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_LIB is not set +# CONFIG_DEBUG_MM is not set +# CONFIG_DEBUG_SCHED is not set + +# +# OS Function Debug Options +# +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_DEBUG_MM_HEAPINFO=y +# CONFIG_DEBUG_IRQ is not set + +# +# Driver Debug Options +# +# CONFIG_DEBUG_PWM is not set +# CONFIG_DEBUG_RTC is not set +# CONFIG_DEBUG_SPI is not set +# CONFIG_DEBUG_WATCHDOG is not set + +# +# Stack Debug Options +# +CONFIG_ARCH_HAVE_STACKCHECK=y +CONFIG_STACK_COLORATION=y + +# +# Build Debug Options +# +CONFIG_DEBUG_SYMBOLS=y +# CONFIG_FRAME_POINTER is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +CONFIG_ARCH="arm" + +# +# ARM Options +# +CONFIG_ARCH_CHIP_S5J=y +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +CONFIG_ARCH_CORTEXR4=y +CONFIG_ARCH_FAMILY="armv7-r" +CONFIG_ARCH_CHIP="s5j" +CONFIG_ARCH_HAVE_FPU=y +# CONFIG_ARCH_FPU is not set +CONFIG_ARMV7M_MPU=y +CONFIG_ARMV7M_MPU_NREGIONS=12 + +# +# ARMv7-R Configuration Options +# +CONFIG_ARMV7R_HAVE_GICv2=y +CONFIG_ARMV7R_MEMINIT=y +CONFIG_ARMV7R_ICACHE=y +CONFIG_ARMV7R_DCACHE=y +# CONFIG_ARMV7R_DCACHE_WRITETHROUGH is not set +# CONFIG_ARMV7R_HAVE_L2CC is not set +# CONFIG_ARMV7R_HAVE_L2CC_PL310 is not set +# CONFIG_ARMV7R_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7R_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7R_TOOLCHAIN_GNU_EABIL=y +# CONFIG_ARMV7R_TOOLCHAIN_GNU_OABI is not set +# CONFIG_ARMV7R_HAVE_DECODEFIQ is not set +# CONFIG_BOOT_RESULT is not set + +# +# Samsung S5J Chip Configuration Options +# +CONFIG_ARCH_CHIP_S5JT200=y +CONFIG_S5J_S5JT200=y + +# +# S5J DEBUG UART Configuration +# +# CONFIG_S5J_UART_CLOCK_FROM_WPLL is not set +CONFIG_SERIAL_TERMIOS=y +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_S5J_HAVE_UARTDBG=y +CONFIG_S5J_HAVE_UART0=y +CONFIG_S5J_HAVE_UART1=y +CONFIG_S5J_HAVE_UART2=y +CONFIG_S5J_HAVE_UART3=y +CONFIG_UARTDBG_RXBUFSIZE=256 +CONFIG_UARTDBG_TXBUFSIZE=256 +CONFIG_UARTDBG_BAUD=115200 +CONFIG_UARTDBG_BITS=8 +CONFIG_UARTDBG_PARITY=0 +CONFIG_UARTDBG_2STOP=0 +CONFIG_S5J_UARTDBG=y +CONFIG_S5J_UART0=y +CONFIG_S5J_UART1=y +CONFIG_S5J_UART2=y +CONFIG_S5J_UART3=y +CONFIG_UARTDBG_SERIAL_CONSOLE=y +# CONFIG_S5J_PWM is not set +# CONFIG_S5J_SSS is not set + +# +# S5J SPI(Serial Peripheral Interface Bus) +# +# CONFIG_S5J_SPI is not set + +# +# S5J WDT(Watch Dog Timer) +# +# CONFIG_S5J_WATCHDOG is not set + +# +# S5J TICK COUNTER +# +# CONFIG_S5J_TICK_COUNTER is not set + +# +# S5J ADC +# +# CONFIG_S5J_ADC is not set + +# +# S5J I2C +# +CONFIG_S5J_I2C=y +# CONFIG_S5J_MAILBOX is not set +CONFIG_S5J_GPIO=y +# CONFIG_S5J_CHIPID is not set +# CONFIG_S5J_EFUSE is not set +# CONFIG_S5J_SDIO_SLAVE is not set +# CONFIG_S5J_LEDCTRLBLK is not set +CONFIG_S5J_SFLASH=y + +# +# Serial FLASH region +# +CONFIG_S5J_FLASH_BASE=0x04000000 +CONFIG_S5J_FLASH_MIRROR_BASE=0x60000000 +CONFIG_S5J_FLASH_SIZE=0x800000 +CONFIG_S5J_FLASH_SECTOR_SIZE=4096 +CONFIG_S5J_BOOTLOADER_REGION_SIZE=0x400000 + +# +# S5J binary version +# +CONFIG_S5J_BL2_VERSION_ADDR=0x04003FF4 +CONFIG_S5J_LEDFW_VERSION_ADDR=0x042FBFF4 +CONFIG_S5J_SSSFW_VERSION_ADDR=0x04303FF4 +CONFIG_S5J_WLANFW_VERSION_ADDR=0x043BDFF4 +# CONFIG_S5J_DEBUG_BREAK is not set +CONFIG_S5J_PM=y + +# +# S5J PMU Config +# +CONFIG_S5J_PWR=y +# CONFIG_S5J_PWR_DSTOP is not set +# CONFIG_S5J_PWR_SLEEP is not set +# CONFIG_S5J_DMA is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +# CONFIG_ARCH_HAVE_IRQPRIO is not set +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +CONFIG_ARCH_USE_MPU=y +# CONFIG_ARCH_STACKDUMP is not set +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +# CONFIG_ARCH_HAVE_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=29100 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +# CONFIG_ARCH_HAVE_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x02020000 +CONFIG_RAM_SIZE=1310720 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_SIDK_S5JT200=y +CONFIG_ARCH_BOARD="sidk_s5jt200" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +# CONFIG_ARCH_IRQBUTTONS is not set +# CONFIG_BOARD_CRASHDUMP is not set +# CONFIG_BOARD_COREDUMP_FLASH is not set +# CONFIG_BOARD_FOTA_SUPPORT is not set +# CONFIG_BOARD_RAMDUMP_FLASH is not set +# CONFIG_BOARD_RAMDUMP_UART is not set + +# +# Board-Specific Options +# +CONFIG_SIDK_S5JT200_PWM_CHNUM=6 +CONFIG_SIDK_S5JT200_FLASH_CAPACITY=8388608 +CONFIG_SIDK_S5JT200_FLASH_PAGE_SIZE=4096 +CONFIG_SIDK_S5JT200_FLASH_MINOR=0 +CONFIG_SIDK_S5JT200_FLASH_PART=y +CONFIG_SIDK_S5JT200_FLASH_PART_LIST="16,48,192,32,512,2400,32,512,2400,8,8,240,1024,256,512" +CONFIG_SIDK_S5JT200_FLASH_PART_TYPE="none,ftl,none,none,none,none,none,none,none,none,config,none,none,smartfs,smartfs," +CONFIG_SIDK_S5JT200_FLASH_PART_NAME="bl1,sssro,bl2,sss1,wifi1,app1,sss2,wifi2,app2,bootarg,nvram,cm0,micomfw,user,sssrw," +CONFIG_SIDK_S5JT200_AUTOMOUNT=y +CONFIG_SIDK_S5JT200_AUTOMOUNT_USERFS=y +CONFIG_SIDK_S5JT200_AUTOMOUNT_USERFS_DEVNAME="/dev/smart0p13" +CONFIG_SIDK_S5JT200_AUTOMOUNT_USERFS_MOUNTPOINT="/mnt" +CONFIG_SIDK_S5JT200_AUTOMOUNT_SSSRW=y +CONFIG_SIDK_S5JT200_AUTOMOUNT_SSSRW_DEVNAME="/dev/smart0p14" +CONFIG_SIDK_S5JT200_AUTOMOUNT_SSSRW_MOUNTPOINT="/sss" + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_ARCH_HAVE_TICKLESS=y +# CONFIG_SCHED_TICKLESS is not set +CONFIG_USEC_PER_TICK=10000 +CONFIG_SYSTEM_TIME64=y +CONFIG_CLOCK_MONOTONIC=y +# CONFIG_JULIAN_TIME is not set +CONFIG_MAX_WDOGPARMS=4 +CONFIG_PREALLOC_WDOGS=32 +CONFIG_WDOG_INTRESERVE=4 +CONFIG_PREALLOC_TIMERS=8 + +# +# Tasks and Scheduling +# +CONFIG_INIT_ENTRYPOINT=y +CONFIG_RR_INTERVAL=100 +CONFIG_TASK_NAME_SIZE=31 +CONFIG_MAX_TASKS=16 +CONFIG_SCHED_HAVE_PARENT=y +# CONFIG_SCHED_CHILD_STATUS is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +CONFIG_PTHREAD_MUTEX_TYPES=y +# CONFIG_PTHREAD_MUTEX_ROBUST is not set +CONFIG_PTHREAD_MUTEX_UNSAFE=y +# CONFIG_PTHREAD_MUTEX_BOTH is not set +# CONFIG_PTHREAD_MUTEX_DEFAULT_ROBUST is not set +# CONFIG_PTHREAD_MUTEX_DEFAULT_UNSAFE is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Latency optimization +# +# CONFIG_SCHED_YIELD_OPTIMIZATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +# CONFIG_SDCLONE_DISABLE is not set +CONFIG_NFILE_DESCRIPTORS=64 +CONFIG_NFILE_STREAMS=16 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +CONFIG_BOARD_INITIALIZE=y +# CONFIG_BOARD_INITTHREAD is not set +# CONFIG_SCHED_STARTHOOK is not set +CONFIG_SCHED_ATEXIT=y +CONFIG_SCHED_ONEXIT=y +CONFIG_SCHED_ONEXIT_MAX=1 + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCHLD=4 +CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=600 + +# +# Work Queue Support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_WORKQUEUE_SORTING=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=224 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set + +# +# Stack size information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PREAPP_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 + +# +# System Call +# +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +# CONFIG_DISABLE_POLL is not set +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +CONFIG_PWM=y +# CONFIG_ARCH_HAVE_I2CRESET is not set +CONFIG_I2C=y +CONFIG_I2C_SLAVE=y +CONFIG_I2C_TRANSFER=y +# CONFIG_I2C_WRITEREAD is not set +CONFIG_I2C_POLLED=y +# CONFIG_I2C_TRACE is not set +CONFIG_I2C_USERIO=y +CONFIG_SPI=y +# CONFIG_SPI_OWNBUS is not set +# CONFIG_SPI_EXCHANGE is not set +# CONFIG_SPI_CMDDATA is not set +# CONFIG_SPI_BITBANG is not set +CONFIG_GPIO=y +# CONFIG_GPIO_EXPORT is not set +# CONFIG_I2S is not set +CONFIG_RTC=y +CONFIG_RTC_DATETIME=y +# CONFIG_RTC_ALARM is not set +CONFIG_RTC_DRIVER=y +# CONFIG_RTC_IOCTL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0" +# CONFIG_TIMER is not set +CONFIG_ANALOG=y +CONFIG_ADC=y +CONFIG_ADC_FIFOSIZE=8 +# CONFIG_DAC is not set +# CONFIG_LCD is not set +# CONFIG_PIPES is not set +CONFIG_POWER=y +# CONFIG_BATTERY_CHARGER is not set +# CONFIG_BATTERY_GAUGE is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +CONFIG_ARCH_HAVE_UART0=y +CONFIG_ARCH_HAVE_UART1=y +CONFIG_ARCH_HAVE_UART2=y +CONFIG_ARCH_HAVE_UART3=y +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +CONFIG_SERIAL_NPOLLWAITERS=2 +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_TIOCSERGSTRUCT is not set +# CONFIG_UART0_SERIAL_CONSOLE is not set +# CONFIG_UART1_SERIAL_CONSOLE is not set +# CONFIG_UART2_SERIAL_CONSOLE is not set +# CONFIG_UART3_SERIAL_CONSOLE is not set +CONFIG_OTHER_SERIAL_CONSOLE=y +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART0 Configuration +# +CONFIG_UART0_RXBUFSIZE=64 +CONFIG_UART0_TXBUFSIZE=64 +CONFIG_UART0_BAUD=115200 +CONFIG_UART0_BITS=8 +CONFIG_UART0_PARITY=0 +CONFIG_UART0_2STOP=0 +# CONFIG_UART0_IFLOWCONTROL is not set +# CONFIG_UART0_OFLOWCONTROL is not set + +# +# UART1 Configuration +# +CONFIG_UART1_RXBUFSIZE=64 +CONFIG_UART1_TXBUFSIZE=64 +CONFIG_UART1_BAUD=115200 +CONFIG_UART1_BITS=8 +CONFIG_UART1_PARITY=0 +CONFIG_UART1_2STOP=0 +# CONFIG_UART1_IFLOWCONTROL is not set +# CONFIG_UART1_OFLOWCONTROL is not set + +# +# UART2 Configuration +# +CONFIG_UART2_RXBUFSIZE=64 +CONFIG_UART2_TXBUFSIZE=64 +CONFIG_UART2_BAUD=115200 +CONFIG_UART2_BITS=8 +CONFIG_UART2_PARITY=0 +CONFIG_UART2_2STOP=0 +# CONFIG_UART2_IFLOWCONTROL is not set +# CONFIG_UART2_OFLOWCONTROL is not set + +# +# UART3 Configuration +# +CONFIG_UART3_RXBUFSIZE=256 +CONFIG_UART3_TXBUFSIZE=256 +CONFIG_UART3_BAUD=115200 +CONFIG_UART3_BITS=8 +CONFIG_UART3_PARITY=0 +CONFIG_UART3_2STOP=0 +# CONFIG_UART3_IFLOWCONTROL is not set +# CONFIG_UART3_OFLOWCONTROL is not set +# CONFIG_USBDEV is not set +# CONFIG_FOTA_DRIVER is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +CONFIG_FS_READABLE=y +CONFIG_FS_WRITABLE=y +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +CONFIG_FS_SMARTFS=y + +# +# SMARTFS options +# +CONFIG_SMARTFS_ERASEDSTATE=0xff +CONFIG_SMARTFS_MAXNAMLEN=32 +# CONFIG_SMARTFS_MULTI_ROOT_DIRS is not set +CONFIG_SMARTFS_ALIGNED_ACCESS=y +# CONFIG_SMARTFS_BAD_SECTOR is not set +# CONFIG_SMARTFS_DYNAMIC_HEADER is not set +# CONFIG_SMARTFS_JOURNALING is not set +# CONFIG_SMARTFS_SECTOR_RECOVERY is not set +CONFIG_FS_PROCFS=y + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_VERSION is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set +# CONFIG_FS_PROCFS_EXCLUDE_PARTITIONS is not set +# CONFIG_FS_PROCFS_EXCLUDE_SMARTFS is not set +# CONFIG_FS_ROMFS is not set + +# +# Block Driver Configurations +# + +# +# MTD Configuration +# +CONFIG_MTD=y +CONFIG_MTD_PARTITION=y +CONFIG_MTD_PARTITION_NAMES=y +CONFIG_MTD_PROGMEM=y +CONFIG_MTD_CONFIG=y +CONFIG_MTD_FTL=y +# CONFIG_MTD_BYTE_WRITE is not set + +# +# MTD Configurations +# +# CONFIG_MTD_CONFIG_RAM_CONSOLIDATE is not set +CONFIG_MTD_CONFIG_ERASEDVALUE=0xff +# CONFIG_MTD_BYTE_WRITE is not set + +# +# MTD Device Drivers +# +# CONFIG_MTD_M25P is not set +# CONFIG_RAMMTD is not set +CONFIG_MTD_SMART=y + +# +# SMART Device options +# +CONFIG_MTD_SMART_SECTOR_SIZE=4096 +# CONFIG_MTD_SMART_WEAR_LEVEL is not set +# CONFIG_MTD_SMART_ENABLE_CRC is not set +# CONFIG_MTD_SMART_SECTOR_ERASE_DEBUG is not set +# CONFIG_MTD_SMART_ALLOC_DEBUG is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Arastorage +# + +# +# AraStorage database configuration +# +# CONFIG_ARASTORAGE is not set + +# +# Memory Management +# +# CONFIG_DISABLE_REALLOC_NEIGHBOR_EXTENTION is not set +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Power Management +# +# CONFIG_PM is not set + +# +# Logger Module +# +# CONFIG_LOGM is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +CONFIG_LIBM=y +# CONFIG_NOPRINTF_FIELDWIDTH is not set +CONFIG_LIBC_FLOATINGPOINT=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +CONFIG_LIBC_STRERROR=y +# CONFIG_LIBC_STRERROR_SHORT is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_LIBC_TMPDIR="/tmp" +CONFIG_LIBC_MAX_TMPFILE=32 +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set + +# +# Non-standard Library Support +# + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# External Functions +# +# CONFIG_WICED is not set +# CONFIG_ENABLE_IOTIVITY is not set + +# +# Application Configuration +# + +# +# Examples +# +# CONFIG_ENTRY_MANUAL is not set +CONFIG_ENTRY_HELLO=y +# CONFIG_ENTRY_HELLO_TASH is not set +CONFIG_USER_ENTRYPOINT="jerry_main" +# CONFIG_EXAMPLES_DTLS_CLIENT is not set +# CONFIG_EXAMPLES_DTLS_SERVER is not set +# CONFIG_EXAMPLES_FOTA_SAMPLE is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLO_TASH is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_KERNEL_SAMPLE is not set +# CONFIG_EXAMPLES_NETTEST is not set +# CONFIG_EXAMPLES_PROC_TEST is not set +# CONFIG_EXAMPLES_SELECT_TEST is not set +# CONFIG_EXAMPLES_SYSIO_TEST is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TESTCASE is not set +# CONFIG_EXAMPLES_TLS_CLIENT is not set +# CONFIG_EXAMPLES_TLS_SELFTEST is not set +# CONFIG_EXAMPLES_TLS_SERVER is not set +# CONFIG_EXAMPLES_WAKAAMA_CLIENT is not set +# CONFIG_EXAMPLES_WEBCLIENT is not set +# CONFIG_EXAMPLES_WORKQUEUE is not set +# CONFIG_EXAMPLES_ARTIK_DEMO is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_DHCPC is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_FTPD is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set +# CONFIG_NETUTILS_TELNETD is not set +# CONFIG_NETUTILS_TFTPC is not set +# CONFIG_NETUTILS_NETLIB is not set +# CONFIG_NETUTILS_WEBCLIENT is not set +# CONFIG_NETUTILS_WEBSERVER is not set +# CONFIG_NETUTILS_NTPCLIENT is not set +# CONFIG_NETUTILS_MDNS is not set + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# Enable Shell +# +CONFIG_TASH=y +CONFIG_TASH_MAX_COMMANDS=32 +# CONFIG_DEBUG_TASH is not set +# CONFIG_TASH_TELNET_INTERFACE is not set +CONFIG_TASH_CMDTASK_STACKSIZE=4096 +CONFIG_TASH_CMDTASK_PRIORITY=100 + +# +# System Libraries +# + +# +# EMACS-like Command Line Editor +# +CONFIG_SYSTEM_CLE=y +CONFIG_SYSTEM_CLE_DEBUGLEVEL=0 + +# +# CU Minimal Terminal +# +# CONFIG_SYSTEM_CUTERM is not set + +# +# FLASH Erase-all Command +# + +# +# FOTA HAL Application Library +# +# CONFIG_SYSTEM_FOTA_HAL is not set + +# +# I2C tool +# +# CONFIG_SYSTEM_I2CTOOL is not set + +# +# JerryScript +# +CONFIG_JERRYSCRIPT=y +CONFIG_JERRYSCRIPT_PRIORITY=100 +CONFIG_JERRYSCRIPT_STACKSIZE=16384 +CONFIG_JERRYSCRIPT_HEAPSIZE=107520 +# CONFIG_JERRYSCRIPT_MEM_STATS is not set +# CONFIG_JERRYSCRIPT_SHOW_OPCODES is not set +# CONFIG_JERRYSCRIPT_DEBUGGER is not set + +# +# INI File Parser +# +# CONFIG_SYSTEM_INIFILE is not set + +# +# FLASH Program Installation +# +# CONFIG_SYSTEM_INSTALL is not set + +# +# PHY Tool +# + +# +# System netdb Interface +# + +# +# Power Off +# +# CONFIG_SYSTEM_POWEROFF is not set + +# +# P-Code Support +# + +# +# RAM test +# +CONFIG_SYSTEM_RAMTEST=y + +# +# RAMTRON +# +# CONFIG_SYSTEM_RAMTRON is not set + +# +# readline() +# +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y + +# +# Sysinfo +# +CONFIG_SYSTEM_INFORMATION=y + +# +# Utils +# +CONFIG_KERNEL_CMDS=y +CONFIG_FS_CMDS=y +CONFIG_FSCMD_BUFFER_LEN=32 +CONFIG_ENABLE_DATE=y +CONFIG_ENABLE_ENV_GET=y +CONFIG_ENABLE_ENV_SET=y +CONFIG_ENABLE_ENV_UNSET=y +CONFIG_ENABLE_FREE=y +CONFIG_ENABLE_HEAPINFO=y +CONFIG_ENABLE_KILL=y +CONFIG_ENABLE_KILLALL=y +CONFIG_ENABLE_PS=y +CONFIG_ENABLE_STACKMONITOR=y +CONFIG_STACKMONITOR_PRIORITY=100 +CONFIG_STACKMONITOR_INTERVAL=5 + +# +# VI Work-Alike Editor +# +CONFIG_SYSTEM_VI=y +CONFIG_SYSTEM_VI_COLS=64 +CONFIG_SYSTEM_VI_ROWS=16 +CONFIG_SYSTEM_VI_DEBUGLEVEL=0