]> granicus.if.org Git - esp-idf/commitdiff
esp32: Adds menuconfig option for max tasks number in core dump
authorAlexey Gerenkov <alexey@espressif.com>
Mon, 12 Nov 2018 21:01:24 +0000 (00:01 +0300)
committerbot <bot@espressif.com>
Thu, 15 Nov 2018 06:13:48 +0000 (06:13 +0000)
components/esp32/Kconfig
components/esp32/core_dump.c
docs/en/api-guides/core_dump.rst

index 32f699d7be0c3234a2aabe2a501b8910efe7ace0..b2f10fbe7be4b4dd294b7d7e3e5cafc690d3a119 100644 (file)
@@ -272,8 +272,10 @@ config TRACEMEM_RESERVE_DRAM
     default 0x4000 if MEMMAP_TRACEMEM && !MEMMAP_TRACEMEM_TWOBANKS
     default 0x0
 
+menu "Core dump"
+
 choice ESP32_COREDUMP_TO_FLASH_OR_UART
-    prompt "Core dump destination"
+    prompt "Data destination"
     default ESP32_ENABLE_COREDUMP_TO_NONE
     help
         Select place to store core dump: flash, uart or none (to disable core dumps generation).
@@ -298,14 +300,23 @@ config ESP32_ENABLE_COREDUMP
     help
         Enables/disable core dump module.
 
+config ESP32_CORE_DUMP_MAX_TASKS_NUM
+    int "Maximum number of tasks"
+    depends on ESP32_ENABLE_COREDUMP
+    default 64
+    help
+        Maximum number of tasks snapshots in core dump.
+
 config ESP32_CORE_DUMP_UART_DELAY
-    int "Core dump print to UART delay"
+    int "Delay before print to UART"
     depends on ESP32_ENABLE_COREDUMP_TO_UART
     default 0
     help
         Config delay (in ms) before printing core dump to UART.
         Delay can be interrupted by pressing Enter key.
 
+endmenu
+
 choice NUMBER_OF_UNIVERSAL_MAC_ADDRESS
     bool "Number of universally administered (by IEEE) MAC address"
     default FOUR_UNIVERSAL_MAC_ADDRESS
index 5608653c0630af1e20979f1991107dae2da12f18..25175f19b0d193cd5524b5d5460b0aa54b92d021 100644 (file)
@@ -45,8 +45,6 @@ typedef uint32_t core_dump_crc_t;
 #define ESP_COREDUMP_LOG_PROCESS( format, ... )  do{/*(__VA_ARGS__);*/}while(0)
 #endif
 
-// TODO: allow user to set this in menuconfig or get tasks iteratively
-#define COREDUMP_MAX_TASKS_NUM              32
 #define COREDUMP_MAX_TASK_STACK_SIZE        (64*1024)
 
 
@@ -104,7 +102,7 @@ static void esp_core_dump_write(XtExcFrame *frame, core_dump_write_config_t *wri
 {
     int cur_task_bad = 0;
     esp_err_t err;
-    TaskSnapshot_t tasks[COREDUMP_MAX_TASKS_NUM];
+    TaskSnapshot_t tasks[CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM];
     UBaseType_t tcb_sz, tcb_sz_padded, task_num;
     uint32_t data_len = 0, i, len;
     union
@@ -113,7 +111,7 @@ static void esp_core_dump_write(XtExcFrame *frame, core_dump_write_config_t *wri
         core_dump_task_header_t task_hdr;
     } dump_data;
 
-    task_num = uxTaskGetSnapshotAll(tasks, COREDUMP_MAX_TASKS_NUM, &tcb_sz);
+    task_num = uxTaskGetSnapshotAll(tasks, CONFIG_ESP32_CORE_DUMP_MAX_TASKS_NUM, &tcb_sz);
     // take TCB padding into account, actual TCB size will be stored in header
     if (tcb_sz % sizeof(uint32_t))
         tcb_sz_padded = (tcb_sz / sizeof(uint32_t) + 1) * sizeof(uint32_t);
index be75cbe1defe357a6d0f05abbacd1b677b63a442..5b3a6e3c53f6aa03d47f041963317b0cc828556a 100644 (file)
@@ -18,13 +18,15 @@ Configuration
 
 There are a number of core dump related configuration options which user can choose in configuration menu of the application (`make menuconfig`).
 
-1. Core dump data destination (`Components -> ESP32-specific config -> Core dump destination`):
+1. Core dump data destination (`Components -> ESP32-specific config -> Core dump -> Data destination`):
 
 * Disable core dump generation
 * Save core dump to flash
 * Print core dump to UART
 
-2. Delay before core dump will be printed to UART (`Components -> ESP32-specific config -> Core dump print to UART delay`). Value is in ms.
+2. Maximum number of tasks snapshots in core dump (`Components -> ESP32-specific config -> Core dump -> Maximum number of tasks`).
+
+3. Delay before core dump is printed to UART (`Components -> ESP32-specific config -> Core dump -> Delay before print to UART`). Value is in ms.
 
 
 Save core dump to flash