Péter Gál 01ecc7bb7b Rework usages/naming of configuration macros [part 2] (#2903)
There are quite a few configuration macros in the project.
As discussed in the #2520 issue there are a few awkward constructs.

Main changes:

* The following macros are now 0/1 switches:
** Renamed CONFIG_ECMA_LCACHE_DISABLE to JERRY_LCACHE.
** Renamed CONFIG_ECMA_PROPERTY_HASHMAP_DISABLE to JERRY_PROPERTY_HASHMAP.
** Renamed CONFIG_DISABLE_UNICODE_CASE_CONVERSION to JERRY_UNICODE_CASE_CONVERSION.
** Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
** Renamed JERRY_DISABLE_JS_PARSER to JERRY_PARSER.
** Renamed JERRY_ENABLE_ERROR_MESSAGES to JERRY_ERROR_MESSAGES.
** Renamed JERRY_ENABLE_EXTERNAL_CONTEXT to JERRY_EXTERNAL_CONTEXT.
** Renamed JERRY_ENABLE_LINE_INFO to JERRY_LINE_INFO.
** Renamed JERRY_ENABLE_LOGGING to JERRY_LOGGING.
** Renamed JERRY_ENABLE_SNAPSHOT_EXEC to JERRY_SNAPSHOT_EXEC.
** Renamed JERRY_ENABLE_SNAPSHOT_SAVE to JERRY_SNAPSHOT_SAVE.
** Renamed JERRY_SYSTEM_ALLOCATOR to JERRY_SYSTEM_ALLOCATOR.
** Renamed JERRY_VM_EXEC_STOP to JERRY_VM_EXEC_STOP.
** Renamed JMEM_GC_BEFORE_EACH_ALLOC to JERRY_MEM_GC_BEFORE_EACH_ALLOC.
** Renamed JMEM_STATS to JERRY_MEM_STATS.
** Renamed PARSER_DUMP_BYTE_CODE to JERRY_PARSER_DUMP_BYTE_CODE.
** Renamed REGEXP_DUMP_BYTE_CODE to JERRY_REGEXP_DUMP_BYTE_CODE.
* Recursion check changes:
** Renamed REGEXP_RECURSION_LIMIT to JERRY_REGEXP_RECURSION_LIMIT.
** Renamed VM_RECURSION_LIMIT to JERRY_VM_RECURSION_LIMIT.
* Attribute macro changes:
** Renamed JERRY_CONST_DATA to JERRY_ATTR_CONST_DATA.
** Renamed JERRY_HEAP_SECTION_ATTR to JERRY_ATTR_GLOBAL_HEAP.
  Now the macro can specify any attribute for the global heap object.
* Other macro changes:
** Renamed CONFIG_MEM_HEAP_AREA_SIZE to JERRY_GLOBAL_HEAP_SIZE.
   Then new macro now specify the global heap size in kilobytes.
* Updated documentations to reflect the new macro names.

For more deatils please see jerry-core/config.h.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2019-06-19 12:28:21 +02:00
..
2016-01-14 07:27:18 +09:00

About

Files in this folder (targets/esp8266) are copied from examples/project_template of esp_iot_rtos_sdk and modified for JerryScript. You can view online from this page.

How to build JerryScript for ESP8266

1. SDK

Follow this page to setup build environment

2. Building JerryScript

# assume you are in jerryscript folder
make -f ./targets/esp8266/Makefile.esp8266

Output files should be placed at $BIN_PATH

3. Flashing for ESP8266 12E

Follow this page to get details about this board.

make -f ./targets/esp8266/Makefile.esp8266 flash

Default USB device is /dev/ttyUSB0. If you have different one, give with USBDEVICE, like;

USBDEVICE=/dev/ttyUSB1 make -f ./targets/esp8266/Makefile.esp8266 flash

4. Running

  • power off
  • connect GPIO2 with serial of 470 Ohm + LED and to GND
  • power On

LED should blink on and off every second

5. Cleaning

To clean the build result:

make -f ./targets/esp8266/Makefile.esp8266 clean

To clean the board's flash memory:

make -f ./targets/esp8266/Makefile.esp8266 erase_flash

6. Optimizing initial RAM usage (ESP8266 specific)

The existing open source gcc compiler with Xtensa support stores const(ants) in the same limited RAM where our code needs to run.

It is possible to force the compiler to store a constant into ROM and also read it from there thus saving RAM. The only requirement is to add JERRY_ATTR_CONST_DATA attribute to your constant.

For example:

static const lit_magic_size_t lit_magic_string_sizes[] =

can be modified to

static const lit_magic_size_t lit_magic_string_sizes[] JERRY_ATTR_CONST_DATA =

That is already done to some constants in jerry-core. E.g.:

  • vm_decode_table
  • ecma_property_hashmap_steps
  • lit_magic_string_sizes
  • unicode_letter_interv_sps
  • unicode_letter_interv_len
  • unicode_non_letter_ident_
  • unicode_letter_chars