Skip to content

Commit 80b39e6

Browse files
authored
IDF release/v3.3 20aec9c113 (espressif#5290)
1 parent 0857109 commit 80b39e6

File tree

229 files changed

+57618
-4461
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

229 files changed

+57618
-4461
lines changed

libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp

+95-35
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,27 @@
1919
#include "Arduino.h"
2020

2121
#include "fb_gfx.h"
22+
23+
#if CONFIG_ESP_FACE_DETECT_ENABLED
24+
2225
#include "fd_forward.h"
26+
27+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
2328
#include "fr_forward.h"
2429

2530
#define ENROLL_CONFIRM_TIMES 5
2631
#define FACE_ID_SAVE_NUMBER 7
32+
#endif
2733

28-
#define FACE_COLOR_WHITE 0x00FFFFFF
29-
#define FACE_COLOR_BLACK 0x00000000
30-
#define FACE_COLOR_RED 0x000000FF
31-
#define FACE_COLOR_GREEN 0x0000FF00
32-
#define FACE_COLOR_BLUE 0x00FF0000
34+
#define FACE_COLOR_WHITE 0x00FFFFFF
35+
#define FACE_COLOR_BLACK 0x00000000
36+
#define FACE_COLOR_RED 0x000000FF
37+
#define FACE_COLOR_GREEN 0x0000FF00
38+
#define FACE_COLOR_BLUE 0x00FF0000
3339
#define FACE_COLOR_YELLOW (FACE_COLOR_RED | FACE_COLOR_GREEN)
34-
#define FACE_COLOR_CYAN (FACE_COLOR_BLUE | FACE_COLOR_GREEN)
40+
#define FACE_COLOR_CYAN (FACE_COLOR_BLUE | FACE_COLOR_GREEN)
3541
#define FACE_COLOR_PURPLE (FACE_COLOR_BLUE | FACE_COLOR_RED)
42+
#endif
3643

3744
typedef struct {
3845
size_t size; //number of values used for filtering
@@ -56,12 +63,6 @@ static ra_filter_t ra_filter;
5663
httpd_handle_t stream_httpd = NULL;
5764
httpd_handle_t camera_httpd = NULL;
5865

59-
static mtmn_config_t mtmn_config = {0};
60-
static int8_t detection_enabled = 0;
61-
static int8_t recognition_enabled = 0;
62-
static int8_t is_enrolling = 0;
63-
static face_id_list id_list = {0};
64-
6566
static ra_filter_t * ra_filter_init(ra_filter_t * filter, size_t sample_size){
6667
memset(filter, 0, sizeof(ra_filter_t));
6768

@@ -90,6 +91,16 @@ static int ra_filter_run(ra_filter_t * filter, int value){
9091
return filter->sum / filter->count;
9192
}
9293

94+
#if CONFIG_ESP_FACE_DETECT_ENABLED
95+
96+
static mtmn_config_t mtmn_config = {0};
97+
static int8_t detection_enabled = 0;
98+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
99+
static int8_t recognition_enabled = 0;
100+
static int8_t is_enrolling = 0;
101+
static face_id_list id_list = {0};
102+
#endif
103+
93104
static void rgb_print(dl_matrix3du_t *image_matrix, uint32_t color, const char * str){
94105
fb_data_t fb;
95106
fb.width = image_matrix->w;
@@ -161,6 +172,7 @@ static void draw_face_boxes(dl_matrix3du_t *image_matrix, box_array_t *boxes, in
161172
}
162173
}
163174

175+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
164176
static int run_face_recognition(dl_matrix3du_t *image_matrix, box_array_t *net_boxes){
165177
dl_matrix3du_t *aligned_face = NULL;
166178
int matched_id = 0;
@@ -202,6 +214,8 @@ static int run_face_recognition(dl_matrix3du_t *image_matrix, box_array_t *net_b
202214
dl_matrix3du_free(aligned_face);
203215
return matched_id;
204216
}
217+
#endif
218+
#endif
205219

206220
static size_t jpg_encode_stream(void * arg, size_t index, const void* data, size_t len){
207221
jpg_chunking_t *j = (jpg_chunking_t *)arg;
@@ -231,12 +245,14 @@ static esp_err_t capture_handler(httpd_req_t *req){
231245
httpd_resp_set_hdr(req, "Content-Disposition", "inline; filename=capture.jpg");
232246
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
233247

248+
#if CONFIG_ESP_FACE_DETECT_ENABLED
234249
size_t out_len, out_width, out_height;
235250
uint8_t * out_buf;
236251
bool s;
237252
bool detected = false;
238253
int face_id = 0;
239254
if(!detection_enabled || fb->width > 400){
255+
#endif
240256
size_t fb_len = 0;
241257
if(fb->format == PIXFORMAT_JPEG){
242258
fb_len = fb->len;
@@ -251,6 +267,7 @@ static esp_err_t capture_handler(httpd_req_t *req){
251267
int64_t fr_end = esp_timer_get_time();
252268
Serial.printf("JPG: %uB %ums\n", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start)/1000));
253269
return res;
270+
#if CONFIG_ESP_FACE_DETECT_ENABLED
254271
}
255272

256273
dl_matrix3du_t *image_matrix = dl_matrix3du_alloc(1, fb->width, fb->height, 3);
@@ -279,9 +296,12 @@ static esp_err_t capture_handler(httpd_req_t *req){
279296

280297
if (net_boxes){
281298
detected = true;
282-
if(recognition_enabled){
299+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
300+
if (recognition_enabled)
301+
{
283302
face_id = run_face_recognition(image_matrix, net_boxes);
284303
}
304+
#endif
285305
draw_face_boxes(image_matrix, net_boxes, face_id);
286306
free(net_boxes->score);
287307
free(net_boxes->box);
@@ -300,6 +320,7 @@ static esp_err_t capture_handler(httpd_req_t *req){
300320
int64_t fr_end = esp_timer_get_time();
301321
Serial.printf("FACE: %uB %ums %s%d\n", (uint32_t)(jchunk.len), (uint32_t)((fr_end - fr_start)/1000), detected?"DETECTED ":"", face_id);
302322
return res;
323+
#endif
303324
}
304325

305326
static esp_err_t stream_handler(httpd_req_t *req){
@@ -308,6 +329,7 @@ static esp_err_t stream_handler(httpd_req_t *req){
308329
size_t _jpg_buf_len = 0;
309330
uint8_t * _jpg_buf = NULL;
310331
char * part_buf[64];
332+
#if CONFIG_ESP_FACE_DETECT_ENABLED
311333
dl_matrix3du_t *image_matrix = NULL;
312334
bool detected = false;
313335
int face_id = 0;
@@ -316,6 +338,7 @@ static esp_err_t stream_handler(httpd_req_t *req){
316338
int64_t fr_face = 0;
317339
int64_t fr_recognize = 0;
318340
int64_t fr_encode = 0;
341+
#endif
319342

320343
static int64_t last_frame = 0;
321344
if(!last_frame) {
@@ -330,19 +353,24 @@ static esp_err_t stream_handler(httpd_req_t *req){
330353
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
331354

332355
while(true){
356+
#if CONFIG_ESP_FACE_DETECT_ENABLED
333357
detected = false;
334358
face_id = 0;
359+
#endif
335360
fb = esp_camera_fb_get();
336361
if (!fb) {
337362
Serial.println("Camera capture failed");
338363
res = ESP_FAIL;
339364
} else {
365+
#if CONFIG_ESP_FACE_DETECT_ENABLED
340366
fr_start = esp_timer_get_time();
341367
fr_ready = fr_start;
342368
fr_face = fr_start;
343369
fr_encode = fr_start;
344370
fr_recognize = fr_start;
345-
if(!detection_enabled || fb->width > 400){
371+
if (!detection_enabled || fb->width > 400)
372+
{
373+
#endif
346374
if(fb->format != PIXFORMAT_JPEG){
347375
bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
348376
esp_camera_fb_return(fb);
@@ -355,6 +383,7 @@ static esp_err_t stream_handler(httpd_req_t *req){
355383
_jpg_buf_len = fb->len;
356384
_jpg_buf = fb->buf;
357385
}
386+
#if CONFIG_ESP_FACE_DETECT_ENABLED
358387
} else {
359388

360389
image_matrix = dl_matrix3du_alloc(1, fb->width, fb->height, 3);
@@ -377,10 +406,13 @@ static esp_err_t stream_handler(httpd_req_t *req){
377406
if (net_boxes || fb->format != PIXFORMAT_JPEG){
378407
if(net_boxes){
379408
detected = true;
380-
if(recognition_enabled){
409+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
410+
if (recognition_enabled)
411+
{
381412
face_id = run_face_recognition(image_matrix, net_boxes);
382413
}
383414
fr_recognize = esp_timer_get_time();
415+
#endif
384416
draw_face_boxes(image_matrix, net_boxes, face_id);
385417
free(net_boxes->score);
386418
free(net_boxes->box);
@@ -402,6 +434,7 @@ static esp_err_t stream_handler(httpd_req_t *req){
402434
dl_matrix3du_free(image_matrix);
403435
}
404436
}
437+
#endif
405438
}
406439
if(res == ESP_OK){
407440
res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
@@ -426,22 +459,31 @@ static esp_err_t stream_handler(httpd_req_t *req){
426459
}
427460
int64_t fr_end = esp_timer_get_time();
428461

429-
int64_t ready_time = (fr_ready - fr_start)/1000;
430-
int64_t face_time = (fr_face - fr_ready)/1000;
431-
int64_t recognize_time = (fr_recognize - fr_face)/1000;
432-
int64_t encode_time = (fr_encode - fr_recognize)/1000;
433-
int64_t process_time = (fr_encode - fr_start)/1000;
462+
#if CONFIG_ESP_FACE_DETECT_ENABLED
463+
int64_t ready_time = (fr_ready - fr_start) / 1000;
464+
int64_t face_time = (fr_face - fr_ready) / 1000;
465+
int64_t recognize_time = (fr_recognize - fr_face) / 1000;
466+
int64_t encode_time = (fr_encode - fr_recognize) / 1000;
467+
int64_t process_time = (fr_encode - fr_start) / 1000;
468+
#endif
434469

435470
int64_t frame_time = fr_end - last_frame;
436471
last_frame = fr_end;
437472
frame_time /= 1000;
438473
uint32_t avg_frame_time = ra_filter_run(&ra_filter, frame_time);
439-
Serial.printf("MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps), %u+%u+%u+%u=%u %s%d\n",
440-
(uint32_t)(_jpg_buf_len),
441-
(uint32_t)frame_time, 1000.0 / (uint32_t)frame_time,
442-
avg_frame_time, 1000.0 / avg_frame_time,
443-
(uint32_t)ready_time, (uint32_t)face_time, (uint32_t)recognize_time, (uint32_t)encode_time, (uint32_t)process_time,
444-
(detected)?"DETECTED ":"", face_id
474+
Serial.printf("MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)"
475+
#if CONFIG_ESP_FACE_DETECT_ENABLED
476+
", %u+%u+%u+%u=%u %s%d"
477+
#endif
478+
,
479+
(uint32_t)(_jpg_buf_len),
480+
(uint32_t)frame_time, 1000.0 / (uint32_t)frame_time,
481+
avg_frame_time, 1000.0 / avg_frame_time
482+
#if CONFIG_ESP_FACE_DETECT_ENABLED
483+
,
484+
(uint32_t)ready_time, (uint32_t)face_time, (uint32_t)recognize_time, (uint32_t)encode_time, (uint32_t)process_time,
485+
(detected) ? "DETECTED " : "", face_id
486+
#endif
445487
);
446488
}
447489

@@ -511,19 +553,26 @@ static esp_err_t cmd_handler(httpd_req_t *req){
511553
else if(!strcmp(variable, "special_effect")) res = s->set_special_effect(s, val);
512554
else if(!strcmp(variable, "wb_mode")) res = s->set_wb_mode(s, val);
513555
else if(!strcmp(variable, "ae_level")) res = s->set_ae_level(s, val);
514-
else if(!strcmp(variable, "face_detect")) {
556+
#if CONFIG_ESP_FACE_DETECT_ENABLED
557+
else if (!strcmp(variable, "face_detect")) {
515558
detection_enabled = val;
516-
if(!detection_enabled) {
559+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
560+
if (!detection_enabled) {
517561
recognition_enabled = 0;
518562
}
563+
#endif
519564
}
520-
else if(!strcmp(variable, "face_enroll")) is_enrolling = val;
521-
else if(!strcmp(variable, "face_recognize")) {
565+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
566+
else if (!strcmp(variable, "face_enroll"))
567+
is_enrolling = val;
568+
else if (!strcmp(variable, "face_recognize")) {
522569
recognition_enabled = val;
523-
if(recognition_enabled){
570+
if (recognition_enabled) {
524571
detection_enabled = val;
525572
}
526573
}
574+
#endif
575+
#endif
527576
else {
528577
res = -1;
529578
}
@@ -568,9 +617,13 @@ static esp_err_t status_handler(httpd_req_t *req){
568617
p+=sprintf(p, "\"hmirror\":%u,", s->status.hmirror);
569618
p+=sprintf(p, "\"dcw\":%u,", s->status.dcw);
570619
p+=sprintf(p, "\"colorbar\":%u,", s->status.colorbar);
571-
p+=sprintf(p, "\"face_detect\":%u,", detection_enabled);
572-
p+=sprintf(p, "\"face_enroll\":%u,", is_enrolling);
573-
p+=sprintf(p, "\"face_recognize\":%u", recognition_enabled);
620+
#if CONFIG_ESP_FACE_DETECT_ENABLED
621+
p += sprintf(p, ",\"face_detect\":%u", detection_enabled);
622+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
623+
p += sprintf(p, ",\"face_enroll\":%u,", is_enrolling);
624+
p += sprintf(p, "\"face_recognize\":%u", recognition_enabled);
625+
#endif
626+
#endif
574627
*p++ = '}';
575628
*p++ = 0;
576629
httpd_resp_set_type(req, "application/json");
@@ -629,6 +682,9 @@ void startCameraServer(){
629682

630683
ra_filter_init(&ra_filter, 20);
631684

685+
686+
#if CONFIG_ESP_FACE_DETECT_ENABLED
687+
632688
mtmn_config.type = FAST;
633689
mtmn_config.min_face = 80;
634690
mtmn_config.pyramid = 0.707;
@@ -642,8 +698,12 @@ void startCameraServer(){
642698
mtmn_config.o_threshold.score = 0.7;
643699
mtmn_config.o_threshold.nms = 0.7;
644700
mtmn_config.o_threshold.candidate_number = 1;
645-
701+
702+
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
646703
face_id_init(&id_list, FACE_ID_SAVE_NUMBER, ENROLL_CONFIRM_TIMES);
704+
#endif
705+
706+
#endif
647707

648708
Serial.printf("Starting web server on port: '%d'\n", config.server_port);
649709
if (httpd_start(&camera_httpd, &config) == ESP_OK) {

platform.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ compiler.warning_flags.all=-Wall -Werror=all -Wextra
2222

2323
compiler.path={runtime.tools.xtensa-esp32-elf-gcc.path}/bin/
2424
compiler.sdk.path={runtime.platform.path}/tools/sdk
25-
compiler.cpreprocessor.flags=-DESP_PLATFORM -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/app_trace" "-I{compiler.sdk.path}/include/app_update" "-I{compiler.sdk.path}/include/asio" "-I{compiler.sdk.path}/include/bootloader_support" "-I{compiler.sdk.path}/include/bt" "-I{compiler.sdk.path}/include/coap" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/driver" "-I{compiler.sdk.path}/include/efuse" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp32" "-I{compiler.sdk.path}/include/esp_adc_cal" "-I{compiler.sdk.path}/include/esp_event" "-I{compiler.sdk.path}/include/esp_http_client" "-I{compiler.sdk.path}/include/esp_http_server" "-I{compiler.sdk.path}/include/esp_https_ota" "-I{compiler.sdk.path}/include/esp_https_server" "-I{compiler.sdk.path}/include/esp_ringbuf" "-I{compiler.sdk.path}/include/esp_websocket_client" "-I{compiler.sdk.path}/include/espcoredump" "-I{compiler.sdk.path}/include/ethernet" "-I{compiler.sdk.path}/include/expat" "-I{compiler.sdk.path}/include/fatfs" "-I{compiler.sdk.path}/include/freemodbus" "-I{compiler.sdk.path}/include/freertos" "-I{compiler.sdk.path}/include/heap" "-I{compiler.sdk.path}/include/idf_test" "-I{compiler.sdk.path}/include/jsmn" "-I{compiler.sdk.path}/include/json" "-I{compiler.sdk.path}/include/libsodium" "-I{compiler.sdk.path}/include/log" "-I{compiler.sdk.path}/include/lwip" "-I{compiler.sdk.path}/include/mbedtls" "-I{compiler.sdk.path}/include/mdns" "-I{compiler.sdk.path}/include/micro-ecc" "-I{compiler.sdk.path}/include/mqtt" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/nghttp" "-I{compiler.sdk.path}/include/nvs_flash" "-I{compiler.sdk.path}/include/openssl" "-I{compiler.sdk.path}/include/protobuf-c" "-I{compiler.sdk.path}/include/protocomm" "-I{compiler.sdk.path}/include/pthread" "-I{compiler.sdk.path}/include/sdmmc" "-I{compiler.sdk.path}/include/smartconfig_ack" "-I{compiler.sdk.path}/include/soc" "-I{compiler.sdk.path}/include/spi_flash" "-I{compiler.sdk.path}/include/spiffs" "-I{compiler.sdk.path}/include/tcp_transport" "-I{compiler.sdk.path}/include/tcpip_adapter" "-I{compiler.sdk.path}/include/ulp" "-I{compiler.sdk.path}/include/unity" "-I{compiler.sdk.path}/include/vfs" "-I{compiler.sdk.path}/include/wear_levelling" "-I{compiler.sdk.path}/include/wifi_provisioning" "-I{compiler.sdk.path}/include/wpa_supplicant" "-I{compiler.sdk.path}/include/xtensa-debug-module" "-I{compiler.sdk.path}/include/esp-face" "-I{compiler.sdk.path}/include/esp32-camera" "-I{compiler.sdk.path}/include/esp-face" "-I{compiler.sdk.path}/include/fb_gfx"
25+
compiler.cpreprocessor.flags=-DESP_PLATFORM -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/app_trace" "-I{compiler.sdk.path}/include/app_update" "-I{compiler.sdk.path}/include/asio" "-I{compiler.sdk.path}/include/bootloader_support" "-I{compiler.sdk.path}/include/bt" "-I{compiler.sdk.path}/include/coap" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/driver" "-I{compiler.sdk.path}/include/efuse" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp32" "-I{compiler.sdk.path}/include/esp_adc_cal" "-I{compiler.sdk.path}/include/esp_event" "-I{compiler.sdk.path}/include/esp_http_client" "-I{compiler.sdk.path}/include/esp_http_server" "-I{compiler.sdk.path}/include/esp_https_ota" "-I{compiler.sdk.path}/include/esp_https_server" "-I{compiler.sdk.path}/include/esp_ringbuf" "-I{compiler.sdk.path}/include/esp_websocket_client" "-I{compiler.sdk.path}/include/espcoredump" "-I{compiler.sdk.path}/include/ethernet" "-I{compiler.sdk.path}/include/expat" "-I{compiler.sdk.path}/include/fatfs" "-I{compiler.sdk.path}/include/freemodbus" "-I{compiler.sdk.path}/include/freertos" "-I{compiler.sdk.path}/include/heap" "-I{compiler.sdk.path}/include/idf_test" "-I{compiler.sdk.path}/include/jsmn" "-I{compiler.sdk.path}/include/json" "-I{compiler.sdk.path}/include/libsodium" "-I{compiler.sdk.path}/include/log" "-I{compiler.sdk.path}/include/lwip" "-I{compiler.sdk.path}/include/mbedtls" "-I{compiler.sdk.path}/include/mdns" "-I{compiler.sdk.path}/include/micro-ecc" "-I{compiler.sdk.path}/include/mqtt" "-I{compiler.sdk.path}/include/newlib" "-I{compiler.sdk.path}/include/nghttp" "-I{compiler.sdk.path}/include/nvs_flash" "-I{compiler.sdk.path}/include/openssl" "-I{compiler.sdk.path}/include/protobuf-c" "-I{compiler.sdk.path}/include/protocomm" "-I{compiler.sdk.path}/include/pthread" "-I{compiler.sdk.path}/include/sdmmc" "-I{compiler.sdk.path}/include/smartconfig_ack" "-I{compiler.sdk.path}/include/soc" "-I{compiler.sdk.path}/include/spi_flash" "-I{compiler.sdk.path}/include/spiffs" "-I{compiler.sdk.path}/include/tcp_transport" "-I{compiler.sdk.path}/include/tcpip_adapter" "-I{compiler.sdk.path}/include/ulp" "-I{compiler.sdk.path}/include/unity" "-I{compiler.sdk.path}/include/vfs" "-I{compiler.sdk.path}/include/wear_levelling" "-I{compiler.sdk.path}/include/wifi_provisioning" "-I{compiler.sdk.path}/include/wpa_supplicant" "-I{compiler.sdk.path}/include/xtensa-debug-module" "-I{compiler.sdk.path}/include/esp32-camera" "-I{compiler.sdk.path}/include/fb_gfx"
2626

2727
compiler.c.cmd=xtensa-esp32-elf-gcc
2828
compiler.c.flags=-std=gnu99 -Os -g3 -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -Wpointer-arith {compiler.warning_flags} -Wno-maybe-uninitialized -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -Wno-old-style-declaration -MMD -c
@@ -35,7 +35,7 @@ compiler.S.flags=-c -g3 -x assembler-with-cpp -MMD -mlongcalls
3535

3636
compiler.c.elf.cmd=xtensa-esp32-elf-gcc
3737
compiler.c.elf.flags=-nostdlib "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" -T esp32_out.ld -T esp32.project.ld -T esp32.rom.ld -T esp32.peripherals.ld -T esp32.rom.libgcc.ld -T esp32.rom.spiram_incompatible_fns.ld -u esp_app_desc -u ld_include_panic_highint_hdl -u call_user_start_cpu0 -Wl,--gc-sections -Wl,-static -Wl,--undefined=uxTopUsedPriority -u __cxa_guard_dummy -u __cxx_fatal_exception
38-
compiler.c.elf.libs=-lgcc -ldetection_cat_face -lespcoredump -lwpa -lrtc -lvfs -lnewlib -ldetection -lfreemodbus -lprotocomm -lwpa_supplicant -lfatfs -lsmartconfig -lesp_ringbuf -lfd -lesp_adc_cal -lspiffs -lopenssl -lsdmmc -ljsmn -lespnow -lc -lbootloader_support -lesp_https_server -lcore -lspi_flash -lmicro-ecc -lunity -lapp_trace -lexpat -lheap -ltcp_transport -lfr -lfb_gfx -lethernet -lesp_websocket_client -lesp32-camera -lcoexist -lpthread -lmqtt -lface_recognition -llwip -lasio -lefuse -lnvs_flash -lhal -lcxx -lesp_event -lfreertos -llibsodium -lwear_levelling -ljson -lesp32 -lcoap -lbt -lbtdm_app -lmbedtls -lwpa2 -lface_detection -lesp-tls -lwps -lpe -lmdns -lmesh -lesp_http_server -llog -lesp_http_client -lsoc -lc_nano -lnghttp -lprotobuf-c -lphy -lesp_https_ota -lwifi_provisioning -ldl -lulp -limage_util -lnet80211 -lsmartconfig_ack -lapp_update -lm -ltcpip_adapter -lpp -ldriver -lconsole -lod -lxtensa-debug-module -lstdc++
38+
compiler.c.elf.libs=-lgcc -lwps -lulp -lmbedtls -lnewlib -lespnow -llog -lsdmmc -lasio -lbtdm_app -lpp -lpthread -lcoexist -lhal -lxtensa-debug-module -lfatfs -lesp32-camera -lesp_event -lnet80211 -lc_nano -lmqtt -lexpat -lefuse -lopenssl -lethernet -lesp_https_server -lvfs -lprotobuf-c -lapp_trace -lc -lesp_ringbuf -ltcpip_adapter -lcore -lsoc -lfreertos -lesp_http_client -lwpa2 -lmicro-ecc -lnghttp -lsmartconfig -lesp_https_ota -lspiffs -lcxx -ltcp_transport -lbootloader_support -lesp_adc_cal -ldl -llibsodium -lesp_http_server -lrtc -lspi_flash -lmesh -lprotocomm -llwip -ljson -lwear_levelling -lm -lwpa -lfb_gfx -ljsmn -lunity -lbt -lphy -lnvs_flash -lesp_websocket_client -lcat_face_detect -lapp_update -lespcoredump -lwpa_supplicant -lwifi_provisioning -lcoap -ldriver -lfreemodbus -lconsole -lheap -lmdns -lmfn -lsmartconfig_ack -lhuman_face_detect -lcolor_detect -lesp32 -lesp-tls -lstdc++
3939

4040
compiler.as.cmd=xtensa-esp32-elf-as
4141

0 commit comments

Comments
 (0)