Merge branch 'feature/crosstool_backport' into 'master'
Backport of work of gcc8 toolchain to v3 See merge request idf/esp-idf!3154
This commit is contained in:
commit
2e6e87816c
|
@ -32,6 +32,9 @@ variables:
|
|||
APPLY_BOT_FILTER_SCRIPT: "$CI_PROJECT_DIR/tools/ci/apply_bot_filter.py"
|
||||
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
|
||||
|
||||
# Docker images
|
||||
BOT_DOCKER_IMAGE_TAG: ":latest"
|
||||
|
||||
# When 'fetch' strategy is used, Gitlab removes untracked files before checking out
|
||||
# new revision. However if the new revision doesn't include some of the submodules
|
||||
# which were present in the old revision, such submodule directories would not be
|
||||
|
@ -644,7 +647,7 @@ check_submodule_sync:
|
|||
assign_test:
|
||||
tags:
|
||||
- assign_test
|
||||
image: $CI_DOCKER_REGISTRY/ubuntu-test-env
|
||||
image: $CI_DOCKER_REGISTRY/ubuntu-test-env$BOT_DOCKER_IMAGE_TAG
|
||||
stage: assign_test
|
||||
# gitlab ci do not support match job with RegEx or wildcard now in dependencies.
|
||||
# we have a lot build example jobs. now we don't use dependencies, just download all artificats of build stage.
|
||||
|
@ -810,6 +813,7 @@ example_test_001_01:
|
|||
|
||||
example_test_002_01:
|
||||
<<: *example_test_template
|
||||
image: $CI_DOCKER_REGISTRY/ubuntu-test-env$BOT_DOCKER_IMAGE_TAG
|
||||
tags:
|
||||
- ESP32
|
||||
- Example_ShieldBox
|
||||
|
|
7
Kconfig
7
Kconfig
|
@ -176,6 +176,13 @@ config WARN_WRITE_STRINGS
|
|||
For C++, this warns about the deprecated conversion from string
|
||||
literals to ``char *``.
|
||||
|
||||
config DISABLE_GCC8_WARNINGS
|
||||
bool "Disable new warnings introduced in GCC 6 - 8"
|
||||
default "n"
|
||||
help
|
||||
Enable this option if using GCC 6 or newer, and wanting to disable warnings which don't appear with GCC 5.
|
||||
|
||||
|
||||
endmenu # Compiler Options
|
||||
|
||||
menu "Component config"
|
||||
|
|
|
@ -31,10 +31,13 @@
|
|||
#include "esp_log.h"
|
||||
const static char *TAG = "esp_gcov_rtio";
|
||||
|
||||
static void (*s_gcov_exit)(void);
|
||||
#if GCC_NOT_5_2_0
|
||||
void __gcov_dump(void);
|
||||
void __gcov_reset(void);
|
||||
#else
|
||||
/* The next code for old GCC */
|
||||
|
||||
/* TODO: remove code extracted from GCC when IDF toolchain will be updated */
|
||||
/*=============== GCC CODE START ====================*/
|
||||
static void (*s_gcov_exit)(void);
|
||||
/* Root of a program/shared-object state */
|
||||
struct gcov_root
|
||||
{
|
||||
|
@ -53,27 +56,36 @@ static void esp_gcov_reset_status(void)
|
|||
__gcov_root.dumped = 0;
|
||||
__gcov_root.run_counted = 0;
|
||||
}
|
||||
/*=============== GCC CODE END ====================*/
|
||||
#endif
|
||||
|
||||
|
||||
static int esp_dbg_stub_gcov_dump_do(void)
|
||||
{
|
||||
int ret = ESP_OK;
|
||||
|
||||
ESP_EARLY_LOGV(TAG, "Alloc apptrace down buf %d bytes", ESP_GCOV_DOWN_BUF_SIZE);
|
||||
void *down_buf = malloc(ESP_GCOV_DOWN_BUF_SIZE);
|
||||
if (down_buf == NULL) {
|
||||
ESP_EARLY_LOGE(TAG, "Could not allocate memory for the buffer");
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
|
||||
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
|
||||
ESP_EARLY_LOGV(TAG, "Dump data...");
|
||||
#if GCC_NOT_5_2_0
|
||||
__gcov_dump();
|
||||
// reset dump status to allow incremental data accumulation
|
||||
__gcov_reset();
|
||||
#else
|
||||
ESP_EARLY_LOGV(TAG, "Check for dump handler %p", s_gcov_exit);
|
||||
if (s_gcov_exit) {
|
||||
ESP_EARLY_LOGV(TAG, "Alloc apptrace down buf %d bytes", ESP_GCOV_DOWN_BUF_SIZE);
|
||||
void *down_buf = malloc(ESP_GCOV_DOWN_BUF_SIZE);
|
||||
if (down_buf == NULL) {
|
||||
ESP_EARLY_LOGE(TAG, "Failed to send files transfer stop cmd (%d)!", ret);
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
|
||||
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
|
||||
ESP_EARLY_LOGV(TAG, "Dump data... %p", s_gcov_exit);
|
||||
s_gcov_exit();
|
||||
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
|
||||
free(down_buf);
|
||||
// reset dump status to allow incremental data accumulation
|
||||
esp_gcov_reset_status();
|
||||
}
|
||||
#endif
|
||||
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
|
||||
free(down_buf);
|
||||
ESP_EARLY_LOGV(TAG, "Finish file transfer session");
|
||||
ret = esp_apptrace_fstop(ESP_APPTRACE_DEST_TRAX);
|
||||
if (ret != ESP_OK) {
|
||||
|
@ -91,24 +103,26 @@ static int esp_dbg_stub_gcov_dump_do(void)
|
|||
*/
|
||||
static int esp_dbg_stub_gcov_entry(void)
|
||||
{
|
||||
#if GCC_NOT_5_2_0
|
||||
return esp_dbg_stub_gcov_dump_do();
|
||||
#else
|
||||
int ret = ESP_OK;
|
||||
|
||||
// disable IRQs on this CPU, other CPU is halted by OpenOCD
|
||||
unsigned irq_state = portENTER_CRITICAL_NESTED();
|
||||
ret = esp_dbg_stub_gcov_dump_do();
|
||||
// reset dump status to allow incremental data accumulation
|
||||
esp_gcov_reset_status();
|
||||
portEXIT_CRITICAL_NESTED(irq_state);
|
||||
return ret;
|
||||
#endif
|
||||
}
|
||||
|
||||
void esp_gcov_dump()
|
||||
{
|
||||
#if CONFIG_FREERTOS_UNICORE == 0
|
||||
// disable IRQs on this CPU, other CPU is halted by OpenOCD
|
||||
unsigned irq_state = portENTER_CRITICAL_NESTED();
|
||||
#if !CONFIG_FREERTOS_UNICORE
|
||||
int other_core = xPortGetCoreID() ? 0 : 1;
|
||||
esp_cpu_stall(other_core);
|
||||
#endif
|
||||
|
||||
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
|
||||
// to avoid complains that task watchdog got triggered for other tasks
|
||||
TIMERG0.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
|
||||
|
@ -121,24 +135,27 @@ void esp_gcov_dump()
|
|||
}
|
||||
|
||||
esp_dbg_stub_gcov_dump_do();
|
||||
// reset dump status to allow incremental data accumulation
|
||||
esp_gcov_reset_status();
|
||||
#if CONFIG_FREERTOS_UNICORE == 0
|
||||
#if !CONFIG_FREERTOS_UNICORE
|
||||
esp_cpu_unstall(other_core);
|
||||
#endif
|
||||
portEXIT_CRITICAL_NESTED(irq_state);
|
||||
}
|
||||
|
||||
int gcov_rtio_atexit(void (*function)(void))
|
||||
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
|
||||
{
|
||||
#if GCC_NOT_5_2_0
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
#else
|
||||
ESP_EARLY_LOGV(TAG, "%s %p", __FUNCTION__, function);
|
||||
s_gcov_exit = function;
|
||||
#endif
|
||||
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *gcov_rtio_fopen(const char *path, const char *mode)
|
||||
{
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode);
|
||||
return esp_apptrace_fopen(ESP_APPTRACE_DEST_TRAX, path, mode);
|
||||
}
|
||||
|
||||
|
@ -150,8 +167,10 @@ int gcov_rtio_fclose(void *stream)
|
|||
|
||||
size_t gcov_rtio_fread(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
return esp_apptrace_fread(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
|
||||
ESP_EARLY_LOGV(TAG, "%s read %u", __FUNCTION__, size*nmemb);
|
||||
size_t sz = esp_apptrace_fread(ESP_APPTRACE_DEST_TRAX, ptr, size, nmemb, stream);
|
||||
ESP_EARLY_LOGV(TAG, "%s actually read %u", __FUNCTION__, sz);
|
||||
return sz;
|
||||
}
|
||||
|
||||
size_t gcov_rtio_fwrite(const void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
|
@ -162,17 +181,15 @@ size_t gcov_rtio_fwrite(const void *ptr, size_t size, size_t nmemb, void *stream
|
|||
|
||||
int gcov_rtio_fseek(void *stream, long offset, int whence)
|
||||
{
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
int ret = esp_apptrace_fseek(ESP_APPTRACE_DEST_TRAX, stream, offset, whence);
|
||||
ESP_EARLY_LOGV(TAG, "%s EXIT", __FUNCTION__);
|
||||
ESP_EARLY_LOGV(TAG, "%s(%p %ld %d) = %d", __FUNCTION__, stream, offset, whence, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
long gcov_rtio_ftell(void *stream)
|
||||
{
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
long ret = esp_apptrace_ftell(ESP_APPTRACE_DEST_TRAX, stream);
|
||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||
ESP_EARLY_LOGV(TAG, "%s(%p) = %ld", __FUNCTION__, stream, ret);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -277,6 +277,10 @@ set(COMPONENT_PRIV_REQUIRES nvs_flash)
|
|||
register_component()
|
||||
|
||||
if(CONFIG_BT_ENABLED)
|
||||
if(GCC_NOT_5_2_0)
|
||||
component_compile_options(-Wno-implicit-fallthrough -Wno-unused-const-variable)
|
||||
endif()
|
||||
|
||||
target_link_libraries(bt "-L${CMAKE_CURRENT_LIST_DIR}/lib")
|
||||
target_link_libraries(bt btdm_app)
|
||||
endif()
|
||||
|
|
|
@ -97,13 +97,13 @@ list_node_t *list_back_node(const list_t *list) {
|
|||
}
|
||||
|
||||
bool list_insert_after(list_t *list, list_node_t *prev_node, void *data) {
|
||||
assert(list != NULL);
|
||||
assert(prev_node != NULL);
|
||||
assert(data != NULL);
|
||||
list_node_t *node = (list_node_t *) osi_calloc(sizeof(list_node_t));
|
||||
if (!node)
|
||||
return false;
|
||||
|
||||
assert(list != NULL);
|
||||
assert(prev_node != NULL);
|
||||
assert(data != NULL);
|
||||
list_node_t *node = (list_node_t *)osi_calloc(sizeof(list_node_t));
|
||||
if (!node) {
|
||||
return false;
|
||||
}
|
||||
node->next = prev_node->next;
|
||||
node->data = data;
|
||||
prev_node->next = node;
|
||||
|
|
|
@ -17,6 +17,11 @@ COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/lib/lib%.a,$(LIBS))
|
|||
|
||||
COMPONENT_SUBMODULES += lib
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
# TODO: annotate fallthroughs in Bluedroid code with comments
|
||||
CFLAGS += -Wno-implicit-fallthrough
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
|
||||
|
@ -114,4 +119,12 @@ COMPONENT_SRCDIRS += bluedroid/bta/dm \
|
|||
bluedroid/utils \
|
||||
bluedroid/api \
|
||||
bluedroid
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
bluedroid/bta/sdp/bta_sdp_act.o: CFLAGS += -Wno-unused-const-variable
|
||||
bluedroid/btc/core/btc_config.o: CFLAGS += -Wno-unused-const-variable
|
||||
bluedroid/stack/btm/btm_sec.o: CFLAGS += -Wno-unused-const-variable
|
||||
bluedroid/stack/smp/smp_keys.o: CFLAGS += -Wno-unused-const-variable
|
||||
endif
|
||||
|
||||
endif
|
||||
|
|
|
@ -32,8 +32,10 @@ set_source_files_properties(
|
|||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-write-strings)
|
||||
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in libcoap repo
|
||||
set_source_files_properties(
|
||||
libcoap/src/option.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-implicit-fallthrough)
|
||||
if(GCC_NOT_5_2_0)
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in libcoap repo
|
||||
set_source_files_properties(
|
||||
libcoap/src/option.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-implicit-fallthrough)
|
||||
endif()
|
|
@ -12,5 +12,7 @@ COMPONENT_SUBMODULES += libcoap
|
|||
|
||||
libcoap/src/debug.o: CFLAGS += -Wno-write-strings
|
||||
libcoap/src/pdu.o: CFLAGS += -Wno-write-strings
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in libcoap repo
|
||||
libcoap/src/option.o: CFLAGS += -Wno-implicit-fallthrough
|
||||
endif
|
||||
|
|
|
@ -36,42 +36,26 @@ extern "C" void __cxx_fatal_exception_int(int i)
|
|||
abort();
|
||||
}
|
||||
|
||||
#if !GCC_NOT_5_2_0
|
||||
void std::__throw_bad_exception(void) __attribute__((alias("__cxx_fatal_exception")));
|
||||
|
||||
void std::__throw_bad_alloc(void) __attribute__((alias("__cxx_fatal_exception")));
|
||||
|
||||
void std::__throw_bad_cast(void) __attribute__((alias("__cxx_fatal_exception")));
|
||||
|
||||
void std::__throw_bad_typeid(void) __attribute__((alias("__cxx_fatal_exception")));
|
||||
|
||||
void std::__throw_logic_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_domain_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_invalid_argument(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_length_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_out_of_range(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_out_of_range_fmt(const char*, ...) __attribute__((alias("__cxx_fatal_exception_message_va")));
|
||||
|
||||
void std::__throw_runtime_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_range_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_overflow_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_underflow_error(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_ios_failure(const char*) __attribute__((alias("__cxx_fatal_exception_message")));
|
||||
|
||||
void std::__throw_system_error(int) __attribute__((alias("__cxx_fatal_exception_int")));
|
||||
|
||||
void std::__throw_bad_function_call(void) __attribute__((alias("__cxx_fatal_exception")));
|
||||
|
||||
void std::__throw_future_error(int) __attribute__((alias("__cxx_fatal_exception_int")));
|
||||
|
||||
#endif
|
||||
|
||||
/* The following definitions are needed because libstdc++ is also compiled with
|
||||
__throw_exception_again defined to throw, and some other exception code in a few places.
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include "unity.h"
|
||||
#include "esp_log.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
|
@ -271,6 +273,22 @@ TEST_CASE("c++ exceptions emergency pool", "[cxx] [ignore]")
|
|||
#endif
|
||||
}
|
||||
|
||||
#else // !CONFIG_CXX_EXCEPTIONS
|
||||
|
||||
TEST_CASE("std::out_of_range exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]")
|
||||
{
|
||||
std::vector<int> v(10);
|
||||
v.at(20) = 42;
|
||||
TEST_FAIL_MESSAGE("Unreachable because we are aborted on the line above");
|
||||
}
|
||||
|
||||
TEST_CASE("std::bad_alloc exception when -fno-exceptions", "[cxx][reset=abort,SW_CPU_RESET]")
|
||||
{
|
||||
std::string s = std::string(2000000000, 'a');
|
||||
(void)s;
|
||||
TEST_FAIL_MESSAGE("Unreachable because we are aborted on the line above");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* These test cases pull a lot of code from libstdc++ and are disabled for now
|
||||
|
|
540
components/espcoredump/test/expected_output_new_CT
Normal file
540
components/espcoredump/test/expected_output_new_CT
Normal file
|
@ -0,0 +1,540 @@
|
|||
espcoredump.py v0.2-dev
|
||||
===============================================================
|
||||
==================== ESP32 CORE DUMP START ====================
|
||||
|
||||
================== CURRENT THREAD REGISTERS ===================
|
||||
pc 0x400d216d 0x400d216d <recur_func+77>
|
||||
lbeg 0x400014fd 1073747197
|
||||
lend 0x4000150d 1073747213
|
||||
lcount 0xffffffff 4294967295
|
||||
sar 0x0 0
|
||||
ps 0x60420 394272
|
||||
threadptr <unavailable>
|
||||
br <unavailable>
|
||||
scompare1 <unavailable>
|
||||
acclo <unavailable>
|
||||
acchi <unavailable>
|
||||
m0 <unavailable>
|
||||
m1 <unavailable>
|
||||
m2 <unavailable>
|
||||
m3 <unavailable>
|
||||
expstate <unavailable>
|
||||
f64r_lo <unavailable>
|
||||
f64r_hi <unavailable>
|
||||
f64s <unavailable>
|
||||
fcr <unavailable>
|
||||
fsr <unavailable>
|
||||
a0 0x400d2148 1074602312
|
||||
a1 0x3ffb7bc0 1073445824
|
||||
a2 0x2 2
|
||||
a3 0x3f403c36 1061174326
|
||||
a4 0x3ffb7c00 1073445888
|
||||
a5 0x3ffae8f4 1073408244
|
||||
a6 0x0 0
|
||||
a7 0x0 0
|
||||
a8 0x5 5
|
||||
a9 0xffffffad -83
|
||||
a10 0x20 32
|
||||
a11 0x3ffb3e6c 1073430124
|
||||
a12 0x1 1
|
||||
a13 0x80 128
|
||||
a14 0x1 1
|
||||
a15 0x0 0
|
||||
|
||||
==================== CURRENT THREAD STACK =====================
|
||||
#0 0x400d216d in recur_func () at /home/dragon/esp/esp-idf/examples/get-started/hello_world/main/hello_world_main.c:70
|
||||
#1 0x400d2148 in recur_func () at /home/dragon/esp/esp-idf/examples/get-started/hello_world/main/hello_world_main.c:63
|
||||
#2 0x400d2148 in recur_func () at /home/dragon/esp/esp-idf/examples/get-started/hello_world/main/hello_world_main.c:63
|
||||
#3 0x400d2190 in unaligned_ptr_task (pvParameter=0x0) at /home/dragon/esp/esp-idf/examples/get-started/hello_world/main/hello_world_main.c:80
|
||||
|
||||
======================== THREADS INFO =========================
|
||||
Id Target Id Frame
|
||||
* 1 <main task> 0x400d216d in recur_func () at /home/dragon/esp/esp-idf/examples/get-started/hello_world/main/hello_world_main.c:70
|
||||
2 process 1 0x400e4a86 in esp_vApplicationWaitiHook () at /home/dragon/esp/esp-idf/components/esp32/freertos_hooks.c:66
|
||||
3 process 2 0x400e4a86 in esp_vApplicationWaitiHook () at /home/dragon/esp/esp-idf/components/esp32/freertos_hooks.c:66
|
||||
4 process 3 0x4008559e in vTaskDelay (xTicksToDelay=<optimized out>) at /home/dragon/esp/esp-idf/components/freertos/tasks.c:1491
|
||||
5 process 4 0x4008559e in vTaskDelay (xTicksToDelay=<optimized out>) at /home/dragon/esp/esp-idf/components/freertos/tasks.c:1491
|
||||
6 process 5 0x4008629c in prvProcessTimerOrBlockTask (xNextExpireTime=<optimized out>, xListWasEmpty=<optimized out>) at /home/dragon/esp/esp-idf/components/freertos/timers.c:588
|
||||
7 process 6 0x400846ad in xQueueGenericReceive (xQueue=0x3ffaea30, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /home/dragon/esp/esp-idf/components/freertos/queue.c:1591
|
||||
8 process 7 0x4008114a in esp_crosscore_int_send_yield (core_id=1) at /home/dragon/esp/esp-idf/components/esp32/crosscore_int.c:112
|
||||
9 process 8 0x400846ad in xQueueGenericReceive (xQueue=0x3ffafd44, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /home/dragon/esp/esp-idf/components/freertos/queue.c:1591
|
||||
|
||||
======================= ALL MEMORY REGIONS ========================
|
||||
Name Address Size Attrs
|
||||
.rtc.text 0x400c0000 0x0 RW
|
||||
.rtc_noinit 0x50000000 0x0 RW
|
||||
.iram0.vectors 0x40080000 0x400 R XA
|
||||
.iram0.text 0x40080400 0x93f8 RWXA
|
||||
.dram0.data 0x3ffb0000 0x2288 RW A
|
||||
.noinit 0x3ffb2288 0x0 RW
|
||||
.flash.rodata 0x3f400020 0x6cd4 RW A
|
||||
.flash.text 0x400d0018 0x14cb4 R XA
|
||||
.coredump.tasks.data 0x3ffb3e04 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb7b00 0x1d0 RW
|
||||
.coredump.tasks.data 0x3ffb56fc 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb5590 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb5c68 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb5b00 0x160 RW
|
||||
.coredump.tasks.data 0x3ffb3c9c 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb7360 0x16c RW
|
||||
.coredump.tasks.data 0x3ffb3f6c 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb8370 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb66c8 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb6540 0x180 RW
|
||||
.coredump.tasks.data 0x3ffafa88 0x164 RW
|
||||
.coredump.tasks.data 0x3ffaf900 0x180 RW
|
||||
.coredump.tasks.data 0x3ffb3b34 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb3980 0x1ac RW
|
||||
.coredump.tasks.data 0x3ffafd98 0x164 RW
|
||||
.coredump.tasks.data 0x3ffb35a0 0x188 RW
|
||||
|
||||
====================== CORE DUMP MEMORY CONTENTS ========================
|
||||
.coredump.tasks.data 0x3ffb3e04 0x164 RW
|
||||
0x3ffb3e04: 0x3ffb7b70 0x3ffb7c70 0x0000006d 0x3ffb2d3c
|
||||
0x3ffb3e14: 0x3ffb2d3c 0x3ffb3e04 0x3ffb2d34 0x00000012
|
||||
0x3ffb3e24: 0xa5a5a5a5 0xa5a5a5a5 0x3ffb3e04 0x00000000
|
||||
0x3ffb3e34: 0x00000007 0x3ffb74d4 0x6c616e75 0x656e6769
|
||||
0x3ffb3e44: 0x74705f64 0x00745f72 0x00000001 0x3ffb7cd0
|
||||
0x3ffb3e54: 0x00000000 0x00060820 0x00000007 0x00000000
|
||||
0x3ffb3e64: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb3e74: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb3e84: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb3e94: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ea4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3eb4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ec4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ed4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ee4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ef4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f04: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f14: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f24: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f34: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f44: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f54: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3f64: 0x00000000
|
||||
.coredump.tasks.data 0x3ffb7b00 0x1d0 RW
|
||||
0x3ffb7b00: 0x3f403b68 0x400d216d 0x00060430 0x800d2148
|
||||
0x3ffb7b10: 0x3ffb7bc0 0x00000002 0x3f403c36 0x3ffb7c00
|
||||
0x3ffb7b20: 0x3ffae8f4 0x00000000 0x00000000 0x00000005
|
||||
0x3ffb7b30: 0xffffffad 0x00000020 0x3ffb3e6c 0x00000001
|
||||
0x3ffb7b40: 0x00000080 0x00000001 0x00000000 0x00000000
|
||||
0x3ffb7b50: 0x0000001d 0x00000005 0x400014fd 0x4000150d
|
||||
0x3ffb7b60: 0xffffffff 0x00000001 0x00000080 0x4008217c
|
||||
0x3ffb7b70: 0x3ffb0f8c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7b80: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7b90: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7ba0: 0x00000001 0x00000080 0x00000001 0x00000000
|
||||
0x3ffb7bb0: 0x800d2148 0x3ffb7bf0 0x00000001 0x3ffae8f4
|
||||
0x3ffb7bc0: 0x800d27a7 0x3ffb7bf0 0x0000000a 0x3ffae8f4
|
||||
0x3ffb7bd0: 0x3ffb7c00 0x3ffae8f4 0x00000000 0x00000000
|
||||
0x3ffb7be0: 0x800d2190 0x3ffb7c20 0x0000000a 0x00000001
|
||||
0x3ffb7bf0: 0x3f403b93 0x0000001e 0x3f403c35 0x00000001
|
||||
0x3ffb7c00: 0x00060023 0x00000001 0x00060021 0x3ffb3aa0
|
||||
0x3ffb7c10: 0x00000000 0x3ffb7c50 0x00000000 0x00000000
|
||||
0x3ffb7c20: 0x00000003 0x3ffb7c50 0x00000000 0x00000000
|
||||
0x3ffb7c30: 0x3ffb106c 0x3ffb3e04 0x00000000 0x00000000
|
||||
0x3ffb7c40: 0x00000000 0x3ffb7c70 0x00000000 0x00000000
|
||||
0x3ffb7c50: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7c60: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7c70: 0x00000000 0x00000000 0x3ffb7c7c 0x00000000
|
||||
0x3ffb7c80: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7c90: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7ca0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7cb0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7cc0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffb56fc 0x164 RW
|
||||
0x3ffb56fc: 0x3ffb5590 0x3ffb5690 0x195c72d9 0x3ffb5c70
|
||||
0x3ffb570c: 0x3ffb2cb0 0x3ffb56fc 0x3ffb2ca8 0x00000019
|
||||
0x3ffb571c: 0x490223d5 0xf77c8d12 0x3ffb56fc 0x00000000
|
||||
0x3ffb572c: 0x00000000 0x3ffb52f8 0x454c4449 0x7a300030
|
||||
0x3ffb573c: 0x91128825 0x00f6b6f0 0x00000000 0x3ffb56f4
|
||||
0x3ffb574c: 0x00000000 0x00060220 0x00000000 0x00000000
|
||||
0x3ffb575c: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb576c: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb577c: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb578c: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb579c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57ac: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57bc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57cc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57dc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57ec: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb57fc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb580c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb581c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb582c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb583c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb584c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb585c: 0x8fe33c00
|
||||
.coredump.tasks.data 0x3ffb5590 0x164 RW
|
||||
0x3ffb5590: 0x400821d8 0x400e4a86 0x00060230 0x800857b8
|
||||
0x3ffb55a0: 0x3ffb5650 0x00000008 0x00000000 0x00000001
|
||||
0x3ffb55b0: 0x3ffb5c68 0x00000000 0x00000001 0x3ffb2bac
|
||||
0x3ffb55c0: 0x3ffb2b90 0x00000000 0x00000001 0x00000000
|
||||
0x3ffb55d0: 0x00000001 0x00060021 0x00060823 0x00000000
|
||||
0x3ffb55e0: 0x80084bdc 0x3ffb5610 0x00000000 0x00000000
|
||||
0x3ffb55f0: 0x00000000 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffb5600: 0x3ffae901 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5610: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5620: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5630: 0x00000000 0x00000001 0x00060021 0x00060823
|
||||
0x3ffb5640: 0x00000000 0x3ffb5670 0x00000000 0x00000000
|
||||
0x3ffb5650: 0x00000001 0x3ffb5c68 0x00000000 0x00000001
|
||||
0x3ffb5660: 0x00000000 0x3ffb5690 0x00000000 0x00000000
|
||||
0x3ffb5670: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5680: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5690: 0x00000000 0x00000000 0x3ffb569c 0x00000000
|
||||
0x3ffb56a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb56b0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb56c0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb56d0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb56e0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb56f0: 0x00000000
|
||||
.coredump.tasks.data 0x3ffb5c68 0x164 RW
|
||||
0x3ffb5c68: 0x3ffb5b00 0x3ffb5c00 0xe7e3b153 0x3ffb2cb0
|
||||
0x3ffb5c78: 0x3ffb5704 0x3ffb5c68 0x3ffb2ca8 0x00000019
|
||||
0x3ffb5c88: 0xbd385aa8 0x3b1ece45 0x3ffb5c68 0x00000000
|
||||
0x3ffb5c98: 0x00000000 0x3ffb5864 0x454c4449 0x8e700031
|
||||
0x3ffb5ca8: 0x0b5d9160 0x00ec3ae7 0x00000001 0x3ffb5c60
|
||||
0x3ffb5cb8: 0x00000000 0x00060e20 0x00000000 0x00000000
|
||||
0x3ffb5cc8: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb5cd8: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb5ce8: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb5cf8: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d08: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d18: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d28: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d38: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d48: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d58: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d68: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d78: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d88: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5d98: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5da8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5db8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5dc8: 0x5fb19b00
|
||||
.coredump.tasks.data 0x3ffb5b00 0x160 RW
|
||||
0x3ffb5b00: 0x400821d8 0x400e4a86 0x00060e30 0x800857b8
|
||||
0x3ffb5b10: 0x3ffb5bc0 0x00000008 0x00000001 0x00000000
|
||||
0x3ffb5b20: 0x3ffb56fc 0x00000000 0x00000001 0x3ffb2bcc
|
||||
0x3ffb5b30: 0x3ffb2b90 0x00000000 0x80000001 0x00000000
|
||||
0x3ffb5b40: 0x00000001 0x00060021 0x00000000 0x00000000
|
||||
0x3ffb5b50: 0x00060020 0x00000001 0x00000000 0x00000000
|
||||
0x3ffb5b60: 0x00000000 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffb5b70: 0x3ffaef1c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5b80: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5b90: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5ba0: 0x00000000 0x00000001 0x00060021 0x00000000
|
||||
0x3ffb5bb0: 0x00000000 0x3ffb5be0 0x00000000 0x00000000
|
||||
0x3ffb5bc0: 0x00000000 0x3ffb56fc 0x00000000 0x00000001
|
||||
0x3ffb5bd0: 0x00000000 0x3ffb5c00 0x00000000 0x00000000
|
||||
0x3ffb5be0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5bf0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5c00: 0x00000000 0x00000000 0x3ffb5c0c 0x00000000
|
||||
0x3ffb5c10: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5c20: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5c30: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5c40: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb5c50: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffb3c9c 0x164 RW
|
||||
0x3ffb3c9c: 0x3ffb7360 0x3ffb7460 0x000000d1 0x3ffb2c9c
|
||||
0x3ffb3cac: 0x3ffb3f74 0x3ffb3c9c 0x3ffb2c94 0x00000014
|
||||
0x3ffb3cbc: 0x3ffb6c24 0x3ffb6c24 0x3ffb3c9c 0x00000000
|
||||
0x3ffb3ccc: 0x00000005 0x3ffb6cd0 0x5f646162 0x5f727470
|
||||
0x3ffb3cdc: 0x6b736174 0x00a5a500 0x7fffffff 0x3ffb74cc
|
||||
0x3ffb3cec: 0x00000000 0x00060021 0x00000005 0x00000000
|
||||
0x3ffb3cfc: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb3d0c: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb3d1c: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb3d2c: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d3c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d4c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d5c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d6c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d7c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d8c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3d9c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3dac: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3dbc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3dcc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ddc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3dec: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3dfc: 0xa5a5a500
|
||||
.coredump.tasks.data 0x3ffb7360 0x16c RW
|
||||
0x3ffb7360: 0x400821d8 0x4008559e 0x00060230 0x800d2113
|
||||
0x3ffb7370: 0x3ffb7420 0x000000d1 0x00000000 0x3ffb106c
|
||||
0x3ffb7380: 0x3ffb3c9c 0x00000000 0x00000000 0x8008559e
|
||||
0x3ffb7390: 0x3ffb7400 0x00000000 0x000000d1 0x00060023
|
||||
0x3ffb73a0: 0x00000001 0x00060021 0x3ffb5b70 0x00000000
|
||||
0x3ffb73b0: 0x800d27a4 0x3ffb73e0 0x400014fd 0x4000150d
|
||||
0x3ffb73c0: 0xfffffff9 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffb73d0: 0x3ffb077c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb73e0: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb73f0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7400: 0x00060023 0x00000001 0x00060021 0x3ffb5b70
|
||||
0x3ffb7410: 0x00000000 0x3ffb7440 0x00000000 0x00000000
|
||||
0x3ffb7420: 0x3ffb106c 0x3ffb3c9c 0x00000000 0x00000000
|
||||
0x3ffb7430: 0x00000000 0x3ffb7460 0x00000000 0x00000000
|
||||
0x3ffb7440: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7450: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7460: 0x00000000 0x00000000 0x3ffb746c 0x00000000
|
||||
0x3ffb7470: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7480: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb7490: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb74a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb74b0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb74c0: 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffb3f6c 0x164 RW
|
||||
0x3ffb3f6c: 0x3ffb8370 0x3ffb8470 0x000000d1 0x3ffb3ca4
|
||||
0x3ffb3f7c: 0x3ffb2c9c 0x3ffb3f6c 0x3ffb2c94 0x0000000f
|
||||
0x3ffb3f8c: 0x3ffb3cb8 0x3ffb6c24 0x3ffb3f6c 0x00000000
|
||||
0x3ffb3f9c: 0x0000000a 0x3ffb7cd8 0x6c696166 0x615f6465
|
||||
0x3ffb3fac: 0x72657373 0x00745f74 0x00000000 0x3ffb84d4
|
||||
0x3ffb3fbc: 0x00000000 0x00060021 0x0000000a 0x00000000
|
||||
0x3ffb3fcc: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb3fdc: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb3fec: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb3ffc: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb400c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb401c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb402c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb403c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb404c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb405c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb406c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb407c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb408c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb409c: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb40ac: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb40bc: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb40cc: 0x00000000
|
||||
.coredump.tasks.data 0x3ffb8370 0x164 RW
|
||||
0x3ffb8370: 0x400821d8 0x4008559e 0x00060230 0x800d20a3
|
||||
0x3ffb8380: 0x3ffb8430 0x000000d1 0x00000000 0x3ffb106c
|
||||
0x3ffb8390: 0x3ffb3f6c 0x00000000 0x00000000 0x8008559e
|
||||
0x3ffb83a0: 0x3ffb8410 0x00000000 0x000000d1 0x00060023
|
||||
0x3ffb83b0: 0x00000001 0x00060021 0x00000000 0x00000000
|
||||
0x3ffb83c0: 0x800d27a4 0x3ffb83f0 0x400014fd 0x4000150d
|
||||
0x3ffb83d0: 0xfffffff8 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffb83e0: 0x3ffb178c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb83f0: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb8400: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb8410: 0x00060023 0x00000001 0x00060021 0x00000000
|
||||
0x3ffb8420: 0x00000000 0x3ffb8450 0x00000000 0x00000000
|
||||
0x3ffb8430: 0x3ffb106c 0x3ffb3f6c 0x00000000 0x00000000
|
||||
0x3ffb8440: 0x00000000 0x3ffb8470 0x00000000 0x00000000
|
||||
0x3ffb8450: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb8460: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb8470: 0x00000000 0x00000000 0x3ffb847c 0x00000000
|
||||
0x3ffb8480: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb8490: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb84a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb84b0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb84c0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb84d0: 0x00000000
|
||||
.coredump.tasks.data 0x3ffb66c8 0x164 RW
|
||||
0x3ffb66c8: 0x3ffb6540 0x3ffb6660 0x00000000 0x3ffb2c88
|
||||
0x3ffb66d8: 0x3ffb2c88 0x3ffb66c8 0x3ffb2c80 0x00000018
|
||||
0x3ffb66e8: 0x3ffb5dfc 0x3ffb5dfc 0x3ffb66c8 0x3ffb5df4
|
||||
0x3ffb66f8: 0x00000001 0x3ffb5ec4 0x20726d54 0x00637653
|
||||
0x3ffb6708: 0xd39f0f55 0x00a2af81 0x00000000 0x3ffb66c0
|
||||
0x3ffb6718: 0x00000000 0x00060021 0x00000001 0x00000000
|
||||
0x3ffb6728: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb6738: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb6748: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb6758: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6768: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6778: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6788: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6798: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67a8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67b8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67c8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67d8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67e8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb67f8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6808: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6818: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6828: 0x97f9e600
|
||||
.coredump.tasks.data 0x3ffb6540 0x180 RW
|
||||
0x3ffb6540: 0x400821d8 0x4008629c 0x00060830 0x8008638f
|
||||
0x3ffb6550: 0x3ffb6600 0x3ffb2ea8 0x00000000 0x00000001
|
||||
0x3ffb6560: 0x3ffb510c 0x00000000 0x00000001 0x8008629c
|
||||
0x3ffb6570: 0x3ffb65e0 0x00000000 0x3ffb2c00 0x3ffb5e18
|
||||
0x3ffb6580: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6590: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000
|
||||
0x3ffb65a0: 0x00000000 0x400823d1 0x00000000 0x400864e8
|
||||
0x3ffb65b0: 0x3ffaf97c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb65c0: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb65d0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb65e0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb65f0: 0x00000000 0x3ffb6630 0x00000000 0x00000000
|
||||
0x3ffb6600: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6610: 0x3ffaf97c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6620: 0x00000000 0x3ffb6660 0x00000000 0x00000000
|
||||
0x3ffb6630: 0x00000001 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6640: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6650: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6660: 0x00000000 0x00000000 0x3ffb666c 0x00000000
|
||||
0x3ffb6670: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6680: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb6690: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb66a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb66b0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffafa88 0x164 RW
|
||||
0x3ffafa88: 0x3ffaf900 0x3ffafa20 0x5ff990da 0x3ffb3b3c
|
||||
0x3ffafa98: 0x3ffafda0 0x3ffafa88 0x3ffb2c24 0x00000003
|
||||
0x3ffafaa8: 0x3ffaea5c 0x3ffaea5c 0x3ffafa88 0x3ffaea54
|
||||
0x3ffafab8: 0x00000016 0x3ffaea84 0x5f707365 0x656d6974
|
||||
0x3ffafac8: 0xe11f0072 0x00f45ee9 0x00000000 0x3ffafa80
|
||||
0x3ffafad8: 0x00000000 0x00060021 0x00000016 0x00000000
|
||||
0x3ffafae8: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffafaf8: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffafb08: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffafb18: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb28: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb38: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb48: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb58: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb68: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb78: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb88: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafb98: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafba8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafbb8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafbc8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafbd8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafbe8: 0x354b8800
|
||||
.coredump.tasks.data 0x3ffaf900 0x180 RW
|
||||
0x3ffaf900: 0x400821d8 0x400846ad 0x00060030 0x800d14fb
|
||||
0x3ffaf910: 0x3ffaf9c0 0x3ffaea30 0x00000000 0x3ffaea78
|
||||
0x3ffaf920: 0x00000000 0x00000001 0x00000001 0x800846ad
|
||||
0x3ffaf930: 0x3ffaf9a0 0x00000000 0x3ffb2e9c 0x3ffb2e9c
|
||||
0x3ffaf940: 0x00000001 0x00060021 0x00000000 0x00000000
|
||||
0x3ffaf950: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000
|
||||
0x3ffaf960: 0x00000000 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffaf970: 0x3ffa8d3c 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf980: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf990: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf9a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf9b0: 0x00000000 0x3ffafa00 0x00000000 0x00000000
|
||||
0x3ffaf9c0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf9d0: 0xffffffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf9e0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffaf9f0: 0x00000000 0x3ffafa20 0x00000000 0x00000000
|
||||
0x3ffafa00: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa10: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa20: 0x00000000 0x00000000 0x3ffafa2c 0x00000000
|
||||
0x3ffafa30: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa40: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa50: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa60: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafa70: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffb3b34 0x164 RW
|
||||
0x3ffb3b34: 0x3ffb3980 0x3ffb3ac0 0x88083cc0 0x3ffb2c2c
|
||||
0x3ffb3b44: 0x3ffafa90 0x3ffb3b34 0x3ffb2c24 0x00000001
|
||||
0x3ffb3b54: 0x3ffaff2c 0x3ffaff2c 0x3ffb3b34 0x3ffaff24
|
||||
0x3ffb3b64: 0x00000018 0x3ffb3730 0x31637069 0xeff9c300
|
||||
0x3ffb3b74: 0xc4c0f656 0x008423ac 0x00000001 0x3ffb3b2c
|
||||
0x3ffb3b84: 0x00000000 0x00060021 0x00000018 0x00000000
|
||||
0x3ffb3b94: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffb3ba4: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffb3bb4: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffb3bc4: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3bd4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3be4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3bf4: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c04: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c14: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c24: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c34: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c44: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c54: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c64: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c74: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c84: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3c94: 0x048ed900
|
||||
.coredump.tasks.data 0x3ffb3980 0x1ac RW
|
||||
0x3ffb3980: 0x400821d8 0x4008114a 0x00060030 0x800846ad
|
||||
0x3ffb3990: 0x3ffb3a40 0x00000001 0x3ffb2e9c 0x3ffb2ea0
|
||||
0x3ffb39a0: 0x3ffe7c90 0x00000000 0x00060723 0x8008114a
|
||||
0x3ffb39b0: 0x3ffb3a20 0x3ff000e0 0x00000001 0x3ffb102c
|
||||
0x3ffb39c0: 0x00000001 0x00060020 0x00060023 0x00000000
|
||||
0x3ffb39d0: 0x3ffb3a40 0x00000001 0x00000000 0x00000000
|
||||
0x3ffb39e0: 0x00000000 0x400823d1 0x00000001 0x400864e8
|
||||
0x3ffb39f0: 0x3ffacddc 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3a00: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3a10: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3a20: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3a30: 0x800811b3 0x3ffb3a60 0x3ffaff00 0x00000000
|
||||
0x3ffb3a40: 0x00000001 0x00000001 0x00060020 0x00060023
|
||||
0x3ffb3a50: 0x00000000 0x3ffb3aa0 0x00000001 0x40082ff8
|
||||
0x3ffb3a60: 0x00000000 0x00000009 0x00000000 0x00060723
|
||||
0x3ffb3a70: 0xffffffff 0x3ffb3aa0 0x00000001 0x40082ff8
|
||||
0x3ffb3a80: 0x3ffaff48 0x00000000 0x00000001 0x00000000
|
||||
0x3ffb3a90: 0x00000000 0x3ffb3ac0 0x00000000 0x00000000
|
||||
0x3ffb3aa0: 0x00000001 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ab0: 0x80080f2c 0x3ffe7d80 0x00000028 0x00000028
|
||||
0x3ffb3ac0: 0x00000000 0x00000000 0x3ffb3acc 0x00000000
|
||||
0x3ffb3ad0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3ae0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3af0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3b00: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3b10: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3b20: 0x00000000 0x00000000 0x00000000
|
||||
.coredump.tasks.data 0x3ffafd98 0x164 RW
|
||||
0x3ffafd98: 0x3ffb35a0 0x3ffb36c0 0x73fa8154 0x3ffafa90
|
||||
0x3ffafda8: 0x3ffb2c2c 0x3ffafd98 0x3ffb2c24 0x00000001
|
||||
0x3ffafdb8: 0x3ffafd70 0x3ffafd70 0x3ffafd98 0x3ffafd68
|
||||
0x3ffafdc8: 0x00000018 0x3ffb332c 0x30637069 0x1e3d8600
|
||||
0x3ffafdd8: 0xfe7fd40a 0x0014a8b5 0x00000000 0x3ffb3728
|
||||
0x3ffafde8: 0x00000000 0x00060021 0x00000018 0x00000000
|
||||
0x3ffafdf8: 0x00000000 0x00000000 0x00000000 0x3ffae88c
|
||||
0x3ffafe08: 0x3ffae8f4 0x3ffae95c 0x00000000 0x00000000
|
||||
0x3ffafe18: 0x00000001 0x00000000 0x3f403c78 0x00000000
|
||||
0x3ffafe28: 0x40001d48 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe38: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe48: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe58: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe68: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe78: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe88: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafe98: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafea8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafeb8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafec8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafed8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafee8: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffafef8: 0x7eb2c400
|
||||
.coredump.tasks.data 0x3ffb35a0 0x188 RW
|
||||
0x3ffb35a0: 0x400821d8 0x400846ad 0x00060030 0x800811b3
|
||||
0x3ffb35b0: 0x3ffb3660 0x3ffafd44 0x00000000 0x3ffafd8c
|
||||
0x3ffb35c0: 0x00000000 0x00000001 0x00000001 0x800846ad
|
||||
0x3ffb35d0: 0x3ffb3640 0x00000000 0x3ffb2e9c 0x3ffb2e9c
|
||||
0x3ffb35e0: 0x3ffe3af0 0x00000000 0x00000002 0x00000000
|
||||
0x3ffb35f0: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000
|
||||
0x3ffb3600: 0x00000000 0x400823d1 0x3ffe3af0 0x400864e8
|
||||
0x3ffb3610: 0x3ffac9dc 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3620: 0xb33fffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3630: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3640: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3650: 0x00000000 0x3ffb36a0 0x00000000 0x00000000
|
||||
0x3ffb3660: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3670: 0xffffffff 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3680: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3690: 0x00000000 0x3ffb36c0 0x00000000 0x00000000
|
||||
0x3ffb36a0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb36b0: 0x80080eaa 0x3ffe3ba0 0x3ffb2c0c 0x3ffb2ee4
|
||||
0x3ffb36c0: 0x00000000 0x00000000 0x3ffb36cc 0x00000000
|
||||
0x3ffb36d0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb36e0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb36f0: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3700: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3710: 0x00000000 0x00000000 0x00000000 0x00000000
|
||||
0x3ffb3720: 0x00000000 0x00000000
|
||||
|
||||
===================== ESP32 CORE DUMP END =====================
|
||||
===============================================================
|
||||
Done!
|
|
@ -1,10 +1,16 @@
|
|||
#! /bin/bash
|
||||
|
||||
if [ "$(xtensa-esp32-elf-gcc -dumpversion)" = "5.2.0" ]; then
|
||||
EXPECTED_OUTPUT="expected_output"
|
||||
else
|
||||
# GCC_NOT_5_2_0 just a hint to remove later
|
||||
EXPECTED_OUTPUT="expected_output_new_CT"
|
||||
fi
|
||||
|
||||
{ coverage debug sys \
|
||||
&& coverage erase \
|
||||
&& coverage run -a --source=espcoredump ../espcoredump.py info_corefile -m -t b64 -c coredump.b64 test.elf &> output \
|
||||
&& diff expected_output output \
|
||||
&& diff ${EXPECTED_OUTPUT} output \
|
||||
&& coverage run -a --source=espcoredump ./test_espcoredump.py \
|
||||
&& coverage report \
|
||||
; } || { echo 'The test for espcoredump has failed!'; exit 1; }
|
||||
|
||||
|
|
|
@ -14,4 +14,6 @@ component_compile_definitions(HAVE_EXPAT_CONFIG_H)
|
|||
component_compile_definitions(HAVE_GETRANDOM)
|
||||
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in expat repo
|
||||
component_compile_options(-Wno-implicit-fallthrough)
|
||||
if(GCC_NOT_5_2_0)
|
||||
component_compile_options(-Wno-implicit-fallthrough)
|
||||
endif()
|
|
@ -6,7 +6,8 @@ COMPONENT_ADD_INCLUDEDIRS := expat/expat/lib port/include
|
|||
COMPONENT_SRCDIRS := expat/expat/lib port
|
||||
|
||||
CFLAGS += -DHAVE_EXPAT_CONFIG_H -DHAVE_GETRANDOM
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in expat repo
|
||||
CFLAGS += -Wno-implicit-fallthrough
|
||||
|
||||
endif
|
||||
COMPONENT_SUBMODULES += expat
|
||||
|
|
|
@ -139,11 +139,8 @@ component_compile_definitions(
|
|||
__STDC_CONSTANT_MACROS
|
||||
)
|
||||
|
||||
component_compile_options(-Wno-unknown-pragmas)
|
||||
|
||||
# patch around warnings in third-party files
|
||||
set_source_files_properties(
|
||||
${SRC}/crypto_pwhash/argon2/argon2-fill-block-ref.c
|
||||
${SRC}/crypto_pwhash/argon2/pwhash_argon2i.c
|
||||
${SRC}/crypto_pwhash/argon2/argon2-core.c
|
||||
${SRC}/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c
|
||||
|
@ -155,10 +152,18 @@ set_source_files_properties(
|
|||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-unused-variable
|
||||
)
|
||||
set_source_files_properties(
|
||||
${SRC}/crypto_pwhash/argon2/argon2-fill-block-ref.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-unknown-pragmas
|
||||
)
|
||||
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in libsodium repo
|
||||
set_source_files_properties(
|
||||
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c
|
||||
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-implicit-fallthrough)
|
||||
if(GCC_NOT_5_2_0)
|
||||
set_source_files_properties(
|
||||
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c
|
||||
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-implicit-fallthrough
|
||||
)
|
||||
endif()
|
|
@ -87,6 +87,8 @@ CFLAGS += -DNATIVE_LITTLE_ENDIAN -DHAVE_WEAK_SYMBOLS -D__STDC_LIMIT_MACROS -D__
|
|||
# randombytes.c needs to pull in platform-specific implementation
|
||||
$(LSRC)/randombytes/randombytes.o: CFLAGS+=-DRANDOMBYTES_DEFAULT_IMPLEMENTATION
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
# Temporary suppress "fallthrough" warnings until they are fixed in libsodium repo
|
||||
$(LSRC)/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.o: CFLAGS += -Wno-implicit-fallthrough
|
||||
$(LSRC)/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.o: CFLAGS += -Wno-implicit-fallthrough
|
||||
endif
|
||||
|
|
|
@ -126,3 +126,16 @@ register_component()
|
|||
|
||||
# lots of LWIP source files evaluate macros that check address of stack variables
|
||||
component_compile_options(-Wno-address)
|
||||
|
||||
if(GCC_NOT_5_2_0)
|
||||
set_source_files_properties(
|
||||
lwip/src/netif/ppp/ppp.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-uninitialized
|
||||
)
|
||||
set_source_files_properties(
|
||||
lwip/src/netif/ppp/pppos.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-implicit-fallthrough
|
||||
)
|
||||
endif()
|
||||
|
|
|
@ -28,3 +28,8 @@ ifdef CONFIG_PPP_SUPPORT
|
|||
endif
|
||||
|
||||
CFLAGS += -Wno-address # lots of LWIP source files evaluate macros that check address of stack variables
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
lwip/src/netif/ppp/ppp.o: CFLAGS += -Wno-uninitialized
|
||||
lwip/src/netif/ppp/pppos.o: CFLAGS += -Wno-implicit-fallthrough
|
||||
endif
|
||||
|
|
|
@ -9,3 +9,11 @@ set(COMPONENT_SRCS "esp-mqtt/mqtt_client.c"
|
|||
set(COMPONENT_REQUIRES lwip nghttp mbedtls tcp_transport)
|
||||
|
||||
register_component()
|
||||
|
||||
if(GCC_NOT_5_2_0)
|
||||
# Temporary suppress "format-overflow" warning until we are fixed in esp-mqtt repo
|
||||
set_source_files_properties(
|
||||
esp-mqtt/lib/transport_ws.c
|
||||
PROPERTIES COMPILE_FLAGS
|
||||
-Wno-format-overflow)
|
||||
endif()
|
||||
|
|
|
@ -2,3 +2,7 @@ COMPONENT_SUBMODULES += esp-mqtt
|
|||
COMPONENT_ADD_INCLUDEDIRS := esp-mqtt/include
|
||||
COMPONENT_SRCDIRS := esp-mqtt esp-mqtt/lib
|
||||
COMPONENT_PRIV_INCLUDEDIRS := esp-mqtt/lib/include
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
esp-mqtt/lib/transport_ws.o: CFLAGS += -Wno-format-overflow
|
||||
endif
|
||||
|
|
|
@ -443,7 +443,9 @@ static int uart_tcsetattr(int fd, int optional_actions, const struct termios *p)
|
|||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
// intentional fall-through to the next case
|
||||
|
||||
/* FALLTHRU */
|
||||
|
||||
case TCSAFLUSH:
|
||||
if (uart_flush_input(fd) != ESP_OK) {
|
||||
errno = EINVAL;
|
||||
|
|
|
@ -89,6 +89,12 @@ def generate_version_specific_includes(app):
|
|||
call_with_python('../gen-version-specific-includes.py {} {}'.format(app.config.language, version_tmpdir))
|
||||
copy_if_modified(version_tmpdir, '{}/inc'.format(builddir))
|
||||
|
||||
# Generate toolchain download links
|
||||
print("Generating toolchain download links")
|
||||
base_url = 'https://dl.espressif.com/dl/'
|
||||
toolchain_tmpdir = '{}/toolchain_inc'.format(builddir)
|
||||
call_with_python('../gen-toolchain-links.py ../../tools/toolchain_versions.mk {} {}'.format(base_url, toolchain_tmpdir))
|
||||
copy_if_modified(toolchain_tmpdir, '{}/inc'.format(builddir))
|
||||
|
||||
# http://stackoverflow.com/questions/12772927/specifying-an-online-image-in-sphinx-restructuredtext-format
|
||||
#
|
||||
|
|
|
@ -49,12 +49,9 @@ Compile the Toolchain from Source
|
|||
|
||||
TODO
|
||||
|
||||
Download ``crosstool-NG`` and build it::
|
||||
Download ``crosstool-NG`` and build it:
|
||||
|
||||
cd ~/esp
|
||||
git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
|
||||
cd crosstool-NG
|
||||
./bootstrap && ./configure --enable-local && make install
|
||||
.. include:: /_build/inc/scratch-build-code.inc
|
||||
|
||||
Build the toolchain::
|
||||
|
||||
|
|
|
@ -29,21 +29,27 @@ To compile with ESP-IDF you need to get the following packages:
|
|||
Toolchain Setup
|
||||
===============
|
||||
|
||||
.. include:: /_build/inc/download-links.inc
|
||||
|
||||
ESP32 toolchain for Linux is available for download from Espressif website:
|
||||
|
||||
- for 64-bit Linux:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
|download_link_linux64|
|
||||
|
||||
- for 32-bit Linux:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
|download_link_linux32|
|
||||
|
||||
1. Download this file, then extract it in ``~/esp`` directory::
|
||||
1. Download this file, then extract it in ``~/esp`` directory:
|
||||
|
||||
mkdir -p ~/esp
|
||||
cd ~/esp
|
||||
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
- for 64-bit Linux:
|
||||
|
||||
.. include:: /_build/inc/unpack-code-linux64.inc
|
||||
|
||||
- for 32-bit Linux:
|
||||
|
||||
.. include:: /_build/inc/unpack-code-linux32.inc
|
||||
|
||||
.. _setup-linux-toolchain-add-it-to-path:
|
||||
|
||||
|
|
|
@ -44,12 +44,9 @@ Create a symlink to your work directory::
|
|||
cd ~/esp
|
||||
ln -s /Volumes/ctng crosstool-NG
|
||||
|
||||
Download ``crosstool-NG`` and build it::
|
||||
Download ``crosstool-NG`` and build it:
|
||||
|
||||
cd ~/esp
|
||||
git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
|
||||
cd crosstool-NG
|
||||
./bootstrap && ./configure --enable-local && make install
|
||||
.. include:: /_build/inc/scratch-build-code.inc
|
||||
|
||||
Build the toolchain::
|
||||
|
||||
|
|
|
@ -17,15 +17,15 @@ Install Prerequisites
|
|||
Toolchain Setup
|
||||
===============
|
||||
|
||||
.. include:: /_build/inc/download-links.inc
|
||||
|
||||
ESP32 toolchain for macOS is available for download from Espressif website:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
|download_link_osx|
|
||||
|
||||
Download this file, then extract it in ``~/esp`` directory::
|
||||
Download this file, then extract it in ``~/esp`` directory:
|
||||
|
||||
mkdir -p ~/esp
|
||||
cd ~/esp
|
||||
tar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
.. include:: /_build/inc/unpack-code-osx.inc
|
||||
|
||||
.. _setup-macos-toolchain-add-it-to-path:
|
||||
|
||||
|
|
|
@ -76,9 +76,11 @@ Add this line to ``/etc/profile`` in the MSYS directory in order to permanently
|
|||
Alternative Setup: Just download a toolchain
|
||||
============================================
|
||||
|
||||
.. include:: /_build/inc/download-links.inc
|
||||
|
||||
If you already have an MSYS2 install or want to do things differently, you can download just the toolchain here:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip
|
||||
|download_link_win32|
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
78
docs/gen-toolchain-links.py
Normal file
78
docs/gen-toolchain-links.py
Normal file
|
@ -0,0 +1,78 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# This script generates toolchain download links and toolchain unpacking
|
||||
# code snippets based on information found in $IDF_PATH/tools/toolchain_versions.mk
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 4:
|
||||
print("Usage: gen-toolchain-links.py <versions file> <base download URL> <output directory>")
|
||||
sys.exit(1)
|
||||
|
||||
out_dir = sys.argv[3]
|
||||
if not os.path.exists(out_dir):
|
||||
print("Creating directory %s" % out_dir)
|
||||
os.mkdir(out_dir)
|
||||
|
||||
base_url = sys.argv[2]
|
||||
|
||||
versions_file = sys.argv[1]
|
||||
version_vars = {}
|
||||
with open(versions_file) as f:
|
||||
for line in f:
|
||||
name, var = line.partition("=")[::2]
|
||||
version_vars[name.strip()] = var.strip()
|
||||
|
||||
gcc_version = version_vars["CURRENT_TOOLCHAIN_GCC_VERSION"]
|
||||
toolchain_desc = version_vars["CURRENT_TOOLCHAIN_COMMIT_DESC_SHORT"]
|
||||
|
||||
unpack_code_linux_macos = """
|
||||
::
|
||||
|
||||
mkdir -p ~/esp
|
||||
cd ~/esp
|
||||
tar -x{}f ~/Downloads/{}
|
||||
"""
|
||||
|
||||
scratch_build_code_linux_macos = """
|
||||
::
|
||||
|
||||
cd ~/esp
|
||||
git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
|
||||
cd crosstool-NG
|
||||
./bootstrap && ./configure --enable-local && make install
|
||||
"""
|
||||
|
||||
platform_info = [ ["linux64", "tar.gz", "z", unpack_code_linux_macos],
|
||||
["linux32", "tar.gz", "z", unpack_code_linux_macos],
|
||||
["osx", "tar.gz", "z", unpack_code_linux_macos],
|
||||
["win32", "zip", None, None]]
|
||||
|
||||
with open(os.path.join(out_dir, 'download-links.inc'), "w") as links_file:
|
||||
for p in platform_info:
|
||||
platform_name = p[0]
|
||||
extension = p[1]
|
||||
unpack_cmd = p[2]
|
||||
unpack_code = p[3]
|
||||
|
||||
archive_name = 'xtensa-esp32-elf-{}-{}-{}.{}'.format(
|
||||
platform_name, toolchain_desc, gcc_version, extension)
|
||||
|
||||
print('.. |download_link_{}| replace:: {}{}'.format(
|
||||
platform_name, base_url, archive_name), file=links_file)
|
||||
|
||||
if unpack_code is not None:
|
||||
with open(os.path.join(out_dir, 'unpack-code-%s.inc' % platform_name), "w") as f:
|
||||
print(unpack_code.format(unpack_cmd, archive_name), file=f)
|
||||
|
||||
with open(os.path.join(out_dir, 'scratch-build-code.inc'), "w") as code_file:
|
||||
print(scratch_build_code_linux_macos, file=code_file)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -48,12 +48,9 @@
|
|||
|
||||
TODO
|
||||
|
||||
下载 ``crosstool-NG`` 然后编译::
|
||||
下载 ``crosstool-NG`` 然后编译:
|
||||
|
||||
cd ~/esp
|
||||
git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
|
||||
cd crosstool-NG
|
||||
./bootstrap && ./configure --enable-local && make install
|
||||
.. include:: /_build/inc/scratch-build-code.inc
|
||||
|
||||
编译工具链::
|
||||
|
||||
|
|
|
@ -30,21 +30,27 @@ Linux 平台工具链的标准设置
|
|||
工具链的设置
|
||||
===============
|
||||
|
||||
.. include:: /_build/inc/download-links.inc
|
||||
|
||||
Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:
|
||||
|
||||
- 64-bit Linux:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
|download_link_linux64|
|
||||
|
||||
- 32-bit Linux:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
|download_link_linux32|
|
||||
|
||||
1. 下载完成后,将它解压到 ``~/esp`` 目录: ::
|
||||
1. 下载完成后,将它解压到 ``~/esp`` 目录: :
|
||||
|
||||
mkdir -p ~/esp
|
||||
cd ~/esp
|
||||
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
|
||||
- 64-bit Linux:
|
||||
|
||||
.. include:: /_build/inc/unpack-code-linux64.inc
|
||||
|
||||
- 32-bit Linux:
|
||||
|
||||
.. include:: /_build/inc/unpack-code-linux32.inc
|
||||
|
||||
.. _setup-linux-toolchain-add-it-to-path:
|
||||
|
||||
|
|
|
@ -44,12 +44,9 @@
|
|||
cd ~/esp
|
||||
ln -s /Volumes/ctng crosstool-NG
|
||||
|
||||
下载 ``crosstool-NG`` 然后编译::
|
||||
下载 ``crosstool-NG`` 然后编译:
|
||||
|
||||
cd ~/esp
|
||||
git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
|
||||
cd crosstool-NG
|
||||
./bootstrap && ./configure --enable-local && make install
|
||||
.. include:: /_build/inc/scratch-build-code.inc
|
||||
|
||||
编译工具链::
|
||||
|
||||
|
|
|
@ -19,15 +19,15 @@
|
|||
安装工具链
|
||||
===============
|
||||
|
||||
.. include:: /_build/inc/download-links.inc
|
||||
|
||||
Mac OS 版本的 ESP32 工具链可以从以下地址下载:
|
||||
|
||||
https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-75-gbaf03c2-5.2.0.tar.gz
|
||||
|download_link_osx|
|
||||
|
||||
下载压缩文件之后,解压到 ``~/esp`` 目录中::
|
||||
下载压缩文件之后,解压到 ``~/esp`` 目录中:
|
||||
|
||||
mkdir -p ~/esp
|
||||
cd ~/esp
|
||||
tar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-75-gbaf03c2-5.2.0.tar.gz
|
||||
.. include:: /_build/inc/unpack-code-osx.inc
|
||||
|
||||
.. _setup-macos-toolchain-add-it-to-path:
|
||||
|
||||
|
|
|
@ -5,3 +5,7 @@ set(COMPONENT_SRCS "ble_hidd_demo_main.c"
|
|||
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||
|
||||
register_component()
|
||||
|
||||
if(GCC_NOT_5_2_0)
|
||||
component_compile_options(-Wno-unused-const-variable)
|
||||
endif()
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#
|
||||
# Main Makefile. This is basically the same as a component makefile.
|
||||
#
|
||||
# This Makefile should, at the very least, just include $(SDK_PATH)/make/component_common.mk. By default,
|
||||
# this will take the sources in the src/ directory, compile them and link them into
|
||||
# lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable,
|
||||
# please read the ESP-IDF documents if you need to do this.
|
||||
#
|
||||
|
||||
# include $(IDF_PATH)/make/component_common.mk
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
hid_device_le_prf.o: CFLAGS += -Wno-unused-const-variable
|
||||
endif
|
|
@ -130,7 +130,7 @@ static esp_err_t task_write_reg()
|
|||
if (i >= 28 && i <= 31) continue;
|
||||
sdio_slave_write_reg(i, read+3*i);
|
||||
}
|
||||
uint8_t reg[64];
|
||||
uint8_t reg[64] = {0};
|
||||
for (int i = 0; i < 64; i++) {
|
||||
//skip interrupt regs.
|
||||
if (i >= 28 && i <= 31) continue;
|
||||
|
|
|
@ -157,4 +157,7 @@ Writing directory view page.
|
|||
Overall coverage rate:
|
||||
lines......: 90.0% (18 of 20 lines)
|
||||
functions..: 100.0% (3 of 3 functions)
|
||||
```
|
||||
```
|
||||
|
||||
NOTE: Since `lcov` tool is not part of GCC bundle it can happen that format of GCOV binary data has been changed and your local version of `lcov` fails to understand it.
|
||||
So it always better to use the latest `lcov` version from [LCOV repo](https://github.com/linux-test-project/lcov).
|
|
@ -277,6 +277,22 @@ COMMON_WARNING_FLAGS = -Wall -Werror=all \
|
|||
-Wextra \
|
||||
-Wno-unused-parameter -Wno-sign-compare
|
||||
|
||||
ifdef CONFIG_DISABLE_GCC8_WARNINGS
|
||||
COMMON_WARNING_FLAGS += -Wno-parentheses \
|
||||
-Wno-sizeof-pointer-memaccess \
|
||||
-Wno-clobbered \
|
||||
-Wno-format-overflow \
|
||||
-Wno-stringop-truncation \
|
||||
-Wno-misleading-indentation \
|
||||
-Wno-cast-function-type \
|
||||
-Wno-implicit-fallthrough \
|
||||
-Wno-unused-const-variable \
|
||||
-Wno-switch-unreachable \
|
||||
-Wno-format-truncation \
|
||||
-Wno-memset-elt-size \
|
||||
-Wno-int-in-bool-context
|
||||
endif
|
||||
|
||||
ifdef CONFIG_WARN_WRITE_STRINGS
|
||||
COMMON_WARNING_FLAGS += -Wwrite-strings
|
||||
endif #CONFIG_WARN_WRITE_STRINGS
|
||||
|
@ -376,6 +392,14 @@ OBJCOPY := $(call dequote,$(CONFIG_TOOLPREFIX))objcopy
|
|||
SIZE := $(call dequote,$(CONFIG_TOOLPREFIX))size
|
||||
export CC CXX LD AR OBJCOPY SIZE
|
||||
|
||||
COMPILER_VERSION_STR := $(shell $(CC) -dumpversion)
|
||||
COMPILER_VERSION_NUM := $(subst .,,$(COMPILER_VERSION_STR))
|
||||
GCC_NOT_5_2_0 := $(shell expr $(COMPILER_VERSION_STR) != "5.2.0")
|
||||
export COMPILER_VERSION_STR COMPILER_VERSION_NUM GCC_NOT_5_2_0
|
||||
|
||||
CPPFLAGS += -DGCC_NOT_5_2_0=$(GCC_NOT_5_2_0)
|
||||
export CPPFLAGS
|
||||
|
||||
PYTHON=$(call dequote,$(CONFIG_PYTHON))
|
||||
|
||||
# the app is the main executable built by the project
|
||||
|
@ -562,28 +586,41 @@ print_flash_cmd: partition_table_get_info blank_ota_data
|
|||
|
||||
# Check toolchain version using the output of xtensa-esp32-elf-gcc --version command.
|
||||
# The output normally looks as follows
|
||||
# xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-59-ga194053) 4.8.5
|
||||
# The part in brackets is extracted into TOOLCHAIN_COMMIT_DESC variable,
|
||||
# the part after the brackets is extracted into TOOLCHAIN_GCC_VER.
|
||||
# xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 5.2.0
|
||||
# The part in brackets is extracted into TOOLCHAIN_COMMIT_DESC variable
|
||||
ifdef CONFIG_TOOLPREFIX
|
||||
ifndef MAKE_RESTARTS
|
||||
TOOLCHAIN_COMMIT_DESC := $(shell $(CC) --version | sed -E -n 's|.*crosstool-ng-([0-9]+).([0-9]+).([0-9]+)-([0-9]+)-g([0-9a-f]{7}).*|\1.\2.\3-\4-g\5|gp')
|
||||
TOOLCHAIN_GCC_VER := $(shell $(CC) --version | sed -E -n 's|xtensa-esp32-elf-gcc.*\ \(.*\)\ (.*)|\1|gp')
|
||||
|
||||
TOOLCHAIN_HEADER := $(shell $(CC) --version | head -1)
|
||||
TOOLCHAIN_PATH := $(shell which $(CC))
|
||||
TOOLCHAIN_COMMIT_DESC := $(shell $(CC) --version | sed -E -n 's|.*\(crosstool-NG (.*)\).*|\1|gp')
|
||||
TOOLCHAIN_GCC_VER := $(COMPILER_VERSION_STR)
|
||||
|
||||
# Officially supported version(s)
|
||||
SUPPORTED_TOOLCHAIN_COMMIT_DESC := 1.22.0-80-g6c4433a
|
||||
SUPPORTED_TOOLCHAIN_GCC_VERSIONS := 5.2.0
|
||||
include $(IDF_PATH)/tools/toolchain_versions.mk
|
||||
|
||||
ifndef IS_BOOTLOADER_BUILD
|
||||
$(info Toolchain path: $(TOOLCHAIN_PATH))
|
||||
endif
|
||||
|
||||
ifdef TOOLCHAIN_COMMIT_DESC
|
||||
ifneq ($(TOOLCHAIN_COMMIT_DESC), $(SUPPORTED_TOOLCHAIN_COMMIT_DESC))
|
||||
$(info WARNING: Toolchain version is not supported: $(TOOLCHAIN_COMMIT_DESC))
|
||||
$(info Expected to see version: $(SUPPORTED_TOOLCHAIN_COMMIT_DESC))
|
||||
$(info Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.)
|
||||
else
|
||||
ifndef IS_BOOTLOADER_BUILD
|
||||
$(info Toolchain version: $(TOOLCHAIN_COMMIT_DESC))
|
||||
endif
|
||||
endif
|
||||
ifeq (,$(findstring $(TOOLCHAIN_GCC_VER), $(SUPPORTED_TOOLCHAIN_GCC_VERSIONS)))
|
||||
$(info WARNING: Compiler version is not supported: $(TOOLCHAIN_GCC_VER))
|
||||
$(info Expected to see version(s): $(SUPPORTED_TOOLCHAIN_GCC_VERSIONS))
|
||||
$(info Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.)
|
||||
else
|
||||
ifndef IS_BOOTLOADER_BUILD
|
||||
$(info Compiler version: $(TOOLCHAIN_GCC_VER))
|
||||
endif
|
||||
endif
|
||||
else
|
||||
$(info WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu)
|
||||
|
|
|
@ -157,8 +157,18 @@ echo -e "\nFound issues:"
|
|||
# Ignore the next messages:
|
||||
# "error.o" or "-Werror" in compiler's command line
|
||||
# "reassigning to symbol" or "changes choice state" in sdkconfig
|
||||
sort -u "${LOG_SUSPECTED}" | \
|
||||
grep -v "library/error\.o\|\ -Werror\|error\.d\|reassigning to symbol\|changes choice state" \
|
||||
# 'Compiler and toochain versions is not supported' from make/project.mk
|
||||
IGNORE_WARNS="\
|
||||
library/error\.o\
|
||||
\|\ -Werror\
|
||||
\|error\.d\
|
||||
\|reassigning to symbol\
|
||||
\|changes choice state\
|
||||
\|Compiler version is not supported\
|
||||
\|Toolchain version is not supported\
|
||||
"
|
||||
|
||||
sort -u "${LOG_SUSPECTED}" | grep -v "${IGNORE_WARNS}" \
|
||||
&& RESULT=$RESULT_ISSUES \
|
||||
|| echo -e "\tNone"
|
||||
|
||||
|
|
|
@ -160,8 +160,17 @@ echo -e "\nFound issues:"
|
|||
# Ignore the next messages:
|
||||
# "error.o" or "-Werror" in compiler's command line
|
||||
# "reassigning to symbol" or "changes choice state" in sdkconfig
|
||||
sort -u "${LOG_SUSPECTED}" | \
|
||||
grep -v "library/error.o\|\ -Werror\|reassigning to symbol\|changes choice state" \
|
||||
# 'Compiler and toochain versions is not supported' from crosstool_version_check.cmake
|
||||
IGNORE_WARNS="\
|
||||
library/error\.o\
|
||||
\|\ -Werror\
|
||||
\|error\.d\
|
||||
\|reassigning to symbol\
|
||||
\|changes choice state\
|
||||
\|crosstool_version_check\.cmake\
|
||||
"
|
||||
|
||||
sort -u "${LOG_SUSPECTED}" | grep -v "${IGNORE_WARNS}" \
|
||||
&& RESULT=$RESULT_ISSUES \
|
||||
|| echo -e "\tNone"
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ function(crosstool_version_check expected_ctng_version)
|
|||
OUTPUT_QUIET)
|
||||
|
||||
string(REGEX MATCH "crosstool-ng-[0-9a-g\\.-]+" ctng_version "${toolchain_stderr}")
|
||||
string(REPLACE "crosstool-ng-" "" ctng_version "${ctng_version}")
|
||||
# We use FIND to match version instead of STREQUAL because some toolchains are built
|
||||
# with longer git hash strings than others. This will match any version which starts with
|
||||
# the expected version string.
|
||||
|
@ -30,3 +29,21 @@ function(crosstool_version_check expected_ctng_version)
|
|||
"doesn't match supported version ${expected_ctng_version}. ${ctng_version_warning}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(get_expected_ctng_version _toolchain_ver _gcc_ver)
|
||||
file(STRINGS ${IDF_PATH}/tools/toolchain_versions.mk config_contents)
|
||||
foreach(name_and_value ${config_contents})
|
||||
# Strip spaces
|
||||
string(REPLACE " " "" name_and_value ${name_and_value})
|
||||
# Find variable name
|
||||
string(REGEX MATCH "^[^=]+" name ${name_and_value})
|
||||
# Find the value
|
||||
string(REPLACE "${name}=" "" value ${name_and_value})
|
||||
# Getting values
|
||||
if("${name}" STREQUAL "SUPPORTED_TOOLCHAIN_COMMIT_DESC")
|
||||
set("${_toolchain_ver}" "${value}" PARENT_SCOPE)
|
||||
elseif("${name}" STREQUAL "SUPPORTED_TOOLCHAIN_GCC_VERSIONS")
|
||||
set(${_gcc_ver} "${value}" PARENT_SCOPE)
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
|
|
@ -40,6 +40,13 @@ macro(idf_set_global_variables)
|
|||
|
||||
# path to idf.py tool
|
||||
set(IDFTOOL ${PYTHON} "${IDF_PATH}/tools/idf.py")
|
||||
|
||||
# Temporary trick to support both gcc5 and gcc8 builds
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_EQUAL 5.2.0)
|
||||
set(GCC_NOT_5_2_0 0)
|
||||
else()
|
||||
set(GCC_NOT_5_2_0 1)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Add all the IDF global compiler & preprocessor options
|
||||
|
@ -86,6 +93,30 @@ function(idf_set_global_compiler_options)
|
|||
-Wno-old-style-declaration
|
||||
)
|
||||
|
||||
if(CONFIG_DISABLE_GCC8_WARNINGS)
|
||||
add_compile_options(
|
||||
-Wno-parentheses
|
||||
-Wno-sizeof-pointer-memaccess
|
||||
-Wno-clobbered
|
||||
)
|
||||
|
||||
# doesn't use GCC_NOT_5_2_0 because idf_set_global_variables was not called before
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_EQUAL 5.2.0)
|
||||
add_compile_options(
|
||||
-Wno-format-overflow
|
||||
-Wno-stringop-truncation
|
||||
-Wno-misleading-indentation
|
||||
-Wno-cast-function-type
|
||||
-Wno-implicit-fallthrough
|
||||
-Wno-unused-const-variable
|
||||
-Wno-switch-unreachable
|
||||
-Wno-format-truncation
|
||||
-Wno-memset-elt-size
|
||||
-Wno-int-in-bool-context
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Stack protection
|
||||
if(NOT BOOTLOADER_BUILD)
|
||||
if(CONFIG_STACK_CHECK_NORM)
|
||||
|
@ -114,6 +145,8 @@ function(idf_set_global_compiler_options)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
# Temporary trick to support both gcc5 and gcc8 builds
|
||||
add_definitions(-DGCC_NOT_5_2_0=${GCC_NOT_5_2_0})
|
||||
endfunction()
|
||||
|
||||
|
||||
|
@ -134,8 +167,9 @@ function(idf_verify_environment)
|
|||
# Warn if the toolchain version doesn't match
|
||||
#
|
||||
# TODO: make these platform-specific for diff toolchains
|
||||
gcc_version_check("5.2.0")
|
||||
crosstool_version_check("1.22.0-80-g6c4433a")
|
||||
get_expected_ctng_version(expected_toolchain expected_gcc)
|
||||
gcc_version_check("${expected_gcc}")
|
||||
crosstool_version_check("${expected_toolchain}")
|
||||
|
||||
endfunction()
|
||||
|
||||
|
|
6
tools/toolchain_versions.mk
Normal file
6
tools/toolchain_versions.mk
Normal file
|
@ -0,0 +1,6 @@
|
|||
SUPPORTED_TOOLCHAIN_COMMIT_DESC = crosstool-ng-1.22.0-80-g6c4433a
|
||||
SUPPORTED_TOOLCHAIN_GCC_VERSIONS = 5.2.0
|
||||
|
||||
CURRENT_TOOLCHAIN_COMMIT_DESC = crosstool-ng-1.22.0-80-g6c4433a
|
||||
CURRENT_TOOLCHAIN_COMMIT_DESC_SHORT = 1.22.0-80-g6c4433a
|
||||
CURRENT_TOOLCHAIN_GCC_VERSION = 5.2.0
|
|
@ -1,3 +1,7 @@
|
|||
#
|
||||
# Component Makefile
|
||||
#
|
||||
|
||||
ifeq ($(GCC_NOT_5_2_0), 1)
|
||||
unity.o: CFLAGS += -Wno-unused-const-variable
|
||||
endif
|
Loading…
Reference in a new issue