1 /* Copyright JS Foundation and other contributors, http://js.foundation
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 /******************************************************************************
17 * Copyright 2013-2014 Espressif Systems (Wuxi)
18 *
19 * FileName: user_main.c
20 *
21 * Description: entry file of user application
22 *
23 * Modification history:
24 * 2014/12/1, v1.0 create this file.
25 *******************************************************************************/
26
27 #include "esp_common.h"
28 #include "freertos/FreeRTOS.h"
29 #include "freertos/task.h"
30 #include "uart.h"
31
32 #include "user_config.h"
33 #include "jerry_run.h"
34 #include "jerry-targetjs.h"
35
show_free_mem(int idx)36 static void show_free_mem(int idx) {
37 size_t res = xPortGetFreeHeapSize();
38 printf("dbg free memory(%d): %d\r\n", idx, res);
39 }
40
jerry_task_init(void)41 static int jerry_task_init(void) {
42 DECLARE_JS_CODES;
43
44 js_entry();
45
46 /* run rest of the js files first */
47 show_free_mem(2);
48 for (int src = 1; js_codes[src].source; src++) {
49 int retcode = js_eval(js_codes[src].source, js_codes[src].length);
50 if (retcode != 0) {
51 printf("js_eval failed code(%d) [%s]\r\n", retcode, js_codes[src].name);
52 return -1;
53 }
54 }
55
56 /* run main.js */
57 int retcode = js_eval(js_codes[0].source, js_codes[0].length);
58 if (retcode != 0) {
59 printf("js_eval failed code(%d) [%s]\r\n", retcode, js_codes[0].name);
60 return -2;
61 }
62 show_free_mem(3);
63 return 0;
64 }
65
jerry_task(void * pvParameters)66 static void jerry_task(void *pvParameters) {
67 if (jerry_task_init() == 0) {
68 const portTickType xDelay = 100 / portTICK_RATE_MS;
69 uint32_t ticknow = 0;
70
71 for (;;) {
72 vTaskDelay(xDelay);
73 js_loop(ticknow);
74 if (!ticknow) {
75 show_free_mem(4);
76 }
77 ticknow++;
78 }
79 }
80 js_exit();
81 }
82
83 /*
84 * This is entry point for user code
85 */
user_init(void)86 void ICACHE_FLASH_ATTR user_init(void)
87 {
88 UART_SetBaudrate(UART0, BIT_RATE_115200);
89
90 show_free_mem(0);
91 wifi_softap_dhcps_stop();
92 show_free_mem(1);
93
94 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); // GPIO 0
95 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); // GPIO 2
96
97 xTaskCreate(jerry_task, "jerry", JERRY_STACK_SIZE, NULL, 2, NULL);
98 }
99
100 /*
101 * FunctionName : user_rf_cal_sector_set
102 * Description : SDK just reserved 4 sectors, used for rf init data and Parameters.
103 * We add this function to force users to set rf cal sector, since
104 * we don't know which sector is free in user's application.
105 * sector map for last several sectors : ABCCC
106 * A : rf cal
107 * B : rf init data
108 * C : sdk parameters
109 * Parameters : none
110 * Returns : rf cal sector
111 */
user_rf_cal_sector_set(void)112 uint32 user_rf_cal_sector_set(void)
113 {
114 flash_size_map size_map = system_get_flash_size_map();
115 uint32 rf_cal_sec = 0;
116
117 switch (size_map) {
118 case FLASH_SIZE_4M_MAP_256_256:
119 rf_cal_sec = 128 - 5;
120 break;
121
122 case FLASH_SIZE_8M_MAP_512_512:
123 rf_cal_sec = 256 - 5;
124 break;
125
126 case FLASH_SIZE_16M_MAP_512_512:
127 case FLASH_SIZE_16M_MAP_1024_1024:
128 rf_cal_sec = 512 - 5;
129 break;
130
131 case FLASH_SIZE_32M_MAP_512_512:
132 case FLASH_SIZE_32M_MAP_1024_1024:
133 rf_cal_sec = 1024 - 5;
134 break;
135 case FLASH_SIZE_64M_MAP_1024_1024:
136 rf_cal_sec = 2048 - 5;
137 break;
138 case FLASH_SIZE_128M_MAP_1024_1024:
139 rf_cal_sec = 4096 - 5;
140 break;
141 default:
142 rf_cal_sec = 0;
143 break;
144 }
145
146 return rf_cal_sec;
147 }
148