aboutsummaryrefslogtreecommitdiff
path: root/targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c
diff options
context:
space:
mode:
authorRoland Takacs <1487864+rtakacs@users.noreply.github.com>2021-12-06 11:02:52 +0100
committerGitHub <noreply@github.com>2021-12-06 11:02:52 +0100
commitaf297bc5784ad702a4b149fdf996401576751378 (patch)
tree73fdb6c590447b622da7dcd1d1ed06f6197c6314 /targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c
parent9860d66a56ed44f62e1dafb9900e6f2c886a56d3 (diff)
Separate targets into os and baremetal-sdk parts (#4842)
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs roland.takacs@h-lab.eu
Diffstat (limited to 'targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c')
-rw-r--r--targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c147
1 files changed, 147 insertions, 0 deletions
diff --git a/targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c b/targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c
new file mode 100644
index 00000000..48fd2631
--- /dev/null
+++ b/targets/baremetal-sdk/esp8266-rtos-sdk/user/user_main.c
@@ -0,0 +1,147 @@
+/* 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 2013-2014 Espressif Systems (Wuxi)
+ *
+ * FileName: user_main.c
+ *
+ * Description: entry file of user application
+ *
+ * Modification history:
+ * 2014/12/1, v1.0 create this file.
+*******************************************************************************/
+
+#include "esp_common.h"
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "uart.h"
+
+#include "user_config.h"
+#include "jerry_run.h"
+#include "jerry-targetjs.h"
+
+static void show_free_mem(int idx) {
+ size_t res = xPortGetFreeHeapSize();
+ printf("dbg free memory(%d): %d\r\n", idx, res);
+}
+
+static int jerry_task_init(void) {
+ DECLARE_JS_CODES;
+
+ js_entry();
+
+ /* run rest of the js files first */
+ show_free_mem(2);
+ for (int src = 1; 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 -1;
+ }
+ }
+
+ /* run main.js */
+ int retcode = js_eval(js_codes[0].source, js_codes[0].length);
+ if (retcode != 0) {
+ printf("js_eval failed code(%d) [%s]\r\n", retcode, js_codes[0].name);
+ return -2;
+ }
+ show_free_mem(3);
+ return 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(4);
+ }
+ ticknow++;
+ }
+ }
+ js_exit();
+}
+
+/*
+ * This is entry point for user code
+ */
+void ICACHE_FLASH_ATTR user_init(void)
+{
+ UART_SetBaudrate(UART0, BIT_RATE_115200);
+
+ show_free_mem(0);
+ wifi_softap_dhcps_stop();
+ show_free_mem(1);
+
+ PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); // GPIO 0
+ PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); // GPIO 2
+
+ 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;
+}