Revive target: ESP8266
This patch updates ESP8266 build system and code base as well.
- Removed unnecessary files.
- Decreased code size.
- Refactored jerry_{port, extapi, run}.c to make it more easy to handle.
- Readme.md is updated as well which contains detailed step by step description about how to set up environment and use JerryScript.
Finally, it solves the related issue #1375.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
@@ -25,64 +25,47 @@
|
||||
*******************************************************************************/
|
||||
|
||||
#include "esp_common.h"
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "uart.h"
|
||||
|
||||
#include "user_config.h"
|
||||
#include "esp8266_uart.h"
|
||||
#include "jerry_run.h"
|
||||
#include "jerry-targetjs.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void show_free_mem(int idx) {
|
||||
static void show_free_mem(int idx) {
|
||||
size_t res = xPortGetFreeHeapSize();
|
||||
printf("dbg free memory(%d): %d\r\n", idx, res);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "jerry-targetjs.h"
|
||||
|
||||
|
||||
static int jerry_task_init(void) {
|
||||
int retcode;
|
||||
int src;
|
||||
|
||||
DECLARE_JS_CODES;
|
||||
|
||||
/* run main.js */
|
||||
js_entry();
|
||||
|
||||
/* run js files */
|
||||
show_free_mem(2);
|
||||
retcode = js_entry(js_codes[0].source, js_codes[0].length);
|
||||
if (retcode != 0) {
|
||||
printf("js_entry failed code(%d) [%s]\r\n", retcode, js_codes[0].name);
|
||||
return -1;
|
||||
}
|
||||
/* run rest of the js files */
|
||||
show_free_mem(3);
|
||||
for (src=1; js_codes[src].source; src++) {
|
||||
retcode = js_eval(js_codes[src].source, js_codes[src].length);
|
||||
for (int src = 0; js_codes[src].source; src++) {
|
||||
int retcode = js_eval(js_codes[src].source, js_codes[src].length);
|
||||
if (retcode != 0) {
|
||||
printf("js_eval failed code(%d) [%s]\r\n", retcode, js_codes[src].name);
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
show_free_mem(4);
|
||||
show_free_mem(3);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void jerry_task(void *pvParameters) {
|
||||
const portTickType xDelay = 100 / portTICK_RATE_MS;
|
||||
uint32_t ticknow = 0;
|
||||
|
||||
static void jerry_task(void *pvParameters) {
|
||||
if (jerry_task_init() == 0) {
|
||||
const portTickType xDelay = 100 / portTICK_RATE_MS;
|
||||
uint32_t ticknow = 0;
|
||||
|
||||
for (;;) {
|
||||
vTaskDelay(xDelay);
|
||||
js_loop(ticknow);
|
||||
if (!ticknow) {
|
||||
show_free_mem(5);
|
||||
show_free_mem(4);
|
||||
}
|
||||
ticknow++;
|
||||
}
|
||||
@@ -90,15 +73,12 @@ void jerry_task(void *pvParameters) {
|
||||
js_exit();
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
* This is entry point for user code
|
||||
*/
|
||||
void ICACHE_FLASH_ATTR user_init(void)
|
||||
{
|
||||
uart_div_modify(UART0, UART_CLK_FREQ / (BIT_RATE_115200));
|
||||
UART_SetBaudrate(UART0, BIT_RATE_115200);
|
||||
|
||||
show_free_mem(0);
|
||||
wifi_softap_dhcps_stop();
|
||||
@@ -109,3 +89,52 @@ void ICACHE_FLASH_ATTR user_init(void)
|
||||
|
||||
xTaskCreate(jerry_task, "jerry", JERRY_STACK_SIZE, NULL, 2, NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* FunctionName : user_rf_cal_sector_set
|
||||
* Description : SDK just reserved 4 sectors, used for rf init data and Parameters.
|
||||
* We add this function to force users to set rf cal sector, since
|
||||
* we don't know which sector is free in user's application.
|
||||
* sector map for last several sectors : ABCCC
|
||||
* A : rf cal
|
||||
* B : rf init data
|
||||
* C : sdk parameters
|
||||
* Parameters : none
|
||||
* Returns : rf cal sector
|
||||
*/
|
||||
uint32 user_rf_cal_sector_set(void)
|
||||
{
|
||||
flash_size_map size_map = system_get_flash_size_map();
|
||||
uint32 rf_cal_sec = 0;
|
||||
|
||||
switch (size_map) {
|
||||
case FLASH_SIZE_4M_MAP_256_256:
|
||||
rf_cal_sec = 128 - 5;
|
||||
break;
|
||||
|
||||
case FLASH_SIZE_8M_MAP_512_512:
|
||||
rf_cal_sec = 256 - 5;
|
||||
break;
|
||||
|
||||
case FLASH_SIZE_16M_MAP_512_512:
|
||||
case FLASH_SIZE_16M_MAP_1024_1024:
|
||||
rf_cal_sec = 512 - 5;
|
||||
break;
|
||||
|
||||
case FLASH_SIZE_32M_MAP_512_512:
|
||||
case FLASH_SIZE_32M_MAP_1024_1024:
|
||||
rf_cal_sec = 1024 - 5;
|
||||
break;
|
||||
case FLASH_SIZE_64M_MAP_1024_1024:
|
||||
rf_cal_sec = 2048 - 5;
|
||||
break;
|
||||
case FLASH_SIZE_128M_MAP_1024_1024:
|
||||
rf_cal_sec = 4096 - 5;
|
||||
break;
|
||||
default:
|
||||
rf_cal_sec = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return rf_cal_sec;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user