diff --git a/.github/workflows/release_zips.yml b/.github/workflows/release_zips.yml index a88dd90128e..bc2bf7b5c09 100644 --- a/.github/workflows/release_zips.yml +++ b/.github/workflows/release_zips.yml @@ -8,10 +8,11 @@ on: jobs: release_zips: name: Create release zip file - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - name: Create a recursive clone source zip - uses: espressif/github-actions/release_zips@master - env: - RELEASE_PROJECT_NAME: ESP-IDF - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: espressif/release-zips-action@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + release_project_name: ESP-IDF + git_extra_args: --shallow-since="1 year ago" diff --git a/.gitlab/ci/build.yml b/.gitlab/ci/build.yml index f3d0f7df4d3..df6a07fda45 100644 --- a/.gitlab/ci/build.yml +++ b/.gitlab/ci/build.yml @@ -237,7 +237,7 @@ pytest_build_system_macos: PYENV_VERSION: "3.8" # CCACHE_DIR: "/cache/idf_ccache". On macOS, you cannot write to this folder due to insufficient permissions. CCACHE_DIR: "" # ccache will use "$HOME/Library/Caches/ccache". - CCACHE_MAXSIZE: "5G" # To preserve the limited Macbook storage. CCACHE automatically prunes old caches to fit the set limit. + build_docker: extends: - .before_script:minimal diff --git a/.gitlab/ci/deploy.yml b/.gitlab/ci/deploy.yml index 1df1004ee82..58b951b4b56 100644 --- a/.gitlab/ci/deploy.yml +++ b/.gitlab/ci/deploy.yml @@ -19,6 +19,7 @@ check_submodule_sync: dependencies: [] script: - git submodule deinit --force . + - rm -rf .git/modules # remove all the cached metadata # setting the default remote URL to the public one, to resolve relative location URLs - git config remote.origin.url ${PUBLIC_IDF_URL} # check if all submodules are correctly synced to public repository diff --git a/.gitlab/ci/docs.yml b/.gitlab/ci/docs.yml index 3f7dd1c6086..1d068753a29 100644 --- a/.gitlab/ci/docs.yml +++ b/.gitlab/ci/docs.yml @@ -144,11 +144,16 @@ build_docs_html_partial: variables: DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/" PYTHONUNBUFFERED: 1 + # ensure all tags are fetched, need to know the latest/stable tag for the docs + GIT_STRATEGY: clone + GIT_DEPTH: 0 stage: test_deploy tags: - deploy - shiny script: + # ensure all tags are fetched, need to know the latest/stable tag for the docs + - git fetch --tags --prune - add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER - export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --) - deploy-docs diff --git a/.gitlab/ci/host-test.yml b/.gitlab/ci/host-test.yml index 306177b32c5..75318a13f4a 100644 --- a/.gitlab/ci/host-test.yml +++ b/.gitlab/ci/host-test.yml @@ -111,7 +111,8 @@ test_cli_installer: script: # Tools must be downloaded for testing # We could use "idf_tools.py download all", but we don't want to install clang because of its huge size - - python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa cmake + # cmake@version that is supported + - python3 ${IDF_PATH}/tools/idf_tools.py download required qemu-riscv32 qemu-xtensa cmake cmake@3.16.3 - cd ${IDF_PATH}/tools/test_idf_tools - python3 -m pip install jsonschema - python3 ./test_idf_tools.py -v diff --git a/.gitlab/ci/test-win.yml b/.gitlab/ci/test-win.yml index 42e24469333..5e0a197e063 100644 --- a/.gitlab/ci/test-win.yml +++ b/.gitlab/ci/test-win.yml @@ -31,7 +31,8 @@ test_cli_installer_win: IDF_PATH: "$CI_PROJECT_DIR" script: # Tools must be downloaded for testing - - python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake + # cmake@version that is supported + - python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake cmake@3.16.3 - cd ${IDF_PATH}\tools\test_idf_tools - python -m pip install jsonschema - python .\test_idf_tools.py diff --git a/components/app_trace/app_trace_membufs_proto.c b/components/app_trace/app_trace_membufs_proto.c index ced8e7a344e..f27e86cb962 100644 --- a/components/app_trace/app_trace_membufs_proto.c +++ b/components/app_trace/app_trace_membufs_proto.c @@ -92,7 +92,7 @@ static esp_err_t esp_apptrace_membufs_swap(esp_apptrace_membufs_proto_data_t *pr // switch to new block proto->state.in_block++; - proto->hw->swap(new_block_num); + proto->hw->swap(new_block_num, proto->state.markers[prev_block_num]); // handle data from host esp_hostdata_hdr_t *hdr = (esp_hostdata_hdr_t *)proto->blocks[new_block_num].start; diff --git a/components/app_trace/port/riscv/port.c b/components/app_trace/port/riscv/port.c index 14fe223623c..8b014e0dd1e 100644 --- a/components/app_trace/port/riscv/port.c +++ b/components/app_trace/port/riscv/port.c @@ -50,7 +50,7 @@ static uint8_t *esp_apptrace_riscv_down_buffer_get(esp_apptrace_riscv_data_t *hw static esp_err_t esp_apptrace_riscv_down_buffer_put(esp_apptrace_riscv_data_t *hw_data, uint8_t *ptr, esp_apptrace_tmo_t *tmo); static bool esp_apptrace_riscv_host_is_connected(esp_apptrace_riscv_data_t *hw_data); static esp_err_t esp_apptrace_riscv_buffer_swap_start(uint32_t curr_block_id); -static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id); +static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len); static esp_err_t esp_apptrace_riscv_buffer_swap_end(uint32_t new_block_id, uint32_t prev_block_len); static bool esp_apptrace_riscv_host_data_pending(void); @@ -353,7 +353,7 @@ static esp_err_t esp_apptrace_riscv_buffer_swap_end(uint32_t new_block_id, uint3 return ESP_OK; } -static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id) +static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len) { /* do nothing */ return ESP_OK; diff --git a/components/app_trace/port/xtensa/port.c b/components/app_trace/port/xtensa/port.c index aba6b15a72b..c86584cb313 100644 --- a/components/app_trace/port/xtensa/port.c +++ b/components/app_trace/port/xtensa/port.c @@ -208,7 +208,7 @@ static uint8_t *esp_apptrace_trax_down_buffer_get(esp_apptrace_trax_data_t *hw_d static esp_err_t esp_apptrace_trax_down_buffer_put(esp_apptrace_trax_data_t *hw_data, uint8_t *ptr, esp_apptrace_tmo_t *tmo); static bool esp_apptrace_trax_host_is_connected(esp_apptrace_trax_data_t *hw_data); static esp_err_t esp_apptrace_trax_buffer_swap_start(uint32_t curr_block_id); -static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id); +static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len); static esp_err_t esp_apptrace_trax_buffer_swap_end(uint32_t new_block_id, uint32_t prev_block_len); static bool esp_apptrace_trax_host_data_pending(void); @@ -526,21 +526,21 @@ static esp_err_t esp_apptrace_trax_buffer_swap_end(uint32_t new_block_id, uint32 uint32_t ctrl_reg = eri_read(ESP_APPTRACE_TRAX_CTRL_REG); uint32_t host_connected = ESP_APPTRACE_TRAX_HOST_CONNECT & ctrl_reg; - /* calculate CRC16 of the already switched block */ - if (prev_block_len > 0) { - const uint8_t *prev_block_start = s_trax_blocks[!((new_block_id % 2))]; - uint16_t crc16 = esp_rom_crc16_le(0, prev_block_start, prev_block_len); - eri_write(ESP_APPTRACE_TRAX_CRC16_REG, crc16 | ESP_APPTRACE_CRC_INDICATOR); - ESP_APPTRACE_LOGD("CRC16:%x %d @%x", crc16, prev_block_len, prev_block_start); - } eri_write(ESP_APPTRACE_TRAX_CTRL_REG, ESP_APPTRACE_TRAX_BLOCK_ID(new_block_id) | host_connected | ESP_APPTRACE_TRAX_BLOCK_LEN(prev_block_len)); esp_apptrace_trax_buffer_swap_unlock(); return ESP_OK; } -static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id) +static esp_err_t esp_apptrace_trax_buffer_swap(uint32_t new_block_id, uint32_t prev_block_len) { + /* Before switching to the new block, calculate CRC16 of the current block */ + if (prev_block_len > 0) { + const uint8_t *prev_block_start = s_trax_blocks[!((new_block_id % 2))]; + uint16_t crc16 = esp_rom_crc16_le(0, prev_block_start, prev_block_len); + eri_write(ESP_APPTRACE_TRAX_CRC16_REG, crc16 | ESP_APPTRACE_CRC_INDICATOR); + ESP_APPTRACE_LOGD("CRC16:%x %d @%x", crc16, prev_block_len, prev_block_start); + } esp_apptrace_trax_select_memory_block(new_block_id); return ESP_OK; } diff --git a/components/app_trace/private_include/esp_app_trace_membufs_proto.h b/components/app_trace/private_include/esp_app_trace_membufs_proto.h index 8b71cb5b487..fb1ef53a5da 100644 --- a/components/app_trace/private_include/esp_app_trace_membufs_proto.h +++ b/components/app_trace/private_include/esp_app_trace_membufs_proto.h @@ -29,7 +29,7 @@ typedef struct { typedef struct { esp_err_t (*swap_start)(uint32_t curr_block_id); - esp_err_t (*swap)(uint32_t new_block_id); + esp_err_t (*swap)(uint32_t new_block_id, uint32_t prev_block_len); esp_err_t (*swap_end)(uint32_t new_block_id, uint32_t prev_block_len); bool (*host_data_pending)(void); } esp_apptrace_membufs_proto_hw_t; diff --git a/components/app_trace/sys_view/SEGGER/SEGGER.h b/components/app_trace/sys_view/SEGGER/SEGGER.h index be33c34ca0e..f07e9466195 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER.h @@ -10,7 +10,7 @@ * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -49,7 +49,7 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** ---------------------------------------------------------------------- diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h b/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h index 0fdb2f7177f..6e1c758f0d5 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_RTT.h @@ -8,7 +8,7 @@ * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -47,7 +47,7 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** ---------------------------END-OF-HEADER------------------------------ @@ -100,6 +100,10 @@ Revision: $Rev: 25842 $ #define _CORE_HAS_RTT_ASM_SUPPORT 1 #define _CORE_NEEDS_DMB 1 #define RTT__DMB() __asm volatile ("dmb\n" : : :); + #elif (defined(__ARM_ARCH_8_1M_MAIN__)) // Cortex-M85 + #define _CORE_HAS_RTT_ASM_SUPPORT 1 + #define _CORE_NEEDS_DMB 1 + #define RTT__DMB() __asm volatile ("dmb\n" : : :); #else #define _CORE_HAS_RTT_ASM_SUPPORT 0 #endif @@ -130,6 +134,10 @@ Revision: $Rev: 25842 $ #define _CORE_HAS_RTT_ASM_SUPPORT 1 #define _CORE_NEEDS_DMB 1 #define RTT__DMB() __asm volatile ("dmb\n" : : :); + #elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85 + #define _CORE_HAS_RTT_ASM_SUPPORT 1 + #define _CORE_NEEDS_DMB 1 + #define RTT__DMB() __asm volatile ("dmb\n" : : :); #elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R #define _CORE_NEEDS_DMB 1 #define RTT__DMB() __asm volatile ("dmb\n" : : :); @@ -156,6 +164,10 @@ Revision: $Rev: 25842 $ #define _CORE_HAS_RTT_ASM_SUPPORT 1 #define _CORE_NEEDS_DMB 1 #define RTT__DMB() __asm volatile ("dmb\n" : : :); + #elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85 + #define _CORE_HAS_RTT_ASM_SUPPORT 1 + #define _CORE_NEEDS_DMB 1 + #define RTT__DMB() __asm volatile ("dmb\n" : : :); #elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R #define _CORE_NEEDS_DMB 1 #define RTT__DMB() __asm volatile ("dmb\n" : : :); @@ -271,6 +283,7 @@ Revision: $Rev: 25842 $ #ifndef SEGGER_RTT_ASM // defined when SEGGER_RTT.h is included from assembly file #include #include +#include /********************************************************************* * @@ -412,7 +425,7 @@ unsigned SEGGER_RTT_ReadUpBufferNoLock (unsigned BufferIndex, void* pDa unsigned SEGGER_RTT_WriteDownBuffer (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes); unsigned SEGGER_RTT_WriteDownBufferNoLock (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes); -#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly +#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly /********************************************************************* * diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c index 10599986c87..4de60ada2e5 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.c @@ -3,14 +3,14 @@ * * SPDX-License-Identifier: BSD-1-Clause * - * SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD */ /********************************************************************* * SEGGER Microcontroller GmbH * * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -49,14 +49,14 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** -------------------------- END-OF-HEADER ----------------------------- File : SEGGER_SYSVIEW.c Purpose : System visualization API implementation. -Revision: $Rev: 28341 $ +Revision: $Rev: 29105 $ Additional information: Packet format: @@ -66,10 +66,10 @@ Additional information: Packets with IDs 24..31 are standard packets with extendible structure and contain a length field. - + Packet ID 31 is used for SystemView extended events. - + Packets with IDs >= 32 always contain a length field. @@ -150,6 +150,7 @@ Additional information: #include #include #include +#include #include "SEGGER_SYSVIEW_Int.h" #include "SEGGER_RTT.h" @@ -188,7 +189,7 @@ Additional information: // Timestamps may be less than full 32-bits, in which case we need to zero // the unused bits to properly handle overflows. // Note that this is a quite common scenario, as a 32-bit time such as -// SysTick might be scaled down to reduce bandwith +// SysTick might be scaled down to reduce bandwidth // or a 16-bit hardware time might be used. #if SEGGER_SYSVIEW_TIMESTAMP_BITS < 32 // Eliminate unused bits in case hardware timestamps are less than 32 bits #define MAKE_DELTA_32BIT(Delta) Delta <<= 32 - SEGGER_SYSVIEW_TIMESTAMP_BITS; \ @@ -388,8 +389,6 @@ static U8 _NumModules; pDest = pSysviewPointer; \ }; - - #if (SEGGER_SYSVIEW_USE_STATIC_BUFFER == 1) static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE]; @@ -432,6 +431,9 @@ static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE]; static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) { unsigned int n; const U8* p; + + // Espressif doesn't support larger packages yet. Encode data length must be less than 255. + assert(NumBytes < 255); // n = 0; p = (const U8*)pSrc; @@ -442,8 +444,8 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) { *pPayload++ = (U8)NumBytes; } else { *pPayload++ = 255; - *pPayload++ = (NumBytes & 255); *pPayload++ = ((NumBytes >> 8) & 255); + *pPayload++ = (NumBytes & 255); } while (n < NumBytes) { *pPayload++ = *p++; @@ -452,6 +454,38 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) { return pPayload; } +/********************************************************************* +* +* _EncodeFloat() +* +* Function description +* Encode a float value in variable-length format. +* +* Parameters +* pPayload - Pointer to where value will be encoded. +* Value - Value to be encoded. +* +* Return value +* Pointer to the byte following the value, i.e. the first free +* byte in the payload and the next position to store payload +* content. +*/ +static U8* _EncodeFloat(U8* pPayload, float Value) { + float Val = Value; + U8* pSysviewPointer; + U32* SysViewData; + pSysviewPointer = pPayload; + SysViewData = (U32*)&Val; + while((*SysViewData) > 0x7F) { + *pSysviewPointer++ = (U8)((*SysViewData) | 0x80); + (*SysViewData) >>= 7; + }; + *pSysviewPointer++ = (U8)(*SysViewData); + pPayload = pSysviewPointer; + + return pPayload; +} + /********************************************************************* * * _EncodeStr() @@ -475,38 +509,42 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) { * No more than 1 + Limit bytes will be encoded to the payload. */ static U8 *_EncodeStr(U8 *pPayload, const char *pText, unsigned int Limit) { - unsigned int n; - unsigned int Len; - // - // Compute string len - // - Len = 0; - if (pText != NULL) { - while(*(pText + Len) != 0) { - Len++; - } - if (Len > Limit) { - Len = Limit; - } - } - // - // Write Len - // - if (Len < 255) { - *pPayload++ = (U8)Len; + U8* pLen; + const char* sStart; + + if (pText == NULL) { + *pPayload++ = (U8)0; } else { - *pPayload++ = 255; - *pPayload++ = (Len & 255); - *pPayload++ = ((Len >> 8) & 255); + sStart = pText; // Remember start of string. + // + // Save space to store count byte(s). + // + pLen = pPayload++; +#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes + pPayload += 2; +#endif + // + // Limit string to maximum length and copy into payload buffer. + // + if (Limit > SEGGER_SYSVIEW_MAX_STRING_LEN) { + Limit = SEGGER_SYSVIEW_MAX_STRING_LEN; + } + while ((Limit-- > 0) && (*pText != '\0')) { + *pPayload++ = *pText++; + } + // + // Save string length to buffer. + // +#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes + Limit = (unsigned int)(pText - sStart); + *pLen++ = (U8)255; + *pLen++ = (U8)((Limit >> 8) & 255); + *pLen++ = (U8)(Limit & 255); +#else // Length always encodes in 1 byte + *pLen = (U8)(pText - sStart); +#endif } // - // copy string - // - n = 0; - while (n < Len) { - *pPayload++ = *pText++; - n++; - } return pPayload; } @@ -693,7 +731,6 @@ static void _SendSyncInfo(void) { for (n = 0; n < _NumModules; n++) { SEGGER_SYSVIEW_SendModule(n); } - SEGGER_SYSVIEW_SendModuleDescription(); } } #endif // (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1) @@ -1218,6 +1255,7 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList) unsigned int FormatFlags; unsigned int FieldWidth; U8* pPayloadStart; + const char* s; #if SEGGER_SYSVIEW_USE_STATIC_BUFFER == 0 RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + SEGGER_SYSVIEW_MAX_STRING_LEN + 1 + 2 * SEGGER_SYSVIEW_QUANTA_U32); SEGGER_SYSVIEW_LOCK(); @@ -1322,6 +1360,20 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList) v = va_arg(*pParamList, int); _PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, NumDigits, FieldWidth, FormatFlags); break; + case 's': + s = va_arg(*pParamList, const char*); + if (s == NULL) { + s = "(null)"; + } + do { + c = *s; + s++; + if (c == '\0') { + break; + } + _StoreChar(&BufferDesc, c); + } while (BufferDesc.Cnt < SEGGER_SYSVIEW_MAX_STRING_LEN); + break; case 'p': v = va_arg(*pParamList, int); _PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, 8u, 8u, 0u); @@ -1954,11 +2006,61 @@ void SEGGER_SYSVIEW_SendTaskInfo(const SEGGER_SYSVIEW_TASKINFO *pInfo) { ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID)); ENCODE_U32(pPayload, pInfo->StackBase); ENCODE_U32(pPayload, pInfo->StackSize); - ENCODE_U32(pPayload, 0); // Stack End, future use + ENCODE_U32(pPayload, pInfo->StackUsage); _SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_STACK_INFO); RECORD_END(); } +/********************************************************************* +* +* SEGGER_SYSVIEW_SendStackInfo() +* +* Function description +* Send a Stack Info Packet, containing TaskId for identification, +* stack base, stack size and stack usage. +* +* +* Parameters +* pInfo - Pointer to stack information to send. +*/ +void SEGGER_SYSVIEW_SendStackInfo(const SEGGER_SYSVIEW_STACKINFO *pInfo) { + U8* pPayload; + U8* pPayloadStart; + RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 4 * SEGGER_SYSVIEW_QUANTA_U32); + // + pPayload = pPayloadStart; + ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID)); + ENCODE_U32(pPayload, pInfo->StackBase); + ENCODE_U32(pPayload, pInfo->StackSize); + ENCODE_U32(pPayload, pInfo->StackUsage); + + RECORD_END(); +} + +/********************************************************************* +* +* SEGGER_SYSVIEW_SampleData() +* +* Function description +* Send a Data Sample Packet, containing the data Id and the value. +* +* +* Parameters +* pInfo - Pointer to data sample struct to send. +*/ +void SEGGER_SYSVIEW_SampleData(const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo) { + U8* pPayload; + U8* pPayloadStart; + RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32); + // + pPayload = pPayloadStart; + ENCODE_U32(pPayload, pInfo->ID); + pPayload = _EncodeFloat(pPayload, *(pInfo->pFloat_Value)); + _SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_DATA_SAMPLE); + + RECORD_END(); +} + /********************************************************************* * * SEGGER_SYSVIEW_SendTaskList() @@ -2448,6 +2550,63 @@ void SEGGER_SYSVIEW_NameResource(U32 ResourceId, const char* sName) { RECORD_END(); } +/********************************************************************* +* +* SEGGER_SYSVIEW_RegisterData() +* +* Function description +* Register data to sample the values via SystemView. +* +* Register functions are usually set in the system description +* callback, to ensure it is only sent when the SystemView Application +* is connected. +* +* Parameters +* pInfo - Struct containing all possible properties that can be sent via this registration event. +*/ +void SEGGER_SYSVIEW_RegisterData(SEGGER_SYSVIEW_DATA_REGISTER* pInfo) { + U8* pPayload; + U8* pPayloadStart; + RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 8 * SEGGER_SYSVIEW_QUANTA_U32 + 1 + SEGGER_SYSVIEW_MAX_STRING_LEN); + // + pPayload = pPayloadStart; + ENCODE_U32(pPayload, SYSVIEW_EVTID_EX_REGISTER_DATA); + ENCODE_U32(pPayload, pInfo->ID); + pPayload = _EncodeStr(pPayload, pInfo->sName, SEGGER_SYSVIEW_MAX_STRING_LEN); + + if (pInfo->sName != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + ENCODE_U32(pPayload, pInfo->Offset); + ENCODE_U32(pPayload, pInfo->RangeMin); + ENCODE_U32(pPayload, pInfo->RangeMax); + pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor); + pPayload = _EncodeStr(pPayload, pInfo->sUnit, SEGGER_SYSVIEW_MAX_STRING_LEN); + } else if (pInfo->ScalingFactor != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + ENCODE_U32(pPayload, pInfo->Offset); + ENCODE_U32(pPayload, pInfo->RangeMin); + ENCODE_U32(pPayload, pInfo->RangeMax); + pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor); + } else if (pInfo->RangeMax != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + ENCODE_U32(pPayload, pInfo->Offset); + ENCODE_U32(pPayload, pInfo->RangeMin); + ENCODE_U32(pPayload, pInfo->RangeMax); + } else if (pInfo->RangeMin != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + ENCODE_U32(pPayload, pInfo->Offset); + ENCODE_U32(pPayload, pInfo->RangeMin); + } else if (pInfo->Offset != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + ENCODE_U32(pPayload, pInfo->Offset); + } else if (pInfo->DataType != 0) { + ENCODE_U32(pPayload, pInfo->DataType); + } + + _SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_EX); + RECORD_END(); +} + /********************************************************************* * * SEGGER_SYSVIEW_HeapDefine() @@ -2820,9 +2979,6 @@ void SEGGER_SYSVIEW_RegisterModule(SEGGER_SYSVIEW_MODULE* pModule) { _NumModules++; } SEGGER_SYSVIEW_SendModule(0); - if (pModule->pfSendModuleDesc) { - pModule->pfSendModuleDesc(); - } SEGGER_SYSVIEW_UNLOCK(); } @@ -2906,6 +3062,9 @@ void SEGGER_SYSVIEW_SendModule(U8 ModuleId) { _SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_MODULEDESC); RECORD_END(); } + if (pModule && pModule->pfSendModuleDesc) { + pModule->pfSendModuleDesc(); + } } } @@ -2986,6 +3145,39 @@ void SEGGER_SYSVIEW_PrintfHostEx(const char* s, U32 Options, ...) { #endif } +/********************************************************************* +* +* SEGGER_SYSVIEW_VPrintfHostEx() +* +* Function description +* Print a string which is formatted on the host by the SystemView Application +* with Additional information. +* +* Parameters +* s - String to be formatted. +* Options - Options for the string. i.e. Log level. +* pParamList - Pointer to the list of arguments for the format string +* +* Additional information +* All format arguments are treated as 32-bit scalar values. +*/ +void SEGGER_SYSVIEW_VPrintfHostEx(const char* s, U32 Options, va_list *pParamList) { +#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT + int r; + va_list ParamListCopy; + va_copy(ParamListCopy, *pParamList); + + r = _VPrintHost(s, Options, pParamList); + + if (r == -1) { + _VPrintTarget(s, Options, &ParamListCopy); + } + va_end(ParamListCopy); +#else + _VPrintHost(s, Options, pParamList); +#endif +} + /********************************************************************* * * SEGGER_SYSVIEW_PrintfHost() @@ -3020,6 +3212,37 @@ void SEGGER_SYSVIEW_PrintfHost(const char* s, ...) { #endif } +/********************************************************************* +* +* SEGGER_SYSVIEW_VPrintfHost() +* +* Function description +* Print a string which is formatted on the host by the SystemView Application. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +* +* Additional information +* All format arguments are treated as 32-bit scalar values. +*/ +void SEGGER_SYSVIEW_VPrintfHost(const char* s, va_list *pParamList) { +#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT + int r; + va_list ParamListCopy; + va_copy(ParamListCopy, *pParamList); + + r = _VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList); + + if (r == -1) { + _VPrintTarget(s, SEGGER_SYSVIEW_LOG, &ParamListCopy); + } + va_end(ParamListCopy); +#else + _VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList); +#endif +} + /********************************************************************* * * SEGGER_SYSVIEW_WarnfHost() @@ -3055,6 +3278,38 @@ void SEGGER_SYSVIEW_WarnfHost(const char* s, ...) { #endif } +/********************************************************************* +* +* SEGGER_SYSVIEW_VWarnfHost() +* +* Function description +* Print a warning string which is formatted on the host by +* the SystemView Application. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +* +* Additional information +* All format arguments are treated as 32-bit scalar values. +*/ +void SEGGER_SYSVIEW_VWarnfHost(const char* s, va_list *pParamList) { +#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT + int r; + va_list ParamListCopy; + va_copy(ParamListCopy, *pParamList); + + r = _VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList); + + if (r == -1) { + _VPrintTarget(s, SEGGER_SYSVIEW_WARNING, &ParamListCopy); + } + va_end(ParamListCopy); +#else + _VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList); +#endif +} + /********************************************************************* * * SEGGER_SYSVIEW_ErrorfHost() @@ -3090,6 +3345,38 @@ void SEGGER_SYSVIEW_ErrorfHost(const char* s, ...) { #endif } +/********************************************************************* +* +* SEGGER_SYSVIEW_VErrorfHost() +* +* Function description +* Print a warning string which is formatted on the host by +* the SystemView Application. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +* +* Additional information +* All format arguments are treated as 32-bit scalar values. +*/ +void SEGGER_SYSVIEW_VErrorfHost(const char* s, va_list *pParamList) { +#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT + int r; + va_list ParamListCopy; + va_copy(ParamListCopy, *pParamList); + + r = _VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList); + + if (r == -1) { + _VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamListCopy); + } + va_end(ParamListCopy); +#else + _VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList); +#endif +} + /********************************************************************* * * SEGGER_SYSVIEW_PrintfTargetEx() @@ -3110,6 +3397,23 @@ void SEGGER_SYSVIEW_PrintfTargetEx(const char* s, U32 Options, ...) { va_end(ParamList); } +/********************************************************************* +* +* SEGGER_SYSVIEW_VPrintfTargetEx() +* +* Function description +* Print a string which is formatted on the target before sent to +* the host with Additional information. +* +* Parameters +* s - String to be formatted. +* Options - Options for the string. i.e. Log level. +* pParamList - Pointer to the list of arguments for the format string +*/ +void SEGGER_SYSVIEW_VPrintfTargetEx(const char* s, U32 Options, va_list *pParamList) { + _VPrintTarget(s, Options, pParamList); +} + /********************************************************************* * * SEGGER_SYSVIEW_PrintfTarget() @@ -3129,6 +3433,22 @@ void SEGGER_SYSVIEW_PrintfTarget(const char* s, ...) { va_end(ParamList); } +/********************************************************************* +* +* SEGGER_SYSVIEW_VPrintfTarget() +* +* Function description +* Print a string which is formatted on the target before sent to +* the host. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +*/ +void SEGGER_SYSVIEW_VPrintfTarget(const char* s, va_list* pParamList) { + _VPrintTarget(s, SEGGER_SYSVIEW_LOG, pParamList); +} + /********************************************************************* * * SEGGER_SYSVIEW_WarnfTarget() @@ -3148,6 +3468,22 @@ void SEGGER_SYSVIEW_WarnfTarget(const char* s, ...) { va_end(ParamList); } +/********************************************************************* +* +* SEGGER_SYSVIEW_VWarnfTarget() +* +* Function description +* Print a warning string which is formatted on the target before +* sent to the host. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +*/ +void SEGGER_SYSVIEW_VWarnfTarget(const char* s, va_list* pParamList) { + _VPrintTarget(s, SEGGER_SYSVIEW_WARNING, pParamList); +} + /********************************************************************* * * SEGGER_SYSVIEW_ErrorfTarget() @@ -3166,6 +3502,22 @@ void SEGGER_SYSVIEW_ErrorfTarget(const char* s, ...) { _VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamList); va_end(ParamList); } + +/********************************************************************* +* +* SEGGER_SYSVIEW_VErrorfTarget() +* +* Function description +* Print an error string which is formatted on the target before +* sent to the host. +* +* Parameters +* s - String to be formatted. +* pParamList - Pointer to the list of arguments for the format string +*/ +void SEGGER_SYSVIEW_VErrorfTarget(const char* s, va_list* pParamList) { + _VPrintTarget(s, SEGGER_SYSVIEW_ERROR, pParamList); +} #endif // SEGGER_SYSVIEW_EXCLUDE_PRINTF /********************************************************************* diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.h b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.h index b9cbac605ba..1ada68c6fc8 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW.h @@ -3,14 +3,14 @@ * * SPDX-License-Identifier: BSD-1-Clause * - * SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD */ /********************************************************************* * SEGGER Microcontroller GmbH * * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -49,13 +49,13 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** -------------------------- END-OF-HEADER ----------------------------- File : SEGGER_SYSVIEW.h Purpose : System visualization API. -Revision: $Rev: 28237 $ +Revision: $Rev: 28768 $ */ #ifndef SEGGER_SYSVIEW_H @@ -123,7 +123,7 @@ extern "C" { #define SYSVIEW_EVTID_TIMER_EXIT 20 #define SYSVIEW_EVTID_STACK_INFO 21 #define SYSVIEW_EVTID_MODULEDESC 22 - +#define SYSVIEW_EVTID_DATA_SAMPLE 23 #define SYSVIEW_EVTID_INIT 24 #define SYSVIEW_EVTID_NAME_RESOURCE 25 #define SYSVIEW_EVTID_PRINT_FORMATTED 26 @@ -135,12 +135,13 @@ extern "C" { // // SystemView extended events. Sent with ID 31. // -#define SYSVIEW_EVTID_EX_MARK 0 -#define SYSVIEW_EVTID_EX_NAME_MARKER 1 -#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2 -#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3 -#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4 -#define SYSVIEW_EVTID_EX_HEAP_FREE 5 +#define SYSVIEW_EVTID_EX_MARK 0 +#define SYSVIEW_EVTID_EX_NAME_MARKER 1 +#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2 +#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3 +#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4 +#define SYSVIEW_EVTID_EX_HEAP_FREE 5 +#define SYSVIEW_EVTID_EX_REGISTER_DATA 6 // // Event masks to disable/enable events // @@ -167,7 +168,7 @@ extern "C" { #define SYSVIEW_EVTMASK_TIMER_EXIT (1 << SYSVIEW_EVTID_TIMER_EXIT) #define SYSVIEW_EVTMASK_STACK_INFO (1 << SYSVIEW_EVTID_STACK_INFO) #define SYSVIEW_EVTMASK_MODULEDESC (1 << SYSVIEW_EVTID_MODULEDESC) - +#define SYSVIEW_EVTMASK_DATA_SAMPLE (1 << SYSVIEW_EVTID_DATA_SAMPLE) #define SYSVIEW_EVTMASK_INIT (1 << SYSVIEW_EVTID_INIT) #define SYSVIEW_EVTMASK_NAME_RESOURCE (1 << SYSVIEW_EVTID_NAME_RESOURCE) #define SYSVIEW_EVTMASK_PRINT_FORMATTED (1 << SYSVIEW_EVTID_PRINT_FORMATTED) @@ -202,8 +203,42 @@ typedef struct { U32 Prio; U32 StackBase; U32 StackSize; + U32 StackUsage; } SEGGER_SYSVIEW_TASKINFO; +typedef struct { + U32 TaskID; + U32 StackBase; + U32 StackSize; + U32 StackUsage; +} SEGGER_SYSVIEW_STACKINFO; + +typedef struct { + U32 ID; + union { + U32* pU32_Value; + I32* pI32_Value; + float* pFloat_Value; + }; +} SEGGER_SYSVIEW_DATA_SAMPLE; + +typedef enum { + SEGGER_SYSVIEW_TYPE_U32 = 0, + SEGGER_SYSVIEW_TYPE_I32 = 1, + SEGGER_SYSVIEW_TYPE_FLOAT = 2 +} SEGGER_SYSVIEW_DATA_TYPE; + +typedef struct { + U32 ID; + SEGGER_SYSVIEW_DATA_TYPE DataType; + I32 Offset; + I32 RangeMin; + I32 RangeMax; + float ScalingFactor; + const char* sName; + const char* sUnit; +} SEGGER_SYSVIEW_DATA_REGISTER; + typedef struct SEGGER_SYSVIEW_MODULE_STRUCT SEGGER_SYSVIEW_MODULE; struct SEGGER_SYSVIEW_MODULE_STRUCT { @@ -247,8 +282,8 @@ EXTERN unsigned int SEGGER_SYSVIEW_InterruptId; */ typedef struct { - U64 (*pfGetTime) (void); - void (*pfSendTaskList) (void); + U64 (*pfGetTime) (void); + void (*pfSendTaskList) (void); } SEGGER_SYSVIEW_OS_API; /********************************************************************* @@ -262,9 +297,13 @@ void SEGGER_SYSVIEW_Stop (void); void SEGGER_SYSVIEW_GetSysDesc (void); void SEGGER_SYSVIEW_SendTaskList (void); void SEGGER_SYSVIEW_SendTaskInfo (const SEGGER_SYSVIEW_TASKINFO* pInfo); +void SEGGER_SYSVIEW_SendStackInfo (const SEGGER_SYSVIEW_STACKINFO* pInfo); void SEGGER_SYSVIEW_SendSysDesc (const char* sSysDesc); int SEGGER_SYSVIEW_IsStarted (void); int SEGGER_SYSVIEW_GetChannelID (void); + +void SEGGER_SYSVIEW_SampleData (const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo); + // Checks whether tracing has been started U8 SEGGER_SYSVIEW_Started(void); @@ -311,6 +350,7 @@ void SEGGER_SYSVIEW_HeapAllocEx (void* pHeap, void* pUserData, void SEGGER_SYSVIEW_HeapFree (void* pHeap, void* pUserData); void SEGGER_SYSVIEW_NameResource (U32 ResourceId, const char* sName); +void SEGGER_SYSVIEW_RegisterData ( SEGGER_SYSVIEW_DATA_REGISTER* pInfo); int SEGGER_SYSVIEW_SendPacket (U8* pPacket, U8* pPayloadEnd, unsigned int EventId); @@ -341,13 +381,21 @@ void SEGGER_SYSVIEW_SendNumModules (void); */ #ifndef SEGGER_SYSVIEW_EXCLUDE_PRINTF // Define in project to avoid warnings about variable parameter list void SEGGER_SYSVIEW_PrintfHostEx (const char* s, U32 Options, ...); +void SEGGER_SYSVIEW_VPrintfHostEx (const char* s, U32 Options, va_list* pParamList); void SEGGER_SYSVIEW_PrintfTargetEx (const char* s, U32 Options, ...); +void SEGGER_SYSVIEW_VPrintfTargetEx (const char* s, U32 Options, va_list* pParamList); void SEGGER_SYSVIEW_PrintfHost (const char* s, ...); +void SEGGER_SYSVIEW_VPrintfHost (const char* s, va_list* pParamList); void SEGGER_SYSVIEW_PrintfTarget (const char* s, ...); +void SEGGER_SYSVIEW_VPrintfTarget (const char* s, va_list* pParamList); void SEGGER_SYSVIEW_WarnfHost (const char* s, ...); +void SEGGER_SYSVIEW_VWarnfHost (const char* s, va_list* pParamList); void SEGGER_SYSVIEW_WarnfTarget (const char* s, ...); +void SEGGER_SYSVIEW_VWarnfTarget (const char* s, va_list* pParamList); void SEGGER_SYSVIEW_ErrorfHost (const char* s, ...); +void SEGGER_SYSVIEW_VErrorfHost (const char* s, va_list* pParamList); void SEGGER_SYSVIEW_ErrorfTarget (const char* s, ...); +void SEGGER_SYSVIEW_VErrorfTarget (const char* s, va_list* pParamList); #endif void SEGGER_SYSVIEW_Print (const char* s); diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h index c617e0db81e..08efb45ba6a 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_ConfDefaults.h @@ -3,14 +3,14 @@ * * SPDX-License-Identifier: BSD-1-Clause * - * SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD */ /********************************************************************* * SEGGER Microcontroller GmbH * * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -49,7 +49,7 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** -------------------------- END-OF-HEADER ----------------------------- @@ -72,6 +72,8 @@ Revision: $Rev: 26230 $ #include "SEGGER_SYSVIEW_Conf.h" #include "SEGGER_RTT_Conf.h" +#include "esp_assert.h" + #ifdef __cplusplus extern "C" { #endif @@ -370,12 +372,14 @@ extern "C" { #define SEGGER_SYSVIEW_MAX_STRING_LEN 128 #endif +ESP_STATIC_ASSERT(SEGGER_SYSVIEW_MAX_STRING_LEN < 255, "SEGGER Sysview string length must be less than 255."); + /********************************************************************* * * Define: SEGGER_SYSVIEW_SUPPORT_LONG_ID * * Description -* It set, support enconding Evend Ids longer than 14 bit. +* It set, support encoding Evend Ids longer than 14 bit. * Default * 1 */ @@ -388,7 +392,7 @@ extern "C" { * Define: SEGGER_SYSVIEW_SUPPORT_LONG_DATA * * Description -* It set, support enconding event data longer than 14 bit. +* It set, support encoding event data longer than 14 bit. * Default * 0 */ @@ -517,7 +521,7 @@ extern "C" { * Define: SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT * * Description -* Configure how frequently syncronization is sent in post-mortem +* Configure how frequently synchronization is sent in post-mortem * mode. * Default * 8: (1 << 8) = Every 256 Events. diff --git a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_Int.h b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_Int.h index ded0b96b567..270fd9fc31c 100644 --- a/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_Int.h +++ b/components/app_trace/sys_view/SEGGER/SEGGER_SYSVIEW_Int.h @@ -8,7 +8,7 @@ * The Embedded Experts * ********************************************************************** * * -* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* (c) 1995 - 2024 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * @@ -47,7 +47,7 @@ * * ********************************************************************** * * -* SystemView version: 3.42 * +* SystemView version: 3.56 * * * ********************************************************************** -------------------------- END-OF-HEADER ----------------------------- diff --git a/components/app_trace/sys_view/SEGGER/sbom.yml b/components/app_trace/sys_view/SEGGER/sbom.yml index 1f8b4be4d81..7ec0b47fec6 100644 --- a/components/app_trace/sys_view/SEGGER/sbom.yml +++ b/components/app_trace/sys_view/SEGGER/sbom.yml @@ -1,5 +1,5 @@ name: 'SystemView' -version: '3.42' +version: '3.56' cpe: cpe:2.3:a:segger:systemview:{}:*:*:*:*:*:*:* supplier: 'Organization: Espressif Systems (Shanghai) CO LTD' originator: 'Organization: SEGGER Microcontroller GmbH' diff --git a/components/app_trace/sys_view/Sample/FreeRTOSV10.4/Config/esp/SEGGER_SYSVIEW_Config_FreeRTOS.c b/components/app_trace/sys_view/Sample/FreeRTOSV10.4/Config/esp/SEGGER_SYSVIEW_Config_FreeRTOS.c index c01cbed67ea..0e7aba7bdf3 100644 --- a/components/app_trace/sys_view/Sample/FreeRTOSV10.4/Config/esp/SEGGER_SYSVIEW_Config_FreeRTOS.c +++ b/components/app_trace/sys_view/Sample/FreeRTOSV10.4/Config/esp/SEGGER_SYSVIEW_Config_FreeRTOS.c @@ -3,7 +3,7 @@ * * SPDX-License-Identifier: BSD-1-Clause * - * SPDX-FileContributor: 2017-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2017-2025 Espressif Systems (Shanghai) CO LTD */ /********************************************************************* * SEGGER Microcontroller GmbH * @@ -84,11 +84,7 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI; // The target device name #define SYSVIEW_DEVICE_NAME CONFIG_IDF_TARGET // The target core name -#if CONFIG_IDF_TARGET_ARCH_XTENSA -#define SYSVIEW_CORE_NAME "xtensa" -#elif CONFIG_IDF_TARGET_ARCH_RISCV -#define SYSVIEW_CORE_NAME "riscv" -#endif +#define SYSVIEW_CORE_NAME "core0" // In dual core, this will be renamed by OpenOCD as core1 // Determine which timer to use as timestamp source #if CONFIG_APPTRACE_SV_TS_SOURCE_CCOUNT diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index 6c86b14e288..f949ee693d2 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -1223,7 +1223,7 @@ menu "Security features" It is also possible to enable secure download mode at runtime by calling esp_efuse_enable_rom_secure_download_mode() - Note: Secure Download mode is not available for ESP32 (includes revisions till ECO3). + Note: Secure Download mode is not available for ESP32. config SECURE_INSECURE_ALLOW_DL_MODE bool "UART ROM download mode (Enabled (not recommended))" diff --git a/components/bootloader_support/src/esp32h2/secure_boot_secure_features.c b/components/bootloader_support/src/esp32h2/secure_boot_secure_features.c index 9ea0f69e4b9..da7f84df5c5 100644 --- a/components/bootloader_support/src/esp32h2/secure_boot_secure_features.c +++ b/components/bootloader_support/src/esp32h2/secure_boot_secure_features.c @@ -1,10 +1,11 @@ /* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #include +#include "hal/ecdsa_ll.h" #include "esp_flash_encrypt.h" #include "esp_secure_boot.h" #include "esp_efuse.h" @@ -36,6 +37,12 @@ esp_err_t esp_secure_boot_enable_secure_features(void) ESP_LOGW(TAG, "UART ROM Download mode kept enabled - SECURITY COMPROMISED"); #endif +#ifdef SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + if (ecdsa_ll_is_configurable_curve_supported()) { + esp_efuse_write_field_bit(ESP_EFUSE_WR_DIS_ECDSA_CURVE_MODE); + } +#endif + #ifndef CONFIG_SECURE_BOOT_ALLOW_JTAG ESP_LOGI(TAG, "Disable hardware & software JTAG..."); esp_efuse_write_field_bit(ESP_EFUSE_DIS_PAD_JTAG); diff --git a/components/bootloader_support/src/secure_boot.c b/components/bootloader_support/src/secure_boot.c index 9df2e6278c3..6bf584e32bb 100644 --- a/components/bootloader_support/src/secure_boot.c +++ b/components/bootloader_support/src/secure_boot.c @@ -12,6 +12,10 @@ #include "esp_secure_boot.h" #include "hal/efuse_hal.h" +#ifdef SOC_ECDSA_SUPPORTED +#include "hal/ecdsa_ll.h" +#endif + #ifndef BOOTLOADER_BUILD static __attribute__((unused)) const char *TAG = "secure_boot"; @@ -340,6 +344,23 @@ bool esp_secure_boot_cfg_verify_release_mode(void) #endif } +#ifdef SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + if (ecdsa_ll_is_configurable_curve_supported()) { + secure = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_ECDSA_CURVE_MODE); + if (!secure) { + uint8_t current_curve; + esp_err_t err = esp_efuse_read_field_blob(ESP_EFUSE_ECDSA_CURVE_MODE, ¤t_curve, ESP_EFUSE_ECDSA_CURVE_MODE[0]->bit_count); + if (err == ESP_OK) { + if (current_curve != ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P256_BIT_LOCKED) { + // If not P256 mode + result &= secure; + ESP_LOGW(TAG, "Not write disabled ECDSA curve mode (set WR_DIS_ECDSA_CURVE_MODE->1)"); + } + } + } + } +#endif + #ifdef CONFIG_SECURE_BOOT_ENABLE_AGGRESSIVE_KEY_REVOKE secure = esp_efuse_read_field_bit(ESP_EFUSE_SECURE_BOOT_AGGRESSIVE_REVOKE); result &= secure; diff --git a/components/bt/common/Kconfig.in b/components/bt/common/Kconfig.in index ff1947a3266..5202f53e9e1 100644 --- a/components/bt/common/Kconfig.in +++ b/components/bt/common/Kconfig.in @@ -27,6 +27,21 @@ config BT_BLE_LOG_SPI_OUT_HCI_ENABLED help Enable logging of HCI packets to the SPI bus when BLE SPI log output is enabled. +config BT_BLE_LOG_SPI_OUT_HCI_BUF_SIZE + int "SPI transaction buffer size for HCI logs" + depends on BT_BLE_LOG_SPI_OUT_HCI_ENABLED + default 1024 + help + SPI transaction buffer size for HCI logs. + There will be 2 SPI DMA buffers with the same size. + +config BT_BLE_LOG_SPI_OUT_HCI_TASK_CNT + int "HCI task count" + depends on BT_BLE_LOG_SPI_OUT_HCI_ENABLED + default 1 + help + HCI task count + config BT_BLE_LOG_SPI_OUT_HOST_ENABLED bool "Enable Host log output to SPI" depends on BT_BLE_LOG_SPI_OUT_ENABLED @@ -35,6 +50,21 @@ config BT_BLE_LOG_SPI_OUT_HOST_ENABLED This configuration applies to the logs of both Bluedroid Host and NimBLE Host. When BLE SPI log output is enabled, this option allows host logs to be transmitted via SPI. +config BT_BLE_LOG_SPI_OUT_HOST_BUF_SIZE + int "SPI transaction buffer size for host logs" + depends on BT_BLE_LOG_SPI_OUT_HOST_ENABLED + default 1024 + help + SPI transaction buffer size for host logs. + There will be 2 SPI DMA buffers with the same size. + +config BT_BLE_LOG_SPI_OUT_HOST_TASK_CNT + int "Host task count" + depends on BT_BLE_LOG_SPI_OUT_HOST_ENABLED + default 2 + help + Host task count. + config BT_BLE_LOG_SPI_OUT_LL_ENABLED bool "Enable Controller log output to SPI" depends on BT_BLE_LOG_SPI_OUT_ENABLED @@ -105,7 +135,7 @@ config BT_BLE_LOG_SPI_OUT_SYNC_IO_NUM config BT_BLE_LOG_SPI_OUT_TS_SYNC_SLEEP_SUPPORT bool "Enable ble log & logic analyzer log time sync sleep support" depends on BT_BLE_LOG_SPI_OUT_LL_ENABLED - default n + default y help Enable ble log & logic analyzer log time sync sleep support @@ -138,3 +168,32 @@ config BT_BLE_LOG_SPI_OUT_LE_AUDIO_BUF_SIZE help SPI transaction buffer size for LE Audio logs. There will be 2 SPI DMA buffers with the same size. + +config BT_BLE_LOG_SPI_OUT_LE_AUDIO_TASK_CNT + int "LE audio task count" + depends on BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED + default 1 + help + LE audio task count + +config BT_BLE_LOG_SPI_OUT_MESH_ENABLED + bool "Enable BLE mesh log output to SPI" + depends on BT_BLE_LOG_SPI_OUT_ENABLED + default n + help + Enable BLE mesh log output to SPI + +config BT_BLE_LOG_SPI_OUT_MESH_BUF_SIZE + int "SPI transaction buffer size for BLE mesh logs" + depends on BT_BLE_LOG_SPI_OUT_MESH_ENABLED + default 1024 + help + SPI transaction buffer size for BLE mesh logs. + There will be 2 SPI DMA buffers with the same size. + +config BT_BLE_LOG_SPI_OUT_MESH_TASK_CNT + int "Mesh task count" + depends on BT_BLE_LOG_SPI_OUT_MESH_ENABLED + default 3 + help + Mesh task count diff --git a/components/bt/common/ble_log/ble_log_spi_out.c b/components/bt/common/ble_log/ble_log_spi_out.c index 18e2dd01690..e1c6a278cb0 100644 --- a/components/bt/common/ble_log/ble_log_spi_out.c +++ b/components/bt/common/ble_log/ble_log_spi_out.c @@ -26,20 +26,28 @@ #define SPI_OUT_FLUSH_TIMEOUT_US (CONFIG_BT_BLE_LOG_SPI_OUT_FLUSH_TIMEOUT * 1000) #define SPI_OUT_LE_AUDIO_ENABLED CONFIG_BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED #define SPI_OUT_LE_AUDIO_BUF_SIZE CONFIG_BT_BLE_LOG_SPI_OUT_LE_AUDIO_BUF_SIZE +#define SPI_OUT_LE_AUDIO_TASK_CNT CONFIG_BT_BLE_LOG_SPI_OUT_LE_AUDIO_TASK_CNT +#define SPI_OUT_HOST_ENABLED CONFIG_BT_BLE_LOG_SPI_OUT_HOST_ENABLED +#define SPI_OUT_HOST_BUF_SIZE CONFIG_BT_BLE_LOG_SPI_OUT_HOST_BUF_SIZE +#define SPI_OUT_HOST_TASK_CNT CONFIG_BT_BLE_LOG_SPI_OUT_HOST_TASK_CNT +#define SPI_OUT_HCI_ENABLED CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED +#define SPI_OUT_HCI_BUF_SIZE CONFIG_BT_BLE_LOG_SPI_OUT_HCI_BUF_SIZE +#define SPI_OUT_HCI_TASK_CNT CONFIG_BT_BLE_LOG_SPI_OUT_HCI_TASK_CNT +#define SPI_OUT_MESH_ENABLED CONFIG_BT_BLE_LOG_SPI_OUT_MESH_ENABLED +#define SPI_OUT_MESH_BUF_SIZE CONFIG_BT_BLE_LOG_SPI_OUT_MESH_BUF_SIZE +#define SPI_OUT_MESH_TASK_CNT CONFIG_BT_BLE_LOG_SPI_OUT_MESH_TASK_CNT // Private defines #define BLE_LOG_TAG "BLE_LOG" #define SPI_OUT_BUS SPI2_HOST #define SPI_OUT_MAX_TRANSFER_SIZE (10240) -#define SPI_OUT_FRAME_HEAD_LEN (4) -#define SPI_OUT_FRAME_TAIL_LEN (4) -#define SPI_OUT_FRAME_OVERHEAD (8) -#define SPI_OUT_PACKET_LOSS_FRAME_SIZE (6) #define SPI_OUT_TRANS_ITVL_MIN_US (30) -#define SPI_OUT_UL_LOG_STR_BUF_SIZE (100) +#define SPI_OUT_LOG_STR_BUF_SIZE (100) +#define SPI_OUT_MALLOC(size) heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #if SPI_OUT_TS_SYNC_ENABLED -#define SPI_OUT_TS_SYNC_TIMEOUT (1000 * 1000) +#define SPI_OUT_TS_SYNC_TIMEOUT_MS (1000) +#define SPI_OUT_TS_SYNC_TIMEOUT_US (SPI_OUT_TS_SYNC_TIMEOUT_MS * 1000) #endif // SPI_OUT_TS_SYNC_ENABLED // Queue size defines @@ -52,8 +60,36 @@ #define SPI_OUT_LL_QUEUE_SIZE (0) #endif // SPI_OUT_LL_ENABLED +#if SPI_OUT_LE_AUDIO_ENABLED +#define SPI_OUT_LE_AUDIO_QUEUE_SIZE (SPI_OUT_PING_PONG_BUF_CNT) +#else +#define SPI_OUT_LE_AUDIO_QUEUE_SIZE (0) +#endif // SPI_OUT_LE_AUDIO_ENABLED + +#if SPI_OUT_HOST_ENABLED +#define SPI_OUT_HOST_QUEUE_SIZE (SPI_OUT_PING_PONG_BUF_CNT) +#else +#define SPI_OUT_HOST_QUEUE_SIZE (0) +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED +#define SPI_OUT_HCI_QUEUE_SIZE (SPI_OUT_PING_PONG_BUF_CNT) +#else +#define SPI_OUT_HCI_QUEUE_SIZE (0) +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED +#define SPI_OUT_MESH_QUEUE_SIZE (SPI_OUT_PING_PONG_BUF_CNT) +#else +#define SPI_OUT_MESH_QUEUE_SIZE (0) +#endif // SPI_OUT_MESH_ENABLED + #define SPI_OUT_SPI_MASTER_QUEUE_SIZE (SPI_OUT_UL_QUEUE_SIZE +\ - SPI_OUT_LL_QUEUE_SIZE) + SPI_OUT_LL_QUEUE_SIZE +\ + SPI_OUT_LE_AUDIO_QUEUE_SIZE +\ + SPI_OUT_HOST_QUEUE_SIZE +\ + SPI_OUT_HCI_QUEUE_SIZE +\ + SPI_OUT_MESH_QUEUE_SIZE) // Private typedefs typedef struct { @@ -68,16 +104,23 @@ typedef struct { typedef struct { spi_out_trans_cb_t *trans_cb[2]; uint8_t trans_cb_idx; - uint8_t frame_sn; + uint8_t type; uint16_t lost_frame_cnt; uint32_t lost_bytes_cnt; - uint8_t type; + uint32_t frame_sn; } spi_out_log_cb_t; +typedef struct { + TaskHandle_t task_handle; + spi_out_log_cb_t *log_cb; + uint8_t *str_buf; +} task_map_t; + typedef struct { uint16_t length; uint8_t source; - uint8_t frame_sn; + uint8_t type; + uint16_t frame_sn; } __attribute__((packed)) frame_head_t; typedef struct { @@ -89,7 +132,7 @@ typedef struct { typedef struct { uint8_t io_level; uint32_t lc_ts; - uint32_t esp_ts; + uint32_t os_ts; } __attribute__((packed)) ts_sync_data_t; // Private enums @@ -101,10 +144,11 @@ enum { enum { LOG_CB_TYPE_UL = 0, - LOG_CB_TYPE_LL_TASK, - LOG_CB_TYPE_LL_ISR, - LOG_CB_TYPE_LL_HCI, + LOG_CB_TYPE_LL, LOG_CB_TYPE_LE_AUDIO, + LOG_CB_TYPE_HOST, + LOG_CB_TYPE_HCI, + LOG_CB_TYPE_MESH, }; enum { @@ -114,6 +158,7 @@ enum { LL_LOG_FLAG_ISR, LL_LOG_FLAG_HCI, LL_LOG_FLAG_RAW, + LL_LOG_FLAG_HCI_UPSTREAM, }; enum { @@ -126,11 +171,7 @@ static bool spi_out_inited = false; static bool spi_out_enabled = false; static spi_device_handle_t spi_handle = NULL; static uint32_t last_tx_done_ts = 0; - -static bool ul_log_inited = false; -static SemaphoreHandle_t ul_log_mutex = NULL; -static spi_out_log_cb_t *ul_log_cb = NULL; -static uint8_t *ul_log_str_buf = NULL; +static uint32_t last_tx_done_os_ts = 0; #if SPI_OUT_LL_ENABLED static bool ll_log_inited = false; @@ -154,11 +195,6 @@ static esp_timer_handle_t ts_sync_timer = NULL; static esp_timer_handle_t flush_timer = NULL; #endif // SPI_OUT_FLUSH_TIMER_ENABLED -#if SPI_OUT_LE_AUDIO_ENABLED -static bool le_audio_log_inited = false; -static spi_out_log_cb_t *le_audio_log_cb = NULL; -#endif // SPI_OUT_LE_AUDIO_ENABLED - // Extern function declarations extern void esp_panic_handler_feed_wdts(void); @@ -168,7 +204,7 @@ static void spi_out_deinit_trans(spi_out_trans_cb_t **trans_cb); static void spi_out_tx_done_cb(spi_transaction_t *ret_trans); static inline void spi_out_append_trans(spi_out_trans_cb_t *trans_cb); -static int spi_out_log_cb_init(spi_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type); +static int spi_out_log_cb_init(spi_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type, uint8_t idx); static void spi_out_log_cb_deinit(spi_out_log_cb_t **log_cb); static inline bool spi_out_log_cb_check_trans(spi_out_log_cb_t *log_cb, uint16_t len, bool *need_append); static inline void spi_out_log_cb_append_trans(spi_out_log_cb_t *log_cb); @@ -178,12 +214,13 @@ static bool spi_out_log_cb_write(spi_out_log_cb_t *log_cb, const uint8_t *addr, bool with_checksum); static void spi_out_log_cb_write_loss(spi_out_log_cb_t *log_cb); static void spi_out_log_cb_dump(spi_out_log_cb_t *log_cb); +static bool spi_out_get_task_mapping(task_map_t *map, size_t num, + spi_out_log_cb_t **log_cb, uint8_t **str_buf); static void spi_out_log_flush(void); -static int spi_out_ul_log_init(void); -static void spi_out_ul_log_deinit(void); -static void spi_out_ul_log_write(uint8_t source, const uint8_t *addr, uint16_t len, bool with_ts); -static bool spi_out_ul_log_printf(uint8_t source, const char *format, va_list args, int offset); +static void spi_out_write_hex(spi_out_log_cb_t *log_cb, uint8_t source, + const uint8_t *addr, uint16_t len, bool with_ts); +static int spi_out_write_str(uint8_t *str_buf, const char *format, va_list args, int offset); #if SPI_OUT_LL_ENABLED static int spi_out_ll_log_init(void); @@ -216,7 +253,7 @@ extern uint32_t r_ble_lll_timer_current_tick_get(void); extern uint32_t r_os_cputime_get32(void); #define SPI_OUT_GET_LC_TIME r_os_cputime_get32() #else -#define SPI_OUT_GET_LC_TIME 0 +#define SPI_OUT_GET_LC_TIME esp_timer_get_time() #endif #if !SPI_OUT_TS_SYNC_SLEEP_SUPPORT @@ -224,22 +261,163 @@ static void esp_timer_cb_ts_sync(void); #endif // !SPI_OUT_TS_SYNC_SLEEP_SUPPORT #endif // SPI_OUT_TS_SYNC_ENABLED +// Private templates +#define IF_1(...) __VA_ARGS__ +#define IF_0(...) + +#define LOG_MODULE_INIT_FLAG(ID) (ID##_log_inited) +#define LOG_MODULE_CB_ARR(ID) (ID##_log_cb) +#define LOG_MODULE_CB_CNT(ID) (ID##_log_cb_cnt) +#define LOG_MODULE_CB(ID, IDX) (ID##_log_cb[IDX]) +#define LOG_MODULE_TASK_MAP(ID) (ID##_task_map) +#define LOG_MODULE_MUTEX(ID) (ID##_log_mutex) +#define LOG_MODULE_STR_BUF_ARR(ID) (ID##_log_str_buf) +#define LOG_MODULE_STR_BUF(ID, IDX) (ID##_log_str_buf[IDX]) +#define LOG_MODULE_INIT(ID) (spi_out_##ID##_log_init) +#define LOG_MODULE_DEINIT(ID) (spi_out_##ID##_log_deinit) +#define LOG_MODULE_FLUSH(ID) (spi_out_##ID##_log_flush) +#define LOG_MODULE_DUMP(ID) \ + do { \ + if (LOG_MODULE_INIT_FLAG(ID)) { \ + esp_rom_printf("[DUMP_START:\n"); \ + for (int i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + spi_out_log_cb_dump(LOG_MODULE_CB(ID, i)); \ + } \ + esp_rom_printf("\n:DUMP_END]\n"); \ + } \ + } while (0) + +#define DECLARE_LOG_MODULE(ID, TYPE, BUF_SIZE, NUM_CB, USE_MUTEX, USE_STR) \ + static bool LOG_MODULE_INIT_FLAG(ID) = false; \ + static spi_out_log_cb_t *LOG_MODULE_CB_ARR(ID)[NUM_CB] = { NULL }; \ + static const size_t LOG_MODULE_CB_CNT(ID) = (NUM_CB); \ + static task_map_t LOG_MODULE_TASK_MAP(ID)[NUM_CB] = {0}; \ + IF_##USE_MUTEX(static SemaphoreHandle_t LOG_MODULE_MUTEX(ID) = NULL;) \ + IF_##USE_STR(static uint8_t *LOG_MODULE_STR_BUF_ARR(ID)[NUM_CB] = {0};) \ + \ + static int LOG_MODULE_INIT(ID)(void); \ + static void LOG_MODULE_DEINIT(ID)(void); \ + static void LOG_MODULE_FLUSH(ID)(void); \ + \ + static int LOG_MODULE_INIT(ID)(void) { \ + if (LOG_MODULE_INIT_FLAG(ID)) { \ + return 0; \ + } \ + IF_##USE_MUTEX( \ + LOG_MODULE_MUTEX(ID) = xSemaphoreCreateMutex(); \ + if (!LOG_MODULE_MUTEX(ID)) { \ + goto failed; \ + } \ + ) \ + IF_##USE_STR( \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + LOG_MODULE_STR_BUF(ID, i) = (uint8_t *)SPI_OUT_MALLOC( \ + SPI_OUT_LOG_STR_BUF_SIZE \ + ); \ + if (!LOG_MODULE_STR_BUF(ID, i)) { \ + goto failed; \ + } \ + LOG_MODULE_TASK_MAP(ID)[i].str_buf = LOG_MODULE_STR_BUF(ID, i); \ + } \ + ) \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + if (spi_out_log_cb_init(&LOG_MODULE_CB(ID, i), BUF_SIZE, TYPE, i) != 0) \ + { \ + goto failed; \ + } \ + LOG_MODULE_TASK_MAP(ID)[i].log_cb = LOG_MODULE_CB(ID, i); \ + } \ + LOG_MODULE_INIT_FLAG(ID) = true; \ + return 0; \ + failed: \ + LOG_MODULE_DEINIT(ID)(); \ + return -1; \ + } \ + static void LOG_MODULE_DEINIT(ID)(void) { \ + LOG_MODULE_INIT_FLAG(ID) = false; \ + IF_##USE_MUTEX( \ + if (!LOG_MODULE_MUTEX(ID)) { \ + return; \ + } \ + xSemaphoreTake(LOG_MODULE_MUTEX(ID), portMAX_DELAY); \ + ) \ + IF_##USE_STR( \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + if (LOG_MODULE_STR_BUF(ID, i)) { \ + free(LOG_MODULE_STR_BUF(ID, i)); \ + LOG_MODULE_STR_BUF(ID, i) = NULL; \ + } \ + } \ + ) \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + spi_out_log_cb_deinit(&LOG_MODULE_CB(ID, i)); \ + LOG_MODULE_CB(ID, i) = NULL; \ + } \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); i++) { \ + memset(&LOG_MODULE_TASK_MAP(ID)[i], 0, sizeof(task_map_t)); \ + } \ + IF_##USE_MUTEX( \ + xSemaphoreGive(LOG_MODULE_MUTEX(ID)); \ + vSemaphoreDelete(LOG_MODULE_MUTEX(ID)); \ + LOG_MODULE_MUTEX(ID) = NULL; \ + ) \ + } \ + static void LOG_MODULE_FLUSH(ID)(void) { \ + if (!LOG_MODULE_INIT_FLAG(ID)) { \ + return; \ + } \ + IF_##USE_MUTEX( \ + xSemaphoreTake(LOG_MODULE_MUTEX(ID), portMAX_DELAY); \ + ) \ + for (size_t i = 0; i < LOG_MODULE_CB_CNT(ID); ++i) { \ + spi_out_log_cb_write_loss(LOG_MODULE_CB(ID, i)); \ + spi_out_log_cb_flush_trans(LOG_MODULE_CB(ID, i)); \ + spi_out_log_cb_append_trans(LOG_MODULE_CB(ID, i)); \ + } \ + IF_##USE_MUTEX( \ + xSemaphoreGive(LOG_MODULE_MUTEX(ID)); \ + ) \ + } + +DECLARE_LOG_MODULE(ul, LOG_CB_TYPE_UL, SPI_OUT_UL_TASK_BUF_SIZE, 1, 1, 1) + #if SPI_OUT_LE_AUDIO_ENABLED -static int spi_out_le_audio_log_init(void); -static void spi_out_le_audio_log_deinit(void); +DECLARE_LOG_MODULE(le_audio, LOG_CB_TYPE_LE_AUDIO, SPI_OUT_LE_AUDIO_BUF_SIZE, + SPI_OUT_LE_AUDIO_TASK_CNT, 0, 0) #endif // SPI_OUT_LE_AUDIO_ENABLED +#if SPI_OUT_HOST_ENABLED +DECLARE_LOG_MODULE(host, LOG_CB_TYPE_HOST, SPI_OUT_HOST_BUF_SIZE, + SPI_OUT_HOST_TASK_CNT, 0, 1) +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED +DECLARE_LOG_MODULE(hci, LOG_CB_TYPE_HCI, SPI_OUT_HCI_BUF_SIZE, + SPI_OUT_HCI_TASK_CNT, 0, 0) +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED +DECLARE_LOG_MODULE(mesh, LOG_CB_TYPE_MESH, SPI_OUT_MESH_BUF_SIZE, + SPI_OUT_MESH_TASK_CNT, 0, 1) +#endif // SPI_OUT_MESH_ENABLED + +// Private macros +#define SPI_OUT_FRAME_HEAD_LEN (sizeof(frame_head_t)) +#define SPI_OUT_FRAME_TAIL_LEN (sizeof(uint32_t)) +#define SPI_OUT_FRAME_OVERHEAD (SPI_OUT_FRAME_HEAD_LEN + SPI_OUT_FRAME_TAIL_LEN) +#define SPI_OUT_GET_FRAME_SN(VAR) __atomic_fetch_add(VAR, 1, __ATOMIC_RELAXED) + // Private functions static int spi_out_init_trans(spi_out_trans_cb_t **trans_cb, uint16_t buf_size) { // Memory allocations - *trans_cb = (spi_out_trans_cb_t *)malloc(sizeof(spi_out_trans_cb_t)); + *trans_cb = (spi_out_trans_cb_t *)SPI_OUT_MALLOC(sizeof(spi_out_trans_cb_t)); if (!(*trans_cb)) { return -1; } memset(*trans_cb, 0, sizeof(spi_out_trans_cb_t)); - uint8_t *buf = (uint8_t *)spi_bus_dma_memory_alloc(SPI_OUT_BUS, (size_t)buf_size, 0); + uint8_t *buf = (uint8_t *)SPI_OUT_MALLOC((size_t)buf_size); if (!buf) { free(*trans_cb); *trans_cb = NULL; @@ -271,6 +449,7 @@ static void spi_out_deinit_trans(spi_out_trans_cb_t **trans_cb) IRAM_ATTR static void spi_out_tx_done_cb(spi_transaction_t *ret_trans) { last_tx_done_ts = esp_timer_get_time(); + last_tx_done_os_ts = pdTICKS_TO_MS(xTaskGetTickCountFromISR()); spi_out_trans_cb_t *trans_cb = (spi_out_trans_cb_t *)ret_trans->user; trans_cb->length = 0; trans_cb->flag = TRANS_CB_FLAG_AVAILABLE; @@ -308,12 +487,11 @@ recycle: return; } -static int spi_out_log_cb_init(spi_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type) +static int spi_out_log_cb_init(spi_out_log_cb_t **log_cb, uint16_t buf_size, uint8_t type, uint8_t idx) { // Initialize log control block - *log_cb = (spi_out_log_cb_t *)malloc(sizeof(spi_out_log_cb_t)); + *log_cb = (spi_out_log_cb_t *)SPI_OUT_MALLOC(sizeof(spi_out_log_cb_t)); if (!(*log_cb)) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control block!"); return -1; } memset(*log_cb, 0, sizeof(spi_out_log_cb_t)); @@ -324,12 +502,11 @@ static int spi_out_log_cb_init(spi_out_log_cb_t **log_cb, uint16_t buf_size, uin ret |= spi_out_init_trans(&((*log_cb)->trans_cb[i]), buf_size); } if (ret != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize SPI transactions!"); spi_out_log_cb_deinit(log_cb); return -1; } - (*log_cb)->type = type; + (*log_cb)->type = (type << 4) | (idx); return 0; } @@ -372,7 +549,6 @@ IRAM_ATTR static inline bool spi_out_log_cb_check_trans(spi_out_log_cb_t *log_cb failed: log_cb->lost_bytes_cnt += frame_len; log_cb->lost_frame_cnt++; - log_cb->frame_sn++; return false; } @@ -413,27 +589,23 @@ IRAM_ATTR static bool spi_out_log_cb_write(spi_out_log_cb_t *log_cb, const uint8 frame_head_t head = { .length = total_length, .source = source, - .frame_sn = log_cb->frame_sn, + .type = log_cb->type, + .frame_sn = SPI_OUT_GET_FRAME_SN(&(log_cb->frame_sn)) & 0xFFFF, }; - uint32_t checksum = 0; - if (with_checksum) { - for (int i = 0; i < len; i++) { - checksum += addr[i]; - } - for (int i = 0; i < len_append; i++) { - checksum += addr_append[i]; - } - } memcpy(buf, (const uint8_t *)&head, SPI_OUT_FRAME_HEAD_LEN); memcpy(buf + SPI_OUT_FRAME_HEAD_LEN, addr, len); - if (len_append) { + if (len_append && addr_append) { memcpy(buf + SPI_OUT_FRAME_HEAD_LEN + len, addr_append, len_append); } + + uint32_t checksum = 0; + for (int i = 0; i < SPI_OUT_FRAME_HEAD_LEN + total_length; i++) { + checksum += buf[i]; + } memcpy(buf + SPI_OUT_FRAME_HEAD_LEN + total_length, &checksum, SPI_OUT_FRAME_TAIL_LEN); trans_cb->length += total_length + SPI_OUT_FRAME_OVERHEAD; - log_cb->frame_sn++; if ((trans_cb->buf_size - trans_cb->length) <= SPI_OUT_FRAME_OVERHEAD) { trans_cb->flag = TRANS_CB_FLAG_NEED_QUEUE; return true; @@ -481,13 +653,64 @@ static void spi_out_log_cb_dump(spi_out_log_cb_t *log_cb) } } +static void spi_out_update_task_mapping(int idx, void *ptr) +{ + // It is a must to clear task handle after task deletion + task_map_t *entry = (task_map_t *)ptr; + entry->task_handle = NULL; +} + +static bool spi_out_get_task_mapping(task_map_t *map, size_t num, + spi_out_log_cb_t **log_cb, uint8_t **str_buf) +{ + if (!map || !log_cb) { + return false; + } + + // Shall not be called in ISR + TaskHandle_t handle = xTaskGetCurrentTaskHandle(); + if (!handle) { + return false; + } + + // Check if the given task handle is already in map + for (size_t i = 0; i < num; i++) { + task_map_t *entry = &map[i]; + if (entry->task_handle == handle) { + *log_cb = entry->log_cb; + if (str_buf) { + *str_buf = entry->str_buf; + } + return true; + } + } + + // Task handle not in map, try to allocate free slot + bool ret = false; + portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED; + portENTER_CRITICAL_SAFE(&spinlock); + for (size_t i = 0; i < num; i++) { + task_map_t *entry = &map[i]; + if (entry->task_handle == NULL) { + vTaskSetThreadLocalStoragePointerAndDelCallback( + NULL, 0, (void *)entry, spi_out_update_task_mapping + ); + entry->task_handle = handle; + *log_cb = entry->log_cb; + if (str_buf) { + *str_buf = entry->str_buf; + } + ret = true; + break; + } + } + portEXIT_CRITICAL_SAFE(&spinlock); + return ret; +} + static void spi_out_log_flush(void) { - // Flush ul log - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - spi_out_log_cb_flush_trans(ul_log_cb); - spi_out_log_cb_append_trans(ul_log_cb); - xSemaphoreGive(ul_log_mutex); + LOG_MODULE_FLUSH(ul)(); #if SPI_OUT_LL_ENABLED if (esp_bt_controller_get_status() >= ESP_BT_CONTROLLER_STATUS_INITED) { @@ -495,6 +718,22 @@ static void spi_out_log_flush(void) SPI_OUT_LL_PUT_EV; } #endif // SPI_OUT_LL_ENABLED + +#if SPI_OUT_LE_AUDIO_ENABLED + LOG_MODULE_FLUSH(le_audio)(); +#endif // SPI_OUT_LE_AUDIO_ENABLED + +#if SPI_OUT_HOST_ENABLED + LOG_MODULE_FLUSH(host)(); +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED + LOG_MODULE_FLUSH(hci)(); +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED + LOG_MODULE_FLUSH(mesh)(); +#endif // SPI_OUT_MESH_ENABLED } #if SPI_OUT_FLUSH_TIMER_ENABLED @@ -506,106 +745,39 @@ static void esp_timer_cb_log_flush(void) } #endif // SPI_OUT_FLUSH_TIMER_ENABLED -static int spi_out_ul_log_init(void) -{ - if (ul_log_inited) { - return 0; - } - - // Initialize mutex - ul_log_mutex = xSemaphoreCreateMutex(); - if (!ul_log_mutex) { - ESP_LOGE(BLE_LOG_TAG, "Failed to create mutex for upper layer task log!"); - goto mutex_init_failed; - } - - // Initialize string buffer - ul_log_str_buf = (uint8_t *)malloc(SPI_OUT_UL_LOG_STR_BUF_SIZE); - if (!ul_log_str_buf) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize string buffer for upper layer task log!"); - goto str_buf_init_failed; - } - - // Initialize log control block - if (spi_out_log_cb_init(&ul_log_cb, SPI_OUT_UL_TASK_BUF_SIZE, LOG_CB_TYPE_UL) != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for upper layer task log!"); - goto log_cb_init_failed; - } - - // Initialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize upper layer task log!"); - ul_log_inited = true; - return 0; - -log_cb_init_failed: - if (ul_log_str_buf) { - free(ul_log_str_buf); - ul_log_str_buf = NULL; - } -str_buf_init_failed: - vSemaphoreDelete(ul_log_mutex); -mutex_init_failed: - return -1; -} - -static void spi_out_ul_log_deinit(void) -{ - if (!ul_log_inited) { - return; - } - ul_log_inited = false; - - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - if (ul_log_str_buf) { - free(ul_log_str_buf); - ul_log_str_buf = NULL; - } - spi_out_log_cb_deinit(&ul_log_cb); - xSemaphoreGive(ul_log_mutex); - - vSemaphoreDelete(ul_log_mutex); - ul_log_mutex = NULL; - - ESP_LOGI(BLE_LOG_TAG, "Succeeded to deinitialize upper layer log!"); - return; -} - -static void spi_out_ul_log_write(uint8_t source, const uint8_t *addr, uint16_t len, bool with_ts) +static void spi_out_write_hex(spi_out_log_cb_t *log_cb, uint8_t source, + const uint8_t *addr, uint16_t len, bool with_ts) { uint16_t total_len = with_ts? (len + sizeof(uint32_t)): len; bool need_append; - if (spi_out_log_cb_check_trans(ul_log_cb, total_len, &need_append)) { + if (spi_out_log_cb_check_trans(log_cb, total_len, &need_append)) { if (with_ts) { - uint32_t esp_ts = esp_timer_get_time(); - need_append |= spi_out_log_cb_write(ul_log_cb, (const uint8_t *)&esp_ts, + uint32_t os_ts = pdTICKS_TO_MS(xTaskGetTickCount()); + need_append |= spi_out_log_cb_write(log_cb, (const uint8_t *)&os_ts, sizeof(uint32_t), addr, len, source, true); } else { - need_append |= spi_out_log_cb_write(ul_log_cb, addr, len, NULL, 0, source, true); + need_append |= spi_out_log_cb_write(log_cb, addr, len, NULL, 0, source, true); } } if (need_append) { - spi_out_log_cb_append_trans(ul_log_cb); + spi_out_log_cb_append_trans(log_cb); } - spi_out_log_cb_write_loss(ul_log_cb); + spi_out_log_cb_write_loss(log_cb); } -static bool spi_out_ul_log_printf(uint8_t source, const char *format, va_list args, int offset) +static int spi_out_write_str(uint8_t *str_buf, const char *format, va_list args, int offset) { - int len = vsnprintf((char *)(ul_log_str_buf + offset), - SPI_OUT_UL_LOG_STR_BUF_SIZE - offset, format, args); + int len = vsnprintf((char *)(str_buf + offset), SPI_OUT_LOG_STR_BUF_SIZE - offset, format, args); if (len < 0) { - return false; + return 0; } len += offset; - // Truncate string if overflowed - if (len >= SPI_OUT_UL_LOG_STR_BUF_SIZE) { - len = SPI_OUT_UL_LOG_STR_BUF_SIZE - 1; - ul_log_str_buf[len] = '\0'; + if (len >= SPI_OUT_LOG_STR_BUF_SIZE) { + len = SPI_OUT_LOG_STR_BUF_SIZE - 1; + str_buf[len] = '\0'; } - - spi_out_ul_log_write(source, ul_log_str_buf, len, true); - return true; + return len; } #if SPI_OUT_LL_ENABLED @@ -616,21 +788,17 @@ static int spi_out_ll_log_init(void) } // Initialize log control blocks for controller task & ISR logs - if (spi_out_log_cb_init(&ll_task_log_cb, SPI_OUT_LL_TASK_BUF_SIZE, LOG_CB_TYPE_LL_TASK) != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for controller task!"); + if (spi_out_log_cb_init(&ll_task_log_cb, SPI_OUT_LL_TASK_BUF_SIZE, LOG_CB_TYPE_LL, 0) != 0) { goto task_log_cb_init_failed; } - if (spi_out_log_cb_init(&ll_isr_log_cb, SPI_OUT_LL_ISR_BUF_SIZE, LOG_CB_TYPE_LL_ISR) != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for controller ISR!"); + if (spi_out_log_cb_init(&ll_isr_log_cb, SPI_OUT_LL_ISR_BUF_SIZE, LOG_CB_TYPE_LL, 1) != 0) { goto isr_log_cb_init_failed; } - if (spi_out_log_cb_init(&ll_hci_log_cb, SPI_OUT_LL_HCI_BUF_SIZE, LOG_CB_TYPE_LL_HCI) != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for controller ISR!"); + if (spi_out_log_cb_init(&ll_hci_log_cb, SPI_OUT_LL_HCI_BUF_SIZE, LOG_CB_TYPE_LL, 2) != 0) { goto hci_log_cb_init_failed; } // Initialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize log control blocks for controller task & ISR!"); ll_log_inited = true; return 0; @@ -653,7 +821,6 @@ static void spi_out_ll_log_deinit(void) spi_out_log_cb_deinit(&ll_task_log_cb); // Deinitialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to deinitialize controller log!"); ll_log_inited = false; return; } @@ -661,6 +828,10 @@ static void spi_out_ll_log_deinit(void) // Context: LL task static void spi_out_ll_log_flush(void) { + if (!ll_log_inited) { + return; + } + // Flush task log and hci log buffer spi_out_log_cb_flush_trans(ll_task_log_cb); spi_out_log_cb_flush_trans(ll_hci_log_cb); @@ -692,7 +863,6 @@ static int spi_out_ts_sync_init(void) .dispatch_method = ESP_TIMER_TASK }; if (esp_timer_create(&timer_args, &ts_sync_timer) != ESP_OK) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize timestamp synchronizer timer!"); goto timer_init_failed; } #endif // !SPI_OUT_TS_SYNC_SLEEP_SUPPORT @@ -706,12 +876,10 @@ static int spi_out_ts_sync_init(void) .pull_up_en = 0 }; if (gpio_config(&io_conf) != ESP_OK) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize timestamp synchronizer IO!"); goto gpio_init_failed; } // Initialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize timestamp synchronizer!"); ts_sync_inited = true; return 0; @@ -742,7 +910,6 @@ static void spi_out_ts_sync_deinit(void) gpio_reset_pin(SPI_OUT_SYNC_IO_NUM); // Deinitialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to deinitialize timestamp synchronizer!"); ts_sync_inited = false; return; } @@ -756,7 +923,7 @@ static void spi_out_ts_sync_enable(bool enable) // Start timestamp sync timer if (ts_sync_timer) { if (!esp_timer_is_active(ts_sync_timer)) { - esp_timer_start_periodic(ts_sync_timer, SPI_OUT_TS_SYNC_TIMEOUT); + esp_timer_start_periodic(ts_sync_timer, SPI_OUT_TS_SYNC_TIMEOUT_US); } } #endif // !SPI_OUT_TS_SYNC_SLEEP_SUPPORT @@ -792,8 +959,8 @@ static void spi_out_ts_sync_toggle(void) // Set sync IO level gpio_set_level(SPI_OUT_SYNC_IO_NUM, (uint32_t)ts_sync_data.io_level); - // Get ESP timestamp - ts_sync_data.esp_ts = esp_timer_get_time(); + // Get OS timestamp + ts_sync_data.os_ts = pdTICKS_TO_MS(xTaskGetTickCountFromISR()); portEXIT_CRITICAL(&spinlock); // Exit critical } @@ -811,40 +978,6 @@ static void esp_timer_cb_ts_sync(void) #endif // !SPI_OUT_TS_SYNC_SLEEP_SUPPORT #endif // SPI_OUT_TS_SYNC_ENABLED -#if SPI_OUT_LE_AUDIO_ENABLED -static int spi_out_le_audio_log_init(void) -{ - if (le_audio_log_inited) { - return 0; - } - - // Initialize log control blocks for controller task & ISR logs - if (spi_out_log_cb_init(&le_audio_log_cb, SPI_OUT_LE_AUDIO_BUF_SIZE, LOG_CB_TYPE_LE_AUDIO) != 0) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize log control blocks for LE audio!"); - return -1; - } - - // Initialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize log control blocks for LE Audio!"); - le_audio_log_inited = true; - return 0; -} - -static void spi_out_le_audio_log_deinit(void) -{ - if (!le_audio_log_inited) { - return; - } - - spi_out_log_cb_deinit(&le_audio_log_cb); - - // Deinitialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to deinitialize LE audio log!"); - le_audio_log_inited = false; - return; -} -#endif // SPI_OUT_LE_AUDIO_ENABLED - // Public functions int ble_log_spi_out_init(void) { @@ -875,15 +1008,13 @@ int ble_log_spi_out_init(void) .flags = SPI_DEVICE_NO_RETURN_RESULT }; if (spi_bus_initialize(SPI_OUT_BUS, &bus_config, SPI_DMA_CH_AUTO) != ESP_OK) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize SPI bus!"); goto spi_bus_init_failed; } if (spi_bus_add_device(SPI_OUT_BUS, &dev_config, &spi_handle) != ESP_OK) { - ESP_LOGE(BLE_LOG_TAG, "Failed to add device to SPI bus!"); goto spi_device_add_failed; } - if (spi_out_ul_log_init() != 0) { + if (LOG_MODULE_INIT(ul)() != 0) { goto ul_log_init_failed; } @@ -900,24 +1031,40 @@ int ble_log_spi_out_init(void) #endif // SPI_OUT_TS_SYNC_ENABLED #if SPI_OUT_LE_AUDIO_ENABLED - if (spi_out_le_audio_log_init() != 0) { + if (LOG_MODULE_INIT(le_audio)() != 0) { goto le_audio_init_failed; } #endif // SPI_OUT_LE_AUDIO_ENABLED +#if SPI_OUT_HOST_ENABLED + if (LOG_MODULE_INIT(host)() != 0) { + goto host_init_failed; + } +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED + if (LOG_MODULE_INIT(hci)() != 0) { + goto hci_init_failed; + } +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED + if (LOG_MODULE_INIT(mesh)() != 0) { + goto mesh_init_failed; + } +#endif // SPI_OUT_MESH_ENABLED + #if SPI_OUT_FLUSH_TIMER_ENABLED esp_timer_create_args_t timer_args = { .callback = (esp_timer_cb_t)esp_timer_cb_log_flush, .dispatch_method = ESP_TIMER_TASK }; if (esp_timer_create(&timer_args, &flush_timer) != ESP_OK) { - ESP_LOGE(BLE_LOG_TAG, "Failed to initialize flush timer!"); goto timer_init_failed; } #endif // SPI_OUT_FLUSH_TIMER_ENABLED // Initialization done - ESP_LOGI(BLE_LOG_TAG, "Succeeded to initialize BLE log SPI output interface!"); spi_out_inited = true; spi_out_enabled = true; @@ -929,8 +1076,20 @@ int ble_log_spi_out_init(void) #if SPI_OUT_FLUSH_TIMER_ENABLED timer_init_failed: #endif // SPI_OUT_FLUSH_TIMER_ENABLED +#if SPI_OUT_MESH_ENABLED + LOG_MODULE_DEINIT(mesh)(); +mesh_init_failed: +#endif // SPI_OUT_MESH_ENABLED +#if SPI_OUT_HCI_ENABLED + LOG_MODULE_DEINIT(hci)(); +hci_init_failed: +#endif // SPI_OUT_HCI_ENABLED +#if SPI_OUT_HOST_ENABLED + LOG_MODULE_DEINIT(host)(); +host_init_failed: +#endif // SPI_OUT_HOST_ENABLED #if SPI_OUT_LE_AUDIO_ENABLED - spi_out_le_audio_log_deinit(); + LOG_MODULE_DEINIT(le_audio)(); le_audio_init_failed: #endif // SPI_OUT_LE_AUDIO_ENABLED #if SPI_OUT_TS_SYNC_ENABLED @@ -941,7 +1100,7 @@ ts_sync_init_failed: spi_out_ll_log_deinit(); ll_log_init_failed: #endif // SPI_OUT_LL_ENABLED - spi_out_ul_log_deinit(); + LOG_MODULE_DEINIT(ul)(); ul_log_init_failed: spi_bus_remove_device(spi_handle); spi_handle = NULL; @@ -958,6 +1117,10 @@ void ble_log_spi_out_deinit(void) return; } + // Reset init flag + spi_out_inited = false; + spi_out_enabled = false; + #if SPI_OUT_FLUSH_TIMER_ENABLED esp_timer_stop(flush_timer); esp_timer_delete(flush_timer); @@ -977,15 +1140,27 @@ void ble_log_spi_out_deinit(void) spi_out_ts_sync_deinit(); #endif // SPI_OUT_TS_SYNC_ENABLED +#if SPI_OUT_MESH_ENABLED + LOG_MODULE_DEINIT(mesh)(); +#endif // SPI_OUT_MESH_ENABLED + +#if SPI_OUT_HCI_ENABLED + LOG_MODULE_DEINIT(hci)(); +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_HOST_ENABLED + LOG_MODULE_DEINIT(host)(); +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_LE_AUDIO_ENABLED + LOG_MODULE_DEINIT(le_audio)(); +#endif // SPI_OUT_LE_AUDIO_ENABLED + #if SPI_OUT_LL_ENABLED spi_out_ll_log_deinit(); #endif // SPI_OUT_LL_ENABLED - spi_out_ul_log_deinit(); - - // Reset init flag - spi_out_inited = false; - spi_out_enabled = false; + LOG_MODULE_DEINIT(ul)(); } #if SPI_OUT_TS_SYNC_ENABLED @@ -1038,6 +1213,9 @@ IRAM_ATTR void ble_log_spi_out_ll_write(uint32_t len, const uint8_t *addr, uint3 } else if (flag & BIT(LL_LOG_FLAG_HCI)) { log_cb = ll_hci_log_cb; source = BLE_LOG_SPI_OUT_SOURCE_LL_HCI; + } else if (flag & BIT(LL_LOG_FLAG_HCI_UPSTREAM)) { + log_cb = ll_hci_log_cb; + source = BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM; } else { log_cb = ll_task_log_cb; source = BLE_LOG_SPI_OUT_SOURCE_ESP; @@ -1057,7 +1235,7 @@ IRAM_ATTR void ble_log_spi_out_ll_write(uint32_t len, const uint8_t *addr, uint3 #if SPI_OUT_TS_SYNC_SLEEP_SUPPORT if (ts_sync_inited && ts_sync_enabled) { - if (last_tx_done_ts >= (SPI_OUT_TS_SYNC_TIMEOUT + ts_sync_data.esp_ts)) { + if (last_tx_done_os_ts >= (SPI_OUT_TS_SYNC_TIMEOUT_MS + ts_sync_data.os_ts)) { if (spi_out_log_cb_check_trans(ll_task_log_cb, sizeof(ts_sync_data_t), &need_append)) { spi_out_ts_sync_toggle(); spi_out_log_cb_write(ll_task_log_cb, (const uint8_t *)&ts_sync_data, @@ -1093,119 +1271,62 @@ IRAM_ATTR void ble_log_spi_out_ll_log_ev_proc(void) int ble_log_spi_out_write(uint8_t source, const uint8_t *addr, uint16_t len) { - if (!ul_log_inited) { + if (!LOG_MODULE_INIT_FLAG(ul)) { return -1; } - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - spi_out_ul_log_write(source, addr, len, false); - xSemaphoreGive(ul_log_mutex); - return 0; -} - -int ble_log_spi_out_printf(uint8_t source, const char *format, ...) -{ - if (!ul_log_inited) { - return -1; - } - - if (!format) { - return -1; - } - - // Get arguments - va_list args; - va_start(args, format); - - va_list args_copy; - va_copy(args_copy, args); - - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - bool ret = spi_out_ul_log_printf(source, format, args_copy, 0); - xSemaphoreGive(ul_log_mutex); - - va_end(args_copy); - va_end(args); - return ret? 0: -1; -} - -int ble_log_spi_out_printf_enh(uint8_t source, uint8_t level, const char *tag, const char *format, ...) -{ - if (!ul_log_inited) { - return -1; - } - - if (!tag || !format) { - return -1; - } - - va_list args; - va_start(args, format); - - va_list args_copy; - va_copy(args_copy, args); - - // Create log prefix in the format: "[level][tag] " - bool ret = false; - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - int prefix_len = snprintf((char *)ul_log_str_buf, SPI_OUT_UL_LOG_STR_BUF_SIZE, - "[%d][%s]", level, tag? tag: "NULL"); - if ((prefix_len < 0) || (prefix_len >= SPI_OUT_UL_LOG_STR_BUF_SIZE)) { - goto exit; - } - ret = spi_out_ul_log_printf(source, format, args_copy, prefix_len); -exit: - xSemaphoreGive(ul_log_mutex); - va_end(args_copy); - va_end(args); - return ret? 0: -1; -} - -int ble_log_spi_out_write_with_ts(uint8_t source, const uint8_t *addr, uint16_t len) -{ - if (!ul_log_inited) { - return -1; - } - - xSemaphoreTake(ul_log_mutex, portMAX_DELAY); - spi_out_ul_log_write(source, addr, len, true); - xSemaphoreGive(ul_log_mutex); + xSemaphoreTake(LOG_MODULE_MUTEX(ul), portMAX_DELAY); + spi_out_write_hex(LOG_MODULE_CB(ul, 0), source, addr, len, false); + xSemaphoreGive(LOG_MODULE_MUTEX(ul)); return 0; } void ble_log_spi_out_dump_all(void) { + if (!spi_out_inited) { + return; + } + portMUX_TYPE spinlock = portMUX_INITIALIZER_UNLOCKED; portENTER_CRITICAL_SAFE(&spinlock); #if SPI_OUT_LL_ENABLED if (ll_log_inited) { - // Dump lower layer log buffer - esp_rom_printf("[LL_ISR_LOG_DUMP_START:\n"); + esp_rom_printf("[DUMP_START:\n"); spi_out_log_cb_dump(ll_isr_log_cb); - esp_rom_printf("\n:LL_ISR_LOG_DUMP_END]\n\n"); - - esp_rom_printf("[LL_TASK_LOG_DUMP_START:\n"); spi_out_log_cb_dump(ll_task_log_cb); - esp_rom_printf("\n:LL_TASK_LOG_DUMP_END]\n\n"); - - esp_rom_printf("[LL_HCI_LOG_DUMP_START:\n"); spi_out_log_cb_dump(ll_hci_log_cb); - esp_rom_printf("\n:LL_HCI_LOG_DUMP_END]\n\n"); + esp_rom_printf("\n:DUMP_END]\n\n"); } #endif // SPI_OUT_LL_ENABLED - if (ul_log_inited) { - // Dump upper layer log buffer - esp_rom_printf("[UL_LOG_DUMP_START:\n"); - spi_out_log_cb_dump(ul_log_cb); - esp_rom_printf("\n:UL_LOG_DUMP_END]\n\n"); - } + LOG_MODULE_DUMP(ul); + +#if SPI_OUT_LE_AUDIO_ENABLED + LOG_MODULE_DUMP(le_audio); +#endif // SPI_OUT_LE_AUDIO_ENABLED + +#if SPI_OUT_HOST_ENABLED + LOG_MODULE_DUMP(host); +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED + LOG_MODULE_DUMP(hci); +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED + LOG_MODULE_DUMP(mesh); +#endif // SPI_OUT_MESH_ENABLED + portEXIT_CRITICAL_SAFE(&spinlock); } void ble_log_spi_out_enable(bool enable) { + if (!spi_out_inited) { + return; + } + spi_out_enabled = enable; if (!enable) { @@ -1227,20 +1348,138 @@ void ble_log_spi_out_flush(void) #if CONFIG_BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED IRAM_ATTR void ble_log_spi_out_le_audio_write(const uint8_t *addr, uint16_t len) { - if (!le_audio_log_inited) { + if (!LOG_MODULE_INIT_FLAG(le_audio)) { + return; + } + + spi_out_log_cb_t *log_cb; + if (!spi_out_get_task_mapping(LOG_MODULE_TASK_MAP(le_audio), + LOG_MODULE_CB_CNT(le_audio), &log_cb, NULL)) { return; } bool need_append; - if (spi_out_log_cb_check_trans(le_audio_log_cb, len, &need_append)) { - need_append |= spi_out_log_cb_write(le_audio_log_cb, addr, len, NULL, 0, + if (spi_out_log_cb_check_trans(log_cb, len, &need_append)) { + need_append |= spi_out_log_cb_write(log_cb, addr, len, NULL, 0, BLE_LOG_SPI_OUT_SOURCE_LE_AUDIO, false); } if (need_append) { - spi_out_log_cb_append_trans(le_audio_log_cb); + spi_out_log_cb_append_trans(log_cb); } - spi_out_log_cb_write_loss(le_audio_log_cb); + spi_out_log_cb_write_loss(log_cb); return; } #endif // CONFIG_BT_BLE_LOG_SPI_OUT_LE_AUDIO_ENABLED + +#if SPI_OUT_HOST_ENABLED +int ble_log_spi_out_host_write(uint8_t source, const char *prefix, const char *format, ...) +{ + if (!LOG_MODULE_INIT_FLAG(host) || !prefix || !format) { + return -1; + } + + spi_out_log_cb_t *log_cb; + uint8_t *str_buf; + bool fallback = false; + if (!spi_out_get_task_mapping(LOG_MODULE_TASK_MAP(host), + LOG_MODULE_CB_CNT(host), &log_cb, &str_buf)) { + // NimBLE workaround + fallback = true; + xSemaphoreTake(LOG_MODULE_MUTEX(ul), portMAX_DELAY); + log_cb = LOG_MODULE_CB(ul, 0); + str_buf = LOG_MODULE_STR_BUF(ul, 0); + } + + // Copy prefix to string buffer + int prefix_len = strlen(prefix); + if (prefix_len >= SPI_OUT_LOG_STR_BUF_SIZE) { + return -1; + } + memcpy(str_buf, prefix, prefix_len); + + // Write string buffer + va_list args; + va_start(args, format); + int total_len = spi_out_write_str(str_buf, format, args, prefix_len); + va_end(args); + if (total_len == 0) { + return -1; + } + + // Write log control block buffer + spi_out_write_hex(log_cb, source, str_buf, (uint16_t)total_len, true); + + if (fallback) { + xSemaphoreGive(LOG_MODULE_MUTEX(ul)); + } + return 0; +} +#endif // SPI_OUT_HOST_ENABLED + +#if SPI_OUT_HCI_ENABLED +int ble_log_spi_out_hci_write(uint8_t source, const uint8_t *addr, uint16_t len) +{ + if (!LOG_MODULE_INIT_FLAG(hci)) { + return -1; + } + + if (source == BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM) { +#if SPI_OUT_LL_ENABLED + ble_log_spi_out_ll_write(len, addr, 0, NULL, BIT(LL_LOG_FLAG_HCI_UPSTREAM)); +#endif // SPI_OUT_LL_ENABLED + } + if (source == BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM) { + spi_out_log_cb_t *log_cb; + bool fallback = false; + if (!spi_out_get_task_mapping(LOG_MODULE_TASK_MAP(hci), + LOG_MODULE_CB_CNT(hci), &log_cb, NULL)) { + // NimBLE workaround + fallback = true; + xSemaphoreTake(LOG_MODULE_MUTEX(ul), portMAX_DELAY); + log_cb = LOG_MODULE_CB(ul, 0); + } + spi_out_write_hex(log_cb, source, addr, len, true); + if (fallback) { + xSemaphoreGive(LOG_MODULE_MUTEX(ul)); + } + } + return 0; +} +#endif // SPI_OUT_HCI_ENABLED + +#if SPI_OUT_MESH_ENABLED +int ble_log_spi_out_mesh_write(const char *prefix, const char *format, ...) +{ + if (!LOG_MODULE_INIT_FLAG(mesh) || !prefix || !format) { + return -1; + } + + spi_out_log_cb_t *log_cb; + uint8_t *str_buf; + if (!spi_out_get_task_mapping(LOG_MODULE_TASK_MAP(mesh), + LOG_MODULE_CB_CNT(mesh), &log_cb, &str_buf)) { + return -1; + } + + // Copy prefix to string buffer + int prefix_len = strlen(prefix); + if (prefix_len >= SPI_OUT_LOG_STR_BUF_SIZE) { + return -1; + } + memcpy(str_buf, prefix, prefix_len); + + // Write string buffer + va_list args; + va_start(args, format); + int total_len = spi_out_write_str(str_buf, format, args, prefix_len); + va_end(args); + if (total_len == 0) { + return -1; + } + + // Write log control block buffer + spi_out_write_hex(log_cb, BLE_LOG_SPI_OUT_SOURCE_MESH, str_buf, (uint16_t)total_len, true); + return 0; +} +#endif // SPI_OUT_MESH_ENABLED #endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED diff --git a/components/bt/common/ble_log/include/ble_log/ble_log_spi_out.h b/components/bt/common/ble_log/include/ble_log/ble_log_spi_out.h index 4d251c6d08a..e0d9213dcea 100644 --- a/components/bt/common/ble_log/include/ble_log/ble_log_spi_out.h +++ b/components/bt/common/ble_log/include/ble_log/ble_log_spi_out.h @@ -11,8 +11,8 @@ #include "driver/spi_master.h" #include "driver/gpio.h" #include "esp_timer.h" -#include "esp_log.h" #include "freertos/semphr.h" +#include "esp_heap_caps.h" // Public enums enum { @@ -26,21 +26,22 @@ enum { BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY_ISR, BLE_LOG_SPI_OUT_SOURCE_LL_HCI, BLE_LOG_SPI_OUT_SOURCE_LE_AUDIO, + BLE_LOG_SPI_OUT_SOURCE_MESH, BLE_LOG_SPI_OUT_SOURCE_USER = 0x10, BLE_LOG_SPI_OUT_SOURCE_SSC = 0xFD, BLE_LOG_SPI_OUT_SOURCE_SYNC, BLE_LOG_SPI_OUT_SOURCE_LOSS, }; -enum { - BLE_LOG_SPI_OUT_LEVEL_NONE = 0, - BLE_LOG_SPI_OUT_LEVEL_ERROR, - BLE_LOG_SPI_OUT_LEVEL_WARN, - BLE_LOG_SPI_OUT_LEVEL_INFO, - BLE_LOG_SPI_OUT_LEVEL_DEBUG, - BLE_LOG_SPI_OUT_LEVEL_VERBOSE, - BLE_LOG_SPI_OUT_LEVEL_MAX, -}; +#define BLE_LOG_SPI_OUT_LEVEL_NONE 0 +#define BLE_LOG_SPI_OUT_LEVEL_ERROR 1 +#define BLE_LOG_SPI_OUT_LEVEL_WARN 2 +#define BLE_LOG_SPI_OUT_LEVEL_INFO 3 +#define BLE_LOG_SPI_OUT_LEVEL_DEBUG 4 +#define BLE_LOG_SPI_OUT_LEVEL_VERBOSE 5 +#define BLE_LOG_SPI_OUT_STR(x) #x +#define BLE_LOG_SPI_OUT_XSTR(x) BLE_LOG_SPI_OUT_STR(x) +#define BLE_LOG_SPI_OUT_BUILD_PREFIX(LEVEL, TAG) "[" BLE_LOG_SPI_OUT_XSTR(LEVEL) "][" TAG "]" // Public functions int ble_log_spi_out_init(void); @@ -52,12 +53,12 @@ void ble_log_spi_out_ll_write(uint32_t len, const uint8_t *addr, uint32_t len_ap void ble_log_spi_out_ll_log_ev_proc(void); void ble_log_spi_out_ts_sync_start(void); void ble_log_spi_out_ts_sync_stop(void); -int ble_log_spi_out_printf(uint8_t source, const char *format, ...); -int ble_log_spi_out_printf_enh(uint8_t source, uint8_t level, const char *tag, const char *format, ...); -int ble_log_spi_out_write_with_ts(uint8_t source, const uint8_t *addr, uint16_t len); void ble_log_spi_out_dump_all(void); void ble_log_spi_out_enable(bool enable); void ble_log_spi_out_flush(void); void ble_log_spi_out_le_audio_write(const uint8_t *addr, uint16_t len); +int ble_log_spi_out_host_write(uint8_t source, const char *prefix, const char *format, ...); +int ble_log_spi_out_hci_write(uint8_t source, const uint8_t *addr, uint16_t len); +int ble_log_spi_out_mesh_write(const char *prefix, const char *format, ...); #endif // __BT_SPI_OUT_H__ diff --git a/components/bt/common/btc/core/btc_task.c b/components/bt/common/btc/core/btc_task.c index 0bbbb67a206..e213cd02385 100644 --- a/components/bt/common/btc/core/btc_task.c +++ b/components/bt/common/btc/core/btc_task.c @@ -484,10 +484,10 @@ static bt_status_t btc_init_mem(void) { #endif #if BTC_HF_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE - if ((hf_local_param_ptr = (hf_local_param_t *)osi_malloc(BTC_HF_NUM_CB * sizeof(hf_local_param_t))) == NULL) { + if ((hf_local_param_ptr = (hf_local_param_t *)osi_malloc(sizeof(hf_local_param_t))) == NULL) { goto error_exit; } - memset((void *)hf_local_param_ptr, 0, BTC_HF_NUM_CB * sizeof(hf_local_param_t)); + memset((void *)hf_local_param_ptr, 0, sizeof(hf_local_param_t)); #endif #if BTC_HF_CLIENT_INCLUDED == TRUE && HFP_DYNAMIC_MEMORY == TRUE diff --git a/components/bt/common/btc/profile/esp/blufi/nimble_host/esp_blufi.c b/components/bt/common/btc/profile/esp/blufi/nimble_host/esp_blufi.c index d40a4f4cf27..bf0c2b7ab0a 100644 --- a/components/bt/common/btc/profile/esp/blufi/nimble_host/esp_blufi.c +++ b/components/bt/common/btc/profile/esp/blufi/nimble_host/esp_blufi.c @@ -298,7 +298,7 @@ int esp_blufi_gatt_svr_deinit(void) return 0; } -static int +int esp_blufi_gap_event(struct ble_gap_event *event, void *arg) { struct ble_gap_conn_desc desc; @@ -331,7 +331,7 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg) } if (event->connect.status != 0) { /* Connection failed; resume advertising. */ - esp_blufi_adv_start(); + ((void(*)(void))arg)(); } return 0; case BLE_GAP_EVENT_DISCONNECT: @@ -366,7 +366,7 @@ esp_blufi_gap_event(struct ble_gap_event *event, void *arg) case BLE_GAP_EVENT_ADV_COMPLETE: ESP_LOGI(TAG, "advertise complete; reason=%d", event->adv_complete.reason); - esp_blufi_adv_start(); + ((void(*)(void))arg)(); return 0; case BLE_GAP_EVENT_SUBSCRIBE: @@ -461,7 +461,7 @@ void esp_blufi_adv_start(void) adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, - &adv_params, esp_blufi_gap_event, NULL); + &adv_params, esp_blufi_gap_event, esp_blufi_adv_start); if (rc != 0) { ESP_LOGE(TAG, "error enabling advertisement; rc=%d", rc); return; diff --git a/components/bt/common/hci_log/bt_hci_log.c b/components/bt/common/hci_log/bt_hci_log.c index ef0d22946f1..74c63f44489 100644 --- a/components/bt/common/hci_log/bt_hci_log.c +++ b/components/bt/common/hci_log/bt_hci_log.c @@ -10,6 +10,7 @@ #include "bt_common.h" #include "osi/mutex.h" #include "esp_attr.h" +#include "esp_timer.h" #if (BT_HCI_LOG_INCLUDED == TRUE) #define BT_HCI_LOG_PRINT_TAG (1) @@ -208,6 +209,8 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st { osi_mutex_t mutex_lock; uint8_t *g_hci_log_buffer; + int64_t ts; + uint8_t *temp_buf; if (!p_hci_log_ctl->p_hci_log_buffer) { return ESP_FAIL; @@ -219,6 +222,16 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st return ESP_FAIL; } + ts = esp_timer_get_time(); + + temp_buf = (uint8_t *)malloc(data_len + 8); + memset(temp_buf, 0x0, data_len + 8); + + memcpy(temp_buf, &ts, 8); + memcpy(temp_buf + 8, data, data_len); + + data_len += 8; + mutex_lock = p_hci_log_ctl->mutex_lock; osi_mutex_lock(&mutex_lock, OSI_MUTEX_MAX_TIMEOUT); @@ -250,7 +263,7 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st bt_hci_log_record_string(p_hci_log_ctl, str); } - bt_hci_log_record_hex(p_hci_log_ctl, data, data_len); + bt_hci_log_record_hex(p_hci_log_ctl, temp_buf, data_len); g_hci_log_buffer[p_hci_log_ctl->log_record_in] = '\n'; @@ -266,6 +279,8 @@ esp_err_t IRAM_ATTR bt_hci_log_record_data(bt_hci_log_t *p_hci_log_ctl, char *st osi_mutex_unlock(&mutex_lock); + free(temp_buf); + return ESP_OK; } diff --git a/components/bt/controller/esp32/bt.c b/components/bt/controller/esp32/bt.c index 4f95d120bab..d1a3ddadb13 100644 --- a/components/bt/controller/esp32/bt.c +++ b/components/bt/controller/esp32/bt.c @@ -1540,12 +1540,14 @@ static esp_err_t btdm_low_power_mode_init(void) bool select_src_ret __attribute__((unused)); bool set_div_ret __attribute__((unused)); if (btdm_lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) { + ESP_LOGI(BTDM_LOG_TAG, "Using main XTAL as clock source"); select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL); set_div_ret = btdm_lpclk_set_div(esp_clk_xtal_freq() * 2 / MHZ - 1); assert(select_src_ret && set_div_ret); btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; btdm_lpcycle_us = 2 << (btdm_lpcycle_us_frac); } else { // btdm_lpclk_sel == BTDM_LPCLK_SEL_XTAL32K + ESP_LOGI(BTDM_LOG_TAG, "Using external 32.768 kHz crystal/oscillator as clock source"); select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL32K); set_div_ret = btdm_lpclk_set_div(0); assert(select_src_ret && set_div_ret); diff --git a/components/bt/controller/esp32c2/Kconfig.in b/components/bt/controller/esp32c2/Kconfig.in index 69623987e08..2faa9c2077e 100644 --- a/components/bt/controller/esp32c2/Kconfig.in +++ b/components/bt/controller/esp32c2/Kconfig.in @@ -281,94 +281,103 @@ config BT_LE_CONTROLLER_TASK_STACK_SIZE help This configures stack size of NimBLE controller task -menuconfig BT_LE_CONTROLLER_LOG_ENABLED - bool "Controller log enable" - default n - help - Enable controller log +menu "Controller debug features" + menuconfig BT_LE_CONTROLLER_LOG_ENABLED + bool "Controller log enable" + default n + help + Enable controller log -config BT_LE_CONTROLLER_LOG_CTRL_ENABLED - bool "enable controller log module" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default y - help - Enable controller log module + config BT_LE_CONTROLLER_LOG_CTRL_ENABLED + bool "enable controller log module" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default y + help + Enable controller log module -config BT_LE_CONTROLLER_LOG_HCI_ENABLED - bool "enable HCI log module" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default y - help - Enable hci log module + config BT_LE_CONTROLLER_LOG_HCI_ENABLED + bool "enable HCI log module" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default y + help + Enable hci log module -config BT_LE_CONTROLLER_LOG_DUMP_ONLY - bool "Controller log dump mode only" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default y - help - Only operate in dump mode + config BT_LE_CONTROLLER_LOG_DUMP_ONLY + bool "Controller log dump mode only" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default y + help + Only operate in dump mode -config BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED - bool "Output ble controller logs to SPI bus (Experimental)" - depends on BT_LE_CONTROLLER_LOG_ENABLED - depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY - select BT_BLE_LOG_SPI_OUT_ENABLED - default n - help - Output ble controller logs to SPI bus + config BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED + bool "Output ble controller logs to SPI bus (Experimental)" + depends on BT_LE_CONTROLLER_LOG_ENABLED + depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY + select BT_BLE_LOG_SPI_OUT_ENABLED + default n + help + Output ble controller logs to SPI bus -config BT_LE_CONTROLLER_LOG_STORAGE_ENABLE - bool "Store ble controller logs to flash(Experimental)" - depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY - depends on BT_LE_CONTROLLER_LOG_ENABLED - default n - help - Store ble controller logs to flash memory. + config BT_LE_CONTROLLER_LOG_STORAGE_ENABLE + bool "Store ble controller logs to flash(Experimental)" + depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY + depends on BT_LE_CONTROLLER_LOG_ENABLED + default n + help + Store ble controller logs to flash memory. -config BT_LE_CONTROLLER_LOG_PARTITION_SIZE - int "size of ble controller log partition(Multiples of 4K)" - depends on BT_LE_CONTROLLER_LOG_STORAGE_ENABLE - default 65536 - help - The size of ble controller log partition shall be a multiples of 4K. - The name of log partition shall be "bt_ctrl_log". - The partition type shall be ESP_PARTITION_TYPE_DATA. - The partition sub_type shall be ESP_PARTITION_SUBTYPE_ANY. + config BT_LE_CONTROLLER_LOG_PARTITION_SIZE + int "size of ble controller log partition(Multiples of 4K)" + depends on BT_LE_CONTROLLER_LOG_STORAGE_ENABLE + default 65536 + help + The size of ble controller log partition shall be a multiples of 4K. + The name of log partition shall be "bt_ctrl_log". + The partition type shall be ESP_PARTITION_TYPE_DATA. + The partition sub_type shall be ESP_PARTITION_SUBTYPE_ANY. -config BT_LE_LOG_CTRL_BUF1_SIZE - int "size of the first BLE controller LOG buffer" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default 4096 - help - Configure the size of the first BLE controller LOG buffer. + config BT_LE_LOG_CTRL_BUF1_SIZE + int "size of the first BLE controller LOG buffer" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default 4096 + help + Configure the size of the first BLE controller LOG buffer. -config BT_LE_LOG_CTRL_BUF2_SIZE - int "size of the second BLE controller LOG buffer" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default 1024 - help - Configure the size of the second BLE controller LOG buffer. + config BT_LE_LOG_CTRL_BUF2_SIZE + int "size of the second BLE controller LOG buffer" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default 1024 + help + Configure the size of the second BLE controller LOG buffer. -config BT_LE_LOG_HCI_BUF_SIZE - int "size of the BLE HCI LOG buffer" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default 4096 - help - Configure the size of the BLE HCI LOG buffer. + config BT_LE_LOG_HCI_BUF_SIZE + int "size of the BLE HCI LOG buffer" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default 4096 + help + Configure the size of the BLE HCI LOG buffer. -config BT_LE_CONTROLLER_LOG_WRAP_PANIC_HANDLER_ENABLE - bool "Enable wrap panic handler" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default n - help - Wrap esp_panic_handler to get controller logs when PC pointer exception crashes. + config BT_LE_CONTROLLER_LOG_WRAP_PANIC_HANDLER_ENABLE + bool "Enable wrap panic handler" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default n + help + Wrap esp_panic_handler to get controller logs when PC pointer exception crashes. + + config BT_LE_CONTROLLER_LOG_TASK_WDT_USER_HANDLER_ENABLE + bool "Enable esp_task_wdt_isr_user_handler implementation" + depends on BT_LE_CONTROLLER_LOG_ENABLED + default n + help + Implement esp_task_wdt_isr_user_handler to get controller logs when task wdt issue is triggered. + + config BT_LE_MEM_CHECK_ENABLED + bool "Enable memory allocation check" + default n + help + Used in internal tests only. Enable the memory allocation check. +endmenu -config BT_LE_CONTROLLER_LOG_TASK_WDT_USER_HANDLER_ENABLE - bool "Enable esp_task_wdt_isr_user_handler implementation" - depends on BT_LE_CONTROLLER_LOG_ENABLED - default n - help - Implement esp_task_wdt_isr_user_handler to get controller logs when task wdt issue is triggered. config BT_LE_LL_RESOLV_LIST_SIZE int "BLE LL Resolving list size" range 1 5 @@ -584,7 +593,7 @@ config BT_LE_CCA_RSSI_THRESH int "CCA RSSI threshold value" depends on BT_LE_TX_CCA_ENABLED range 20 100 - default 20 + default 65 help Power threshold of CCA in unit of -1 dBm. diff --git a/components/bt/controller/esp32c2/bt.c b/components/bt/controller/esp32c2/bt.c index a329881eeb0..ffa15d3c9a9 100644 --- a/components/bt/controller/esp32c2/bt.c +++ b/components/bt/controller/esp32c2/bt.c @@ -141,7 +141,7 @@ extern void esp_panic_handler_feed_wdts(void); #endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED extern int ble_controller_deinit(void); extern int ble_controller_enable(uint8_t mode); -extern int ble_controller_disable(void); +extern void ble_controller_disable(void); extern int esp_register_ext_funcs (struct ext_funcs_t *); extern void esp_unregister_ext_funcs (void); extern int esp_ble_ll_set_public_addr(const uint8_t *addr); @@ -1077,9 +1077,9 @@ esp_err_t esp_bt_controller_disable(void) ESP_LOGW(NIMBLE_PORT_LOG_TAG, "invalid controller state"); return ESP_FAIL; } - if (ble_controller_disable() != 0) { - return ESP_FAIL; - } + ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; + + ble_controller_disable(); ble_stack_disable(); if (s_ble_active) { esp_phy_disable(PHY_MODEM_BT); @@ -1091,7 +1091,6 @@ esp_err_t esp_bt_controller_disable(void) #if CONFIG_SW_COEXIST_ENABLE coex_disable(); #endif - ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED; return ESP_OK; } @@ -1574,3 +1573,10 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv) #endif // CONFIG_BT_LE_SM_LEGACY || CONFIG_BT_LE_SM_SC #endif // (!CONFIG_BT_NIMBLE_ENABLED) && (CONFIG_BT_CONTROLLER_ENABLED) + +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit) +{ + bt_osi_mem_count_limit_set(count_limit); +} +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED diff --git a/components/bt/controller/esp32c3/Kconfig.in b/components/bt/controller/esp32c3/Kconfig.in index 98579251431..da1793dd8e0 100644 --- a/components/bt/controller/esp32c3/Kconfig.in +++ b/components/bt/controller/esp32c3/Kconfig.in @@ -414,10 +414,10 @@ menu "MODEM SLEEP Options" modem sleep to be used with both DFS and light sleep. config BT_CTRL_LPCLK_SEL_RTC_SLOW - bool "Internal 150kHz RC oscillator" + bool "Internal 136kHz RC oscillator" depends on RTC_CLK_SRC_INT_RC help - Internal 150kHz RC oscillator. The accuracy of this clock is a lot larger than 500ppm which is required + Internal 136kHz RC oscillator. The accuracy of this clock is a lot larger than 500ppm which is required in Bluetooth communication, so don't select this option in scenarios such as BLE connection state. endchoice @@ -597,6 +597,7 @@ menu "Controller debug log Options (Experimental)" depends on BT_CTRL_LE_LOG_EN depends on !BT_CTRL_LE_LOG_DUMP_ONLY select BT_BLE_LOG_SPI_OUT_ENABLED + select BT_BLE_LOG_SPI_OUT_LL_ENABLED default n help Output ble controller logs to SPI bus diff --git a/components/bt/controller/esp32c3/bt.c b/components/bt/controller/esp32c3/bt.c index 492aad634ea..a0e31c15def 100644 --- a/components/bt/controller/esp32c3/bt.c +++ b/components/bt/controller/esp32c3/bt.c @@ -552,7 +552,7 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b #if CONFIG_BT_CTRL_LE_LOG_SPI_OUT_EN static IRAM_ATTR void esp_bt_controller_spi_log_interface(uint32_t len, const uint8_t *addr, bool end) { - ble_log_spi_out_write(BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY, addr, len); + ble_log_spi_out_ll_write(len, addr, 0, NULL, 0); } #endif // CONFIG_BT_CTRL_LE_LOG_SPI_OUT_EN @@ -1651,15 +1651,11 @@ static esp_err_t btdm_low_power_mode_init(esp_bt_controller_config_t *cfg) #endif } } else if (s_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_RTC_SLOW) { // Internal 136kHz RC oscillator - if (rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_RC_SLOW) { - ESP_LOGW(BT_LOG_TAG, "Internal 136kHz RC oscillator. The accuracy of this clock is a lot larger than 500ppm which is " - "required in Bluetooth communication, so don't select this option in scenarios such as BLE connection state."); - } else { + if (rtc_clk_slow_src_get() != SOC_RTC_SLOW_CLK_SRC_RC_SLOW) { ESP_LOGW(BT_LOG_TAG, "Internal 136kHz RC oscillator not detected."); assert(0); } } else if (s_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) { - ESP_LOGI(BT_LOG_TAG, "Bluetooth will use main XTAL as Bluetooth sleep clock."); #if !CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP s_lp_cntl.no_light_sleep = 1; #endif @@ -1671,6 +1667,7 @@ static esp_err_t btdm_low_power_mode_init(esp_bt_controller_config_t *cfg) bool select_src_ret __attribute__((unused)); bool set_div_ret __attribute__((unused)); if (s_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_MAIN_XTAL) { + ESP_LOGI(BT_LOG_TAG, "Using main XTAL as clock source"); #ifdef CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON)); s_lp_cntl.main_xtal_pu = 1; @@ -1681,6 +1678,7 @@ static esp_err_t btdm_low_power_mode_init(esp_bt_controller_config_t *cfg) btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; btdm_lpcycle_us = 1 << (btdm_lpcycle_us_frac); } else if (s_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_EXT_32K_XTAL) { + ESP_LOGI(BT_LOG_TAG, "Using external 32.768 kHz crystal/oscillator as clock source"); select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL32K); set_div_ret = btdm_lpclk_set_div(0); assert(select_src_ret && set_div_ret); @@ -1689,6 +1687,8 @@ static esp_err_t btdm_low_power_mode_init(esp_bt_controller_config_t *cfg) (1000000 >> (15 - RTC_CLK_CAL_FRACT)); assert(btdm_lpcycle_us != 0); } else if (s_lp_cntl.lpclk_sel == ESP_BT_SLEEP_CLOCK_RTC_SLOW) { + ESP_LOGW(BT_LOG_TAG, "Using 136 kHz RC as clock source. The accuracy of this clock is a lot larger than 500ppm which is " + "required in Bluetooth communication, so don't select this option in scenarios such as BLE connection state."); select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_RTC_SLOW); set_div_ret = btdm_lpclk_set_div(0); assert(select_src_ret && set_div_ret); @@ -1810,6 +1810,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) #if CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED if (ble_log_spi_out_init() != 0) { ESP_LOGE(BT_LOG_TAG, "BLE Log SPI output init failed"); + err = ESP_ERR_NO_MEM; goto error; } #endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED diff --git a/components/bt/controller/esp32c5/Kconfig.in b/components/bt/controller/esp32c5/Kconfig.in index 989bb52df91..2982b6da8eb 100644 --- a/components/bt/controller/esp32c5/Kconfig.in +++ b/components/bt/controller/esp32c5/Kconfig.in @@ -681,7 +681,7 @@ config BT_LE_CCA_RSSI_THRESH int "CCA RSSI threshold value" depends on BT_LE_TX_CCA_ENABLED range 20 100 - default 20 + default 65 help Power threshold of CCA in unit of -1 dBm. @@ -812,3 +812,34 @@ config BT_LE_CTRL_FAST_CONN_DATA_TX_EN help If this option is enabled, The Controller will continue to Send an empty PDU after sending valid connection data within an interval. + +menu "Reserved Memory Config" + config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT + int "The value of reserved EXT ADV memory count at initialization" + range 0 4 + default 2 + help + This value sets the number the Controller will allocate for extended advertisement + instances at initialization process. If more extended advertisement instances are + enabled, those memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at advertising start process and possible advertising start failure + due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT. + + + config BT_LE_CONN_RESERVED_MEMORY_COUNT + int "The value of reserved CONN memory count at initialization" + range 0 70 + default 2 + help + This value sets the number the Controller will allocate for connection instances + at the initialization process. If more connection instances are enabled, those + memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at connection establishment process and possible connection + establishment failure due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + connection instances and the BT_LE_CONN_RESERVED_MEMORY_COUNT. +endmenu diff --git a/components/bt/controller/esp32c5/bt.c b/components/bt/controller/esp32c5/bt.c index 7d332a06fbd..e6070f520ca 100644 --- a/components/bt/controller/esp32c5/bt.c +++ b/components/bt/controller/esp32c5/bt.c @@ -1673,7 +1673,7 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv) #endif // CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED int IRAM_ATTR -ble_capture_info_user_handler(uint8_t type, uint32_t reason) +ble_capture_info_user_handler(uint8_t type, uint32_t reason, uint32_t param1, uint32_t param2) { int i; diff --git a/components/bt/controller/esp32c5/esp_bt_cfg.h b/components/bt/controller/esp32c5/esp_bt_cfg.h index 48a845a3fa8..01f9dc61826 100644 --- a/components/bt/controller/esp32c5/esp_bt_cfg.h +++ b/components/bt/controller/esp32c5/esp_bt_cfg.h @@ -280,6 +280,9 @@ extern "C" { #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) +#define BLE_LL_ADV_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT) +#define BLE_LL_CONN_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_CONNECTIONS, CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT) + #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) diff --git a/components/bt/controller/esp32c6/Kconfig.in b/components/bt/controller/esp32c6/Kconfig.in index 4501db3cb8f..f7b2a7db923 100644 --- a/components/bt/controller/esp32c6/Kconfig.in +++ b/components/bt/controller/esp32c6/Kconfig.in @@ -447,6 +447,12 @@ menu "Controller debug features" config BT_LE_PTR_CHECK_ENABLED bool "Enable boundary check for internal memory" default n + + config BT_LE_MEM_CHECK_ENABLED + bool "Enable memory allocation check" + default n + help + Used in internal tests only. Enable the memory allocation check. endmenu config BT_LE_LL_RESOLV_LIST_SIZE @@ -721,7 +727,7 @@ config BT_LE_CCA_RSSI_THRESH int "CCA RSSI threshold value" depends on BT_LE_TX_CCA_ENABLED range 20 100 - default 20 + default 65 help Power threshold of CCA in unit of -1 dBm. @@ -846,3 +852,34 @@ config BT_LE_CTRL_FAST_CONN_DATA_TX_EN help If this option is enabled, The Controller will continue to Send an empty PDU after sending valid connection data within an interval. + +menu "Reserved Memory Config" + config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT + int "The value of reserved EXT ADV memory count at initialization" + range 0 4 + default 2 + help + This value sets the number the Controller will allocate for extended advertisement + instances at initialization process. If more extended advertisement instances are + enabled, those memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at advertising start process and possible advertising start failure + due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT. + + + config BT_LE_CONN_RESERVED_MEMORY_COUNT + int "The value of reserved CONN memory count at initialization" + range 0 70 + default 2 + help + This value sets the number the Controller will allocate for connection instances + at the initialization process. If more connection instances are enabled, those + memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at connection establishment process and possible connection + establishment failure due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + connection instances and the BT_LE_CONN_RESERVED_MEMORY_COUNT. +endmenu diff --git a/components/bt/controller/esp32c6/ble.c b/components/bt/controller/esp32c6/ble.c index a1eb137489c..14374c11a4f 100644 --- a/components/bt/controller/esp32c6/ble.c +++ b/components/bt/controller/esp32c6/ble.c @@ -22,6 +22,21 @@ void conn_stack_deinitEnv(void); int conn_stack_enable(void); void conn_stack_disable(void); +int adv_stack_initEnv(void); +void adv_stack_deinitEnv(void); +int adv_stack_enable(void); +void adv_stack_disable(void); + +int extAdv_stack_initEnv(void); +void extAdv_stack_deinitEnv(void); +int extAdv_stack_enable(void); +void extAdv_stack_disable(void); + +int sync_stack_initEnv(void); +void sync_stack_deinitEnv(void); +int sync_stack_enable(void); +void sync_stack_disable(void); + #if CONFIG_BT_LE_ERROR_SIM_ENABLED int conn_errorSim_initEnv(void); void conn_errorSim_deinitEnv(void); @@ -104,6 +119,21 @@ int ble_stack_initEnv(void) #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED #endif // DEFAULT_BT_LE_MAX_CONNECTIONS + rc = adv_stack_initEnv(); + if (rc) { + return rc; + } + + rc = extAdv_stack_initEnv(); + if (rc) { + return rc; + } + + rc = sync_stack_initEnv(); + if (rc) { + return rc; + } + return 0; } @@ -116,6 +146,10 @@ void ble_stack_deinitEnv(void) conn_stack_deinitEnv(); #endif // DEFAULT_BT_LE_MAX_CONNECTIONS + + sync_stack_deinitEnv(); + extAdv_stack_deinitEnv(); + adv_stack_deinitEnv(); base_stack_deinitEnv(); } @@ -128,6 +162,21 @@ int ble_stack_enable(void) return rc; } + rc = adv_stack_enable(); + if (rc) { + return rc; + } + + rc = extAdv_stack_enable(); + if (rc) { + return rc; + } + + rc = sync_stack_enable(); + if (rc) { + return rc; + } + #if DEFAULT_BT_LE_MAX_CONNECTIONS rc = conn_stack_enable(); if (rc) { @@ -166,6 +215,8 @@ void ble_stack_disable(void) #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED conn_stack_disable(); #endif // DEFAULT_BT_LE_MAX_CONNECTIONS - + sync_stack_disable(); + extAdv_stack_disable(); + adv_stack_disable(); base_stack_disable(); } diff --git a/components/bt/controller/esp32c6/bt.c b/components/bt/controller/esp32c6/bt.c index 74e1d585555..123acde38c4 100644 --- a/components/bt/controller/esp32c6/bt.c +++ b/components/bt/controller/esp32c6/bt.c @@ -1744,7 +1744,7 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv) #endif // CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED int IRAM_ATTR -ble_capture_info_user_handler(uint8_t type, uint32_t reason) +ble_capture_info_user_handler(uint8_t type, uint32_t reason, uint32_t param1, uint32_t param2) { int i; @@ -1771,3 +1771,10 @@ ble_capture_info_user_handler(uint8_t type, uint32_t reason) } return 0; } + +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit) +{ + bt_osi_mem_count_limit_set(count_limit); +} +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED diff --git a/components/bt/controller/esp32c6/esp_bt_cfg.h b/components/bt/controller/esp32c6/esp_bt_cfg.h index f22c4c75be3..6def839e567 100644 --- a/components/bt/controller/esp32c6/esp_bt_cfg.h +++ b/components/bt/controller/esp32c6/esp_bt_cfg.h @@ -283,6 +283,9 @@ extern "C" { #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) +#define BLE_LL_ADV_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT) +#define BLE_LL_CONN_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_CONNECTIONS, CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT) + #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) diff --git a/components/bt/controller/esp32h2/Kconfig.in b/components/bt/controller/esp32h2/Kconfig.in index e7d935cd978..5ff989a8b4a 100644 --- a/components/bt/controller/esp32h2/Kconfig.in +++ b/components/bt/controller/esp32h2/Kconfig.in @@ -441,6 +441,12 @@ menu "Controller debug features" config BT_LE_PTR_CHECK_ENABLED bool "Enable boundary check for internal memory" default n + + config BT_LE_MEM_CHECK_ENABLED + bool "Enable memory allocation check" + default n + help + Used in internal tests only. Enable the memory allocation check. endmenu config BT_LE_LL_RESOLV_LIST_SIZE @@ -716,7 +722,7 @@ config BT_LE_CCA_RSSI_THRESH int "CCA RSSI threshold value" depends on BT_LE_TX_CCA_ENABLED range 20 100 - default 20 + default 65 help Power threshold of CCA in unit of -1 dBm. @@ -850,3 +856,34 @@ config BT_LE_CTRL_FAST_CONN_DATA_TX_EN help If this option is enabled, The Controller will continue to Send an empty PDU after sending valid connection data within an interval. + +menu "Reserved Memory Config" + config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT + int "The value of reserved EXT ADV memory count at initialization" + range 0 4 + default 2 + help + This value sets the number the Controller will allocate for extended advertisement + instances at initialization process. If more extended advertisement instances are + enabled, those memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at advertising start process and possible advertising start failure + due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum + extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT. + + + config BT_LE_CONN_RESERVED_MEMORY_COUNT + int "The value of reserved CONN memory count at initialization" + range 0 70 + default 2 + help + This value sets the number the Controller will allocate for connection instances + at the initialization process. If more connection instances are enabled, those + memory will be dynamically allocated. + Using reduced amount of reserved memory will save heap size at the cost of extra + time consumption at connection establishment process and possible connection + establishment failure due to memory shortage. + The actual reserved memory count will be the minimum value between the maximum connection instances and + the BT_LE_CONN_RESERVED_MEMORY_COUNT. +endmenu diff --git a/components/bt/controller/esp32h2/ble.c b/components/bt/controller/esp32h2/ble.c index 8aef45a9a89..a0faf1c4e59 100644 --- a/components/bt/controller/esp32h2/ble.c +++ b/components/bt/controller/esp32h2/ble.c @@ -22,6 +22,21 @@ void conn_stack_deinitEnv(void); int conn_stack_enable(void); void conn_stack_disable(void); +int adv_stack_initEnv(void); +void adv_stack_deinitEnv(void); +int adv_stack_enable(void); +void adv_stack_disable(void); + +int extAdv_stack_initEnv(void); +void extAdv_stack_deinitEnv(void); +int extAdv_stack_enable(void); +void extAdv_stack_disable(void); + +int sync_stack_initEnv(void); +void sync_stack_deinitEnv(void); +int sync_stack_enable(void); +void sync_stack_disable(void); + #if CONFIG_BT_LE_ERROR_SIM_ENABLED int conn_errorSim_initEnv(void); void conn_errorSim_deinitEnv(void); @@ -85,6 +100,22 @@ int ble_stack_initEnv(void) return rc; } + rc = adv_stack_initEnv(); + if (rc) { + return rc; + } + + rc = extAdv_stack_initEnv(); + if (rc) { + return rc; + } + + rc = sync_stack_initEnv(); + if (rc) { + return rc; + } + + #if DEFAULT_BT_LE_MAX_CONNECTIONS rc = conn_stack_initEnv(); if (rc) { @@ -109,7 +140,9 @@ void ble_stack_deinitEnv(void) #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED conn_stack_deinitEnv(); #endif // DEFAULT_BT_LE_MAX_CONNECTIONS - + sync_stack_deinitEnv(); + extAdv_stack_deinitEnv(); + adv_stack_deinitEnv(); base_stack_deinitEnv(); } @@ -122,6 +155,21 @@ int ble_stack_enable(void) return rc; } + rc = adv_stack_enable(); + if (rc) { + return rc; + } + + rc = extAdv_stack_enable(); + if (rc) { + return rc; + } + + rc = sync_stack_enable(); + if (rc) { + return rc; + } + #if DEFAULT_BT_LE_MAX_CONNECTIONS rc = conn_stack_enable(); if (rc) { @@ -160,6 +208,8 @@ void ble_stack_disable(void) #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED conn_stack_disable(); #endif // DEFAULT_BT_LE_MAX_CONNECTIONS - + sync_stack_disable(); + extAdv_stack_disable(); + adv_stack_disable(); base_stack_disable(); } diff --git a/components/bt/controller/esp32h2/bt.c b/components/bt/controller/esp32h2/bt.c index 22b1aaa3ebf..28672c244a2 100644 --- a/components/bt/controller/esp32h2/bt.c +++ b/components/bt/controller/esp32h2/bt.c @@ -1666,7 +1666,7 @@ int ble_sm_alg_gen_key_pair(uint8_t *pub, uint8_t *priv) #endif // CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED int IRAM_ATTR -ble_capture_info_user_handler(uint8_t type, uint32_t reason) +ble_capture_info_user_handler(uint8_t type, uint32_t reason, uint32_t param1, uint32_t param2) { int i; @@ -1693,3 +1693,10 @@ ble_capture_info_user_handler(uint8_t type, uint32_t reason) } return 0; } + +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit) +{ + bt_osi_mem_count_limit_set(count_limit); +} +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED diff --git a/components/bt/controller/esp32h2/esp_bt_cfg.h b/components/bt/controller/esp32h2/esp_bt_cfg.h index 48a845a3fa8..01f9dc61826 100644 --- a/components/bt/controller/esp32h2/esp_bt_cfg.h +++ b/components/bt/controller/esp32h2/esp_bt_cfg.h @@ -280,6 +280,9 @@ extern "C" { #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) +#define BLE_LL_ADV_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES, CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT) +#define BLE_LL_CONN_SM_RESERVE_CNT_N MIN(DEFAULT_BT_LE_MAX_CONNECTIONS, CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT) + #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) diff --git a/components/bt/controller/lib_esp32 b/components/bt/controller/lib_esp32 index 6d007b71671..37e0472ea26 160000 --- a/components/bt/controller/lib_esp32 +++ b/components/bt/controller/lib_esp32 @@ -1 +1 @@ -Subproject commit 6d007b7167146b31256b29fed31e04dc46989885 +Subproject commit 37e0472ea26fa0870e5b704c451b5290069a28c3 diff --git a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib index 06c5ef1481e..68d2b55c99c 160000 --- a/components/bt/controller/lib_esp32c2/esp32c2-bt-lib +++ b/components/bt/controller/lib_esp32c2/esp32c2-bt-lib @@ -1 +1 @@ -Subproject commit 06c5ef1481e6e5ff9308d6abe9c1e576d60c946f +Subproject commit 68d2b55c99c5fad51dcc6c269464a6adb59d0206 diff --git a/components/bt/controller/lib_esp32c3_family b/components/bt/controller/lib_esp32c3_family index 72599d583c2..0c68809d62e 160000 --- a/components/bt/controller/lib_esp32c3_family +++ b/components/bt/controller/lib_esp32c3_family @@ -1 +1 @@ -Subproject commit 72599d583c232ea78d6461b5b502426c6e5a1ec9 +Subproject commit 0c68809d62e432427de97b5294f6619307f62f40 diff --git a/components/bt/controller/lib_esp32c5/esp32c5-bt-lib b/components/bt/controller/lib_esp32c5/esp32c5-bt-lib index 19bce59850e..bfd839208ed 160000 --- a/components/bt/controller/lib_esp32c5/esp32c5-bt-lib +++ b/components/bt/controller/lib_esp32c5/esp32c5-bt-lib @@ -1 +1 @@ -Subproject commit 19bce59850e593a1e0231a1f051e24a1532c38d6 +Subproject commit bfd839208edeaf76ba3fc974031c8860e7ce9042 diff --git a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib index 841466ff3cf..f68cbf2768b 160000 --- a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib +++ b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib @@ -1 +1 @@ -Subproject commit 841466ff3cf6635bf061c18e836807ee7f99ce78 +Subproject commit f68cbf2768b4177794e9938e51221b2744c336b3 diff --git a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib index bd09406c74d..b83a28f7978 160000 --- a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib +++ b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib @@ -1 +1 @@ -Subproject commit bd09406c74d135d1d4e68c5e578540a8bcffbcac +Subproject commit b83a28f7978625d20147f8999aac53a08420bf7a diff --git a/components/bt/esp_ble_mesh/core/adv.c b/components/bt/esp_ble_mesh/core/adv.c index 79932a05829..f2bd9c60d86 100644 --- a/components/bt/esp_ble_mesh/core/adv.c +++ b/components/bt/esp_ble_mesh/core/adv.c @@ -2,7 +2,7 @@ /* * SPDX-FileCopyrightText: 2017 Intel Corporation - * SPDX-FileContributor: 2018-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2018-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -190,12 +190,11 @@ static inline int adv_send(struct net_buf *buf) #if CONFIG_BLE_MESH_PROXY_SOLIC_PDU_TX if (BLE_MESH_ADV(buf)->type == BLE_MESH_ADV_PROXY_SOLIC) { bt_mesh_adv_buf_ref_debug(__func__, buf, 3U, BLE_MESH_BUF_REF_SMALL); - struct bt_mesh_adv_data solic_ad[3] = { - BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_FLAGS, (BLE_MESH_AD_GENERAL | BLE_MESH_AD_NO_BREDR)), + struct bt_mesh_adv_data solic_ad[2] = { BLE_MESH_ADV_DATA_BYTES(BLE_MESH_DATA_UUID16_ALL, 0x59, 0x18), BLE_MESH_ADV_DATA(BLE_MESH_DATA_SVC_DATA16, buf->data, buf->len), }; - err = bt_le_adv_start(¶m, solic_ad, 3, NULL, 0); + err = bt_le_adv_start(¶m, solic_ad, ARRAY_SIZE(solic_ad), NULL, 0); } else #endif { diff --git a/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c b/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c index 2480494181f..2f3b3d351b8 100644 --- a/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c +++ b/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c @@ -1599,8 +1599,10 @@ static void bt_mesh_bta_gattc_cb(tBTA_GATTC_EVT event, tBTA_GATTC *p_data) for (i = 0; i < ARRAY_SIZE(bt_mesh_gattc_info); i++) { if (bt_mesh_gattc_info[i].conn.handle == handle) { if (bt_mesh_gattc_info[i].wr_desc_done == false) { - BT_DBG("Receive notification before finishing to write ccc"); + BT_WARN("Receive notification before finishing to write ccc"); +#if !CONFIG_BLE_MESH_BQB_TEST return; +#endif } conn = &bt_mesh_gattc_info[i].conn; diff --git a/components/bt/esp_ble_mesh/core/proxy_client.c b/components/bt/esp_ble_mesh/core/proxy_client.c index 016db7f2ce9..d89c5ff1fdf 100644 --- a/components/bt/esp_ble_mesh/core/proxy_client.c +++ b/components/bt/esp_ble_mesh/core/proxy_client.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -31,7 +31,7 @@ static struct bt_mesh_proxy_server { struct bt_mesh_conn *conn; - + bt_mesh_addr_t addr; enum __attribute__((packed)) { CLI_NONE, CLI_PROV, @@ -465,6 +465,7 @@ static void proxy_connected(bt_mesh_addr_t *addr, struct bt_mesh_conn *conn, int server->conn = bt_mesh_conn_ref(conn); server->conn_type = CLI_NONE; + memcpy(&server->addr, addr, sizeof(bt_mesh_addr_t)); net_buf_simple_reset(&server->buf); #if CONFIG_BLE_MESH_RPR_SRV && CONFIG_BLE_MESH_PB_GATT @@ -629,6 +630,12 @@ static ssize_t proxy_write_ccc(bt_mesh_addr_t *addr, struct bt_mesh_conn *conn) return 0; } +#if CONFIG_BLE_MESH_BQB_TEST + /* notify maybe received first */ + if (server->conn_type == CLI_PROXY) { + return 0; + } +#endif return -EINVAL; } @@ -641,6 +648,16 @@ static ssize_t proxy_recv_ntf(struct bt_mesh_conn *conn, uint8_t *data, uint16_t return -ENOTCONN; } +#if CONFIG_BLE_MESH_BQB_TEST + /* update conn type if notify received before write ccc */ + if (server->conn_type == CLI_NONE) { + server->conn_type = CLI_PROXY; + if (proxy_client_connect_cb) { + proxy_client_connect_cb(&server->addr, server - servers, server->net_idx); + } + } +#endif + if (server->conn_type == CLI_PROXY) { return proxy_recv(conn, NULL, data, len, 0, 0); } diff --git a/components/bt/esp_ble_mesh/core/proxy_server.c b/components/bt/esp_ble_mesh/core/proxy_server.c index 50d881e991f..cc98e03cdc4 100644 --- a/components/bt/esp_ble_mesh/core/proxy_server.c +++ b/components/bt/esp_ble_mesh/core/proxy_server.c @@ -1341,7 +1341,7 @@ int bt_mesh_proxy_server_segment_send(struct bt_mesh_conn *conn, uint8_t type, net_buf_simple_pull(msg, mtu); while (msg->len) { - if (msg->len + 1 < mtu) { + if (msg->len + 1 <= mtu) { net_buf_simple_push_u8(msg, BLE_MESH_PROXY_PDU_HDR(BLE_MESH_PROXY_SAR_LAST, type)); proxy_send(conn, msg->data, msg->len); break; diff --git a/components/bt/esp_ble_mesh/core/scan.c b/components/bt/esp_ble_mesh/core/scan.c index 9931c873eb5..4ddd2418d3c 100644 --- a/components/bt/esp_ble_mesh/core/scan.c +++ b/components/bt/esp_ble_mesh/core/scan.c @@ -2,7 +2,7 @@ /* * SPDX-FileCopyrightText: 2017 Intel Corporation - * SPDX-FileContributor: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -86,13 +86,14 @@ int bt_mesh_unprov_dev_info_query(uint8_t uuid[16], uint8_t addr[6], { uint8_t idx = 0; uint8_t cnt = 0; + uint8_t pair_num = unprov_dev_info_fifo.pair_num; - if (uuid == NULL || addr == NULL) { + if (uuid == NULL && addr == NULL) { BT_WARN("No available information to query"); return -1; } - while (cnt < unprov_dev_info_fifo.pair_num) { + while (cnt < pair_num) { idx = (cnt + unprov_dev_info_fifo.start_idx) % BLE_MESH_STORE_UNPROV_INFO_MAX_NUM; if (query_type & BLE_MESH_STORE_UNPROV_INFO_QUERY_TYPE_UUID) { if (!memcmp(unprov_dev_info_fifo.info[idx].addr, addr, 6)) { @@ -118,7 +119,7 @@ int bt_mesh_unprov_dev_info_query(uint8_t uuid[16], uint8_t addr[6], cnt++; } - if (cnt == unprov_dev_info_fifo.pair_num) { + if (cnt == pair_num) { return -1; } diff --git a/components/bt/esp_ble_mesh/lib/lib b/components/bt/esp_ble_mesh/lib/lib index a62a98132cd..50346b46ba8 160000 --- a/components/bt/esp_ble_mesh/lib/lib +++ b/components/bt/esp_ble_mesh/lib/lib @@ -1 +1 @@ -Subproject commit a62a98132cdec59d2f2745da7b0598964b38bdae +Subproject commit 50346b46ba845fd0b25552faea828de67a515da4 diff --git a/components/bt/host/bluedroid/Kconfig.in b/components/bt/host/bluedroid/Kconfig.in index 63c94c75dbc..cf3d40fe877 100644 --- a/components/bt/host/bluedroid/Kconfig.in +++ b/components/bt/host/bluedroid/Kconfig.in @@ -1262,7 +1262,7 @@ config BT_BLE_50_EXTEND_ADV_EN config BT_BLE_50_PERIODIC_ADV_EN bool "Enable BLE periodic advertising" - depends on BT_BLE_50_FEATURES_SUPPORTED + depends on BT_BLE_50_EXTEND_ADV_EN default y help This enables BLE periodic advertising @@ -1276,7 +1276,7 @@ config BT_BLE_50_EXTEND_SCAN_EN config BT_BLE_50_EXTEND_SYNC_EN bool "Enable BLE periodic advertising sync" - depends on BT_BLE_50_FEATURES_SUPPORTED + depends on BT_BLE_50_EXTEND_SCAN_EN default y help This enables BLE periodic advertising sync @@ -1290,21 +1290,21 @@ config BT_BLE_50_DTM_TEST_EN config BT_BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER bool "Enable BLE periodic advertising sync transfer feature" - depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR + depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_PERIODIC_ADV_EN && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR default n help This enables BLE periodic advertising sync transfer feature config BT_BLE_FEAT_PERIODIC_ADV_ENH bool "Enable periodic adv enhancements(adi support)" - depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR + depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_PERIODIC_ADV_EN && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR default n help Enable the periodic advertising enhancements config BT_BLE_FEAT_CREATE_SYNC_ENH bool "Enable create sync enhancements(reporting disable and duplicate filtering enable support)" - depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_FEATURES_SUPPORTED && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR + depends on (BT_BLUEDROID_ENABLED && BT_BLE_50_EXTEND_SYNC_EN && ((BT_CONTROLLER_ENABLED && SOC_ESP_NIMBLE_CONTROLLER) || BT_CONTROLLER_DISABLED)) # NOERROR default n help Enable the create sync enhancements @@ -1452,6 +1452,13 @@ config BT_BLE_FEAT_CONN_SUBRATING help Enable BLE connection subrating feature +config BT_BLE_VENDOR_HCI_EN + bool "Enable BLE Vendor HCI command and event" + depends on BT_BLE_ENABLED + default y + help + This enables BLE vendor HCI command and event + config BT_BLE_HIGH_DUTY_ADV_INTERVAL bool "Enable BLE high duty advertising interval feature" depends on BT_BLE_ENABLED diff --git a/components/bt/host/bluedroid/api/esp_bluedroid_hci.c b/components/bt/host/bluedroid/api/esp_bluedroid_hci.c index 0e6baf11185..ac64d17d049 100644 --- a/components/bt/host/bluedroid/api/esp_bluedroid_hci.c +++ b/components/bt/host/bluedroid/api/esp_bluedroid_hci.c @@ -67,9 +67,9 @@ void hci_host_send_packet(uint8_t *data, uint16_t len) #if (BT_HCI_LOG_INCLUDED == TRUE) bt_hci_log_record_hci_data(data[0], &data[1], len - 1); #endif -#if (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) - ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len); -#endif // (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) +#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED + ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len); +#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED #if (BT_CONTROLLER_INCLUDED == TRUE) esp_vhci_host_send_packet(data, len); #else /* BT_CONTROLLER_INCLUDED == TRUE */ diff --git a/components/bt/host/bluedroid/api/esp_gap_ble_api.c b/components/bt/host/bluedroid/api/esp_gap_ble_api.c index 453b5ea7ca9..5cd266eaa8d 100644 --- a/components/bt/host/bluedroid/api/esp_gap_ble_api.c +++ b/components/bt/host/bluedroid/api/esp_gap_ble_api.c @@ -131,19 +131,6 @@ esp_err_t esp_ble_gap_stop_advertising(void) return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); } - -esp_err_t esp_ble_gap_clear_advertising(void) -{ - btc_msg_t msg; - - ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - - msg.sig = BTC_SIG_API_CALL; - msg.pid = BTC_PID_GAP_BLE; - msg.act = BTC_GAP_BLE_ACT_CLEAR_ADV; - - return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); -} #endif // #if (BLE_42_ADV_EN == TRUE) #endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) @@ -442,7 +429,7 @@ esp_err_t esp_ble_gap_get_local_used_addr(esp_bd_addr_t local_used_addr, uint8_t } return ESP_OK; } - +#if ((BLE_42_SCAN_EN == TRUE) || (BLE_50_EXTEND_SCAN_EN == TRUE)) uint8_t *esp_ble_resolve_adv_data_by_type( uint8_t *adv_data, uint16_t adv_data_len, esp_ble_adv_data_type type, uint8_t *length) { if (length == NULL) { @@ -473,7 +460,7 @@ uint8_t *esp_ble_resolve_adv_data( uint8_t *adv_data, uint8_t type, uint8_t *len { return esp_ble_resolve_adv_data_by_type( adv_data, ESP_BLE_ADV_DATA_LEN_MAX + ESP_BLE_SCAN_RSP_DATA_LEN_MAX, (esp_ble_adv_data_type) type, length); } - +#endif // #if ((BLE_42_SCAN_EN == TRUE) || (BLE_50_EXTEND_SCAN_EN == TRUE)) #if (BLE_42_FEATURE_SUPPORT == TRUE) #if (BLE_42_ADV_EN == TRUE) esp_err_t esp_ble_gap_config_adv_data_raw(uint8_t *raw_data, uint32_t raw_data_len) @@ -1013,23 +1000,6 @@ esp_err_t esp_ble_gap_set_privacy_mode(esp_ble_addr_type_t addr_type, esp_bd_add == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); } -esp_err_t esp_ble_gap_set_csa_support(uint8_t csa_select) -{ - btc_msg_t msg; - btc_ble_gap_args_t arg; - - ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); - - msg.sig = BTC_SIG_API_CALL; - msg.pid = BTC_PID_GAP_BLE; - msg.act = BTC_GAP_BLE_SET_CSA_SUPPORT; - - arg.set_csa_support.csa_select = csa_select; - - return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gap_args_t), NULL, NULL) - == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); -} - #if (BLE_50_FEATURE_SUPPORT == TRUE) esp_err_t esp_ble_gap_read_phy(esp_bd_addr_t bd_addr) @@ -1713,6 +1683,7 @@ esp_err_t esp_ble_gap_set_periodic_adv_sync_trans_params(esp_bd_addr_t addr, con } #endif //#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE) +#if (BLE_VENDOR_HCI_EN == TRUE) esp_err_t esp_ble_gap_vendor_command_send(esp_ble_vendor_cmd_params_t *vendor_cmd_param) { btc_msg_t msg = {0}; @@ -1741,7 +1712,7 @@ esp_err_t esp_ble_gap_vendor_command_send(esp_ble_vendor_cmd_params_t *vendor_cm == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); } -esp_err_t esp_ble_gap_set_vendor_event_mask(uint32_t event_mask) +esp_err_t esp_ble_gap_set_vendor_event_mask(esp_ble_vendor_evt_mask_t event_mask) { btc_msg_t msg = {0}; btc_ble_gap_args_t arg; @@ -1759,6 +1730,37 @@ esp_err_t esp_ble_gap_set_vendor_event_mask(uint32_t event_mask) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); } +esp_err_t esp_ble_gap_clear_advertising(void) +{ + btc_msg_t msg; + + ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); + + msg.sig = BTC_SIG_API_CALL; + msg.pid = BTC_PID_GAP_BLE; + msg.act = BTC_GAP_BLE_ACT_CLEAR_ADV; + + return (btc_transfer_context(&msg, NULL, 0, NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); +} + +esp_err_t esp_ble_gap_set_csa_support(uint8_t csa_select) +{ + btc_msg_t msg; + btc_ble_gap_args_t arg; + + ESP_BLUEDROID_STATUS_CHECK(ESP_BLUEDROID_STATUS_ENABLED); + + msg.sig = BTC_SIG_API_CALL; + msg.pid = BTC_PID_GAP_BLE; + msg.act = BTC_GAP_BLE_SET_CSA_SUPPORT; + + arg.set_csa_support.csa_select = csa_select; + + return (btc_transfer_context(&msg, &arg, sizeof(btc_ble_gap_args_t), NULL, NULL) + == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); +} +#endif // (BLE_VENDOR_HCI_EN == TRUE) + #if (BLE_FEAT_POWER_CONTROL_EN == TRUE) esp_err_t esp_ble_gap_enhanced_read_transmit_power_level(uint16_t conn_handle, esp_ble_tx_power_phy_t phy) { diff --git a/components/bt/host/bluedroid/api/include/api/esp_avrc_api.h b/components/bt/host/bluedroid/api/include/api/esp_avrc_api.h index 0c3828ddda3..c31efbefe57 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_avrc_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_avrc_api.h @@ -145,6 +145,7 @@ typedef enum { ESP_AVRC_CT_SET_ABSOLUTE_VOLUME_RSP_EVT = 7, /*!< set absolute volume response event */ ESP_AVRC_CT_COVER_ART_STATE_EVT = 8, /*!< cover art client connection state changed event */ ESP_AVRC_CT_COVER_ART_DATA_EVT = 9, /*!< cover art client data event */ + ESP_AVRC_CT_PROF_STATE_EVT = 10, /*!< Indicate AVRCP controller init or deinit complete */ } esp_avrc_ct_cb_event_t; /// AVRC Target callback events @@ -155,6 +156,7 @@ typedef enum { ESP_AVRC_TG_SET_ABSOLUTE_VOLUME_CMD_EVT = 3, /*!< set absolute volume command from remote device */ ESP_AVRC_TG_REGISTER_NOTIFICATION_EVT = 4, /*!< register notification event */ ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT = 5, /*!< set application attribute value, attribute refer to esp_avrc_ps_attr_ids_t */ + ESP_AVRC_TG_PROF_STATE_EVT = 6, /*!< Indicate AVRCP target init or deinit complete */ } esp_avrc_tg_cb_event_t; /// AVRC metadata attribute mask @@ -303,6 +305,18 @@ typedef struct { uint8_t ct_cover_art_conn_num; /*!< Number of cover art client connections */ } esp_avrc_profile_status_t; +/** + * @brief Bluetooth AVRCP Initiation states + */ +typedef enum { + ESP_AVRC_INIT_SUCCESS = 0, /*!< Indicate init successful */ + ESP_AVRC_INIT_ALREADY, /*!< Indicate init repeated */ + ESP_AVRC_INIT_FAIL, /*!< Indicate init fail */ + ESP_AVRC_DEINIT_SUCCESS, /*!< Indicate deinit successful */ + ESP_AVRC_DEINIT_ALREADY, /*!< Indicate deinit repeated */ + ESP_AVRC_DEINIT_FAIL, /*!< Indicate deinit fail */ +} esp_avrc_init_state_t; + /// AVRC controller callback parameters typedef union { /** @@ -381,6 +395,14 @@ typedef union { uint16_t data_len; /*!< the data length of this data event, in bytes */ uint8_t *p_data; /*!< pointer to data, should copy to other buff before event callback return */ } cover_art_data; /*!< AVRC Cover Art data event */ + + /** + * @brief ESP_AVRC_CT_PROF_STATE_EVT + */ + struct avrc_ct_init_stat_param { + esp_avrc_init_state_t state; /*!< avrc ct initialization param */ + } avrc_ct_init_stat; /*!< status to indicate avrcp ct init or deinit */ + } esp_avrc_ct_cb_param_t; /// AVRC target callback parameters @@ -433,6 +455,13 @@ typedef union { esp_avrc_set_app_value_param_t *p_vals; /*!< point to the id and value of player application attribute */ } set_app_value; /*!< set player application value */ + /** + * @brief ESP_AVRC_TG_PROF_STATE_EVT + */ + struct avrc_tg_init_stat_param { + esp_avrc_init_state_t state; /*!< avrc tg initialization param */ + } avrc_tg_init_stat; /*!< status to indicate avrcp tg init or deinit */ + } esp_avrc_tg_cb_param_t; /** @@ -473,6 +502,7 @@ esp_err_t esp_avrc_ct_register_callback(esp_avrc_ct_cb_t callback); * @brief Initialize the bluetooth AVRCP controller module, This function should be called * after esp_bluedroid_enable() completes successfully. Note: AVRC cannot work independently, * AVRC should be used along with A2DP and AVRC should be initialized before A2DP. + * ESP_AVRC_CT_PROF_STATE_EVT with ESP_AVRC_INIT_SUCCESS will reported to the APP layer. * * @return * - ESP_OK: success @@ -487,6 +517,7 @@ esp_err_t esp_avrc_ct_init(void); * @brief De-initialize AVRCP controller module. This function should be called after * after esp_bluedroid_enable() completes successfully. Note: AVRC cannot work independently, * AVRC should be used along with A2DP and AVRC should be deinitialized before A2DP. + * ESP_AVRC_CT_PROF_STATE_EVT with ESP_AVRC_DEINIT_SUCCESS will reported to the APP layer. * * @return * - ESP_OK: success @@ -615,6 +646,7 @@ esp_err_t esp_avrc_tg_register_callback(esp_avrc_tg_cb_t callback); * @brief Initialize the bluetooth AVRCP target module, This function should be called * after esp_bluedroid_enable() completes successfully. Note: AVRC cannot work independently, * AVRC should be used along with A2DP and AVRC should be initialized before A2DP. + * ESP_AVRC_TG_PROF_STATE_EVT with ESP_AVRC_INIT_SUCCESS will reported to the APP layer. * * @return * - ESP_OK: success @@ -629,6 +661,7 @@ esp_err_t esp_avrc_tg_init(void); * @brief De-initialize AVRCP target module. This function should be called after * after esp_bluedroid_enable() completes successfully. Note: AVRC cannot work independently, * AVRC should be used along with A2DP and AVRC should be deinitialized before A2DP. + * ESP_AVRC_TG_PROF_STATE_EVT with ESP_AVRC_DEINIT_SUCCESS will reported to the APP layer. * * @return * - ESP_OK: success diff --git a/components/bt/host/bluedroid/api/include/api/esp_bt_defs.h b/components/bt/host/bluedroid/api/include/api/esp_bt_defs.h index 64762fd074e..d6a2718ab19 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_bt_defs.h +++ b/components/bt/host/bluedroid/api/include/api/esp_bt_defs.h @@ -282,8 +282,11 @@ typedef enum { /// white list address type typedef enum { - BLE_WL_ADDR_TYPE_PUBLIC = 0x00, - BLE_WL_ADDR_TYPE_RANDOM = 0x01, + BLE_WL_ADDR_TYPE_PUBLIC = 0x00, /*!< Public Device Address */ + BLE_WL_ADDR_TYPE_RANDOM = 0x01, /*!< Random Device Address */ +#if (CONFIG_BT_BLE_50_FEATURES_SUPPORTED) + BLE_WL_ADDR_TYPE_ANONYMOUS = 0xFF, /*!< Devices sending anonymous advertisements, use to enable anonymous advertising report for scanning */ +#endif // (CONFIG_BT_BLE_50_FEATURES_SUPPORTED) } esp_ble_wl_addr_type_t; /// Used to exchange the encryption key in the init key & response key diff --git a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h index 1c2240ff4c9..99de67d375b 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h @@ -1102,11 +1102,58 @@ typedef struct { } esp_ble_gap_past_params_t; #endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE) -typedef enum{ +typedef enum { ESP_BLE_NETWORK_PRIVACY_MODE = 0X00, /*!< Network Privacy Mode for peer device (default) */ ESP_BLE_DEVICE_PRIVACY_MODE = 0X01, /*!< Device Privacy Mode for peer device */ } esp_ble_privacy_mode_t; +#define ESP_BLE_VENDOR_SCAN_REQ_RECV_EVT_MASK BIT(0) /*!< Vendor BLE legacy SCAN_REQ received event mask */ +#define ESP_BLE_VENDOR_CHMAP_UPDATE_EVT_MASK BIT(1) /*!< Vendor BLE channel map update event mask */ +#define ESP_BLE_VENDOR_SLEEP_WAKEUP_EVT_MASK BIT(3) /*!< Vendor BLE sleep wakeup event mask */ +#define ESP_BLE_VENDOR_CONN_REQ_RECV_EVT_MASK BIT(4) /*!< Vendor BLE CONNECT_IND and AUX_CONNECT_REQ received event mask */ +#define ESP_BLE_VENDOR_CONN_RSP_RECV_EVT_MASK BIT(5) /*!< Vendor BLE AUX_CONNECT_RSP received event mask */ +typedef uint32_t esp_ble_vendor_evt_mask_t; + +#define ESP_BLE_VENDOR_PDU_RECV_EVT (0) /*!< Vendor BLE specify PDU received event */ +#define ESP_BLE_VENDOR_CHAN_MAP_UPDATE_EVT (1) /*!< Vendor BLE channel map update complete event */ +#define ESP_BLE_VENDOR_SLEEP_WAKEUP_EVT (2) /*!< Vendor BLE sleep wakeup event */ +typedef uint8_t esp_ble_vendor_evt_t; + +typedef enum { + ESP_BLE_VENDOR_PDU_SCAN_REQ = 0, /*!< SCAN_REQ PDU type */ + ESP_BLE_VENDOR_PDU_CONN_REQ, /*!< CONNECT_IND and AUX_CONNECT_REQ PDU type */ + ESP_BLE_VENDOR_PDU_CONN_RSP, /*!< AUX_CONNECT_RSP PDU type */ +} esp_ble_vendor_pdu_t; + +/** + * @brief BLE vendor event parameters union + */ +typedef union { + /** + * @brief ESP_BLE_VENDOR_PDU_RECV_EVT + */ + struct ble_pdu_recv_evt_param { + esp_ble_vendor_pdu_t type; /*!< The type of LE PDU */ + uint8_t handle; /*!< The handle of advertising set */ + esp_ble_addr_type_t addr_type; /*!< The address type of peer device */ + esp_bd_addr_t peer_addr; /*!< The address of peer device */ + } pdu_recv; /*!< Event parameter of ESP_BLE_VENDOR_PDU_RECV_EVT */ + /** + * @brief ESP_BLE_VENDOR_CHAN_MAP_UPDATE_EVT + */ + struct ble_chan_map_update_evt_param { + uint8_t status; /*!< Indicate the channel map update status (HCI error code) */ + uint16_t conn_handle; /*!< The connection handle */ + esp_gap_ble_channels ch_map; /*!< The channel map after updated */ + } chan_map_update; /*!< Event parameter of ESP_BLE_VENDOR_CHAN_MAP_UPDATE_EVT */ + /** + * @brief ESP_BLE_VENDOR_SLEEP_WAKEUP_EVT + */ + struct ble_sleep_wakeup_evt_param { + // No parameters + } sleep_wakeup; /*!< Event parameter of ESP_BLE_VENDOR_SLEEP_WAKEUP_EVT */ +} esp_ble_vendor_evt_param_t; + /** * @brief path loss report parameters */ @@ -1258,12 +1305,6 @@ typedef union { struct ble_adv_stop_cmpl_evt_param { esp_bt_status_t status; /*!< Indicate adv stop operation success status */ } adv_stop_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT */ - /** - * @brief ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT - */ - struct ble_adv_clear_cmpl_evt_param { - esp_bt_status_t status; /*!< Indicate adv clear operation success status */ - } adv_clear_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT */ #endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) /** * @brief ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT @@ -1665,6 +1706,19 @@ typedef union { esp_ble_dtm_update_evt_t update_evt; /*!< DTM state change event, 0x00: DTM TX start, 0x01: DTM RX start, 0x02:DTM end */ uint16_t num_of_pkt; /*!< number of packets received, only valid if update_evt is DTM_TEST_STOP_EVT and shall be reported as 0 for a transmitter */ } dtm_state_update; /*!< Event parameter of ESP_GAP_BLE_DTM_TEST_UPDATE_EVT */ + /** + * @brief ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT + */ + struct ble_set_privacy_mode_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate privacy mode set operation success status */ + } set_privacy_mode_cmpl; /*!< Event parameter of ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT */ +#if (BLE_VENDOR_HCI_EN == TRUE) + /** + * @brief ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT + */ + struct ble_adv_clear_cmpl_evt_param { + esp_bt_status_t status; /*!< Indicate adv clear operation success status */ + } adv_clear_cmpl; /*!< Event parameter of ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT */ /** * @brief ESP_GAP_BLE_VENDOR_CMD_COMPLETE_EVT */ @@ -1673,12 +1727,6 @@ typedef union { uint16_t param_len; /*!< The length of parameter buffer */ uint8_t *p_param_buf; /*!< The point of parameter buffer */ } vendor_cmd_cmpl; /*!< Event parameter of ESP_GAP_BLE_VENDOR_CMD_COMPLETE_EVT */ - /** - * @brief ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT - */ - struct ble_set_privacy_mode_cmpl_evt_param { - esp_bt_status_t status; /*!< Indicate privacy mode set operation success status */ - } set_privacy_mode_cmpl; /*!< Event parameter of ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT */ /** * @brief ESP_GAP_BLE_SET_CSA_SUPPORT_COMPLETE_EVT */ @@ -1695,10 +1743,12 @@ typedef union { * @brief ESP_GAP_BLE_VENDOR_HCI_EVT */ struct ble_vendor_hci_event_evt_param { - uint8_t subevt_code; /*!< Subevent code for vendor HCI event, the range is 0xC0 to 0xFF */ - uint8_t param_len; /*!< The length of the event parameter buffer */ - uint8_t *param_buf; /*!< The pointer of the event parameter buffer */ - } vendor_hci_evt; /*!< Event parameter buffer of ESP_GAP_BLE_VENDOR_HCI_EVT */ + esp_ble_vendor_evt_t subevt_code; /*!< Subevent code for BLE vendor HCI event */ + esp_ble_vendor_evt_param_t param; /*!< Event parameter of BLE vendor HCI subevent */ + uint8_t param_len; /*!< The length of the event parameter buffer (for internal use only) */ + uint8_t *param_buf; /*!< The pointer of the event parameter buffer (for internal use only) */ + } vendor_hci_evt; /*!< Event parameter of ESP_GAP_BLE_VENDOR_HCI_EVT */ +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) #if (BLE_FEAT_POWER_CONTROL_EN == TRUE) /** * @brief ESP_GAP_BLE_ENH_READ_TRANS_PWR_LEVEL_EVT @@ -3032,14 +3082,13 @@ esp_err_t esp_ble_gap_set_csa_support(uint8_t csa_select); /** * @brief This function is used to control which vendor events are generated by the HCI for the Host. * - * @param[in] event_mask: Bit0: Legacy scan request received event - * Bit1: Vendor channel map update complete event + * @param[in] event_mask: The BLE vendor HCI event mask * * @return * - ESP_OK : success * - other : failed */ -esp_err_t esp_ble_gap_set_vendor_event_mask(uint32_t event_mask); +esp_err_t esp_ble_gap_set_vendor_event_mask(esp_ble_vendor_evt_mask_t event_mask); /** * @brief This function is used to read the current and maximum transmit power levels of the local Controller. diff --git a/components/bt/host/bluedroid/api/include/api/esp_hidd_api.h b/components/bt/host/bluedroid/api/include/api/esp_hidd_api.h index 5250779d0d2..f16bbcb0fa8 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_hidd_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_hidd_api.h @@ -345,6 +345,11 @@ esp_err_t esp_bt_hid_device_unregister_app(void); * called after esp_bt_hid_device_init(). When the operation is complete, the callback function will * be called with ESP_HIDD_OPEN_EVT. * + * @note The connection between the HID Host and the HID Device is established as a virtual cable by default. + * A new HID Host connection request will only be accepted after the previous HID Host has been + * explicitly unplugged. For details on disconnection and virtual cable unplugging, please refer to API + * `esp_bt_hid_device_disconnect` and `esp_bt_hid_device_virtual_cable_unplug`. + * * @param[in] bd_addr: Remote host bluetooth device address. * * @return diff --git a/components/bt/host/bluedroid/api/include/api/esp_sdp_api.h b/components/bt/host/bluedroid/api/include/api/esp_sdp_api.h index 956af037301..5c74851f317 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_sdp_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_sdp_api.h @@ -225,6 +225,7 @@ typedef union { */ struct sdp_remove_record_evt_param { esp_sdp_status_t status; /*!< Status */ + int record_handle; /*!< SDP record handle */ } remove_record; /*!< SDP callback param of ESP_SDP_REMOVE_RECORD_COMP_EVT */ } esp_sdp_cb_param_t; diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_act.c b/components/bt/host/bluedroid/bta/dm/bta_dm_act.c index 2439ad5a69a..3ec7ae2aff5 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_act.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_act.c @@ -733,6 +733,7 @@ void bta_dm_cfg_coex_status (tBTA_DM_MSG *p_data) } #endif +#if (BLE_VENDOR_HCI_EN == TRUE) void bta_dm_send_vendor_hci(tBTA_DM_MSG *p_data) { BTM_VendorSpecificCommand(p_data->vendor_hci_cmd.opcode, @@ -741,6 +742,28 @@ void bta_dm_send_vendor_hci(tBTA_DM_MSG *p_data) p_data->vendor_hci_cmd.vendor_hci_cb); } +void bta_dm_ble_gap_clear_adv(tBTA_DM_MSG *p_data) +{ + if (BTM_BleClearAdv(p_data->ble_clear_adv.p_clear_adv_cback) == FALSE) { + if (p_data->ble_clear_adv.p_clear_adv_cback) { + (*p_data->ble_clear_adv.p_clear_adv_cback)(BTA_FAILURE); + } + } +} + +void bta_dm_ble_gap_set_csa_support(tBTA_DM_MSG *p_data) +{ + APPL_TRACE_API("%s, csa_select = %d", __func__, p_data->ble_set_csa_support.csa_select); + BTM_BleSetCsaSupport(p_data->ble_set_csa_support.csa_select, p_data->ble_set_csa_support.p_cback); +} + +void bta_dm_ble_gap_set_vendor_evt_mask(tBTA_DM_MSG *p_data) +{ + APPL_TRACE_API("%s, evt_mask = %d", __func__, p_data->ble_set_vendor_evt_mask.evt_mask); + BTM_BleSetVendorEventMask(p_data->ble_set_vendor_evt_mask.evt_mask, p_data->ble_set_vendor_evt_mask.p_cback); +} +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) + /******************************************************************************* ** ** Function bta_dm_set_afh_channels @@ -5822,15 +5845,6 @@ void bta_dm_ble_gap_dtm_stop(tBTA_DM_MSG *p_data) } #endif // #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) -void bta_dm_ble_gap_clear_adv(tBTA_DM_MSG *p_data) -{ - if (BTM_BleClearAdv(p_data->ble_clear_adv.p_clear_adv_cback) == FALSE) { - if (p_data->ble_clear_adv.p_clear_adv_cback) { - (*p_data->ble_clear_adv.p_clear_adv_cback)(BTA_FAILURE); - } - } -} - void bta_dm_ble_gap_set_rpa_timeout(tBTA_DM_MSG *p_data) { APPL_TRACE_API("%s, rpa_timeout = %d", __func__, p_data->set_rpa_timeout.rpa_timeout); @@ -5853,18 +5867,6 @@ void bta_dm_ble_gap_set_privacy_mode(tBTA_DM_MSG *p_data) p_data->ble_set_privacy_mode.privacy_mode, p_data->ble_set_privacy_mode.p_cback); } -void bta_dm_ble_gap_set_csa_support(tBTA_DM_MSG *p_data) -{ - APPL_TRACE_API("%s, csa_select = %d", __func__, p_data->ble_set_csa_support.csa_select); - BTM_BleSetCsaSupport(p_data->ble_set_csa_support.csa_select, p_data->ble_set_csa_support.p_cback); -} - -void bta_dm_ble_gap_set_vendor_evt_mask(tBTA_DM_MSG *p_data) -{ - APPL_TRACE_API("%s, evt_mask = %d", __func__, p_data->ble_set_vendor_evt_mask.evt_mask); - BTM_BleSetVendorEventMask(p_data->ble_set_vendor_evt_mask.evt_mask, p_data->ble_set_vendor_evt_mask.p_cback); -} - void bta_dm_read_ble_channel_map(tBTA_DM_MSG *p_data) { if (p_data && p_data->ch_map.read_ch_map_cb) { diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_api.c b/components/bt/host/bluedroid/bta/dm/bta_dm_api.c index 7b8a0d9a164..08510894e63 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_api.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_api.c @@ -231,6 +231,7 @@ void BTA_DmCfgCoexStatus(UINT8 op, UINT8 type, UINT8 status) } #endif +#if (BLE_VENDOR_HCI_EN == TRUE) void BTA_DmsendVendorHciCmd(UINT16 opcode, UINT8 param_len, UINT8 *p_param_buf, tBTA_SEND_VENDOR_HCI_CMPL_CBACK p_vendor_cmd_complete_cback) { tBTA_DM_API_SEND_VENDOR_HCI_CMD *p_msg; @@ -246,6 +247,57 @@ void BTA_DmsendVendorHciCmd(UINT16 opcode, UINT8 param_len, UINT8 *p_param_buf, } } +/******************************************************************************* +** +** Function BTA_DmBleClearAdv +** +** Description This function is called to clear Advertising +** +** Parameters p_adv_data_cback : clear adv complete callback. +** +** Returns None +** +*******************************************************************************/ +void BTA_DmBleClearAdv (tBTA_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cback) +{ + tBTA_DM_API_CLEAR_ADV *p_msg; + + if ((p_msg = (tBTA_DM_API_CLEAR_ADV *) + osi_malloc(sizeof(tBTA_DM_API_CLEAR_ADV))) != NULL) { + p_msg->hdr.event = BTA_DM_API_BLE_CLEAR_ADV_EVT; + p_msg->p_clear_adv_cback = p_clear_adv_cback; + + bta_sys_sendmsg(p_msg); + } +} + +void BTA_DmBleGapSetCsaSupport(uint8_t csa_select, tBTA_SET_CSA_SUPPORT_CMPL_CBACK *p_callback) +{ + tBTA_DM_API_BLE_SET_CSA_SUPPORT *p_msg; + + if ((p_msg = (tBTA_DM_API_BLE_SET_CSA_SUPPORT *)osi_malloc(sizeof(tBTA_DM_API_BLE_SET_CSA_SUPPORT))) + != NULL) { + p_msg->hdr.event = BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT; + p_msg->csa_select = csa_select; + p_msg->p_cback = p_callback; + bta_sys_sendmsg(p_msg); + } +} + +void BTA_DmBleGapSetVendorEventMask(uint32_t evt_mask, tBTA_SET_VENDOR_EVT_MASK_CBACK *p_callback) +{ + tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK *p_msg; + + if ((p_msg = (tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK *)osi_malloc(sizeof(tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK))) + != NULL) { + p_msg->hdr.event = BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT; + p_msg->evt_mask = evt_mask; + p_msg->p_cback = p_callback; + bta_sys_sendmsg(p_msg); + } +} +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) + #if (CLASSIC_BT_INCLUDED == TRUE) void BTA_DmConfigEir(tBTA_DM_EIR_CONF *eir_config) @@ -1896,30 +1948,6 @@ extern void BTA_DmBleBroadcast (BOOLEAN start, tBTA_START_STOP_ADV_CMPL_CBACK *p bta_sys_sendmsg(p_msg); } } - -/******************************************************************************* -** -** Function BTA_DmBleClearAdv -** -** Description This function is called to clear Advertising -** -** Parameters p_adv_data_cback : clear adv complete callback. -** -** Returns None -** -*******************************************************************************/ -void BTA_DmBleClearAdv (tBTA_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cback) -{ - tBTA_DM_API_CLEAR_ADV *p_msg; - - if ((p_msg = (tBTA_DM_API_CLEAR_ADV *) - osi_malloc(sizeof(tBTA_DM_API_CLEAR_ADV))) != NULL) { - p_msg->hdr.event = BTA_DM_API_BLE_CLEAR_ADV_EVT; - p_msg->p_clear_adv_cback = p_clear_adv_cback; - - bta_sys_sendmsg(p_msg); - } -} #endif // #if (BLE_42_ADV_EN == TRUE) #endif @@ -3014,32 +3042,6 @@ void BTA_DmClearRandAddress(void) } } -void BTA_DmBleGapSetCsaSupport(uint8_t csa_select, tBTA_SET_CSA_SUPPORT_CMPL_CBACK *p_callback) -{ - tBTA_DM_API_BLE_SET_CSA_SUPPORT *p_msg; - - if ((p_msg = (tBTA_DM_API_BLE_SET_CSA_SUPPORT *)osi_malloc(sizeof(tBTA_DM_API_BLE_SET_CSA_SUPPORT))) - != NULL) { - p_msg->hdr.event = BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT; - p_msg->csa_select = csa_select; - p_msg->p_cback = p_callback; - bta_sys_sendmsg(p_msg); - } -} - -void BTA_DmBleGapSetVendorEventMask(uint32_t evt_mask, tBTA_SET_VENDOR_EVT_MASK_CBACK *p_callback) -{ - tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK *p_msg; - - if ((p_msg = (tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK *)osi_malloc(sizeof(tBTA_DM_API_BLE_SET_VENDOR_EVT_MASK))) - != NULL) { - p_msg->hdr.event = BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT; - p_msg->evt_mask = evt_mask; - p_msg->p_cback = p_callback; - bta_sys_sendmsg(p_msg); - } -} - #if (BLE_FEAT_POWER_CONTROL_EN == TRUE) void BTA_DmBleGapEnhReadTransPwrLevel(uint16_t conn_handle, uint8_t phy) { diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_main.c b/components/bt/host/bluedroid/bta/dm/bta_dm_main.c index 3aaf6b49ea4..9fe5e7696e6 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_main.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_main.c @@ -67,7 +67,12 @@ const tBTA_DM_ACTION bta_dm_action[BTA_DM_MAX_EVT] = { #if (ESP_COEX_VSC_INCLUDED == TRUE) bta_dm_cfg_coex_status, /* BTA_DM_API_CFG_COEX_ST_EVT */ #endif +#if (BLE_VENDOR_HCI_EN == TRUE) bta_dm_send_vendor_hci, /* BTA_DM_API_SEND_VENDOR_HCI_CMD_EVT */ + bta_dm_ble_gap_clear_adv, /* BTA_DM_API_BLE_CLEAR_ADV_EVT */ + bta_dm_ble_gap_set_csa_support, /* BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT */ + bta_dm_ble_gap_set_vendor_evt_mask, /* BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT */ +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) #if (CLASSIC_BT_INCLUDED == TRUE) bta_dm_config_eir, /* BTA_DM_API_CONFIG_EIR_EVT */ bta_dm_set_page_timeout, /* BTA_DM_API_PAGE_TO_SET_EVT */ @@ -278,14 +283,9 @@ const tBTA_DM_ACTION bta_dm_action[BTA_DM_MAX_EVT] = { #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) bta_dm_ble_gap_dtm_stop, /* BTA_DM_API_DTM_STOP_EVT */ #endif // #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) -#if (BLE_42_ADV_EN == TRUE) - bta_dm_ble_gap_clear_adv, /* BTA_DM_API_BLE_CLEAR_ADV_EVT */ -#endif // #if (BLE_42_ADV_EN == TRUE) bta_dm_ble_gap_set_rpa_timeout, /* BTA_DM_API_SET_RPA_TIMEOUT_EVT */ bta_dm_ble_gap_add_dev_to_resolving_list, /* BTA_DM_API_ADD_DEV_TO_RESOLVING_LIST_EVT */ bta_dm_ble_gap_set_privacy_mode, /* BTA_DM_API_SET_PRIVACY_MODE_EVT */ - bta_dm_ble_gap_set_csa_support, /* BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT */ - bta_dm_ble_gap_set_vendor_evt_mask, /* BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT */ bta_dm_read_ble_channel_map, /* BTA_DM_API_BLE_READ_CH_MAP_EVT */ #endif #if (BLE_FEAT_ISO_EN == TRUE) diff --git a/components/bt/host/bluedroid/bta/dm/include/bta_dm_int.h b/components/bt/host/bluedroid/bta/dm/include/bta_dm_int.h index 4de7e01f150..e724b37c3a9 100644 --- a/components/bt/host/bluedroid/bta/dm/include/bta_dm_int.h +++ b/components/bt/host/bluedroid/bta/dm/include/bta_dm_int.h @@ -57,7 +57,12 @@ enum { #if (ESP_COEX_VSC_INCLUDED == TRUE) BTA_DM_API_CFG_COEX_ST_EVT, #endif +#if (BLE_VENDOR_HCI_EN == TRUE) BTA_DM_API_SEND_VENDOR_HCI_CMD_EVT, + BTA_DM_API_BLE_CLEAR_ADV_EVT, + BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT, + BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT, +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) #if (CLASSIC_BT_INCLUDED == TRUE) BTA_DM_API_CONFIG_EIR_EVT, BTA_DM_API_PAGE_TO_SET_EVT, @@ -269,14 +274,9 @@ enum { #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) BTA_DM_API_DTM_STOP_EVT, #endif // #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) -#if (BLE_42_ADV_EN == TRUE) - BTA_DM_API_BLE_CLEAR_ADV_EVT, -#endif // #if (BLE_42_ADV_EN == TRUE) BTA_DM_API_SET_RPA_TIMEOUT_EVT, BTA_DM_API_ADD_DEV_TO_RESOLVING_LIST_EVT, BTA_DM_API_SET_PRIVACY_MODE_EVT, - BTA_DM_API_BLE_SET_CSA_SUPPORT_EVT, - BTA_DM_API_BLE_SET_VENDOR_EVT_MASK_EVT, BTA_DM_API_BLE_READ_CH_MAP_EVT, #endif #if (BLE_FEAT_ISO_EN == TRUE) diff --git a/components/bt/host/bluedroid/btc/core/btc_main.c b/components/bt/host/bluedroid/btc/core/btc_main.c index cb92ff9beaf..d7330cc6f7d 100644 --- a/components/bt/host/bluedroid/btc/core/btc_main.c +++ b/components/bt/host/bluedroid/btc/core/btc_main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -146,6 +146,18 @@ uint32_t btc_get_ble_status(void) status |= BIT(BTC_BLE_STATUS_CONN); } + // Number of active ACL connection + extern uint8_t btm_ble_acl_active_count(void); + if (btm_ble_acl_active_count()) { + status |= BIT(BTC_BLE_STATUS_CONN); + } + + // Number of active L2C plcb + extern uint8_t l2cu_ble_plcb_active_count(void); + if (l2cu_ble_plcb_active_count()) { + status |= BIT(BTC_BLE_STATUS_CONN); + } + // Address resolve status extern uint8_t btm_get_ble_addr_resolve_disable_status(void); if (btm_get_ble_addr_resolve_disable_status()) { @@ -174,7 +186,7 @@ uint32_t btc_get_ble_status(void) #endif #endif - #if (BLE_50_FEATURE_SUPPORT == TRUE) + #if (BLE_50_EXTEND_ADV_EN == TRUE) // Number of active extended advertsing extern uint8_t btm_ble_ext_adv_active_count(void); if (btm_ble_ext_adv_active_count()) { @@ -182,18 +194,6 @@ uint32_t btc_get_ble_status(void) } #endif - // Number of active ACL connection - extern uint8_t btm_acl_active_count(void); - if (btm_acl_active_count()) { - status |= BIT(BTC_BLE_STATUS_CONN); - } - - // Number of active L2C plcb - extern uint8_t l2cu_plcb_active_count(void); - if (l2cu_plcb_active_count()) { - status |= BIT(BTC_BLE_STATUS_CONN); - } - #if (GATTC_INCLUDED == TRUE) // Number of registered GATTC APP extern uint8_t bta_gattc_cl_rcb_active_count(void); @@ -216,5 +216,12 @@ uint32_t btc_get_ble_status(void) } #endif + #if SMP_INCLUDED == TRUE + extern uint8_t smp_get_state(void); + if (smp_get_state()) { + status |= BIT(BTC_BLE_STATUS_SMP_STATE); + } + #endif + return status; } diff --git a/components/bt/host/bluedroid/btc/include/btc/btc_main.h b/components/bt/host/bluedroid/btc/include/btc/btc_main.h index 4cc77841418..83f87b56a3b 100644 --- a/components/bt/host/bluedroid/btc/include/btc/btc_main.h +++ b/components/bt/host/bluedroid/btc/include/btc/btc_main.h @@ -41,6 +41,7 @@ typedef enum { BTC_BLE_STATUS_GATTS_SRVC, // GATTS service exist BTC_BLE_STATUS_PRIVACY, // Privacy enabled BTC_BLE_STATUS_ADDR_RESOLVE_DISABLE,// Address resolution disable status + BTC_BLE_STATUS_SMP_STATE, // SMP state machine } tBTC_BLE_STATUS; future_t **btc_main_get_future_p(btc_main_future_type_t type); diff --git a/components/bt/host/bluedroid/btc/profile/std/avrc/btc_avrc.c b/components/bt/host/bluedroid/btc/profile/std/avrc/btc_avrc.c index 9f1a0cb54f0..d39fcca508e 100644 --- a/components/bt/host/bluedroid/btc/profile/std/avrc/btc_avrc.c +++ b/components/bt/host/bluedroid/btc/profile/std/avrc/btc_avrc.c @@ -303,10 +303,6 @@ static bool btc_avrc_tg_set_rn_supported_evt(uint16_t evt_set) static inline void btc_avrc_ct_cb_to_app(esp_avrc_ct_cb_event_t event, esp_avrc_ct_cb_param_t *param) { - if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { - return; - } - esp_avrc_ct_cb_t btc_avrc_ct_cb = (esp_avrc_ct_cb_t)btc_profile_cb_get(BTC_PID_AVRC_CT); if (btc_avrc_ct_cb) { btc_avrc_ct_cb(event, param); @@ -315,10 +311,6 @@ static inline void btc_avrc_ct_cb_to_app(esp_avrc_ct_cb_event_t event, esp_avrc_ static inline void btc_avrc_tg_cb_to_app(esp_avrc_tg_cb_event_t event, esp_avrc_tg_cb_param_t *param) { - if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { - return; - } - esp_avrc_tg_cb_t btc_avrc_tg_cb = (esp_avrc_tg_cb_t)btc_profile_cb_get(BTC_PID_AVRC_TG); if (btc_avrc_tg_cb) { btc_avrc_tg_cb(event, param); @@ -1093,27 +1085,39 @@ BOOLEAN btc_rc_get_connected_peer(BD_ADDR peer_addr) *******************************************************************************/ static void btc_avrc_ct_init(void) { + esp_avrc_init_state_t state = ESP_AVRC_INIT_SUCCESS; + BTC_TRACE_DEBUG("## %s ##", __FUNCTION__); - if (s_rc_ct_init == BTC_RC_CT_INIT_MAGIC) { - BTC_TRACE_WARNING("%s already initialized", __FUNCTION__); - return; - } - /// initialize CT-specific resources - s_rc_ct_init = BTC_RC_CT_INIT_MAGIC; + do { - /// initialize CT-TG shared resources - if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { - memset (&btc_rc_cb, 0, sizeof(btc_rc_cb_t)); - - if (!g_av_with_rc) { - g_av_with_rc = true; + if (s_rc_ct_init == BTC_RC_CT_INIT_MAGIC) { + BTC_TRACE_WARNING("%s already initialized", __FUNCTION__); + state = ESP_AVRC_INIT_ALREADY; + break; } - if (g_a2dp_on_init) { - BTC_TRACE_WARNING("AVRC Controller is expected to be initialized in advance of A2DP !!!"); + /// initialize CT-TG shared resources + if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { + if (g_a2dp_on_init) { + BTC_TRACE_WARNING("AVRC Controller is expected to be initialized in advance of A2DP !!!"); + state = ESP_AVRC_INIT_FAIL; + break; + } + memset (&btc_rc_cb, 0, sizeof(btc_rc_cb_t)); + + if (!g_av_with_rc) { + g_av_with_rc = true; + } } - } + + /// initialize CT-specific resources + s_rc_ct_init = BTC_RC_CT_INIT_MAGIC; + } while (0); + + esp_avrc_ct_cb_param_t param = {0}; + param.avrc_ct_init_stat.state = state; + btc_avrc_ct_cb_to_app(ESP_AVRC_CT_PROF_STATE_EVT, ¶m); } @@ -1128,29 +1132,37 @@ static void btc_avrc_ct_init(void) ***************************************************************************/ static void btc_avrc_ct_deinit(void) { + esp_avrc_init_state_t state = ESP_AVRC_DEINIT_SUCCESS; + BTC_TRACE_API("## %s ##", __FUNCTION__); - if (g_a2dp_on_deinit) { - BTC_TRACE_WARNING("A2DP already deinit, AVRC CT should deinit in advance of A2DP !!!"); - } - - if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { - BTC_TRACE_WARNING("%s not initialized", __FUNCTION__); - return; - } - - /// deinit CT-specific resources - s_rc_ct_init = 0; - - /// deinit CT-TG shared resources - if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { - memset (&btc_rc_cb, 0, sizeof(btc_rc_cb_t)); - if (g_av_with_rc) { - g_av_with_rc = false; + do { + if (g_a2dp_on_deinit) { + BTC_TRACE_WARNING("A2DP already deinit, AVRC CT should deinit in advance of A2DP !!!"); } - } - BTC_TRACE_API("## %s ## completed", __FUNCTION__); + if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { + BTC_TRACE_WARNING("%s not initialized", __FUNCTION__); + state = ESP_AVRC_DEINIT_ALREADY; + break; + } + + /// deinit CT-specific resources + s_rc_ct_init = 0; + + /// deinit CT-TG shared resources + if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { + memset (&btc_rc_cb, 0, sizeof(btc_rc_cb_t)); + if (g_av_with_rc) { + g_av_with_rc = false; + } + } + BTC_TRACE_API("## %s ## completed", __FUNCTION__); + } while (0); + + esp_avrc_ct_cb_param_t param = {0}; + param.avrc_ct_init_stat.state = state; + btc_avrc_ct_cb_to_app(ESP_AVRC_CT_PROF_STATE_EVT, ¶m); } static bt_status_t btc_avrc_ct_send_set_player_value_cmd(uint8_t tl, uint8_t attr_id, uint8_t value_id) @@ -1427,30 +1439,42 @@ static void btc_avrc_ct_cover_art_get_linked_thumbnail(UINT8 *image_handle) *******************************************************************************/ static void btc_avrc_tg_init(void) { + esp_avrc_init_state_t state = ESP_AVRC_INIT_SUCCESS; + BTC_TRACE_DEBUG("## %s ##", __FUNCTION__); - if (s_rc_tg_init == BTC_RC_TG_INIT_MAGIC) { - BTC_TRACE_WARNING("%s already initialized", __FUNCTION__); - return; - } - /// initialize TG-specific resources - memcpy(s_psth_supported_cmd, cs_psth_dft_supported_cmd, sizeof(s_psth_supported_cmd)); - s_rn_supported_evt = cs_rn_dft_supported_evt; - - /// initialize CT-TG shared resources - if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { - memset (&btc_rc_cb, 0, sizeof(btc_rc_cb)); - - if (!g_av_with_rc) { - g_av_with_rc = true; + do { + if (s_rc_tg_init == BTC_RC_TG_INIT_MAGIC) { + BTC_TRACE_WARNING("%s already initialized", __FUNCTION__); + state = ESP_AVRC_INIT_ALREADY; + break; } - if (g_a2dp_on_init) { - BTC_TRACE_WARNING("AVRC Target is expected to be initialized in advance of A2DP !!!"); - } - } + /// initialize CT-TG shared resources + if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { + if (g_a2dp_on_init) { + BTC_TRACE_WARNING("AVRC Target is expected to be initialized in advance of A2DP !!!"); + state = ESP_AVRC_INIT_FAIL; + break; + } - s_rc_tg_init = BTC_RC_TG_INIT_MAGIC; + memset (&btc_rc_cb, 0, sizeof(btc_rc_cb)); + + if (!g_av_with_rc) { + g_av_with_rc = true; + } + } + + /// initialize TG-specific resources + memcpy(s_psth_supported_cmd, cs_psth_dft_supported_cmd, sizeof(s_psth_supported_cmd)); + s_rn_supported_evt = cs_rn_dft_supported_evt; + + s_rc_tg_init = BTC_RC_TG_INIT_MAGIC; + } while (0); + + esp_avrc_tg_cb_param_t param = {0}; + param.avrc_tg_init_stat.state = state; + btc_avrc_tg_cb_to_app(ESP_AVRC_TG_PROF_STATE_EVT, ¶m); } @@ -1465,31 +1489,40 @@ static void btc_avrc_tg_init(void) ***************************************************************************/ static void btc_avrc_tg_deinit(void) { + esp_avrc_init_state_t state = ESP_AVRC_DEINIT_SUCCESS; + BTC_TRACE_API("## %s ##", __FUNCTION__); - if (g_a2dp_on_deinit) { - BTC_TRACE_WARNING("A2DP already deinit, AVRC TG should deinit in advance of A2DP !!!"); - } - - if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { - BTC_TRACE_WARNING("%s not initialized", __FUNCTION__); - return; - } - - /// deinit TG-specific resources - memset(s_psth_supported_cmd, 0, sizeof(s_psth_supported_cmd)); - s_rn_supported_evt = 0; - s_rc_tg_init = 0; - - /// deinit CT-TG shared resources - if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { - memset (&btc_rc_cb, 0, sizeof(btc_rc_cb)); - if (g_av_with_rc) { - g_av_with_rc = false; + do { + if (g_a2dp_on_deinit) { + BTC_TRACE_WARNING("A2DP already deinit, AVRC TG should deinit in advance of A2DP !!!"); } - } - BTC_TRACE_API("## %s ## completed", __FUNCTION__); + if (s_rc_tg_init != BTC_RC_TG_INIT_MAGIC) { + BTC_TRACE_WARNING("%s not initialized", __FUNCTION__); + state = ESP_AVRC_DEINIT_ALREADY; + break; + } + + /// deinit TG-specific resources + memset(s_psth_supported_cmd, 0, sizeof(s_psth_supported_cmd)); + s_rn_supported_evt = 0; + s_rc_tg_init = 0; + + /// deinit CT-TG shared resources + if (s_rc_ct_init != BTC_RC_CT_INIT_MAGIC) { + memset (&btc_rc_cb, 0, sizeof(btc_rc_cb)); + if (g_av_with_rc) { + g_av_with_rc = false; + } + } + + BTC_TRACE_API("## %s ## completed", __FUNCTION__); + } while (0); + + esp_avrc_tg_cb_param_t param = {0}; + param.avrc_tg_init_stat.state = state; + btc_avrc_tg_cb_to_app(ESP_AVRC_TG_PROF_STATE_EVT, ¶m); } static void btc_avrc_tg_send_rn_rsp(esp_avrc_rn_event_ids_t event_id, esp_avrc_rn_rsp_t rsp, const esp_avrc_rn_param_t *param) @@ -1640,9 +1673,11 @@ void btc_avrc_get_profile_status(esp_avrc_profile_status_t *param) if (btc_avrc_ct_init_p()) { param->avrc_ct_inited = true; } +#if BTC_AV_CA_INCLUDED if (btc_rc_cb.rc_cover_art_connected) { param->ct_cover_art_conn_num++; } +#endif } } diff --git a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c index 2a0f737b20f..07067748b1f 100644 --- a/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c +++ b/components/bt/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c @@ -467,25 +467,6 @@ static void btc_stop_adv_callback(uint8_t status) BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); } } - -static void btc_clear_adv_callback(uint8_t status) -{ - esp_ble_gap_cb_param_t param; - bt_status_t ret; - btc_msg_t msg = {0}; - - msg.sig = BTC_SIG_API_CB; - msg.pid = BTC_PID_GAP_BLE; - msg.act = ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT; - param.adv_clear_cmpl.status = btc_hci_to_esp_status(status); - - ret = btc_transfer_context(&msg, ¶m, - sizeof(esp_ble_gap_cb_param_t), NULL, NULL); - - if (ret != BT_STATUS_SUCCESS) { - BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); - } -} #endif // #if (BLE_42_ADV_EN == TRUE) void btc_update_duplicate_exceptional_list_callback(tBTA_STATUS status, uint8_t subcode, uint32_t length, uint8_t *device_info) @@ -1406,6 +1387,45 @@ void btc_dtm_stop_callback(void *p1) } #endif // #if ((BLE_42_DTM_TEST_EN == TRUE) || (BLE_50_DTM_TEST_EN == TRUE)) +static void btc_ble_set_privacy_mode_callback(UINT8 status) +{ + esp_ble_gap_cb_param_t param; + bt_status_t ret; + btc_msg_t msg = {0}; + + msg.sig = BTC_SIG_API_CB; + msg.pid = BTC_PID_GAP_BLE; + msg.act = ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT; + + param.set_privacy_mode_cmpl.status = btc_btm_status_to_esp_status(status); + + ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), NULL, NULL); + + if (ret != BT_STATUS_SUCCESS) { + BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); + } +} + +#if (BLE_VENDOR_HCI_EN == TRUE) +static void btc_clear_adv_callback(uint8_t status) +{ + esp_ble_gap_cb_param_t param; + bt_status_t ret; + btc_msg_t msg = {0}; + + msg.sig = BTC_SIG_API_CB; + msg.pid = BTC_PID_GAP_BLE; + msg.act = ESP_GAP_BLE_ADV_CLEAR_COMPLETE_EVT; + param.adv_clear_cmpl.status = btc_hci_to_esp_status(status); + + ret = btc_transfer_context(&msg, ¶m, + sizeof(esp_ble_gap_cb_param_t), NULL, NULL); + + if (ret != BT_STATUS_SUCCESS) { + BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); + } +} + static void btc_ble_vendor_hci_cmd_complete_callback(tBTA_VSC_CMPL *p_param) { bool param_invalid = false; @@ -1442,25 +1462,6 @@ static void btc_ble_vendor_hci_cmd_complete_callback(tBTA_VSC_CMPL *p_param) } } -static void btc_ble_set_privacy_mode_callback(UINT8 status) -{ - esp_ble_gap_cb_param_t param; - bt_status_t ret; - btc_msg_t msg = {0}; - - msg.sig = BTC_SIG_API_CB; - msg.pid = BTC_PID_GAP_BLE; - msg.act = ESP_GAP_BLE_SET_PRIVACY_MODE_COMPLETE_EVT; - - param.set_privacy_mode_cmpl.status = btc_btm_status_to_esp_status(status); - - ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), NULL, NULL); - - if (ret != BT_STATUS_SUCCESS) { - BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); - } -} - static void btc_ble_set_csa_support_callback(UINT8 status) { esp_ble_gap_cb_param_t param; @@ -1490,7 +1491,7 @@ static void btc_ble_set_vendor_evt_mask_callback(UINT8 status) msg.pid = BTC_PID_GAP_BLE; msg.act = ESP_GAP_BLE_SET_VENDOR_EVT_MASK_COMPLETE_EVT; - param.set_csa_support_cmpl.status = btc_btm_status_to_esp_status(status); + param.set_vendor_evt_mask_cmpl.status = btc_btm_status_to_esp_status(status); ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), NULL, NULL); @@ -1504,20 +1505,52 @@ static void btc_ble_vendor_hci_event_callback(UINT8 subevt_code, UINT8 param_len esp_ble_gap_cb_param_t param = {0}; bt_status_t ret; btc_msg_t msg = {0}; + esp_ble_vendor_evt_param_t *evt_param = ¶m.vendor_hci_evt.param; + bool copy_param = false; msg.sig = BTC_SIG_API_CB; msg.pid = BTC_PID_GAP_BLE; msg.act = ESP_GAP_BLE_VENDOR_HCI_EVT; param.vendor_hci_evt.subevt_code = subevt_code; - param.vendor_hci_evt.param_len = param_len; - param.vendor_hci_evt.param_buf = params; - ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), btc_gap_ble_cb_deep_copy, btc_gap_ble_cb_deep_free); + param.vendor_hci_evt.param_len = 0; + param.vendor_hci_evt.param_buf = NULL; + switch (subevt_code) { + case BLE_VENDOR_PDU_RECV_EVT: + param.vendor_hci_evt.subevt_code = ESP_BLE_VENDOR_PDU_RECV_EVT; + STREAM_TO_UINT8(evt_param->pdu_recv.type, params); + STREAM_TO_UINT8(evt_param->pdu_recv.handle, params); + STREAM_TO_UINT8(evt_param->pdu_recv.addr_type, params); + STREAM_TO_BDADDR(evt_param->pdu_recv.peer_addr, params); + break; + case BLE_VENDOR_CHMAP_UPDATE_EVT: + param.vendor_hci_evt.subevt_code = ESP_BLE_VENDOR_CHAN_MAP_UPDATE_EVT; + STREAM_TO_UINT8(evt_param->chan_map_update.status, params); + STREAM_TO_UINT16(evt_param->chan_map_update.conn_handle, params); + REVERSE_STREAM_TO_ARRAY(evt_param->chan_map_update.ch_map, params, ESP_GAP_BLE_CHANNELS_LEN); + break; + case BLE_VENDOR_SLEEP_WAKEUP_EVT: + param.vendor_hci_evt.subevt_code = ESP_BLE_VENDOR_SLEEP_WAKEUP_EVT; + // No parameters + break; + default: + copy_param = true; + break; + } + + if (copy_param) { + param.vendor_hci_evt.param_len = param_len; + param.vendor_hci_evt.param_buf = (param_len) ? params : NULL; + ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), btc_gap_ble_cb_deep_copy, btc_gap_ble_cb_deep_free); + } else { + ret = btc_transfer_context(&msg, ¶m, sizeof(esp_ble_gap_cb_param_t), NULL, NULL); + } if (ret != BT_STATUS_SUCCESS) { BTC_TRACE_ERROR("%s btc_transfer_context failed\n", __func__); } } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) void btc_get_whitelist_size(uint16_t *length) { @@ -1552,11 +1585,6 @@ static void btc_ble_stop_advertising(tBTA_START_STOP_ADV_CMPL_CBACK *stop_adv_cb BTA_DmBleBroadcast(stop_adv, stop_adv_cb); } - -static void btc_ble_clear_advertising(tBTA_CLEAR_ADV_CMPL_CBACK *clear_adv_cb) -{ - BTA_DmBleClearAdv(clear_adv_cb); -} #endif // #if (BLE_42_ADV_EN == TRUE) #endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) @@ -1899,6 +1927,7 @@ void btc_gap_ble_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src) } #endif // #if (BLE_50_EXTEND_ADV_EN == TRUE) #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) +#if (BLE_VENDOR_HCI_EN == TRUE) case BTC_GAP_BLE_ACT_VENDOR_HCI_CMD_EVT: { btc_ble_gap_args_t *src = (btc_ble_gap_args_t *)p_src; btc_ble_gap_args_t *dst = (btc_ble_gap_args_t *)p_dest; @@ -1912,6 +1941,7 @@ void btc_gap_ble_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src) } break; } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) case BTC_GAP_BLE_ACT_SET_DEV_NAME:{ btc_ble_gap_args_t *src = (btc_ble_gap_args_t *)p_src; btc_ble_gap_args_t *dst = (btc_ble_gap_args_t *)p_dest; @@ -2065,6 +2095,7 @@ void btc_gap_ble_arg_deep_free(btc_msg_t *msg) } #endif // #if (BLE_50_EXTEND_ADV_EN == TRUE) #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) +#if (BLE_VENDOR_HCI_EN == TRUE) case BTC_GAP_BLE_ACT_VENDOR_HCI_CMD_EVT: { uint8_t *p_param_buf = ((btc_ble_gap_args_t *)msg->arg)->vendor_cmd_send.p_param_buf; if (p_param_buf) { @@ -2072,6 +2103,7 @@ void btc_gap_ble_arg_deep_free(btc_msg_t *msg) } break; } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) case BTC_GAP_BLE_ACT_SET_DEV_NAME:{ char *p_name = ((btc_ble_gap_args_t *)msg->arg)->set_dev_name.device_name; if (p_name) { @@ -2156,9 +2188,6 @@ void btc_gap_ble_call_handler(btc_msg_t *msg) case BTC_GAP_BLE_ACT_STOP_ADV: btc_ble_stop_advertising(btc_stop_adv_callback); break; - case BTC_GAP_BLE_ACT_CLEAR_ADV: - btc_ble_clear_advertising(btc_clear_adv_callback); - break; #endif // #if (BLE_42_ADV_EN == TRUE) #endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) case BTC_GAP_BLE_ACT_UPDATE_CONN_PARAM: @@ -2618,22 +2647,27 @@ void btc_gap_ble_call_handler(btc_msg_t *msg) btc_ble_dtm_enhance_rx_start(arg_5->dtm_enh_rx_start.rx_channel, arg_5->dtm_enh_rx_start.phy, arg_5->dtm_enh_rx_start.modulation_index, btc_dtm_rx_start_callback); break; #endif // #if (BLE_50_DTM_TEST_EN == TRUE) + case BTC_GAP_BLE_SET_PRIVACY_MODE: + btc_ble_set_privacy_mode(arg->set_privacy_mode.addr_type, arg->set_privacy_mode.addr, + arg->set_privacy_mode.privacy_mode, btc_ble_set_privacy_mode_callback); + break; +#if (BLE_VENDOR_HCI_EN == TRUE) + case BTC_GAP_BLE_ACT_CLEAR_ADV: + BTA_DmBleClearAdv(btc_clear_adv_callback); + break; case BTC_GAP_BLE_ACT_VENDOR_HCI_CMD_EVT: BTA_DmsendVendorHciCmd(arg->vendor_cmd_send.opcode, arg->vendor_cmd_send.param_len, arg->vendor_cmd_send.p_param_buf, btc_ble_vendor_hci_cmd_complete_callback); break; - case BTC_GAP_BLE_SET_PRIVACY_MODE: - btc_ble_set_privacy_mode(arg->set_privacy_mode.addr_type, arg->set_privacy_mode.addr, - arg->set_privacy_mode.privacy_mode, btc_ble_set_privacy_mode_callback); - break; case BTC_GAP_BLE_SET_CSA_SUPPORT: BTA_DmBleGapSetCsaSupport(arg->set_csa_support.csa_select, btc_ble_set_csa_support_callback); break; case BTC_GAP_BLE_ACT_SET_VENDOR_EVT_MASK: BTA_DmBleGapSetVendorEventMask(arg->set_vendor_evt_mask.evt_mask, btc_ble_set_vendor_evt_mask_callback); break; +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) #if (BLE_FEAT_POWER_CONTROL_EN == TRUE) case BTC_GAP_BLE_ENH_READ_TRANS_POWER_LEVEL: BTA_DmBleGapEnhReadTransPwrLevel(arg_5->enh_read_trans_pwr_level.conn_handle, arg_5->enh_read_trans_pwr_level.phy); @@ -2682,7 +2716,9 @@ void btc_gap_callback_init(void) #if (BLE_50_FEATURE_SUPPORT == TRUE) BTM_BleGapRegisterCallback(btc_ble_5_gap_callback); #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) +#if (BLE_VENDOR_HCI_EN == TRUE) BTM_BleRegisterVendorHciEventCallback(btc_ble_vendor_hci_event_callback); +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) } bool btc_gap_ble_init(void) diff --git a/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c b/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c index e1b070c24b9..c7fa57f0b06 100644 --- a/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c +++ b/components/bt/host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c @@ -66,7 +66,7 @@ static UINT16 btc_max_hf_clients = BTC_HF_NUM_CB; /* HF Param Definition */ #if HFP_DYNAMIC_MEMORY == FALSE -static hf_local_param_t hf_local_param[BTC_HF_NUM_CB]; +static hf_local_param_t hf_local_param; #else hf_local_param_t *hf_local_param_ptr = NULL; #endif @@ -117,7 +117,7 @@ do { if ((idx < 0) || (idx >= BTC_HF_NUM_CB)) { \ return BT_STATUS_FAIL; \ } \ - if (!hf_local_param[idx].btc_hf_cb.initialized) { \ + if (!hf_local_param.initialized) { \ BTIF_TRACE_WARNING("CHECK_HF_INIT: %s: HF AG not initialized", __FUNCTION__); \ return BT_STATUS_NOT_READY; \ } else { \ @@ -130,8 +130,8 @@ do { if ((idx < 0) || (idx >= BTC_HF_NUM_CB)) { \ return BT_STATUS_FAIL; \ } \ - if (!hf_local_param[idx].btc_hf_cb.initialized || \ - hf_local_param[idx].btc_hf_cb.connection_state != ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { \ + if (!hf_local_param.initialized || \ + hf_local_param.btc_hf_cb[idx].connection_state != ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { \ BTIF_TRACE_WARNING("CHECK_HF_SLC_CONNECTED: %s: HF AG SLC not connected", __FUNCTION__); \ return BT_STATUS_NOT_READY; \ } else { \ @@ -141,10 +141,10 @@ do { #define clear_phone_state() \ - hf_local_param[idx].btc_hf_cb.call_state = ESP_HF_CALL_STATUS_NO_CALLS; \ - hf_local_param[idx].btc_hf_cb.call_setup_state = ESP_HF_CALL_SETUP_STATUS_IDLE;\ - hf_local_param[idx].btc_hf_cb.num_active = 0; \ - hf_local_param[idx].btc_hf_cb.num_held = 0; + hf_local_param.btc_hf_cb[idx].call_state = ESP_HF_CALL_STATUS_NO_CALLS; \ + hf_local_param.btc_hf_cb[idx].call_setup_state = ESP_HF_CALL_SETUP_STATUS_IDLE;\ + hf_local_param.btc_hf_cb[idx].num_active = 0; \ + hf_local_param.btc_hf_cb[idx].num_held = 0; #define CHECK_HF_IDX(idx) \ do { \ @@ -160,7 +160,7 @@ do { static int btc_hf_idx_by_bdaddr(bt_bdaddr_t *bd_addr) { for (int i = 0; i < btc_max_hf_clients; ++i) { - if (bdcmp(bd_addr->address, hf_local_param[i].btc_hf_cb.connected_bda.address) == 0) { + if (bdcmp(bd_addr->address, hf_local_param.btc_hf_cb[i].connected_bda.address) == 0) { return i; } } @@ -170,8 +170,8 @@ static int btc_hf_idx_by_bdaddr(bt_bdaddr_t *bd_addr) static int btc_hf_find_free_idx(void) { for (int idx = 0; idx < btc_max_hf_clients; ++idx) { - if (hf_local_param[idx].btc_hf_cb.initialized && - hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_DISCONNECTED) { + if (hf_local_param.initialized && + hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_DISCONNECTED) { return idx; } } @@ -180,9 +180,9 @@ static int btc_hf_find_free_idx(void) static BOOLEAN is_connected(int idx, bt_bdaddr_t *bd_addr) { - if ((bdcmp(bd_addr->address,hf_local_param[idx].btc_hf_cb.connected_bda.address) == 0) && - ((hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_CONNECTED) || - (hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED))) { + if ((bdcmp(bd_addr->address,hf_local_param.btc_hf_cb[idx].connected_bda.address) == 0) && + ((hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_CONNECTED) || + (hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED))) { return TRUE; } return FALSE; @@ -196,9 +196,9 @@ static int btc_hf_latest_connected_idx(void) conn_time_delta.tv_sec = now.tv_sec; for (int i = 0; i < btc_max_hf_clients; i++) { - if (hf_local_param[i].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { - if ((now.tv_sec - hf_local_param[i].btc_hf_cb.connected_timestamp.tv_sec) < conn_time_delta.tv_sec) { - conn_time_delta.tv_sec = now.tv_sec - hf_local_param[i].btc_hf_cb.connected_timestamp.tv_sec; + if (hf_local_param.btc_hf_cb[i].connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { + if ((now.tv_sec - hf_local_param.btc_hf_cb[i].connected_timestamp.tv_sec) < conn_time_delta.tv_sec) { + conn_time_delta.tv_sec = now.tv_sec - hf_local_param.btc_hf_cb[i].connected_timestamp.tv_sec; latest_conn_idx = i; } } @@ -261,25 +261,23 @@ static void bte_hf_evt(tBTA_AG_EVT event, tBTA_AG *param) ************************************************************************************/ void btc_hf_reg_data_cb(esp_hf_incoming_data_cb_t recv, esp_hf_outgoing_data_cb_t send) { - hf_local_param[0].btc_hf_incoming_data_cb = recv; - hf_local_param[0].btc_hf_outgoing_data_cb = send; + hf_local_param.btc_hf_incoming_data_cb = recv; + hf_local_param.btc_hf_outgoing_data_cb = send; } void btc_hf_incoming_data_cb_to_app(const uint8_t *data, uint32_t len) { - int idx = 0; // todo: critical section protection - if (hf_local_param[idx].btc_hf_incoming_data_cb) { - hf_local_param[idx].btc_hf_incoming_data_cb(data, len); + if (hf_local_param.btc_hf_incoming_data_cb) { + hf_local_param.btc_hf_incoming_data_cb(data, len); } } uint32_t btc_hf_outgoing_data_cb_to_app(uint8_t *data, uint32_t len) { - int idx = 0; // todo: critical section protection - if (hf_local_param[idx].btc_hf_outgoing_data_cb) { - return hf_local_param[idx].btc_hf_outgoing_data_cb(data, len); + if (hf_local_param.btc_hf_outgoing_data_cb) { + return hf_local_param.btc_hf_outgoing_data_cb(data, len); } else { return 0; } @@ -298,7 +296,7 @@ bt_status_t btc_hf_execute_service(BOOLEAN b_enable) } else { /* De-register AG */ for (idx = 0; idx < btc_max_hf_clients; idx++) { - BTA_AgDeregister(hf_local_param[idx].btc_hf_cb.handle); + BTA_AgDeregister(hf_local_param.btc_hf_cb[idx].handle); } /* Disable AG */ BTA_AgDisable(); @@ -316,30 +314,29 @@ bt_status_t btc_hf_init(void) { int idx = 0; -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param) -#endif - { - if (hf_local_param[idx].btc_hf_cb.initialized) { - esp_hf_cb_param_t param = { - .prof_stat.state = ESP_HF_INIT_ALREADY, - }; - btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); - return BT_STATUS_SUCCESS; - } + if (hf_local_param.initialized) { + esp_hf_cb_param_t param = { + .prof_stat.state = ESP_HF_INIT_ALREADY, + }; + btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); + return BT_STATUS_SUCCESS; } BTC_TRACE_DEBUG("%s - max_hf_clients=%d", __func__, btc_max_hf_clients); -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param == NULL) { - if ((hf_local_param = (hf_local_param_t *)osi_malloc(BTC_HF_NUM_CB * sizeof(hf_local_param_t))) == NULL) { + if (hf_local_param.btc_hf_cb == NULL) { + hf_local_param.btc_hf_cb = (btc_hf_cb_t *)osi_malloc(BTC_HF_NUM_CB * sizeof(btc_hf_cb_t)); + if (hf_local_param.btc_hf_cb == NULL) { BTC_TRACE_ERROR("%s malloc failed!", __func__); return BT_STATUS_NOMEM; } } - memset((void *)hf_local_param, 0, BTC_HF_NUM_CB * sizeof(hf_local_param_t)); -#endif + + memset(hf_local_param.btc_hf_cb, 0, BTC_HF_NUM_CB * sizeof(btc_hf_cb_t)); + for (int i = 0; i < BTC_HF_NUM_CB; i++) { + hf_local_param.btc_hf_cb[i].sync_conn_hdl = ESP_INVALID_CONN_HANDLE; + } + hf_local_param.hf_idx = BTC_HF_INVALID_IDX; /* Invoke the enable service API to the core to set the appropriate service_id * Internally, the HSP_SERVICE_ID shall also be enabled if HFP is enabled (phone) @@ -350,10 +347,7 @@ bt_status_t btc_hf_init(void) btc_dm_enable_service(BTA_HSP_SERVICE_ID); #endif clear_phone_state(); - memset(&hf_local_param[idx].btc_hf_cb, 0, sizeof(btc_hf_cb_t)); - for (int i = 0; i < BTC_HF_NUM_CB; i++) { - hf_local_param[i].btc_hf_cb.sync_conn_hdl = ESP_INVALID_CONN_HANDLE; - } + // set audio path #if (BT_CONTROLLER_INCLUDED == TRUE) #if BTM_SCO_HCI_INCLUDED @@ -371,19 +365,12 @@ void btc_hf_deinit(void) { BTC_TRACE_EVENT("%s", __FUNCTION__); - int idx = 0; - -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param) -#endif - { - if (!hf_local_param[idx].btc_hf_cb.initialized) { - esp_hf_cb_param_t param = { - .prof_stat.state = ESP_HF_DEINIT_ALREADY, - }; - btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); - return; - } + if (!hf_local_param.initialized) { + esp_hf_cb_param_t param = { + .prof_stat.state = ESP_HF_DEINIT_ALREADY, + }; + btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); + return; } btc_dm_disable_service(BTA_HFP_SERVICE_ID); @@ -391,12 +378,8 @@ void btc_hf_deinit(void) static void btc_hf_cb_release(void) { -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param) { - osi_free(hf_local_param); - hf_local_param = NULL; - } -#endif + osi_free(hf_local_param.btc_hf_cb); + hf_local_param.btc_hf_cb = NULL; } static bt_status_t connect_init(bt_bdaddr_t *bd_addr, uint16_t uuid) @@ -408,9 +391,9 @@ static bt_status_t connect_init(bt_bdaddr_t *bd_addr, uint16_t uuid) } if (!is_connected(idx, bd_addr)) { - hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_CONNECTING; - bdcpy(hf_local_param[idx].btc_hf_cb.connected_bda.address, bd_addr->address); - BTA_AgOpen(hf_local_param[idx].btc_hf_cb.handle, hf_local_param[idx].btc_hf_cb.connected_bda.address, BTC_HF_SECURITY, BTC_HF_SERVICES); + hf_local_param.btc_hf_cb[idx].connection_state = ESP_HF_CONNECTION_STATE_CONNECTING; + bdcpy(hf_local_param.btc_hf_cb[idx].connected_bda.address, bd_addr->address); + BTA_AgOpen(hf_local_param.btc_hf_cb[idx].handle, hf_local_param.btc_hf_cb[idx].connected_bda.address, BTC_HF_SECURITY, BTC_HF_SERVICES); return BT_STATUS_SUCCESS; } return BT_STATUS_BUSY; @@ -430,7 +413,7 @@ bt_status_t btc_hf_disconnect(bt_bdaddr_t *bd_addr) } if (is_connected(idx, bd_addr)) { - BTA_AgClose(hf_local_param[idx].btc_hf_cb.handle); + BTA_AgClose(hf_local_param.btc_hf_cb[idx].handle); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -442,13 +425,13 @@ bt_status_t btc_hf_connect_audio(bt_bdaddr_t *bd_addr) CHECK_HF_SLC_CONNECTED(idx); if (is_connected(idx, bd_addr)) { - BTA_AgAudioOpen(hf_local_param[idx].btc_hf_cb.handle); + BTA_AgAudioOpen(hf_local_param.btc_hf_cb[idx].handle); /* Inform the application that the audio connection has been initiated successfully */ do { esp_hf_cb_param_t param; memset(¶m, 0, sizeof(esp_hf_cb_param_t)); param.audio_stat.state = ESP_HF_AUDIO_STATE_CONNECTING; - memcpy(param.audio_stat.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); + memcpy(param.audio_stat.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda, sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_AUDIO_STATE_EVT, ¶m); } while (0); return BT_STATUS_SUCCESS; @@ -462,7 +445,7 @@ bt_status_t btc_hf_disconnect_audio(bt_bdaddr_t *bd_addr) CHECK_HF_SLC_CONNECTED(idx); if (is_connected(idx, bd_addr)) { - BTA_AgAudioClose(hf_local_param[idx].btc_hf_cb.handle); + BTA_AgAudioClose(hf_local_param.btc_hf_cb[idx].handle); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -476,7 +459,7 @@ static bt_status_t btc_hf_pkt_stat_nums_get(UINT16 sync_conn_handle) CHECK_HF_SLC_CONNECTED(idx); if (idx != BTC_HF_INVALID_IDX) { - BTA_AgPktStatsNumsGet(hf_local_param[idx].btc_hf_cb.handle, sync_conn_handle); + BTA_AgPktStatsNumsGet(hf_local_param.btc_hf_cb[idx].handle, sync_conn_handle); status = BT_STATUS_SUCCESS; } #endif /*#if (BTM_SCO_HCI_INCLUDED == TRUE) */ @@ -493,11 +476,11 @@ static bt_status_t btc_hf_vra(bt_bdaddr_t *bd_addr, esp_hf_vr_state_t value) CHECK_HF_SLC_CONNECTED(idx); if (is_connected(idx, bd_addr)) { - if (hf_local_param[idx].btc_hf_cb.peer_feat & BTA_AG_PEER_FEAT_VREC) { + if (hf_local_param.btc_hf_cb[idx].peer_feat & BTA_AG_PEER_FEAT_VREC) { tBTA_AG_RES_DATA ag_res; memset(&ag_res, 0, sizeof(ag_res)); ag_res.state = value; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_BVRA_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_BVRA_RES, &ag_res); return BT_STATUS_SUCCESS; } else { return BT_STATUS_UNSUPPORTED; @@ -515,7 +498,7 @@ static bt_status_t btc_hf_volume_control(bt_bdaddr_t *bd_addr, esp_hf_volume_typ if (is_connected(idx, bd_addr)) { ag_res.num = volume; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, (type == ESP_HF_VOLUME_TYPE_SPK) ? BTA_AG_SPK_RES : BTA_AG_MIC_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, (type == ESP_HF_VOLUME_TYPE_SPK) ? BTA_AG_SPK_RES : BTA_AG_MIC_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -539,7 +522,7 @@ static bt_status_t btc_hf_unat_response(bt_bdaddr_t *bd_addr, const char *unat) ag_res.errcode = BTA_AG_ERR_OP_NOT_SUPPORTED; } - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_UNAT_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_UNAT_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -560,7 +543,7 @@ static bt_status_t btc_hf_cmee_response(bt_bdaddr_t *bd_addr, esp_hf_at_response ag_res.ok_flag = BTA_AG_OK_ERROR; ag_res.errcode = error_code; } - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_UNAT_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_UNAT_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -621,7 +604,7 @@ static bt_status_t btc_hf_cind_response(bt_bdaddr_t *bd_addr, batt_lev, /* Battery level */ call_held_status /* Callheld state */ ); - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_CIND_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_CIND_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -639,7 +622,7 @@ static bt_status_t btc_hf_cops_response(bt_bdaddr_t *bd_addr, const char *name) /* Format the response */ sprintf(ag_res.str, "0,0,\"%s\"", name); ag_res.ok_flag = BTA_AG_OK_DONE; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_COPS_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_COPS_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -671,7 +654,7 @@ static bt_status_t btc_hf_clcc_response(bt_bdaddr_t *bd_addr, int index, esp_hf_ } } } - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_CLCC_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_CLCC_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -693,7 +676,7 @@ static bt_status_t btc_hf_cnum_response(bt_bdaddr_t *bd_addr, const char *number sprintf(ag_res.str, ",\"%s\",%d,,",number, number_type); } ag_res.ok_flag = BTA_AG_OK_DONE; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_CNUM_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_CNUM_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -709,7 +692,7 @@ static bt_status_t btc_hf_inband_ring(bt_bdaddr_t *bd_addr, esp_hf_in_band_ring_ tBTA_AG_RES_DATA ag_res; memset (&ag_res, 0, sizeof (ag_res)); ag_res.state = state; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_INBAND_RING_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_INBAND_RING_RES, &ag_res); return BT_STATUS_SUCCESS; } return BT_STATUS_FAIL; @@ -727,8 +710,8 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active int idx = btc_hf_idx_by_bdaddr(bd_addr), i; /* hf_idx is index of connected HS that sent ATA/BLDN, otherwise index of latest connected HS */ - if (hf_local_param->hf_idx != BTC_HF_INVALID_IDX) { - idx = hf_local_param->hf_idx; + if (hf_local_param.hf_idx != BTC_HF_INVALID_IDX) { + idx = hf_local_param.hf_idx; } else { idx = btc_hf_latest_connected_idx(); } @@ -736,28 +719,28 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active BTC_TRACE_DEBUG("phone_state_change: idx = %d", idx); CHECK_HF_SLC_CONNECTED(idx); BTC_TRACE_DEBUG("phone_state_change: num_active=%d [prev: %d] num_held=%d[prev: %d] call =%s [prev: %s] call_setup=%s [prev: %s]", - num_active, hf_local_param[idx].btc_hf_cb.num_active, - num_held, hf_local_param[idx].btc_hf_cb.num_held, - dump_hf_call_state(call_state), dump_hf_call_state(hf_local_param[idx].btc_hf_cb.call_state), - dump_hf_call_setup_state(call_setup_state), dump_hf_call_setup_state(hf_local_param[idx].btc_hf_cb.call_setup_state)); + num_active, hf_local_param.btc_hf_cb[idx].num_active, + num_held, hf_local_param.btc_hf_cb[idx].num_held, + dump_hf_call_state(call_state), dump_hf_call_state(hf_local_param.btc_hf_cb[idx].call_state), + dump_hf_call_setup_state(call_setup_state), dump_hf_call_setup_state(hf_local_param.btc_hf_cb[idx].call_setup_state)); /* If all indicators are 0, send end call and return */ if (num_active == 0 && num_held == 0 && call_state == ESP_HF_CALL_STATUS_NO_CALLS && call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE) { BTC_TRACE_DEBUG("%s: Phone on hook", __FUNCTION__); /* Record call termination timestamp if there was an active/held call or call_setup_state > ESP_HF_CALL_SETUP_STATUS_IDLE */ - if ((hf_local_param[idx].btc_hf_cb.call_state != ESP_HF_CALL_STATUS_NO_CALLS) || - (hf_local_param[idx].btc_hf_cb.call_setup_state != ESP_HF_CALL_SETUP_STATUS_IDLE) || - (hf_local_param[idx].btc_hf_cb.num_active) || - (hf_local_param[idx].btc_hf_cb.num_held)) { + if ((hf_local_param.btc_hf_cb[idx].call_state != ESP_HF_CALL_STATUS_NO_CALLS) || + (hf_local_param.btc_hf_cb[idx].call_setup_state != ESP_HF_CALL_SETUP_STATUS_IDLE) || + (hf_local_param.btc_hf_cb[idx].num_active) || + (hf_local_param.btc_hf_cb[idx].num_held)) { BTC_TRACE_DEBUG("%s: Record call termination timestamp", __FUNCTION__); - clock_gettime(CLOCK_MONOTONIC, &hf_local_param[0].btc_hf_cb.call_end_timestamp); + clock_gettime(CLOCK_MONOTONIC, &hf_local_param.btc_hf_cb[idx].call_end_timestamp); } BTA_AgResult(BTA_AG_HANDLE_ALL, BTA_AG_END_CALL_RES, NULL); - hf_local_param->hf_idx = BTC_HF_INVALID_IDX; + hf_local_param.hf_idx = BTC_HF_INVALID_IDX; /* If held call was present, reset that as well. */ - if (hf_local_param[idx].btc_hf_cb.num_held) { + if (hf_local_param.btc_hf_cb[idx].num_held) { send_indicator_update(BTA_AG_IND_CALLHELD, 0); } goto update_call_states; @@ -771,13 +754,13 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active /* Handle case(3) here prior to call setup handling.*/ if (((num_active + num_held) > 0) && - (hf_local_param[idx].btc_hf_cb.num_active == 0) && - (hf_local_param[idx].btc_hf_cb.num_held == 0) && - (hf_local_param[idx].btc_hf_cb.call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE)) { + (hf_local_param.btc_hf_cb[idx].num_active == 0) && + (hf_local_param.btc_hf_cb[idx].num_held == 0) && + (hf_local_param.btc_hf_cb[idx].call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE)) { BTC_TRACE_DEBUG("%s: Active/Held call notification received without call setup update", __FUNCTION__); memset(&ag_res, 0, sizeof(tBTA_AG_RES_DATA)); - ag_res.audio_handle = hf_local_param[idx].btc_hf_cb.handle; + ag_res.audio_handle = hf_local_param.btc_hf_cb[idx].handle; /* Addition callsetup with the Active call. */ if (call_setup_state != ESP_HF_CALL_SETUP_STATUS_IDLE) { @@ -793,9 +776,9 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active } /* Handle call_setup indicator change. */ - if (call_setup_state != hf_local_param[idx].btc_hf_cb.call_setup_state) { + if (call_setup_state != hf_local_param.btc_hf_cb[idx].call_setup_state) { BTC_TRACE_DEBUG("%s: Call setup states changed. old: %s new: %s", __FUNCTION__, - dump_hf_call_setup_state(hf_local_param[idx].btc_hf_cb.call_setup_state), + dump_hf_call_setup_state(hf_local_param.btc_hf_cb[idx].call_setup_state), dump_hf_call_setup_state(call_setup_state)); memset(&ag_res, 0, sizeof(tBTA_AG_RES_DATA)); @@ -803,14 +786,14 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active { case ESP_HF_CALL_SETUP_STATUS_IDLE: { - switch(hf_local_param[idx].btc_hf_cb.call_setup_state) + switch(hf_local_param.btc_hf_cb[idx].call_setup_state) { case ESP_HF_CALL_SETUP_STATUS_INCOMING: { - if (num_active > hf_local_param[idx].btc_hf_cb.num_active) { + if (num_active > hf_local_param.btc_hf_cb[idx].num_active) { res = BTA_AG_IN_CALL_CONN_RES; - ag_res.audio_handle = hf_local_param[idx].btc_hf_cb.handle; - } else if (num_held > hf_local_param[idx].btc_hf_cb.num_held) { + ag_res.audio_handle = hf_local_param.btc_hf_cb[idx].handle; + } else if (num_held > hf_local_param.btc_hf_cb[idx].num_held) { res = BTA_AG_IN_CALL_HELD_RES; } else { res = BTA_AG_CALL_CANCEL_RES; @@ -821,7 +804,7 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active case ESP_HF_CALL_SETUP_STATUS_OUTGOING_DIALING: case ESP_HF_CALL_SETUP_STATUS_OUTGOING_ALERTING: { - if (num_active > hf_local_param[idx].btc_hf_cb.num_active) { + if (num_active > hf_local_param.btc_hf_cb[idx].num_active) { res = BTA_AG_OUT_CALL_CONN_RES; ag_res.audio_handle = BTA_AG_HANDLE_SCO_NO_CHANGE; } else { @@ -864,7 +847,7 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active case ESP_HF_CALL_SETUP_STATUS_OUTGOING_DIALING: { if (!(num_active + num_held)) { - ag_res.audio_handle = hf_local_param[idx].btc_hf_cb.handle; + ag_res.audio_handle = hf_local_param.btc_hf_cb[idx].handle; } res = BTA_AG_OUT_CALL_ORIG_RES; break; @@ -872,9 +855,9 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active case ESP_HF_CALL_SETUP_STATUS_OUTGOING_ALERTING: { - if ((hf_local_param[idx].btc_hf_cb.call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE) && + if ((hf_local_param.btc_hf_cb[idx].call_setup_state == ESP_HF_CALL_SETUP_STATUS_IDLE) && !(num_active + num_held)) { - ag_res.audio_handle = hf_local_param[idx].btc_hf_cb.handle; + ag_res.audio_handle = hf_local_param.btc_hf_cb[idx].handle; /* Force SCO setup here.*/ BTA_AgAudioOpen(ag_res.audio_handle); } @@ -904,34 +887,34 @@ static bt_status_t btc_hf_phone_state_update(bt_bdaddr_t *bd_addr,int num_active /* Handle call_state indicator change. */ if (!activeCallUpdated && - ((num_active + num_held) != (hf_local_param[idx].btc_hf_cb.num_active + hf_local_param[idx].btc_hf_cb.num_held))) { - BTC_TRACE_DEBUG("%s: Active call states changed. old: %d new: %d", __FUNCTION__, hf_local_param[idx].btc_hf_cb.num_active, num_active); + ((num_active + num_held) != (hf_local_param.btc_hf_cb[idx].num_active + hf_local_param.btc_hf_cb[idx].num_held))) { + BTC_TRACE_DEBUG("%s: Active call states changed. old: %d new: %d", __FUNCTION__, hf_local_param.btc_hf_cb[idx].num_active, num_active); send_indicator_update(BTA_AG_IND_CALL, ((num_active + num_held) > 0) ? 1 : 0); } /* Handle call_held_state indicator change. */ - if (num_held != hf_local_param[idx].btc_hf_cb.num_held || - ((num_active == 0) && ((num_held + hf_local_param[idx].btc_hf_cb.num_held) > 1))) { - BTC_TRACE_DEBUG("%s: Held call states changed. old: %d new: %d", __FUNCTION__, hf_local_param[idx].btc_hf_cb.num_held, num_held); + if (num_held != hf_local_param.btc_hf_cb[idx].num_held || + ((num_active == 0) && ((num_held + hf_local_param.btc_hf_cb[idx].num_held) > 1))) { + BTC_TRACE_DEBUG("%s: Held call states changed. old: %d new: %d", __FUNCTION__, hf_local_param.btc_hf_cb[idx].num_held, num_held); send_indicator_update(BTA_AG_IND_CALLHELD, ((num_held == 0) ? 0 : ((num_active == 0) ? 2 : 1))); } /* Handle Call Active/Held Swap indicator update.*/ - if ((call_setup_state == hf_local_param[idx].btc_hf_cb.call_setup_state) && + if ((call_setup_state == hf_local_param.btc_hf_cb[idx].call_setup_state) && (num_active) && (num_held) && - (num_active == hf_local_param[idx].btc_hf_cb.num_active) && - (num_held == hf_local_param[idx].btc_hf_cb.num_held)) { + (num_active == hf_local_param.btc_hf_cb[idx].num_active) && + (num_held == hf_local_param.btc_hf_cb[idx].num_held)) { BTC_TRACE_DEBUG("%s: Calls swapped", __FUNCTION__); send_indicator_update(BTA_AG_IND_CALLHELD, 1); } update_call_states: for (i = 0; i < btc_max_hf_clients; i++) { - hf_local_param[i].btc_hf_cb.num_active = num_active; - hf_local_param[i].btc_hf_cb.num_held = num_held; - hf_local_param[i].btc_hf_cb.call_state = call_state; - hf_local_param[i].btc_hf_cb.call_setup_state = call_setup_state; + hf_local_param.btc_hf_cb[i].num_active = num_active; + hf_local_param.btc_hf_cb[i].num_held = num_held; + hf_local_param.btc_hf_cb[i].call_state = call_state; + hf_local_param.btc_hf_cb[i].call_setup_state = call_setup_state; } return status; } @@ -944,7 +927,7 @@ bt_status_t btc_hf_ci_sco_data(void) CHECK_HF_SLC_CONNECTED(idx); if (idx != BTC_HF_INVALID_IDX) { - BTA_AgCiData(hf_local_param[idx].btc_hf_cb.handle); + BTA_AgCiData(hf_local_param.btc_hf_cb[idx].handle); return status; } status = BT_STATUS_FAIL; @@ -1298,17 +1281,11 @@ void btc_hf_cb_handler(btc_msg_t *msg) break; case BTA_AG_DISABLE_EVT: { - idx = 0; -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param) -#endif - { - if (hf_local_param[idx].btc_hf_cb.initialized) { - hf_local_param[idx].btc_hf_cb.initialized = false; - btc_hf_cb_release(); - param.prof_stat.state = ESP_HF_DEINIT_SUCCESS; - btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); - } + if (hf_local_param.initialized) { + hf_local_param.initialized = false; + btc_hf_cb_release(); + param.prof_stat.state = ESP_HF_DEINIT_SUCCESS; + btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); } break; } @@ -1316,14 +1293,14 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - hf_local_param[idx].btc_hf_cb.handle = p_data->reg.hdr.handle; - BTC_TRACE_DEBUG("%s: BTA_AG_REGISTER_EVT," "hf_local_param[%d].btc_hf_cb.handle = %d", - __FUNCTION__, idx, hf_local_param[idx].btc_hf_cb.handle); - if (!hf_local_param[idx].btc_hf_cb.initialized) { + hf_local_param.btc_hf_cb[idx].handle = p_data->reg.hdr.handle; + BTC_TRACE_DEBUG("%s: BTA_AG_REGISTER_EVT," "hf_hf_cb[%d].btc_hf_cb.handle = %d", + __FUNCTION__, idx, hf_local_param.btc_hf_cb[idx].handle); + if (!hf_local_param.initialized) { param.prof_stat.state = ESP_HF_INIT_SUCCESS; btc_hf_cb_to_app(ESP_HF_PROF_STATE_EVT, ¶m); } - hf_local_param[idx].btc_hf_cb.initialized = true; + hf_local_param.initialized = true; break; } @@ -1333,30 +1310,30 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); if (p_data->open.hdr.status == BTA_AG_SUCCESS) { - bdcpy(hf_local_param[idx].btc_hf_cb.connected_bda.address, p_data->open.bd_addr); - hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_CONNECTED; - hf_local_param[idx].btc_hf_cb.peer_feat = 0; - hf_local_param[idx].btc_hf_cb.chld_feat = 0; + bdcpy(hf_local_param.btc_hf_cb[idx].connected_bda.address, p_data->open.bd_addr); + hf_local_param.btc_hf_cb[idx].connection_state = ESP_HF_CONNECTION_STATE_CONNECTED; + hf_local_param.btc_hf_cb[idx].peer_feat = 0; + hf_local_param.btc_hf_cb[idx].chld_feat = 0; //clear_phone_state(); - } else if (hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_CONNECTING) { - hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; + } else if (hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_CONNECTING) { + hf_local_param.btc_hf_cb[idx].connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; } else { BTC_TRACE_WARNING("%s: AG open failed, but another device connected. status=%d state=%d connected device=%s", __FUNCTION__, - p_data->open.hdr.status, hf_local_param[idx].btc_hf_cb.connection_state, - bdaddr_to_string(&hf_local_param[idx].btc_hf_cb.connected_bda, bdstr, sizeof(bdstr))); + p_data->open.hdr.status, hf_local_param.btc_hf_cb[idx].connection_state, + bdaddr_to_string(&hf_local_param.btc_hf_cb[idx].connected_bda, bdstr, sizeof(bdstr))); break; } do { - memcpy(param.conn_stat.remote_bda, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); - param.conn_stat.state = hf_local_param[idx].btc_hf_cb.connection_state; + memcpy(param.conn_stat.remote_bda, &hf_local_param.btc_hf_cb[idx].connected_bda, sizeof(esp_bd_addr_t)); + param.conn_stat.state = hf_local_param.btc_hf_cb[idx].connection_state; param.conn_stat.peer_feat = 0; param.conn_stat.chld_feat = 0; btc_hf_cb_to_app(ESP_HF_CONNECTION_STATE_EVT, ¶m); } while (0); - if (hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_DISCONNECTED) - bdsetany(hf_local_param[idx].btc_hf_cb.connected_bda.address); + if (hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_DISCONNECTED) + bdsetany(hf_local_param.btc_hf_cb[idx].connected_bda.address); if (p_data->open.hdr.status != BTA_AG_SUCCESS) btc_queue_advance(); @@ -1367,20 +1344,20 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - clock_gettime(CLOCK_MONOTONIC, &(hf_local_param[idx].btc_hf_cb.connected_timestamp)); + clock_gettime(CLOCK_MONOTONIC, &(hf_local_param.btc_hf_cb[idx].connected_timestamp)); BTC_TRACE_DEBUG("%s: BTA_AG_CONN_EVT, idx = %d ", __FUNCTION__, idx); - hf_local_param[idx].btc_hf_cb.peer_feat = p_data->conn.peer_feat; - hf_local_param[idx].btc_hf_cb.chld_feat = p_data->conn.chld_feat; - hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_SLC_CONNECTED; + hf_local_param.btc_hf_cb[idx].peer_feat = p_data->conn.peer_feat; + hf_local_param.btc_hf_cb[idx].chld_feat = p_data->conn.chld_feat; + hf_local_param.btc_hf_cb[idx].connection_state = ESP_HF_CONNECTION_STATE_SLC_CONNECTED; do { - param.conn_stat.state = hf_local_param[idx].btc_hf_cb.connection_state; - param.conn_stat.peer_feat = hf_local_param[idx].btc_hf_cb.peer_feat; - param.conn_stat.chld_feat = hf_local_param[idx].btc_hf_cb.chld_feat; - memcpy(param.conn_stat.remote_bda, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); + param.conn_stat.state = hf_local_param.btc_hf_cb[idx].connection_state; + param.conn_stat.peer_feat = hf_local_param.btc_hf_cb[idx].peer_feat; + param.conn_stat.chld_feat = hf_local_param.btc_hf_cb[idx].chld_feat; + memcpy(param.conn_stat.remote_bda, &hf_local_param.btc_hf_cb[idx].connected_bda, sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CONNECTION_STATE_EVT, ¶m); } while(0); - hf_local_param[idx].hf_idx = btc_hf_latest_connected_idx(); + hf_local_param.hf_idx = btc_hf_latest_connected_idx(); btc_queue_advance(); break; } @@ -1389,20 +1366,20 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - hf_local_param[idx].btc_hf_cb.connected_timestamp.tv_sec = 0; - hf_local_param[idx].btc_hf_cb.connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; - BTC_TRACE_DEBUG("%s: BTA_AG_CLOSE_EVT," "hf_local_param[%d].btc_hf_cb.handle = %d", __FUNCTION__, - idx, hf_local_param[idx].btc_hf_cb.handle); + hf_local_param.btc_hf_cb[idx].connected_timestamp.tv_sec = 0; + hf_local_param.btc_hf_cb[idx].connection_state = ESP_HF_CONNECTION_STATE_DISCONNECTED; + BTC_TRACE_DEBUG("%s: BTA_AG_CLOSE_EVT," "hf_local_param.btc_hf_cb[%d].handle = %d", __FUNCTION__, + idx, hf_local_param.btc_hf_cb[idx].handle); do { param.conn_stat.state = ESP_HF_CONNECTION_STATE_DISCONNECTED; param.conn_stat.peer_feat = 0; param.conn_stat.chld_feat = 0; - memcpy(param.conn_stat.remote_bda, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); + memcpy(param.conn_stat.remote_bda, &hf_local_param.btc_hf_cb[idx].connected_bda, sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CONNECTION_STATE_EVT, ¶m); } while(0); - bdsetany(hf_local_param[idx].btc_hf_cb.connected_bda.address); + bdsetany(hf_local_param.btc_hf_cb[idx].connected_bda.address); clear_phone_state(); - hf_local_param[idx].hf_idx = btc_hf_latest_connected_idx(); + hf_local_param.hf_idx = btc_hf_latest_connected_idx(); btc_queue_advance(); break; } @@ -1413,8 +1390,8 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { param.audio_stat.state = ESP_HF_AUDIO_STATE_CONNECTED; - memcpy(param.audio_stat.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); - hf_local_param[idx].btc_hf_cb.sync_conn_hdl = p_data->hdr.sync_conn_handle; + memcpy(param.audio_stat.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); + hf_local_param.btc_hf_cb[idx].sync_conn_hdl = p_data->hdr.sync_conn_handle; param.audio_stat.sync_conn_handle = p_data->hdr.sync_conn_handle; btc_hf_cb_to_app(ESP_HF_AUDIO_STATE_EVT, ¶m); } while(0); @@ -1427,8 +1404,8 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { param.audio_stat.state = ESP_HF_AUDIO_STATE_CONNECTED_MSBC; - memcpy(param.audio_stat.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); - hf_local_param[idx].btc_hf_cb.sync_conn_hdl = p_data->hdr.sync_conn_handle; + memcpy(param.audio_stat.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); + hf_local_param.btc_hf_cb[idx].sync_conn_hdl = p_data->hdr.sync_conn_handle; param.audio_stat.sync_conn_handle = p_data->hdr.sync_conn_handle; btc_hf_cb_to_app(ESP_HF_AUDIO_STATE_EVT, ¶m); } while (0); @@ -1440,8 +1417,8 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { param.audio_stat.state = ESP_HF_AUDIO_STATE_DISCONNECTED; - hf_local_param[idx].btc_hf_cb.sync_conn_hdl = ESP_INVALID_CONN_HANDLE; - memcpy(param.audio_stat.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda, sizeof(esp_bd_addr_t)); + hf_local_param.btc_hf_cb[idx].sync_conn_hdl = ESP_INVALID_CONN_HANDLE; + memcpy(param.audio_stat.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda, sizeof(esp_bd_addr_t)); param.audio_stat.sync_conn_handle = p_data->hdr.sync_conn_handle; btc_hf_cb_to_app(ESP_HF_AUDIO_STATE_EVT, ¶m); } while(0); @@ -1454,12 +1431,12 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { param.vra_rep.value = p_data->val.num; - memcpy(param.vra_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.vra_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_BVRA_RESPONSE_EVT, ¶m); if (p_data->val.num) { - btc_hf_connect_audio(&hf_local_param[idx].btc_hf_cb.connected_bda); + btc_hf_connect_audio(&hf_local_param.btc_hf_cb[idx].connected_bda); } else { - btc_hf_disconnect_audio(&hf_local_param[idx].btc_hf_cb.connected_bda); + btc_hf_disconnect_audio(&hf_local_param.btc_hf_cb[idx].connected_bda); } } while (0); break; @@ -1471,7 +1448,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); do { - memcpy(param.volume_control.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.volume_control.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.volume_control.type = (event == BTA_AG_SPK_EVT) ? ESP_HF_VOLUME_CONTROL_TARGET_SPK : ESP_HF_VOLUME_CONTROL_TARGET_MIC; param.volume_control.volume = p_data->val.num; btc_hf_cb_to_app(ESP_HF_VOLUME_CONTROL_EVT, ¶m); @@ -1484,7 +1461,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); do { - memcpy(param.unat_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.unat_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.unat_rep.unat = p_data->val.str; btc_hf_cb_to_app(ESP_HF_UNAT_RESPONSE_EVT, ¶m); } while (0); @@ -1495,7 +1472,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.ind_upd.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.ind_upd.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_IND_UPDATE_EVT, ¶m); break; } @@ -1504,7 +1481,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.cind_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.cind_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CIND_RESPONSE_EVT, ¶m); break; } @@ -1513,7 +1490,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.cops_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.cops_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_COPS_RESPONSE_EVT, ¶m); break; } @@ -1522,7 +1499,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.clcc_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.clcc_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CLCC_RESPONSE_EVT, ¶m); break; } @@ -1531,7 +1508,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.cnum_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.cnum_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CNUM_RESPONSE_EVT, ¶m); break; } @@ -1541,7 +1518,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); do { - memcpy(param.vts_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.vts_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.vts_rep.code = p_data->val.str; btc_hf_cb_to_app(ESP_HF_VTS_RESPONSE_EVT, ¶m); } while(0); @@ -1553,7 +1530,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); do { - memcpy(param.nrec.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.nrec.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.nrec.state = p_data->val.num; btc_hf_cb_to_app(ESP_HF_NREC_RESPONSE_EVT, ¶m); } while(0); @@ -1564,7 +1541,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.ata_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.ata_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_ATA_RESPONSE_EVT, ¶m); break; } @@ -1573,7 +1550,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) { idx = p_data->hdr.handle - 1; CHECK_HF_IDX(idx); - memcpy(param.chup_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.chup_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); btc_hf_cb_to_app(ESP_HF_CHUP_RESPONSE_EVT, ¶m); break; } @@ -1585,14 +1562,14 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { if (event == BTA_AG_AT_D_EVT) { // dial_number_or_memory - memcpy(param.out_call.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.out_call.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.out_call.type = p_data->val.value; param.out_call.num_or_loc = osi_malloc((strlen(p_data->val.str) + 1) * sizeof(char)); sprintf(param.out_call.num_or_loc, "%s", p_data->val.str); btc_hf_cb_to_app(ESP_HF_DIAL_EVT, ¶m); osi_free(param.out_call.num_or_loc); } else if (event == BTA_AG_AT_BLDN_EVT) { //dial_last - memcpy(param.out_call.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.out_call.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.out_call.num_or_loc = NULL; btc_hf_cb_to_app(ESP_HF_DIAL_EVT, ¶m); } @@ -1609,7 +1586,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) memset(&ag_res, 0, sizeof(ag_res)); ag_res.ok_flag = BTA_AG_OK_ERROR; ag_res.errcode = BTA_AG_ERR_OP_NOT_SUPPORTED; - BTA_AgResult(hf_local_param[idx].btc_hf_cb.handle, BTA_AG_UNAT_RES, &ag_res); + BTA_AgResult(hf_local_param.btc_hf_cb[idx].handle, BTA_AG_UNAT_RES, &ag_res); break; } @@ -1624,11 +1601,11 @@ void btc_hf_cb_handler(btc_msg_t *msg) ** of SCO connection establishment */ if ((btc_conf_hf_force_wbs == TRUE) && (p_data->val.num & BTA_AG_CODEC_MSBC)) { BTC_TRACE_DEBUG("%s btc_hf override-Preferred Codec to MSBC", __FUNCTION__); - BTA_AgSetCodec(hf_local_param[idx].btc_hf_cb.handle,BTA_AG_CODEC_MSBC); + BTA_AgSetCodec(hf_local_param.btc_hf_cb[idx].handle,BTA_AG_CODEC_MSBC); } else { BTC_TRACE_DEBUG("%s btc_hf override-Preferred Codec to CVSD", __FUNCTION__); - BTA_AgSetCodec(hf_local_param[idx].btc_hf_cb.handle,BTA_AG_CODEC_CVSD); + BTA_AgSetCodec(hf_local_param.btc_hf_cb[idx].handle,BTA_AG_CODEC_CVSD); } #endif break; @@ -1640,7 +1617,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { BTC_TRACE_DEBUG("Set codec status %d codec %d 1=CVSD 2=MSBC", p_data->val.hdr.status, p_data->val.num); - memcpy(param.wbs_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.wbs_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.wbs_rep.codec = p_data->val.num; btc_hf_cb_to_app(ESP_HF_WBS_RESPONSE_EVT, ¶m); } while (0); @@ -1653,7 +1630,7 @@ void btc_hf_cb_handler(btc_msg_t *msg) CHECK_HF_IDX(idx); do { BTC_TRACE_DEBUG("AG final seleded codec is %d 1=CVSD 2=MSBC", p_data->val.num); - memcpy(param.bcs_rep.remote_addr, &hf_local_param[idx].btc_hf_cb.connected_bda,sizeof(esp_bd_addr_t)); + memcpy(param.bcs_rep.remote_addr, &hf_local_param.btc_hf_cb[idx].connected_bda,sizeof(esp_bd_addr_t)); param.bcs_rep.mode = p_data->val.num; /* No ESP_HF_WBS_NONE case, because HFP 1.6 supported device can send BCS */ btc_hf_cb_to_app(ESP_HF_BCS_RESPONSE_EVT, ¶m); @@ -1677,18 +1654,16 @@ void btc_hf_get_profile_status(esp_hf_profile_status_t *param) { param->hfp_ag_inited = false; // Not initialized by default -#if HFP_DYNAMIC_MEMORY == TRUE - if (hf_local_param) -#endif - { + if (hf_local_param.initialized) { + param->hfp_ag_inited = true; + } + + if (hf_local_param.btc_hf_cb != NULL) { for (int idx = 0; idx < BTC_HF_NUM_CB; idx++) { - if (hf_local_param[idx].btc_hf_cb.initialized) { - param->hfp_ag_inited = true; - if (hf_local_param[idx].btc_hf_cb.connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { - param->slc_conn_num++; - if (hf_local_param[idx].btc_hf_cb.sync_conn_hdl != ESP_INVALID_CONN_HANDLE) { - param->sync_conn_num++; - } + if (hf_local_param.btc_hf_cb[idx].connection_state == ESP_HF_CONNECTION_STATE_SLC_CONNECTED) { + param->slc_conn_num++; + if (hf_local_param.btc_hf_cb[idx].sync_conn_hdl != ESP_INVALID_CONN_HANDLE) { + param->sync_conn_num++; } } } diff --git a/components/bt/host/bluedroid/btc/profile/std/include/btc_gap_ble.h b/components/bt/host/bluedroid/btc/profile/std/include/btc_gap_ble.h index 43d44343acb..03b1e0885d1 100644 --- a/components/bt/host/bluedroid/btc/profile/std/include/btc_gap_ble.h +++ b/components/bt/host/bluedroid/btc/profile/std/include/btc_gap_ble.h @@ -24,6 +24,10 @@ extern tBTA_BLE_ADV_DATA *gl_bta_scan_rsp_data_ptr; #define BLE_ISVALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max))) +#define BLE_VENDOR_PDU_RECV_EVT (0xC0) +#define BLE_VENDOR_CHMAP_UPDATE_EVT (0xC1) +#define BLE_VENDOR_SLEEP_WAKEUP_EVT (0xC3) + typedef enum { #if (BLE_42_FEATURE_SUPPORT == TRUE) BTC_GAP_BLE_ACT_CFG_ADV_DATA = 0, @@ -113,15 +117,15 @@ typedef enum { BTC_GAP_BLE_DTM_RX_START, #endif // #if (BLE_42_DTM_TEST_EN == TRUE) BTC_GAP_BLE_DTM_STOP, -#if (BLE_42_FEATURE_SUPPORT == TRUE) +#if (BLE_VENDOR_HCI_EN == TRUE) BTC_GAP_BLE_ACT_CLEAR_ADV, -#endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) - BTC_GAP_BLE_ACT_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT, - BTC_GAP_BLE_ACT_ADD_DEVICE_TO_RESOLVING_LIST, BTC_GAP_BLE_ACT_VENDOR_HCI_CMD_EVT, - BTC_GAP_BLE_SET_PRIVACY_MODE, BTC_GAP_BLE_SET_CSA_SUPPORT, BTC_GAP_BLE_ACT_SET_VENDOR_EVT_MASK, +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) + BTC_GAP_BLE_ACT_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT, + BTC_GAP_BLE_ACT_ADD_DEVICE_TO_RESOLVING_LIST, + BTC_GAP_BLE_SET_PRIVACY_MODE, #if (BLE_FEAT_POWER_CONTROL_EN == TRUE) BTC_GAP_BLE_ENH_READ_TRANS_POWER_LEVEL, BTC_GAP_BLE_READ_REM_TRANS_POWER_LEVEL, diff --git a/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h b/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h index 4eea4022740..52ef7bab868 100644 --- a/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h +++ b/components/bt/host/bluedroid/btc/profile/std/include/btc_hf_ag.h @@ -209,7 +209,6 @@ typedef union /* BTC-AG control block to map bdaddr to BTA handle */ typedef struct { - bool initialized; UINT16 handle; UINT16 sync_conn_hdl; bt_bdaddr_t connected_bda; @@ -227,16 +226,16 @@ typedef struct typedef struct { + bool initialized; int hf_idx; - UINT32 btc_hf_features; - btc_hf_cb_t btc_hf_cb; + btc_hf_cb_t *btc_hf_cb; esp_hf_incoming_data_cb_t btc_hf_incoming_data_cb; esp_hf_outgoing_data_cb_t btc_hf_outgoing_data_cb; } hf_local_param_t; #if HFP_DYNAMIC_MEMORY == TRUE extern hf_local_param_t *hf_local_param_ptr; -#define hf_local_param (hf_local_param_ptr) +#define hf_local_param (*hf_local_param_ptr) #endif /******************************************************************************* diff --git a/components/bt/host/bluedroid/btc/profile/std/sdp/btc_sdp.c b/components/bt/host/bluedroid/btc/profile/std/sdp/btc_sdp.c index 23ee72eb8d7..e343716b08d 100644 --- a/components/bt/host/bluedroid/btc/profile/std/sdp/btc_sdp.c +++ b/components/bt/host/bluedroid/btc/profile/std/sdp/btc_sdp.c @@ -1273,7 +1273,8 @@ static void btc_sdp_remove_record(btc_sdp_args_t *arg) } while(0); if (ret != ESP_SDP_SUCCESS) { - param.create_record.status = ret; + param.remove_record.status = ret; + param.remove_record.record_handle = arg->remove_record.record_handle; btc_sdp_cb_to_app(ESP_SDP_REMOVE_RECORD_COMP_EVT, ¶m); } } @@ -1422,6 +1423,7 @@ void btc_sdp_cb_handler(btc_msg_t *msg) } param.remove_record.status = p_data->sdp_remove_record.status; + param.remove_record.record_handle = p_data->sdp_remove_record.handle; btc_sdp_cb_to_app(ESP_SDP_REMOVE_RECORD_COMP_EVT, ¶m); break; default: diff --git a/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h b/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h index 0585b53f5dd..716d01a5a2c 100644 --- a/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h +++ b/components/bt/host/bluedroid/common/include/common/bluedroid_user_config.h @@ -333,6 +333,12 @@ #define UC_BT_BLE_FEAT_CONN_SUBRATING FALSE #endif +#ifdef CONFIG_BT_BLE_VENDOR_HCI_EN +#define UC_BT_BLE_VENDOR_HCI_EN CONFIG_BT_BLE_VENDOR_HCI_EN +#else +#define UC_BT_BLE_VENDOR_HCI_EN FALSE +#endif + #ifdef CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL #define UC_BT_BLE_HIGH_DUTY_ADV_INTERVAL CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL #else diff --git a/components/bt/host/bluedroid/common/include/common/bt_target.h b/components/bt/host/bluedroid/common/include/common/bt_target.h index ce30fff86fa..1d51761105e 100644 --- a/components/bt/host/bluedroid/common/include/common/bt_target.h +++ b/components/bt/host/bluedroid/common/include/common/bt_target.h @@ -392,6 +392,12 @@ #define BLE_FEAT_CONN_SUBRATING FALSE #endif +#if (UC_BT_BLE_VENDOR_HCI_EN == TRUE) +#define BLE_VENDOR_HCI_EN TRUE +#else +#define BLE_VENDOR_HCI_EN FALSE +#endif + #if (UC_BT_BLE_HIGH_DUTY_ADV_INTERVAL == TRUE) #define BLE_HIGH_DUTY_ADV_INTERVAL TRUE #else diff --git a/components/bt/host/bluedroid/common/include/common/bt_trace.h b/components/bt/host/bluedroid/common/include/common/bt_trace.h index 502d6543738..58435d8f6ae 100644 --- a/components/bt/host/bluedroid/common/include/common/bt_trace.h +++ b/components/bt/host/bluedroid/common/include/common/bt_trace.h @@ -223,20 +223,26 @@ static inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t l #if (BT_BLE_LOG_SPI_OUT_HOST_ENABLED && !CLASSIC_BT_INCLUDED) #define BTM_TRACE_ERROR(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_ERROR, "BT_BTM"), fmt, ## args); \ if (btm_cb.trace_level >= BT_TRACE_LEVEL_ERROR && BT_LOG_LEVEL_CHECK(BTM, ERROR)) BT_PRINT_E("BT_BTM", fmt, ## args); \ } #define BTM_TRACE_WARNING(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_WARN, "BT_BTM"), fmt, ## args); \ if (btm_cb.trace_level >= BT_TRACE_LEVEL_WARNING && BT_LOG_LEVEL_CHECK(BTM, WARNING)) BT_PRINT_W("BT_BTM", fmt, ## args); \ } #define BTM_TRACE_API(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_BTM", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_BTM"), fmt, ## args); \ if (btm_cb.trace_level >= BT_TRACE_LEVEL_API && BT_LOG_LEVEL_CHECK(BTM, API)) BT_PRINT_I("BT_BTM", fmt, ## args); \ } #define BTM_TRACE_EVENT(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_BTM", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_BTM"), fmt, ## args); \ if (btm_cb.trace_level >= BT_TRACE_LEVEL_EVENT && BT_LOG_LEVEL_CHECK(BTM, EVENT)) BT_PRINT_D("BT_BTM", fmt, ## args); \ } @@ -259,19 +265,26 @@ static inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t l #if (BT_BLE_LOG_SPI_OUT_HOST_ENABLED && !CLASSIC_BT_INCLUDED) #define L2CAP_TRACE_ERROR(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_ERROR, "BT_L2CAP"), fmt, ## args); \ if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_ERROR && BT_LOG_LEVEL_CHECK(L2CAP, ERROR)) BT_PRINT_E("BT_L2CAP", fmt, ## args); \ } #define L2CAP_TRACE_WARNING(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_WARN, "BT_L2CAP"), fmt, ## args); \ if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_WARNING && BT_LOG_LEVEL_CHECK(L2CAP, WARNING)) BT_PRINT_W("BT_L2CAP", fmt, ## args); \ } #define L2CAP_TRACE_API(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_L2CAP", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_L2CAP"), fmt, ## args); \ if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_API && BT_LOG_LEVEL_CHECK(L2CAP, API)) BT_PRINT_I("BT_L2CAP", fmt, ## args); \ } #define L2CAP_TRACE_EVENT(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_L2CAP"), fmt, ## args); \ if (l2cb.l2cap_trace_level >= BT_TRACE_LEVEL_EVENT && BT_LOG_LEVEL_CHECK(L2CAP, EVENT)) BT_PRINT_D("BT_L2CAP", fmt, ## args); \ } @@ -310,19 +323,26 @@ static inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t l #if (BT_BLE_LOG_SPI_OUT_HOST_ENABLED && !CLASSIC_BT_INCLUDED) #define GAP_TRACE_ERROR(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_ERROR, "BT_GAP"), fmt, ## args); \ if (gap_cb.trace_level >= BT_TRACE_LEVEL_ERROR && BT_LOG_LEVEL_CHECK(GAP, ERROR)) BT_PRINT_E("BT_GAP", fmt, ## args); \ } #define GAP_TRACE_WARNING(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_WARN, "BT_GAP"), fmt, ## args); \ if (gap_cb.trace_level >= BT_TRACE_LEVEL_WARNING && BT_LOG_LEVEL_CHECK(GAP, WARNING)) BT_PRINT_W("BT_GAP", fmt, ## args); \ } #define GAP_TRACE_API(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_GAP", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_GAP"), fmt, ## args); \ if (gap_cb.trace_level >= BT_TRACE_LEVEL_API && BT_LOG_LEVEL_CHECK(GAP, API)) BT_PRINT_I("BT_GAP", fmt, ## args); \ } #define GAP_TRACE_EVENT(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_GAP"), fmt, ## args); \ if (gap_cb.trace_level >= BT_TRACE_LEVEL_EVENT && BT_LOG_LEVEL_CHECK(GAP, EVENT)) BT_PRINT_D("BT_GAP", fmt, ## args); \ } @@ -433,19 +453,26 @@ static inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t l #if (BT_BLE_LOG_SPI_OUT_HOST_ENABLED && !CLASSIC_BT_INCLUDED) #define GATT_TRACE_ERROR(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_ERROR, "BT_GATT"), fmt, ## args); \ if (gatt_cb.trace_level >= BT_TRACE_LEVEL_ERROR && BT_LOG_LEVEL_CHECK(GATT, ERROR)) BT_PRINT_E("BT_GATT", fmt, ## args); \ } #define GATT_TRACE_WARNING(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_WARN, "BT_GATT"), fmt, ## args); \ if (gatt_cb.trace_level >= BT_TRACE_LEVEL_WARNING && BT_LOG_LEVEL_CHECK(GATT, WARNING)) BT_PRINT_W("BT_GATT", fmt, ## args); \ } #define GATT_TRACE_API(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_GATT", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_GATT"), fmt, ## args); \ if (gatt_cb.trace_level >= BT_TRACE_LEVEL_API && BT_LOG_LEVEL_CHECK(GATT, API)) BT_PRINT_I("BT_GATT", fmt, ## args); \ } #define GATT_TRACE_EVENT(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_GATT"), fmt, ## args); \ if (gatt_cb.trace_level >= BT_TRACE_LEVEL_EVENT && BT_LOG_LEVEL_CHECK(GATT, EVENT)) BT_PRINT_D("BT_GATT", fmt, ## args); \ } @@ -468,19 +495,26 @@ static inline void trc_dump_buffer(const char *prefix, uint8_t *data, uint16_t l #if (BT_BLE_LOG_SPI_OUT_HOST_ENABLED && !CLASSIC_BT_INCLUDED) #define SMP_TRACE_ERROR(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_ERROR, "BT_SMP"), fmt, ## args); \ if (smp_cb.trace_level >= BT_TRACE_LEVEL_ERROR && BT_LOG_LEVEL_CHECK(SMP, ERROR)) BT_PRINT_E("BT_SMP", fmt, ## args); \ } #define SMP_TRACE_WARNING(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_WARN, "BT_SMP"), fmt, ## args); \ if (smp_cb.trace_level >= BT_TRACE_LEVEL_WARNING && BT_LOG_LEVEL_CHECK(SMP, WARNING)) BT_PRINT_W("BT_SMP", fmt, ## args); \ } #define SMP_TRACE_API(fmt, args...) { \ - ble_log_spi_out_printf_enh(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_SMP", fmt, ## args); \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_INFO, "BT_SMP"), fmt, ## args); \ if (smp_cb.trace_level >= BT_TRACE_LEVEL_API && BT_LOG_LEVEL_CHECK(SMP, API)) BT_PRINT_I("BT_SMP", fmt, ## args); \ } #define SMP_TRACE_EVENT(fmt, args...) { \ + ble_log_spi_out_host_write(BLE_LOG_SPI_OUT_SOURCE_BLUEDROID, \ + BLE_LOG_SPI_OUT_BUILD_PREFIX(BLE_LOG_SPI_OUT_LEVEL_DEBUG, "BT_SMP"), fmt, ## args); \ if (smp_cb.trace_level >= BT_TRACE_LEVEL_EVENT && BT_LOG_LEVEL_CHECK(SMP, EVENT)) BT_PRINT_D("BT_SMP", fmt, ## args); \ } diff --git a/components/bt/host/bluedroid/hci/hci_hal_h4.c b/components/bt/host/bluedroid/hci/hci_hal_h4.c index 1dcdf67d322..ef874844eda 100644 --- a/components/bt/host/bluedroid/hci/hci_hal_h4.c +++ b/components/bt/host/bluedroid/hci/hci_hal_h4.c @@ -600,9 +600,9 @@ void bt_record_hci_data(uint8_t *data, uint16_t len) static int host_recv_pkt_cb(uint8_t *data, uint16_t len) { -#if (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) - ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len); -#endif // (BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) +#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED + ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len); +#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED //Target has packet to host, malloc new buffer for packet BT_HDR *pkt = NULL; #if (BLE_42_SCAN_EN == TRUE) diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c b/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c index 47941808b68..76fe63c08a9 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_5_gap.c @@ -613,6 +613,7 @@ tBTM_STATUS BTM_BleStartExtAdvRestart(uint8_t con_handle) } if((index >= MAX_BLE_ADV_INSTANCE) || (!adv_record[index].invalid)) { + BTM_TRACE_WARNING("%s failed to find extend adv, adv_handle %u con_handle %u", __func__, index, con_handle); return BTM_WRONG_MODE; } @@ -1254,7 +1255,7 @@ void btm_ble_adv_set_terminated_evt(tBTM_BLE_ADV_TERMINAT *params) } // adv terminated due to connection, save the adv handle and connection handle - if(params->completed_event == 0x00) { + if(params->status == 0x00) { adv_record[params->adv_handle].ter_con_handle = params->conn_handle; } else { adv_record[params->adv_handle].ter_con_handle = INVALID_VALUE; diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c b/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c index 9d08c042be0..bf9b1adbff3 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_bgconn.c @@ -201,7 +201,12 @@ BOOLEAN btm_add_dev_to_controller (BOOLEAN to_add, BD_ADDR bd_addr, tBLE_ADDR_TY /* Controller do not support resolvable address now, only support public address and static random address */ BOOLEAN started = FALSE; - if(wl_addr_type > BLE_ADDR_RANDOM) { +#if (BLE_50_FEATURE_SUPPORT == TRUE) + if (wl_addr_type > BLE_ADDR_RANDOM && wl_addr_type != BLE_ADDR_ANONYMOUS) +#else + if (wl_addr_type > BLE_ADDR_RANDOM) +#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) + { BTM_TRACE_ERROR("wl_addr_type is error\n"); return started; } @@ -278,7 +283,12 @@ void btm_enq_wl_dev_operation(BOOLEAN to_add, BD_ADDR bd_addr, tBLE_ADDR_TYPE ad *******************************************************************************/ BOOLEAN btm_update_dev_to_white_list(BOOLEAN to_add, BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type, tBTM_UPDATE_WHITELIST_CBACK *update_wl_cb) { - if(addr_type > BLE_ADDR_RANDOM) { +#if (BLE_50_FEATURE_SUPPORT == TRUE) + if (addr_type > BLE_ADDR_RANDOM && addr_type != BLE_ADDR_ANONYMOUS) +#else + if (addr_type > BLE_ADDR_RANDOM) +#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) + { BTM_TRACE_ERROR("%s address type is error, unable to add device", __func__); if (update_wl_cb){ update_wl_cb(HCI_ERR_ILLEGAL_PARAMETER_FMT,to_add); diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c index 11c226a143b..f3886643d9c 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c @@ -72,7 +72,9 @@ static tBTM_BLE_CTRL_FEATURES_CBACK *p_ctrl_le_feature_rd_cmpl_cback = NULL; tBTM_CallbackFunc conn_callback_func; // BLE vendor HCI event callback +#if (BLE_VENDOR_HCI_EN == TRUE) static tBTM_BLE_VENDOR_HCI_EVT_CBACK *ble_vs_evt_callback = NULL; +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) /******************************************************************************* ** Local functions *******************************************************************************/ @@ -353,10 +355,12 @@ void BTM_BleRegiseterPktLengthChangeCallback(tBTM_SET_PKT_DATA_LENGTH_CBACK *ptk conn_callback_func.set_pkt_data_length_cb = ptk_len_chane_cb; } +#if (BLE_VENDOR_HCI_EN == TRUE) void BTM_BleRegisterVendorHciEventCallback(tBTM_BLE_VENDOR_HCI_EVT_CBACK *vendor_hci_evt_cb) { ble_vs_evt_callback = vendor_hci_evt_cb; } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) /******************************************************************************* ** @@ -4548,6 +4552,7 @@ BOOLEAN btm_ble_update_mode_operation(UINT8 link_role, BD_ADDR bd_addr, UINT8 st return bg_con; } +#if (BLE_VENDOR_HCI_EN == TRUE) static void btm_ble_vs_evt_callback(UINT8 len, UINT8 *p) { UINT8 sub_event; @@ -4559,7 +4564,7 @@ static void btm_ble_vs_evt_callback(UINT8 len, UINT8 *p) STREAM_TO_UINT8(sub_event, p); len--; - if (sub_event < HCI_VSE_LE_LEGACY_SCAN_REQ_RECEIVED_EVT) { + if (sub_event < HCI_VSE_LE_SUBEVT_BASE) { return; } @@ -4567,6 +4572,7 @@ static void btm_ble_vs_evt_callback(UINT8 len, UINT8 *p) ble_vs_evt_callback(sub_event, len, p); } } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) /******************************************************************************* ** @@ -4626,8 +4632,9 @@ void btm_ble_init (void) btm_ble_adv_filter_init(); #endif // #if BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE #endif - +#if (BLE_VENDOR_HCI_EN == TRUE) BTM_RegisterForVSEvents(btm_ble_vs_evt_callback, TRUE); +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) } /******************************************************************************* @@ -4754,6 +4761,7 @@ BOOLEAN BTM_Ble_Authorization(BD_ADDR bd_addr, BOOLEAN authorize) return FALSE; } +#if (BLE_VENDOR_HCI_EN == TRUE) /******************************************************************************* ** ** Function BTM_BleClearAdv @@ -4775,6 +4783,30 @@ BOOLEAN BTM_BleClearAdv(tBTM_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cback) p_cb->inq_var.p_clear_adv_cb = p_clear_adv_cback; return TRUE; } + +BOOLEAN BTM_BleSetCsaSupport(UINT8 csa_select, tBTM_SET_CSA_SUPPORT_CMPL_CBACK *p_callback) +{ + if (btsnd_hcic_ble_set_csa_support(csa_select) != TRUE) { + BTM_TRACE_ERROR("LE SetCsaSupport csa_select=%d: error", csa_select); + return FALSE; + } + + btm_cb.ble_ctr_cb.set_csa_support_cmpl_cb = p_callback; + return TRUE; +} + +BOOLEAN BTM_BleSetVendorEventMask(UINT32 evt_mask, tBTM_SET_VENDOR_EVT_MASK_CBACK *p_callback) +{ + if (btsnd_hcic_ble_set_vendor_evt_mask(evt_mask) != TRUE) { + BTM_TRACE_ERROR("LE SetVendorEventMask evt_mask=%x: error", evt_mask); + return FALSE; + } + + btm_cb.ble_ctr_cb.set_vendor_evt_mask_cmpl_cb = p_callback; + return TRUE; +} +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) + BOOLEAN BTM_BleSetRpaTimeout(uint16_t rpa_timeout,tBTM_SET_RPA_TIMEOUT_CMPL_CBACK *p_set_rpa_timeout_cback) { if ((btsnd_hcic_ble_set_rand_priv_addr_timeout(rpa_timeout)) != TRUE) { @@ -4810,28 +4842,6 @@ BOOLEAN BTM_BleSetPrivacyMode(UINT8 addr_type, BD_ADDR bd_addr, UINT8 privacy_mo return TRUE; } -BOOLEAN BTM_BleSetCsaSupport(UINT8 csa_select, tBTM_SET_CSA_SUPPORT_CMPL_CBACK *p_callback) -{ - if (btsnd_hcic_ble_set_csa_support(csa_select) != TRUE) { - BTM_TRACE_ERROR("LE SetCsaSupport csa_select=%d: error", csa_select); - return FALSE; - } - - btm_cb.ble_ctr_cb.set_csa_support_cmpl_cb = p_callback; - return TRUE; -} - -BOOLEAN BTM_BleSetVendorEventMask(UINT32 evt_mask, tBTM_SET_VENDOR_EVT_MASK_CBACK *p_callback) -{ - if (btsnd_hcic_ble_set_vendor_evt_mask(evt_mask) != TRUE) { - BTM_TRACE_ERROR("LE SetVendorEventMask evt_mask=%x: error", evt_mask); - return FALSE; - } - - btm_cb.ble_ctr_cb.set_vendor_evt_mask_cmpl_cb = p_callback; - return TRUE; -} - #if (BLE_42_SCAN_EN == TRUE) bool btm_ble_adv_pkt_ready(void) { diff --git a/components/bt/host/bluedroid/stack/btm/btm_main.c b/components/bt/host/bluedroid/stack/btm/btm_main.c index e5f8940a4b2..67882af0efc 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_main.c +++ b/components/bt/host/bluedroid/stack/btm/btm_main.c @@ -126,7 +126,8 @@ void btm_free(void) #endif } -uint8_t btm_acl_active_count(void) +#if (BLE_INCLUDED == TRUE) +uint8_t btm_ble_acl_active_count(void) { list_node_t *p_node = NULL; tACL_CONN *p_acl_conn = NULL; @@ -134,14 +135,14 @@ uint8_t btm_acl_active_count(void) for (p_node = list_begin(btm_cb.p_acl_db_list); p_node; p_node = list_next(p_node)) { p_acl_conn = list_node(p_node); - if (p_acl_conn && p_acl_conn->in_use) { + if (p_acl_conn && p_acl_conn->in_use && p_acl_conn->transport == BT_TRANSPORT_LE) { count++; } } return count; } -#if (BLE_INCLUDED == TRUE) + // Address resolution status uint8_t btm_get_ble_addr_resolve_disable_status(void) { diff --git a/components/bt/host/bluedroid/stack/gatt/gatt_main.c b/components/bt/host/bluedroid/stack/gatt/gatt_main.c index 600cbe45332..53d9be747de 100644 --- a/components/bt/host/bluedroid/stack/gatt/gatt_main.c +++ b/components/bt/host/bluedroid/stack/gatt/gatt_main.c @@ -1244,7 +1244,8 @@ uint8_t gatt_tcb_active_count(void) for(p_node = list_begin(gatt_cb.p_tcb_list); p_node; p_node = list_next(p_node)) { p_tcb = list_node(p_node); - if (p_tcb && p_tcb->in_use && (p_tcb->ch_state != GATT_CH_CLOSE)) { + if (p_tcb && p_tcb->in_use && (p_tcb->transport == BT_TRANSPORT_LE) && + (p_tcb->ch_state != GATT_CH_CLOSE)) { count++; } } diff --git a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c index 5b4822dad93..5ad13216f77 100644 --- a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c +++ b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c @@ -1088,27 +1088,6 @@ BOOLEAN btsnd_hcic_ble_set_channels (BLE_CHANNELS channels) return (TRUE); } -BOOLEAN btsnd_hcic_ble_clear_adv (void) -{ - BT_HDR *p; - UINT8 *pp; - - if ((p = HCI_GET_CMD_BUF (HCIC_PARAM_SIZE_BLE_CLEAR_ADV)) == NULL) { - return (FALSE); - } - - pp = (UINT8 *)(p + 1); - - p->len = HCIC_PREAMBLE_SIZE + HCIC_PARAM_SIZE_BLE_CLEAR_ADV; - p->offset = 0; - - UINT16_TO_STREAM (pp, HCI_VENDOR_BLE_CLEAR_ADV); - UINT8_TO_STREAM (pp, HCIC_PARAM_SIZE_BLE_CLEAR_ADV); - - btu_hcif_send_cmd (LOCAL_BR_EDR_CONTROLLER_ID, p); - return TRUE; -} - #define HCIC_BLE_CMD_CREATED(p, pp, size) do{\ if ((p = HCI_GET_CMD_BUF(size)) == NULL) { \ return FALSE; \ @@ -1948,6 +1927,28 @@ BOOLEAN btsnd_hcic_ble_set_privacy_mode(UINT8 addr_type, BD_ADDR addr, UINT8 pri return (TRUE); } +#if (BLE_VENDOR_HCI_EN == TRUE) +BOOLEAN btsnd_hcic_ble_clear_adv (void) +{ + BT_HDR *p; + UINT8 *pp; + + if ((p = HCI_GET_CMD_BUF (HCIC_PARAM_SIZE_BLE_CLEAR_ADV)) == NULL) { + return (FALSE); + } + + pp = (UINT8 *)(p + 1); + + p->len = HCIC_PREAMBLE_SIZE + HCIC_PARAM_SIZE_BLE_CLEAR_ADV; + p->offset = 0; + + UINT16_TO_STREAM (pp, HCI_VENDOR_BLE_CLEAR_ADV); + UINT8_TO_STREAM (pp, HCIC_PARAM_SIZE_BLE_CLEAR_ADV); + + btu_hcif_send_cmd (LOCAL_BR_EDR_CONTROLLER_ID, p); + return TRUE; +} + BOOLEAN btsnd_hcic_ble_set_csa_support (UINT8 csa_select) { BT_HDR *p; @@ -1991,6 +1992,7 @@ BOOLEAN btsnd_hcic_ble_set_vendor_evt_mask (UINT32 evt_mask) btu_hcif_send_cmd (LOCAL_BR_EDR_CONTROLLER_ID, p); return TRUE; } +#endif // #if (BLE_VENDOR_HCI_EN == TRUE) #endif #if (BLE_FEAT_ISO_EN == TRUE) diff --git a/components/bt/host/bluedroid/stack/include/stack/bt_types.h b/components/bt/host/bluedroid/stack/include/stack/bt_types.h index 5d817632989..4050b79d3bf 100644 --- a/components/bt/host/bluedroid/stack/include/stack/bt_types.h +++ b/components/bt/host/bluedroid/stack/include/stack/bt_types.h @@ -486,6 +486,7 @@ typedef struct { #define BLE_ADDR_RANDOM_ID 0x03 #define BLE_ADDR_TYPE_MAX BLE_ADDR_RANDOM_ID #define BLE_ADDR_UNKNOWN_TYPE 0XFF +#define BLE_ADDR_ANONYMOUS 0xFF typedef UINT8 tBLE_ADDR_TYPE; #define BLE_ADDR_TYPE_MASK (BLE_ADDR_RANDOM | BLE_ADDR_PUBLIC) diff --git a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h index 05292af8227..23f9b3e6b8d 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hcidefs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hcidefs.h @@ -927,9 +927,9 @@ #define HCI_VENDOR_CH_CLASSIFICATION_EVT_SUBCODE 0x06 #define HCI_VENDOR_CH_CLASSIFICATION_REPORTING_MODE_EVT_SUBCODE 0x07 -#define HCI_VSE_LE_LEGACY_SCAN_REQ_RECEIVED_EVT 0xC0 -#define HCI_VSE_LE_CHAN_MAP_UPDATE_CMPL_EVT 0xC1 -#define HCI_VSE_LE_EVT_MAX 0xFF +#define HCI_VENDOR_SPECIFIC_EVT 0xFF /* Vendor specific events */ +#define HCI_VSE_LE_SUBEVT_BASE 0xC0 /* BLE vendor event code base */ +#define HCI_VSE_LE_EVT_MAX 0xFF /* BLE vendor event code max */ #define HCI_NAP_TRACE_EVT 0xFF /* was define 0xFE, 0xFD, change to 0xFF because conflict w/ TCI_EVT and per specification compliant */ diff --git a/components/bt/host/bluedroid/stack/l2cap/include/l2c_int.h b/components/bt/host/bluedroid/stack/l2cap/include/l2c_int.h index 045fb10daa7..88eac86b2f1 100644 --- a/components/bt/host/bluedroid/stack/l2cap/include/l2c_int.h +++ b/components/bt/host/bluedroid/stack/l2cap/include/l2c_int.h @@ -65,7 +65,7 @@ #define L2CAP_WAIT_UNPARK_TOUT 2 /* 2 seconds */ #define L2CAP_LINK_INFO_RESP_TOUT 2 /* 2 seconds */ #define L2CAP_UPDATE_CONN_PARAM_TOUT 6 /* 6 seconds */ -#define L2CAP_BLE_LINK_CONNECT_TOUT BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT // configed in menuconfig +#define L2CAP_BLE_LINK_CONNECT_TOUT BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT // configured in menuconfig #define L2CAP_BLE_CONN_PARAM_UPD_TOUT 30 /* 30 seconds */ /* quick timer uses millisecond unit */ @@ -80,10 +80,10 @@ ** the Bluetooth specification. */ typedef enum { - CST_CLOSED, /* Channel is in clodes state */ + CST_CLOSED, /* Channel is in closed state */ CST_ORIG_W4_SEC_COMP, /* Originator waits security clearence */ CST_TERM_W4_SEC_COMP, /* Acceptor waits security clearence */ - CST_W4_L2CAP_CONNECT_RSP, /* Waiting for peer conenct response */ + CST_W4_L2CAP_CONNECT_RSP, /* Waiting for peer connect response */ CST_W4_L2CA_CONNECT_RSP, /* Waiting for upper layer connect rsp */ CST_CONFIG, /* Negotiating configuration */ CST_OPEN, /* Data transfer state */ @@ -208,8 +208,8 @@ typedef struct { UINT32 controller_idle; /* # of times less than 2 packets in controller */ /* when the xmit window was closed */ UINT32 pkts_retransmitted; /* # of packets that were retransmitted */ - UINT32 retrans_touts; /* # of retransmission timouts */ - UINT32 xmit_ack_touts; /* # of xmit ack timouts */ + UINT32 retrans_touts; /* # of retransmission timeouts */ + UINT32 xmit_ack_touts; /* # of xmit ack timeouts */ #define L2CAP_ERTM_STATS_NUM_AVG 10 #define L2CAP_ERTM_STATS_AVG_NUM_SAMPLES 100 @@ -386,7 +386,7 @@ typedef struct t_l2c_linkcb { tL2C_CCB *p_pending_ccb; /* ccb of waiting channel during link disconnect */ TIMER_LIST_ENT info_timer_entry; /* Timer entry for info resp timeout evt */ - TIMER_LIST_ENT upda_con_timer; /* Timer entry for update connection parametr */ + TIMER_LIST_ENT upda_con_timer; /* Timer entry for update connection parameter */ BD_ADDR remote_bd_addr; /* The BD address of the remote */ UINT8 link_role; /* Master or slave */ @@ -599,7 +599,7 @@ extern BOOLEAN l2cu_start_post_bond_timer (UINT16 handle); extern void l2cu_release_lcb (tL2C_LCB *p_lcb); extern tL2C_LCB *l2cu_find_lcb_by_bd_addr (BD_ADDR p_bd_addr, tBT_TRANSPORT transport); extern tL2C_LCB *l2cu_find_lcb_by_handle (UINT16 handle); -extern uint8_t l2cu_plcb_active_count(void); +extern uint8_t l2cu_ble_plcb_active_count(void); extern void l2cu_update_lcb_4_bonding (BD_ADDR p_bd_addr, BOOLEAN is_bonding); extern UINT8 l2cu_get_conn_role (tL2C_LCB *p_this_lcb); diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c index 5f9bd751666..3ce25ab977b 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c @@ -242,7 +242,7 @@ BOOLEAN L2CA_EnableUpdateBleConnParams (BD_ADDR rem_bda, BOOLEAN enable) return (FALSE); } bool is_disable = (p_lcb->conn_update_mask & L2C_BLE_CONN_UPDATE_DISABLE); - if(l2cu_plcb_active_count() >1 && !(enable && is_disable)) { + if(l2cu_ble_plcb_active_count() >1 && !(enable && is_disable)) { return FALSE; } diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_link.c b/components/bt/host/bluedroid/stack/l2cap/l2c_link.c index 64304152c16..1af7e8b3d2c 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_link.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_link.c @@ -480,6 +480,8 @@ BOOLEAN l2c_link_hci_disc_comp (UINT16 handle, UINT8 reason) if (l2cu_create_conn(p_lcb, BT_TRANSPORT_LE)) { btm_acl_removed (p_lcb->remote_bd_addr, BT_TRANSPORT_LE); lcb_is_free = FALSE; /* still using this lcb */ + } else { + L2CAP_TRACE_ERROR("master retry connect failed"); } } #endif // (GATTC_CONNECT_RETRY_EN == TRUE) @@ -489,7 +491,10 @@ BOOLEAN l2c_link_hci_disc_comp (UINT16 handle, UINT8 reason) if(btm_ble_inter_get() && p_lcb->link_role == HCI_ROLE_SLAVE) { p_lcb->retry_create_con ++; L2CAP_TRACE_DEBUG("slave restart extend adv, retry count %d reason 0x%x\n", p_lcb->retry_create_con, reason); - BTM_BleStartExtAdvRestart(handle); + tBTM_STATUS start_adv_status = BTM_BleStartExtAdvRestart(handle); + if (start_adv_status != BTM_SUCCESS) { + L2CAP_TRACE_ERROR("slave restart extend adv failed (err 0x%x)", start_adv_status); + } } #endif // #if (BLE_50_EXTEND_ADV_EN == TRUE) #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) @@ -499,7 +504,10 @@ BOOLEAN l2c_link_hci_disc_comp (UINT16 handle, UINT8 reason) if(!btm_ble_inter_get() && p_lcb->link_role == HCI_ROLE_SLAVE) { p_lcb->retry_create_con ++; L2CAP_TRACE_DEBUG("slave resatrt adv, retry count %d reason 0x%x\n", p_lcb->retry_create_con, reason); - btm_ble_start_adv(); + tBTM_STATUS start_adv_status = btm_ble_start_adv(); + if (start_adv_status != BTM_SUCCESS) { + L2CAP_TRACE_ERROR("slave resatrt adv failed (err 0x%x)", start_adv_status); + } } #endif // #if (BLE_42_ADV_EN == TRUE) #endif // #if (BLE_42_FEATURE_SUPPORT == TRUE) @@ -1084,7 +1092,9 @@ void l2c_link_check_send_pkts (tL2C_LCB *p_lcb, tL2C_CCB *p_ccb, BT_HDR *p_buf) p_lcb_cur = list_node(p_node); if (p_lcb_cur == p_lcb) { p_node = list_next(p_node); - p_lcb = list_node(p_node); + if (p_node) { + p_lcb = list_node(p_node); + } break; } } diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c b/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c index 992d4b68ebb..e4bf8a081db 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_utils.c @@ -336,14 +336,14 @@ tL2C_LCB *l2cu_find_free_lcb (void) return (NULL); } -uint8_t l2cu_plcb_active_count(void) +uint8_t l2cu_ble_plcb_active_count(void) { list_node_t *p_node = NULL; tL2C_LCB *p_lcb = NULL; uint8_t active_count = 0; for (p_node = list_begin(l2cb.p_lcb_pool); p_node; p_node = list_next(p_node)) { p_lcb = list_node(p_node); - if (p_lcb && p_lcb->in_use) { + if (p_lcb && p_lcb->in_use && p_lcb->transport == BT_TRANSPORT_LE) { active_count ++; } } @@ -615,7 +615,7 @@ void l2cu_send_peer_connect_rsp (tL2C_CCB *p_ccb, UINT16 result, UINT16 status) ** ** Description Build and send an L2CAP "connection response neg" message ** to the peer. This function is called when there is no peer -** CCB (non-existant PSM or no resources). +** CCB (non-existent PSM or no resources). ** ** Returns void ** @@ -1737,7 +1737,7 @@ void l2cu_release_ccb (tL2C_CCB *p_ccb) ) { l2cu_dequeue_ccb (p_ccb); - /* Delink the CCB from the LCB */ + /* Unlink the CCB from the LCB */ p_ccb->p_lcb = NULL; } @@ -1960,7 +1960,7 @@ tL2C_RCB *l2cu_find_ble_rcb_by_psm (UINT16 psm) ** ** Returns UINT8 - L2CAP_PEER_CFG_OK if passed to upper layer, ** L2CAP_PEER_CFG_UNACCEPTABLE if automatically responded to -** because parameters are unnacceptable from a specification +** because parameters are unacceptable from a specification ** point of view. ** L2CAP_PEER_CFG_DISCONNECT if no compatible channel modes ** between the two devices, and shall be closed. @@ -2558,7 +2558,7 @@ BOOLEAN l2cu_set_acl_priority (BD_ADDR bd_addr, UINT8 priority, BOOLEAN reset_af ** ** Function l2cu_set_non_flushable_pbf ** -** Description set L2CAP_PKT_START_NON_FLUSHABLE if controller supoorts +** Description set L2CAP_PKT_START_NON_FLUSHABLE if controller supports ** ** Returns void ** @@ -3328,7 +3328,7 @@ static tL2C_CCB *l2cu_get_next_channel_in_rr(tL2C_LCB *p_lcb) for ( i = 0; (i < L2CAP_NUM_CHNL_PRIORITY) && (!p_serve_ccb); i++ ) { /* scan all channel within serving priority group until finding a channel to serve */ for ( j = 0; (j < p_lcb->rr_serv[p_lcb->rr_pri].num_ccb) && (!p_serve_ccb); j++) { - /* scaning from next serving channel */ + /* scanning from next serving channel */ p_ccb = p_lcb->rr_serv[p_lcb->rr_pri].p_serve_ccb; if (!p_ccb) { diff --git a/components/bt/host/bluedroid/stack/smp/smp_act.c b/components/bt/host/bluedroid/stack/smp/smp_act.c index 0e7dcd5b3f2..43b2e476530 100644 --- a/components/bt/host/bluedroid/stack/smp/smp_act.c +++ b/components/bt/host/bluedroid/stack/smp/smp_act.c @@ -1553,7 +1553,7 @@ void smp_fast_conn_param(tSMP_CB *p_cb, tSMP_INT_DATA *p_data) } /* Disable L2CAP connection parameter updates while bonding since some peripherals are not able to revert to fast connection parameters - during the start of service discovery. Connection paramter updates + during the start of service discovery. Connection parameter updates get enabled again once service discovery completes. */ #if (BT_MULTI_CONNECTION_ENBALE == FALSE) L2CA_EnableUpdateBleConnParams(p_cb->pairing_bda, FALSE); @@ -1648,6 +1648,8 @@ void smp_process_local_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data) /* slave calculates and sends local commitment */ smp_calculate_local_commitment(p_cb); smp_send_commitment(p_cb, NULL); + /* Ensure the connection is still active */ + if (smp_get_state() == SMP_STATE_IDLE) return; /* slave has to wait for peer nonce */ smp_set_state(SMP_STATE_WAIT_NONCE); } else { /* i.e. master */ @@ -1658,6 +1660,8 @@ void smp_process_local_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data) p_cb->selected_association_model); p_cb->flags &= ~SMP_PAIR_FLAG_HAVE_PEER_COMM; smp_send_rand(p_cb, NULL); + /* Ensure the connection is still active */ + if (smp_get_state() == SMP_STATE_IDLE) return; smp_set_state(SMP_STATE_WAIT_NONCE); } } @@ -1672,6 +1676,8 @@ void smp_process_local_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data) if (p_cb->flags & SMP_PAIR_FLAG_HAVE_PEER_COMM) { /* master commitment is already received */ smp_send_commitment(p_cb, NULL); + /* Ensure the connection is still active */ + if (smp_get_state() == SMP_STATE_IDLE) return; smp_set_state(SMP_STATE_WAIT_NONCE); } } @@ -1679,6 +1685,8 @@ void smp_process_local_nonce(tSMP_CB *p_cb, tSMP_INT_DATA *p_data) case SMP_MODEL_SEC_CONN_OOB: if (p_cb->role == HCI_ROLE_MASTER) { smp_send_rand(p_cb, NULL); + /* Ensure the connection is still active */ + if (smp_get_state() == SMP_STATE_IDLE) return; } smp_set_state(SMP_STATE_WAIT_NONCE); @@ -2002,7 +2010,7 @@ void smp_link_encrypted(BD_ADDR bda, UINT8 encr_enable) SMP_TRACE_DEBUG("%s encr_enable=%d\n", __func__, encr_enable); if (memcmp(&smp_cb.pairing_bda[0], bda, BD_ADDR_LEN) == 0) { - /* encryption completed with STK, remmeber the key size now, could be overwite + /* encryption completed with STK, remember the key size now, could be overwrite * when key exchange happens */ if (p_cb->loc_enc_size != 0 && encr_enable) { /* update the link encryption key size if a SMP pairing just performed */ diff --git a/components/bt/host/nimble/Kconfig.in b/components/bt/host/nimble/Kconfig.in index 44d6c6ef38a..117461966db 100644 --- a/components/bt/host/nimble/Kconfig.in +++ b/components/bt/host/nimble/Kconfig.in @@ -750,9 +750,11 @@ config BT_NIMBLE_GATT_CACHING_INCLUDE_SERVICES Enable this option to include *included services* (e.g., services referenced by other services) in the GATT database cache. Disabling this will skip caching of included service entries. config BT_NIMBLE_INCL_SVC_DISCOVERY - bool "Enable Included service discovery" - default y if BT_NIMBLE_GATT_CACHING_INCLUDE_SERVICES - default n + bool + default y if BT_NIMBLE_GATT_CACHING && BT_NIMBLE_GATT_CACHING_INCLUDE_SERVICES + default n if BT_NIMBLE_GATT_CACHING && !BT_NIMBLE_GATT_CACHING_INCLUDE_SERVICES + default n if !BT_NIMBLE_GATT_CACHING + prompt "Enable Included service discovery" if !BT_NIMBLE_GATT_CACHING help Enable this option to start discovery for included service. config BT_NIMBLE_GATT_CACHING_MAX_CONNS @@ -898,7 +900,7 @@ menu "BLE Services" Enable HeartRate Service support menuconfig BT_NIMBLE_HID_SERVICE - bool "HID service" + bool "Human Interface Device service" default n help Enable HID service support @@ -930,10 +932,10 @@ menu "BLE Services" Enable/Disable notifications on BAS Battery Level Characteristic menuconfig BT_NIMBLE_DIS_SERVICE - bool "DIS service" + bool "Device Information Service" default y help - Enable DIS service support + Enable Device Information service support config BT_NIMBLE_SVC_DIS_MANUFACTURER_NAME depends on BT_NIMBLE_DIS_SERVICE @@ -1075,7 +1077,6 @@ menu "BLE Services" default 0 if BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP default 1 if BT_NIMBLE_SVC_GAP_CAR_SUPP - menu "GAP device name write permissions" depends on BT_NIMBLE_GAP_SERVICE config BT_NIMBLE_SVC_GAP_NAME_WRITE @@ -1106,7 +1107,7 @@ menu "BLE Services" Enable write with authorisation permission (BLE_GATT_CHR_F_WRITE_AUTHOR) endmenu - menu "PPCP settings" + menu "Peripheral Preferred Connection Parameters (PPCP) settings" depends on BT_NIMBLE_GAP_SERVICE config BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL int "PPCP Connection Interval Max (Unit: 1.25 ms)" @@ -1232,6 +1233,15 @@ config BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT can disrupt the GATT context,causing the service discovery callback to not be invoked. A temporary list is maintained to preserve the GATT context and use it in case of preemption. +config BT_NIMBLE_GATTC_AUTO_PAIR + bool "Automatically pair upon receiving service request failure" + depends on BT_NIMBLE_ENABLED + default n + help + If enabled, when a service request (e.g. read, write) to a server fails, and the ATT + error suggests insufficient security, then the central will initiate pairing and retry + the service request. + menu "Host-controller Transport" config BT_NIMBLE_TRANSPORT_UART bool "Enable Uart Transport" diff --git a/components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c b/components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c index b5565539479..4a001777b03 100644 --- a/components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c +++ b/components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c @@ -72,9 +72,9 @@ void esp_vhci_host_send_packet_wrapper(uint8_t *data, uint16_t len) #if (BT_HCI_LOG_INCLUDED == TRUE) bt_hci_log_record_hci_data(data[0], &data[1], len - 1); #endif -#if (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) - ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len); -#endif // (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) +#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED + ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len); +#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED esp_vhci_host_send_packet(data, len); } @@ -231,9 +231,9 @@ static int dummy_host_rcv_pkt(uint8_t *data, uint16_t len) */ static int host_rcv_pkt(uint8_t *data, uint16_t len) { -#if (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) - ble_log_spi_out_write_with_ts(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len); -#endif // (CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED && !SOC_ESP_NIMBLE_CONTROLLER) +#if CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED + ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len); +#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED bt_record_hci_data(data, len); diff --git a/components/bt/host/nimble/nimble b/components/bt/host/nimble/nimble index 0225775e496..ae8eacdcd36 160000 --- a/components/bt/host/nimble/nimble +++ b/components/bt/host/nimble/nimble @@ -1 +1 @@ -Subproject commit 0225775e49669cd4f070400908f73718bddce83b +Subproject commit ae8eacdcd366f39dc290fe6790d770f15dc7ed21 diff --git a/components/bt/host/nimble/port/include/esp_nimble_cfg.h b/components/bt/host/nimble/port/include/esp_nimble_cfg.h index 6c80ae750c8..2d4879153f8 100644 --- a/components/bt/host/nimble/port/include/esp_nimble_cfg.h +++ b/components/bt/host/nimble/port/include/esp_nimble_cfg.h @@ -2010,6 +2010,14 @@ #endif #endif +#ifndef MYNEWT_VAL_BLE_GATTC_AUTO_PAIR +#ifdef CONFIG_BT_NIMBLE_GATTC_AUTO_PAIR +#define MYNEWT_VAL_BLE_GATTC_AUTO_PAIR CONFIG_BT_NIMBLE_GATTC_AUTO_PAIR +#else +#define MYNEWT_VAL_BLE_GATTC_AUTO_PAIR (0) +#endif +#endif + #ifndef MYNEWT_VAL_BLE_HOST_ALLOW_CONNECT_WITH_SCAN #ifdef CONFIG_BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN #define MYNEWT_VAL_BLE_HOST_ALLOW_CONNECT_WITH_SCAN CONFIG_BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN diff --git a/components/bt/include/esp32c2/include/esp_bt.h b/components/bt/include/esp32c2/include/esp_bt.h index de161b08f6b..ce464b54d43 100644 --- a/components/bt/include/esp32c2/include/esp_bt.h +++ b/components/bt/include/esp32c2/include/esp_bt.h @@ -446,6 +446,10 @@ uint32_t esp_bt_get_lpclk_freq(void); void esp_bt_set_lpclk_freq(uint32_t clk_freq); +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit); +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED + #ifdef __cplusplus } #endif diff --git a/components/bt/include/esp32c5/include/esp_bt.h b/components/bt/include/esp32c5/include/esp_bt.h index 35dd2c21a1a..ce490db77ac 100644 --- a/components/bt/include/esp32c5/include/esp_bt.h +++ b/components/bt/include/esp32c5/include/esp_bt.h @@ -159,7 +159,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type */ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle); -#define CONFIG_VERSION 0x20250513 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -231,6 +231,9 @@ typedef struct { uint8_t fast_conn_data_tx_en; /*!< The option for fast transmission of connection data - 0 - Disable - 1 - Enable (default) */ + int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ + uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ + uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ uint32_t config_magic; /*!< Magic number for configuration validation */ } esp_bt_controller_config_t; @@ -289,6 +292,9 @@ typedef struct { .ble_adv_tx_options = 0, \ .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ + .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } diff --git a/components/bt/include/esp32c6/include/esp_bt.h b/components/bt/include/esp32c6/include/esp_bt.h index e91a7f1c2ec..d3c67ad01a5 100644 --- a/components/bt/include/esp32c6/include/esp_bt.h +++ b/components/bt/include/esp32c6/include/esp_bt.h @@ -156,7 +156,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type */ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle); -#define CONFIG_VERSION 0x20250513 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -231,6 +231,9 @@ typedef struct { uint8_t fast_conn_data_tx_en; /*!< The option for fast transmission of connection data - 0 - Disable - 1 - Enable (default) */ + int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ + uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ + uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ uint32_t config_magic; /*!< Magic number for configuration validation */ } esp_bt_controller_config_t; @@ -292,6 +295,9 @@ typedef struct { .ble_adv_tx_options = 0, \ .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ + .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } #elif CONFIG_IDF_TARGET_ESP32C61 @@ -350,6 +356,9 @@ typedef struct { .ble_adv_tx_options = 0, \ .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ + .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } #endif @@ -515,6 +524,10 @@ uint32_t esp_bt_get_lpclk_freq(void); void esp_bt_set_lpclk_freq(uint32_t clk_freq); +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit); +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED + #ifdef __cplusplus } #endif diff --git a/components/bt/include/esp32h2/include/esp_bt.h b/components/bt/include/esp32h2/include/esp_bt.h index bf9370eba13..601f5816a37 100644 --- a/components/bt/include/esp32h2/include/esp_bt.h +++ b/components/bt/include/esp32h2/include/esp_bt.h @@ -161,7 +161,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type */ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle); -#define CONFIG_VERSION 0x20250513 +#define CONFIG_VERSION 0x20250606 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -233,6 +233,9 @@ typedef struct { uint8_t fast_conn_data_tx_en; /*!< The option for fast transmission of connection data - 0 - Disable - 1 - Enable (default) */ + int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ + uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ + uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ uint32_t config_magic; /*!< Configuration magic value */ } esp_bt_controller_config_t; @@ -292,6 +295,9 @@ typedef struct { .ble_adv_tx_options = 0, \ .skip_unnecessary_checks_en = 0, \ .fast_conn_data_tx_en = DEFAULT_BT_LE_CTRL_FAST_CONN_DATA_TX_EN, \ + .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ + .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ + .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ .config_magic = CONFIG_MAGIC, \ } @@ -456,6 +462,10 @@ uint32_t esp_bt_get_lpclk_freq(void); void esp_bt_set_lpclk_freq(uint32_t clk_freq); +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void ble_memory_count_limit_set(uint16_t count_limit); +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED + #ifdef __cplusplus } #endif diff --git a/components/bt/porting/include/bt_osi_mem.h b/components/bt/porting/include/bt_osi_mem.h index 9ab06d0ab4d..cf5f60956e1 100644 --- a/components/bt/porting/include/bt_osi_mem.h +++ b/components/bt/porting/include/bt_osi_mem.h @@ -19,3 +19,7 @@ void *bt_osi_mem_malloc_internal(size_t size); void *bt_osi_mem_calloc_internal(size_t n, size_t size); void bt_osi_mem_free(void *ptr); + +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void bt_osi_mem_count_limit_set(uint16_t count_limit); +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED diff --git a/components/bt/porting/mem/bt_osi_mem.c b/components/bt/porting/mem/bt_osi_mem.c index 612099d2776..cbedf8c96d2 100644 --- a/components/bt/porting/mem/bt_osi_mem.c +++ b/components/bt/porting/mem/bt_osi_mem.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,10 @@ #include static uint8_t log_count; +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +static uint16_t mem_count_limit = 0; +static uint16_t curr_mem_count; +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED IRAM_ATTR void *bt_osi_mem_malloc(size_t size) { void *mem = NULL; @@ -49,11 +53,27 @@ IRAM_ATTR void *bt_osi_mem_calloc(size_t n, size_t size) IRAM_ATTR void *bt_osi_mem_malloc_internal(size_t size) { +#if CONFIG_BT_LE_MEM_CHECK_ENABLED + if (mem_count_limit) { + if (curr_mem_count > mem_count_limit) { + return NULL; + } + curr_mem_count ++; + } +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED return heap_caps_malloc(size, MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT|MALLOC_CAP_DMA); } IRAM_ATTR void *bt_osi_mem_calloc_internal(size_t n, size_t size) { +#if CONFIG_BT_LE_MEM_CHECK_ENABLED + if (mem_count_limit) { + if (curr_mem_count > mem_count_limit) { + return NULL; + } + curr_mem_count ++; + } +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED return heap_caps_calloc(n, size, MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT|MALLOC_CAP_DMA); } @@ -61,3 +81,11 @@ IRAM_ATTR void bt_osi_mem_free(void *ptr) { heap_caps_free(ptr); } + +#if CONFIG_BT_LE_MEM_CHECK_ENABLED +void bt_osi_mem_count_limit_set(uint16_t count_limit) +{ + mem_count_limit = count_limit; + curr_mem_count = 0; +} +#endif // CONFIG_BT_LE_MEM_CHECK_ENABLED diff --git a/components/efuse/include/esp_efuse.h b/components/efuse/include/esp_efuse.h index be3aca8e189..d18348fe473 100644 --- a/components/efuse/include/esp_efuse.h +++ b/components/efuse/include/esp_efuse.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -159,7 +159,7 @@ esp_err_t esp_efuse_write_field_cnt(const esp_efuse_desc_t* field[], size_t cnt) * * @return * - ESP_OK: The operation was successfully completed, or the bit was already set to value 1. - * - ESP_ERR_INVALID_ARG: Error in the passed arugments, including if the efuse field is not 1 bit wide. + * - ESP_ERR_INVALID_ARG: Error in the passed arguments, including if the efuse field is not 1 bit wide. */ esp_err_t esp_efuse_write_field_bit(const esp_efuse_desc_t* field[]); @@ -468,7 +468,7 @@ esp_err_t esp_efuse_batch_write_begin(void); * * @return * - ESP_OK: Successful. - * - ESP_ERR_INVALID_STATE: Tha batch mode was not set. + * - ESP_ERR_INVALID_STATE: The batch mode was not set. */ esp_err_t esp_efuse_batch_write_cancel(void); @@ -806,6 +806,45 @@ esp_err_t esp_efuse_check_errors(void); */ esp_err_t esp_efuse_destroy_block(esp_efuse_block_t block); +#if SOC_ECDSA_SUPPORTED +/** + * @brief Checks if 192-bit ECDSA curve operations are supported. + * + * This function checks if the current eFuse configuration supports 192-bit ECDSA curve operations. +*/ +bool esp_efuse_is_ecdsa_p192_curve_supported(void); + +/** + * @brief Checks if 256-bit ECDSA curve operations are supported. + * + * This function checks if the current eFuse configuration supports 256-bit ECDSA curve operations. +*/ +bool esp_efuse_is_ecdsa_p256_curve_supported(void); +#endif /* SOC_ECDSA_SUPPORTED*/ + +#if SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED +typedef enum { + ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P256_BIT = 0, + ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P192_BIT = 1, + ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_BOTH_P192_P256_BIT = 2, + ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P256_BIT_LOCKED = 3, +} esp_efuse_ecdsa_curve_mode_t; + +/** + * @brief Enables 192-bit ECDSA curve operations by setting the appropriate eFuse value. + * + * This function enables support for 192-bit ECDSA curve operations by configuring the + * ECDSA curve mode eFuse. It checks the current curve mode and attempts to set it to + * allow both P192 and P256 operations if not already set. + * + * @return + * - ESP_OK: Successfully enabled 192-bit ECDSA operations or already enabled + * - ESP_FAIL: Failed to enable operations due to write protection + * - Other error codes: Failed to read/write eFuse + */ +esp_err_t esp_efuse_enable_ecdsa_p192_curve_mode(void); +#endif + #ifdef __cplusplus } #endif diff --git a/components/efuse/src/esp_efuse_fields.c b/components/efuse/src/esp_efuse_fields.c index 7672c0716f3..8758bcf0739 100644 --- a/components/efuse/src/esp_efuse_fields.c +++ b/components/efuse/src/esp_efuse_fields.c @@ -16,6 +16,13 @@ #include "esp_log.h" #include "soc/efuse_periph.h" #include "sys/param.h" +#include "soc/soc_caps.h" +#include "hal/efuse_ll.h" +#include "hal/efuse_hal.h" + +#ifdef SOC_ECDSA_SUPPORTED +#include "hal/ecdsa_ll.h" +#endif /* SOC_ECDSA_SUPPORTED */ static __attribute__((unused)) const char *TAG = "efuse"; @@ -81,3 +88,66 @@ esp_err_t esp_efuse_update_secure_version(uint32_t secure_version) } return ESP_OK; } + +#if SOC_ECDSA_SUPPORTED +bool esp_efuse_is_ecdsa_p192_curve_supported(void) +{ +#if SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + if (ecdsa_ll_is_configurable_curve_supported()) { + uint32_t current_curve = efuse_hal_get_ecdsa_curve_mode(); + return (current_curve == ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_BOTH_P192_P256_BIT || current_curve == ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P192_BIT); + } else { + return true; + } +#else + return true; +#endif /* SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED */ +} + +bool esp_efuse_is_ecdsa_p256_curve_supported(void) +{ +#if SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + if (ecdsa_ll_is_configurable_curve_supported()) { + uint32_t current_curve = efuse_hal_get_ecdsa_curve_mode(); + return (current_curve != ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P192_BIT); + } else { + return true; + } +#else + return true; +#endif /* SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED */ +} +#endif /* SOC_ECDSA_SUPPORTED */ + +#if SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED +esp_err_t esp_efuse_enable_ecdsa_p192_curve_mode(void) +{ + + if (ecdsa_ll_is_configurable_curve_supported()) { + esp_err_t err; + uint8_t current_curve, next_curve; + + current_curve = efuse_hal_get_ecdsa_curve_mode(); + // Check if already in desired state + if (current_curve == ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_BOTH_P192_P256_BIT || current_curve == ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P192_BIT) { + ESP_EARLY_LOGD(TAG, "ECDSA P-192 curve mode is already enabled"); + return ESP_OK; + } + + // Check if write is disabled or already locked to P256 + if (esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_ECDSA_CURVE_MODE) || current_curve == ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_ONLY_P256_BIT_LOCKED) { + ESP_EARLY_LOGE(TAG, "ECDSA curve mode is locked, cannot enable P-192 curve"); + return ESP_FAIL; + } + + // Attempt to write new curve mode + next_curve = ESP_EFUSE_ECDSA_CURVE_MODE_ALLOW_BOTH_P192_P256_BIT; + err = esp_efuse_write_field_blob(ESP_EFUSE_ECDSA_CURVE_MODE, &next_curve, ESP_EFUSE_ECDSA_CURVE_MODE[0]->bit_count); + if (err != ESP_OK) { + ESP_EARLY_LOGE(TAG, "Failed to enable ECDSA P-192 curve %d", err); + return err; + } + } + return ESP_OK; +} +#endif /* SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED */ diff --git a/components/esp-tls/Kconfig b/components/esp-tls/Kconfig index 81d5a365fc3..1fa28008fdf 100644 --- a/components/esp-tls/Kconfig +++ b/components/esp-tls/Kconfig @@ -114,4 +114,12 @@ menu "ESP-TLS" Enable a fuller set of OCSP checks: checking revocation status of intermediate certificates, optional fallbacks to CRLs, etc. + config ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED + bool + default y + help + Enable support for dynamic buffer strategy for ESP-TLS. This is the hidden config option kept + for external components like OTA, to find out whether the dynamic buffer strategy is supported + for particular ESP-IDF version. + endmenu diff --git a/components/esp-tls/esp_tls.h b/components/esp-tls/esp_tls.h index b4a90b8f4c5..a5ea2b354f9 100644 --- a/components/esp-tls/esp_tls.h +++ b/components/esp-tls/esp_tls.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -91,6 +91,12 @@ typedef enum { ESP_TLS_VER_TLS_MAX, /* to indicate max */ } esp_tls_proto_ver_t; +typedef enum { + ESP_TLS_DYN_BUF_RX_STATIC = 1, /*!< Strategy to disable dynamic RX buffer allocations and convert to static allocation post-handshake, reducing memory fragmentation */ + ESP_TLS_DYN_BUF_STRATEGY_MAX, /*!< to indicate max */ +} esp_tls_dyn_buf_strategy_t; + + /** * @brief ESP-TLS configuration parameters * @@ -211,6 +217,11 @@ typedef struct esp_tls_cfg { const int *ciphersuites_list; /*!< Pointer to a zero-terminated array of IANA identifiers of TLS ciphersuites. Please check the list validity by esp_tls_get_ciphersuites_list() API */ esp_tls_proto_ver_t tls_version; /*!< TLS protocol version of the connection, e.g., TLS 1.2, TLS 1.3 (default - no preference) */ + +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + esp_tls_dyn_buf_strategy_t esp_tls_dyn_buf_strategy; /*!< ESP-TLS dynamic buffer strategy */ +#endif + } esp_tls_cfg_t; #if defined(CONFIG_ESP_TLS_SERVER_SESSION_TICKETS) @@ -464,7 +475,7 @@ int esp_tls_conn_http_new_async(const char *url, const esp_tls_cfg_t *cfg, esp_t * - >=0 if write operation was successful, the return value is the number * of bytes actually written to the TLS/SSL connection. * - <0 if write operation was not successful, because either an - * error occured or an action must be taken by the calling process. + * error occurred or an action must be taken by the calling process. * - ESP_TLS_ERR_SSL_WANT_READ/ * ESP_TLS_ERR_SSL_WANT_WRITE. * if the handshake is incomplete and waiting for data to be available for reading. @@ -485,7 +496,7 @@ ssize_t esp_tls_conn_write(esp_tls_t *tls, const void *data, size_t datalen); * - 0 if read operation was not successful. The underlying * connection was closed. * - <0 if read operation was not successful, because either an - * error occured or an action must be taken by the calling process. + * error occurred or an action must be taken by the calling process. */ ssize_t esp_tls_conn_read(esp_tls_t *tls, void *data, size_t datalen); @@ -537,7 +548,7 @@ esp_err_t esp_tls_get_conn_sockfd(esp_tls_t *tls, int *sockfd); * * @param[in] sockfd sockfd value to set. * - * @return - ESP_OK on success and value of sockfd for the tls connection shall updated withthe provided value + * @return - ESP_OK on success and value of sockfd for the tls connection shall updated with the provided value * - ESP_ERR_INVALID_ARG if (tls == NULL || sockfd < 0) */ esp_err_t esp_tls_set_conn_sockfd(esp_tls_t *tls, int sockfd); @@ -549,7 +560,7 @@ esp_err_t esp_tls_set_conn_sockfd(esp_tls_t *tls, int sockfd); * * @param[out] conn_state pointer to the connection state value. * - * @return - ESP_OK on success and value of sockfd for the tls connection shall updated withthe provided value + * @return - ESP_OK on success and value of sockfd for the tls connection shall updated with the provided value * - ESP_ERR_INVALID_ARG (Invalid arguments) */ esp_err_t esp_tls_get_conn_state(esp_tls_t *tls, esp_tls_conn_state_t *conn_state); @@ -561,7 +572,7 @@ esp_err_t esp_tls_get_conn_state(esp_tls_t *tls, esp_tls_conn_state_t *conn_stat * * @param[in] conn_state connection state value to set. * - * @return - ESP_OK on success and value of sockfd for the tls connection shall updated withthe provided value + * @return - ESP_OK on success and value of sockfd for the tls connection shall updated with the provided value * - ESP_ERR_INVALID_ARG (Invalid arguments) */ esp_err_t esp_tls_set_conn_state(esp_tls_t *tls, esp_tls_conn_state_t conn_state); @@ -586,7 +597,7 @@ void *esp_tls_get_ssl_context(esp_tls_t *tls); * * @return * - ESP_OK if creating global CA store was successful. - * - ESP_ERR_NO_MEM if an error occured when allocating the mbedTLS resources. + * - ESP_ERR_NO_MEM if an error occurred when allocating the mbedTLS resources. */ esp_err_t esp_tls_init_global_ca_store(void); @@ -605,7 +616,7 @@ esp_err_t esp_tls_init_global_ca_store(void); * * @return * - ESP_OK if adding certificates was successful. - * - Other if an error occured or an action must be taken by the calling process. + * - Other if an error occurred or an action must be taken by the calling process. */ esp_err_t esp_tls_set_global_ca_store(const unsigned char *cacert_pem_buf, const unsigned int cacert_pem_bytes); diff --git a/components/esp-tls/esp_tls_mbedtls.c b/components/esp-tls/esp_tls_mbedtls.c index e8e39cb3403..3d3b9cacdb3 100644 --- a/components/esp-tls/esp_tls_mbedtls.c +++ b/components/esp-tls/esp_tls_mbedtls.c @@ -19,7 +19,7 @@ #include #include "esp_log.h" #include "esp_check.h" - +#include "mbedtls/esp_mbedtls_dynamic.h" #ifdef CONFIG_MBEDTLS_HARDWARE_ECDSA_SIGN #include "ecdsa/ecdsa_alt.h" #endif @@ -39,6 +39,7 @@ static esp_err_t esp_set_atecc608a_pki_context(esp_tls_t *tls, const void *pki); #endif /* CONFIG_ESP_TLS_USE_SECURE_ELEMENT */ #if defined(CONFIG_ESP_TLS_USE_DS_PERIPHERAL) +#include #include "rsa_sign_alt.h" static esp_err_t esp_mbedtls_init_pk_ctx_for_ds(const void *pki); #endif /* CONFIG_ESP_TLS_USE_DS_PERIPHERAL */ @@ -114,6 +115,10 @@ esp_err_t esp_create_mbedtls_handle(const char *hostname, size_t hostlen, const mbedtls_ssl_conf_rng(&tls->conf, mbedtls_ctr_drbg_random, &tls->ctr_drbg); +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + tls->esp_tls_dyn_buf_strategy = ((esp_tls_cfg_t *)cfg)->esp_tls_dyn_buf_strategy; +#endif + if (tls->role == ESP_TLS_CLIENT) { esp_ret = set_client_config(hostname, hostlen, (esp_tls_cfg_t *)cfg, tls); if (esp_ret != ESP_OK) { @@ -229,6 +234,15 @@ int esp_mbedtls_handshake(esp_tls_t *tls, const esp_tls_cfg_t *cfg) #endif ret = mbedtls_ssl_handshake(&tls->ssl); if (ret == 0) { +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + if (tls->esp_tls_dyn_buf_strategy != 0) { + ret = esp_mbedtls_dynamic_set_rx_buf_static(&tls->ssl); + if (ret != 0) { + ESP_LOGE(TAG, "esp_mbedtls_dynamic_set_rx_buf_static returned -0x%04X", -ret); + return ret; + } + } +#endif tls->conn_state = ESP_TLS_DONE; #ifdef CONFIG_ESP_TLS_USE_DS_PERIPHERAL @@ -368,6 +382,28 @@ void esp_mbedtls_cleanup(esp_tls_t *tls) tls->cacert_ptr = NULL; mbedtls_x509_crt_free(&tls->cacert); mbedtls_x509_crt_free(&tls->clientcert); + +#ifdef CONFIG_ESP_TLS_USE_DS_PERIPHERAL + if (mbedtls_pk_get_type(&tls->clientkey) == MBEDTLS_PK_RSA_ALT) { + mbedtls_rsa_alt_context *rsa_alt = tls->clientkey.MBEDTLS_PRIVATE(pk_ctx); + if (rsa_alt && rsa_alt->key != NULL) { + mbedtls_rsa_free(rsa_alt->key); + mbedtls_free(rsa_alt->key); + rsa_alt->key = NULL; + } + } + + // Similar cleanup for server key + if (mbedtls_pk_get_type(&tls->serverkey) == MBEDTLS_PK_RSA_ALT) { + mbedtls_rsa_alt_context *rsa_alt = tls->serverkey.MBEDTLS_PRIVATE(pk_ctx); + if (rsa_alt && rsa_alt->key != NULL) { + mbedtls_rsa_free(rsa_alt->key); + mbedtls_free(rsa_alt->key); + rsa_alt->key = NULL; + } + } +#endif + mbedtls_pk_free(&tls->clientkey); mbedtls_entropy_free(&tls->entropy); mbedtls_ssl_config_free(&tls->conf); @@ -1114,12 +1150,18 @@ static esp_err_t esp_mbedtls_init_pk_ctx_for_ds(const void *pki) { int ret = -1; /* initialize the mbedtls pk context with rsa context */ - mbedtls_rsa_context rsakey; - mbedtls_rsa_init(&rsakey); - if ((ret = mbedtls_pk_setup_rsa_alt(((const esp_tls_pki_t*)pki)->pk_key, &rsakey, NULL, esp_ds_rsa_sign, + mbedtls_rsa_context *rsakey = calloc(1, sizeof(mbedtls_rsa_context)); + if (rsakey == NULL) { + ESP_LOGE(TAG, "Failed to allocate memory for mbedtls_rsa_context"); + return ESP_ERR_NO_MEM; + } + mbedtls_rsa_init(rsakey); + if ((ret = mbedtls_pk_setup_rsa_alt(((const esp_tls_pki_t*)pki)->pk_key, rsakey, NULL, esp_ds_rsa_sign, esp_ds_get_keylen )) != 0) { ESP_LOGE(TAG, "Error in mbedtls_pk_setup_rsa_alt, returned -0x%04X", -ret); mbedtls_print_error_msg(ret); + mbedtls_rsa_free(rsakey); + free(rsakey); ret = ESP_FAIL; goto exit; } @@ -1130,7 +1172,6 @@ static esp_err_t esp_mbedtls_init_pk_ctx_for_ds(const void *pki) } ESP_LOGD(TAG, "DS peripheral params initialized."); exit: - mbedtls_rsa_free(&rsakey); return ret; } #endif /* CONFIG_ESP_TLS_USE_DS_PERIPHERAL */ diff --git a/components/esp-tls/private_include/esp_tls_private.h b/components/esp-tls/private_include/esp_tls_private.h index 4341557aaf9..f42aa30f6e1 100644 --- a/components/esp-tls/private_include/esp_tls_private.h +++ b/components/esp-tls/private_include/esp_tls_private.h @@ -94,6 +94,10 @@ struct esp_tls { esp_tls_error_handle_t error_handle; /*!< handle to error descriptor */ +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + esp_tls_dyn_buf_strategy_t esp_tls_dyn_buf_strategy; /*!< ESP-TLS dynamic buffer strategy */ +#endif + }; // Function pointer for the server configuration API diff --git a/components/esp_adc/esp32s2/adc_cali_line_fitting.c b/components/esp_adc/esp32s2/adc_cali_line_fitting.c index 2e826e1f08a..332f1bc3a6b 100644 --- a/components/esp_adc/esp32s2/adc_cali_line_fitting.c +++ b/components/esp_adc/esp32s2/adc_cali_line_fitting.c @@ -143,7 +143,7 @@ static esp_err_t cali_raw_to_voltage(void *arg, int raw, int *voltage) //pointers are checked in the upper layer cali_chars_line_fitting_t *ctx = arg; - *voltage = raw * ctx->coeff_a / coeff_a_scaling + ctx->coeff_b / coeff_b_scaling; + *voltage = (raw * ctx->coeff_a / (coeff_a_scaling / coeff_b_scaling) + ctx->coeff_b) / coeff_b_scaling; return ESP_OK; } diff --git a/components/esp_coex/lib b/components/esp_coex/lib index cb6667841f6..c62361f19c9 160000 --- a/components/esp_coex/lib +++ b/components/esp_coex/lib @@ -1 +1 @@ -Subproject commit cb6667841f63457246d56a9170f3409917e9d5a8 +Subproject commit c62361f19c98a448255b53f8d31d3a23597e01e3 diff --git a/components/esp_driver_cam/Kconfig b/components/esp_driver_cam/Kconfig index e162894c33b..378c1d33daf 100644 --- a/components/esp_driver_cam/Kconfig +++ b/components/esp_driver_cam/Kconfig @@ -1,6 +1,6 @@ menu "ESP-Driver:Camera Controller Configurations" - depends on SOC_MIPI_CSI_SUPPORTED || SOC_LCDCAM_CAM_SUPPORTED + depends on SOC_MIPI_CSI_SUPPORTED || SOC_ISP_DVP_SUPPORTED || SOC_LCDCAM_CAM_SUPPORTED config CAM_CTLR_MIPI_CSI_ISR_CACHE_SAFE bool "CSI ISR Cache-Safe" @@ -16,6 +16,7 @@ menu "ESP-Driver:Camera Controller Configurations" config CAM_CTLR_ISP_DVP_ISR_CACHE_SAFE # IDF-10093 bool "ISP_DVP ISR Cache-Safe" + depends on SOC_ISP_DVP_SUPPORTED default n select DW_GDMA_ISR_IRAM_SAFE select DW_GDMA_CTRL_FUNC_IN_IRAM diff --git a/components/esp_driver_cam/csi/src/esp_cam_ctlr_csi.c b/components/esp_driver_cam/csi/src/esp_cam_ctlr_csi.c index 3f6c2b56d44..6491fe44069 100644 --- a/components/esp_driver_cam/csi/src/esp_cam_ctlr_csi.c +++ b/components/esp_driver_cam/csi/src/esp_cam_ctlr_csi.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -51,6 +51,7 @@ static esp_err_t s_ctlr_csi_start(esp_cam_ctlr_handle_t handle); static esp_err_t s_ctlr_csi_stop(esp_cam_ctlr_handle_t handle); static esp_err_t s_csi_ctlr_disable(esp_cam_ctlr_handle_t ctlr); static esp_err_t s_ctlr_csi_receive(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, uint32_t timeout_ms); +static void *s_csi_ctlr_alloc_buffer(esp_cam_ctlr_t *handle, size_t size, uint32_t buf_caps); static esp_err_t s_csi_claim_controller(csi_controller_t *controller) { @@ -221,6 +222,7 @@ esp_err_t esp_cam_new_csi_ctlr(const esp_cam_ctlr_csi_config_t *config, esp_cam_ ctlr->base.register_event_callbacks = s_register_event_callbacks; ctlr->base.get_internal_buffer = s_csi_ctlr_get_internal_buffer; ctlr->base.get_buffer_len = s_csi_ctlr_get_buffer_length; + ctlr->base.alloc_buffer = s_csi_ctlr_alloc_buffer; *ret_handle = &(ctlr->base); @@ -518,3 +520,23 @@ esp_err_t s_ctlr_csi_receive(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t return ESP_OK; } + +static void *s_csi_ctlr_alloc_buffer(esp_cam_ctlr_t *handle, size_t size, uint32_t buf_caps) +{ + csi_controller_t *ctlr = __containerof(handle, csi_controller_t, base); + + if (!ctlr) { + ESP_LOGE(TAG, "invalid argument: handle is null"); + return NULL; + } + + void *buffer = heap_caps_calloc(1, size, buf_caps); + if (!buffer) { + ESP_LOGE(TAG, "failed to allocate buffer"); + return NULL; + } + + ESP_LOGD(TAG, "Allocated camera buffer: %p, size: %zu", buffer, size); + + return buffer; +} diff --git a/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h b/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h index 01cd362a90d..032ab47a21e 100644 --- a/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h +++ b/components/esp_driver_cam/dvp/include/esp_cam_ctlr_dvp.h @@ -43,10 +43,12 @@ typedef struct esp_cam_ctlr_dvp_config { uint32_t bk_buffer_dis : 1; /*!< Disable backup buffer */ uint32_t pin_dont_init : 1; /*!< Don't initialize DVP pins if users have called "esp_cam_ctlr_dvp_init" before */ uint32_t pic_format_jpeg : 1; /*!< Input picture format is JPEG, if set this flag and "input_data_color_type" will be ignored */ + uint32_t external_xtal : 1; /*!< Using external XTAL, if set, xclk_io and dvp output clock will be ignored */ }; /*!< Boolean Flags */ uint32_t dma_burst_size; /*!< DVP DMA burst transmission block size, set to 0 means to disable the data burst, other value must be power of 2, e.g., 4/8/16/32/64/128 */ + uint32_t xclk_freq; /*!< DVP output clock frequency in HZ, only valid if `external_xtal` is set to true */ const esp_cam_ctlr_dvp_pin_config_t *pin; /*!< DVP pin configuration, this will be ignored by "esp_cam_new_dvp_ctlr" if "pin_dont_init" is set */ } esp_cam_ctlr_dvp_config_t; diff --git a/components/esp_driver_cam/dvp/include/esp_private/esp_cam_dvp.h b/components/esp_driver_cam/dvp/include/esp_private/esp_cam_dvp.h index 032c8161793..79a6ff5eccb 100644 --- a/components/esp_driver_cam/dvp/include/esp_private/esp_cam_dvp.h +++ b/components/esp_driver_cam/dvp/include/esp_private/esp_cam_dvp.h @@ -26,7 +26,7 @@ extern "C" { esp_err_t esp_cam_ctlr_dvp_init(int ctlr_id, cam_clock_source_t clk_src, const esp_cam_ctlr_dvp_pin_config_t *pin); /** - * @brief ESP CAM DVP output hardware clock + * @brief ESP CAM DVP output hardware clock, the function "esp_cam_ctlr_dvp_init" should be called first * * @param ctlr_id CAM DVP controller ID * @param clk_src CAM DVP clock source @@ -38,6 +38,24 @@ esp_err_t esp_cam_ctlr_dvp_init(int ctlr_id, cam_clock_source_t clk_src, const e */ esp_err_t esp_cam_ctlr_dvp_output_clock(int ctlr_id, cam_clock_source_t clk_src, uint32_t xclk_freq); +/** + * @brief Initialize ESP CAM DVP clock pin (other DVP GPIO pins excluded the clock pins will not be initialized) + * and hardware clock, then output clock signal with given frequency + * + * @note The function is implemented based on "esp_cam_ctlr_dvp_init" and "esp_cam_ctlr_dvp_output_clock", + * so calling "esp_cam_ctlr_dvp_init" and "esp_cam_ctlr_dvp_output_clock" is not required + * + * @param ctlr_id DVP controller ID + * @param pin DVP clock pin + * @param clk_src DVP clock source + * @param xclk_freq DVP clock frequency + * + * @return + * - ESP_OK on success + * - Others if failed + */ +esp_err_t esp_cam_ctlr_dvp_start_clock(int ctlr_id, gpio_num_t pin, cam_clock_source_t clk_src, uint32_t xclk_freq); + /** * @brief ESP CAM DVP de-initialzie. * diff --git a/components/esp_driver_cam/dvp/private_include/esp_cam_ctlr_dvp_dma.h b/components/esp_driver_cam/dvp/private_include/esp_cam_ctlr_dvp_dma.h index 0846d6ccd66..1a61d261042 100644 --- a/components/esp_driver_cam/dvp/private_include/esp_cam_ctlr_dvp_dma.h +++ b/components/esp_driver_cam/dvp/private_include/esp_cam_ctlr_dvp_dma.h @@ -29,6 +29,8 @@ typedef struct esp_cam_ctlr_dvp_dma { esp_cam_ctlr_dvp_dma_desc_t *desc; /*!< DVP DMA description buffer */ size_t desc_count; /*!< DVP DMA description count */ size_t desc_size; /*!< DVP DMA description buffer size in byte */ + size_t int_mem_align; /*!< DVP DMA internal memory alignment */ + size_t ext_mem_align; /*!< DVP DMA external memory alignment */ } esp_cam_ctlr_dvp_dma_t; /** diff --git a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c index a3627d157de..7d256504545 100644 --- a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c +++ b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_cam.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -26,21 +26,35 @@ #include "../../dvp_share_ctrl.h" #ifdef CONFIG_CAM_CTLR_DVP_CAM_ISR_CACHE_SAFE -#define CAM_DVP_MEM_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) +#define DVP_CAM_CTLR_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #else -#define CAM_DVP_MEM_ALLOC_CAPS (MALLOC_CAP_DEFAULT) +#define DVP_CAM_CTLR_ALLOC_CAPS (MALLOC_CAP_DEFAULT) #endif -#define ALIGN_UP_BY(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) +#if CONFIG_SPIRAM +#define DVP_CAM_BK_BUFFER_ALLOC_CAPS (MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA) +#else +#define DVP_CAM_BK_BUFFER_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA) +#endif -#define DVP_CAM_CONFIG_INPUT_PIN(pin, sig, inv) \ -{ \ - ret = esp_cam_ctlr_dvp_config_input_gpio(pin, sig, inv); \ - if (ret != ESP_OK) { \ - ESP_LOGE(TAG, "failed to configure pin=%d sig=%d", \ - pin, sig); \ - return ret; \ - } \ +#if SOC_PERIPH_CLK_CTRL_SHARED +#define DVP_CAM_CLK_ATOMIC() PERIPH_RCC_ATOMIC() +#else +#define DVP_CAM_CLK_ATOMIC() +#endif + +#define ALIGN_UP_BY(num, align) ((align) == 0 ? (num) : (((num) + ((align) - 1)) & ~((align) - 1))) + +#define DVP_CAM_CONFIG_INPUT_PIN(pin, sig, inv) \ +{ \ + if (pin != GPIO_NUM_NC) { \ + ret = esp_cam_ctlr_dvp_config_input_gpio(pin, sig, inv); \ + if (ret != ESP_OK) { \ + ESP_LOGE(TAG, "failed to configure pin=%d sig=%d", \ + pin, sig); \ + return ret; \ + } \ + } \ } typedef struct dvp_platform { @@ -138,7 +152,7 @@ static esp_err_t esp_cam_ctlr_dvp_config_input_gpio(int pin, int signal, bool in static IRAM_ATTR esp_err_t esp_cam_ctlr_dvp_start_trans(esp_cam_ctlr_dvp_cam_t *ctlr) { bool buffer_ready = false; - esp_cam_ctlr_trans_t trans; + esp_cam_ctlr_trans_t trans = {0}; if (ctlr->cur_buf) { ctlr->cur_buf = NULL; @@ -146,9 +160,14 @@ static IRAM_ATTR esp_err_t esp_cam_ctlr_dvp_start_trans(esp_cam_ctlr_dvp_cam_t * ESP_RETURN_ON_ERROR_ISR(esp_cam_ctlr_dvp_dma_stop(&ctlr->dma), TAG, "failed to stop DMA"); } - if (ctlr->cbs.on_get_new_trans && ctlr->cbs.on_get_new_trans(&(ctlr->base), &trans, ctlr->cbs_user_data)) { - buffer_ready = true; - } else if (!ctlr->bk_buffer_dis) { + if (ctlr->cbs.on_get_new_trans) { + ctlr->cbs.on_get_new_trans(&(ctlr->base), &trans, ctlr->cbs_user_data); + if (trans.buffer) { + buffer_ready = true; + } + } + + if (!buffer_ready && !ctlr->bk_buffer_dis) { trans.buffer = ctlr->backup_buffer; trans.buflen = ctlr->fb_size_in_bytes; buffer_ready = true; @@ -206,7 +225,6 @@ static uint32_t IRAM_ATTR esp_cam_ctlr_dvp_get_jpeg_size(const uint8_t *buffer, */ static uint32_t IRAM_ATTR esp_cam_ctlr_dvp_get_recved_size(esp_cam_ctlr_dvp_cam_t *ctlr, uint8_t *rx_buffer, uint32_t dma_recv_size) { - esp_err_t ret; uint32_t recv_buffer_size; if (ctlr->pic_format_jpeg) { @@ -215,8 +233,10 @@ static uint32_t IRAM_ATTR esp_cam_ctlr_dvp_get_recved_size(esp_cam_ctlr_dvp_cam_ recv_buffer_size = ctlr->fb_size_in_bytes; } - ret = esp_cache_msync(rx_buffer, recv_buffer_size, ESP_CACHE_MSYNC_FLAG_DIR_M2C); - assert(ret == ESP_OK); + if (esp_ptr_external_ram(rx_buffer)) { + esp_err_t ret = esp_cache_msync(rx_buffer, recv_buffer_size, ESP_CACHE_MSYNC_FLAG_DIR_M2C); + assert(ret == ESP_OK); + } if (ctlr->pic_format_jpeg) { recv_buffer_size = esp_cam_ctlr_dvp_get_jpeg_size(rx_buffer, dma_recv_size); @@ -332,8 +352,8 @@ esp_err_t esp_cam_ctlr_dvp_init(int ctlr_id, cam_clock_source_t clk_src, const e } } - esp_clk_tree_enable_src((soc_module_clk_t)clk_src, true); - PERIPH_RCC_ATOMIC() { + ESP_ERROR_CHECK(esp_clk_tree_enable_src((soc_module_clk_t)clk_src, true)); + DVP_CAM_CLK_ATOMIC() { cam_ll_enable_clk(ctlr_id, true); cam_ll_select_clk_src(ctlr_id, clk_src); }; @@ -342,7 +362,7 @@ esp_err_t esp_cam_ctlr_dvp_init(int ctlr_id, cam_clock_source_t clk_src, const e } /** - * @brief ESP CAM DVP output hardware clock + * @brief ESP CAM DVP output hardware clock, the function "esp_cam_ctlr_dvp_init" should be called first * * @param ctlr_id CAM DVP controller ID * @param clk_src CAM DVP clock source @@ -364,16 +384,55 @@ esp_err_t esp_cam_ctlr_dvp_output_clock(int ctlr_id, cam_clock_source_t clk_src, ESP_LOGD(TAG, "DVP clock source frequency %" PRIu32 "Hz", src_clk_hz); if ((src_clk_hz % xclk_freq) == 0) { - PERIPH_RCC_ATOMIC() { + // The camera sensors require precision without frequency and duty cycle jitter, + // so the fractional divisor can't be used. + DVP_CAM_CLK_ATOMIC() { cam_ll_set_group_clock_coeff(ctlr_id, src_clk_hz / xclk_freq, 0, 0); }; ret = ESP_OK; + } else { + ESP_LOGE(TAG, "calculated frequency divider is not integer so clock isn't changed"); } return ret; } +/** + * @brief Initialize ESP CAM DVP clock pin (other DVP GPIO pins excluded the clock pins will not be initialized) + * and hardware clock, then output clock signal with given frequency + * + * @note The function is implemented based on "esp_cam_ctlr_dvp_init" and "esp_cam_ctlr_dvp_output_clock", + * so calling "esp_cam_ctlr_dvp_init" and "esp_cam_ctlr_dvp_output_clock" is not required + * + * @param ctlr_id DVP controller ID + * @param pin DVP clock pin + * @param clk_src DVP clock source + * @param xclk_freq DVP clock frequency + * + * @return + * - ESP_OK on success + * - Others if failed + */ +esp_err_t esp_cam_ctlr_dvp_start_clock(int ctlr_id, gpio_num_t pin, cam_clock_source_t clk_src, uint32_t xclk_freq) +{ + esp_cam_ctlr_dvp_pin_config_t pin_config = {0}; + + pin_config.data_width = CAM_CTLR_DATA_WIDTH_8; + pin_config.vsync_io = GPIO_NUM_NC; + pin_config.de_io = GPIO_NUM_NC; + pin_config.pclk_io = GPIO_NUM_NC; + for (int i = 0; i < CAM_DVP_DATA_SIG_NUM; i++) { + pin_config.data_io[i] = GPIO_NUM_NC; + } + pin_config.xclk_io = pin; + + ESP_RETURN_ON_ERROR(esp_cam_ctlr_dvp_init(ctlr_id, clk_src, &pin_config), TAG, "failed to initialize DVP controller"); + ESP_RETURN_ON_ERROR(esp_cam_ctlr_dvp_output_clock(ctlr_id, clk_src, xclk_freq), TAG, "failed to output clock"); + + return ESP_OK; +} + /** * @brief ESP CAM DVP de-initialzie. * @@ -387,7 +446,7 @@ esp_err_t esp_cam_ctlr_dvp_deinit(int ctlr_id) { ESP_RETURN_ON_FALSE(ctlr_id < CAP_DVP_PERIPH_NUM, ESP_ERR_INVALID_ARG, TAG, "invalid argument: ctlr_id >= %d", CAP_DVP_PERIPH_NUM); - PERIPH_RCC_ATOMIC() { + DVP_CAM_CLK_ATOMIC() { cam_ll_enable_clk(ctlr_id, false); }; @@ -665,6 +724,47 @@ static esp_err_t esp_cam_ctlr_get_dvp_cam_frame_buffer_len(esp_cam_ctlr_handle_t return ret; } +/** + * @brief Allocate aligned camera buffer for ESP CAM DVP controller + * + * @note This function must be called after esp_cam_new_dvp_ctlr + * + * @param handle ESP CAM controller handle + * @param size Buffer size in bytes + * @param buf_caps Buffer allocation capabilities (e.g., MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA) + * + * @return + * - Buffer pointer on success + * - NULL on failure + */ +static void *esp_cam_ctlr_dvp_cam_alloc_buffer(esp_cam_ctlr_t *handle, size_t size, uint32_t buf_caps) +{ + esp_cam_ctlr_dvp_cam_t *ctlr = (esp_cam_ctlr_dvp_cam_t *)handle; + + if (!ctlr) { + ESP_LOGE(TAG, "invalid argument: handle is null"); + return NULL; + } + + size_t alignment = 1; + + if (buf_caps & MALLOC_CAP_SPIRAM) { + alignment = ctlr->dma.ext_mem_align; + } else { + alignment = ctlr->dma.int_mem_align; + } + + void *buffer = heap_caps_aligned_calloc(alignment, 1, size, buf_caps); + if (!buffer) { + ESP_LOGE(TAG, "failed to allocate buffer"); + return NULL; + } + + ESP_LOGD(TAG, "Allocated aligned camera buffer: %p, size: %zu, alignment: %zu", buffer, size, alignment); + + return buffer; +} + /** * @brief New ESP CAM DVP controller * @@ -687,11 +787,14 @@ esp_err_t esp_cam_new_dvp_ctlr(const esp_cam_ctlr_dvp_config_t *config, esp_cam_ ESP_RETURN_ON_FALSE(config && ret_handle, ESP_ERR_INVALID_ARG, TAG, "invalid argument: config or ret_handle is null"); ESP_RETURN_ON_FALSE(config->ctlr_id < CAP_DVP_PERIPH_NUM, ESP_ERR_INVALID_ARG, TAG, "invalid argument: ctlr_id >= %d", CAP_DVP_PERIPH_NUM); ESP_RETURN_ON_FALSE(config->pin_dont_init || config->pin, ESP_ERR_INVALID_ARG, TAG, "invalid argument: pin_dont_init is unset and pin is null"); - ESP_RETURN_ON_ERROR(esp_cache_get_alignment(MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA, &alignment_size), TAG, "failed to get cache alignment"); + ESP_RETURN_ON_FALSE(config->external_xtal || config->pin_dont_init || config->pin->xclk_io != GPIO_NUM_NC, ESP_ERR_INVALID_ARG, TAG, "invalid argument: xclk_io is not set"); + ESP_RETURN_ON_FALSE(config->external_xtal || config->xclk_freq, ESP_ERR_INVALID_ARG, TAG, "invalid argument: xclk_freq is not set"); + + ESP_RETURN_ON_ERROR(esp_cache_get_alignment(DVP_CAM_BK_BUFFER_ALLOC_CAPS, &alignment_size), TAG, "failed to get cache alignment"); ESP_RETURN_ON_ERROR(esp_cam_ctlr_dvp_cam_get_frame_size(config, &fb_size_in_bytes), TAG, "invalid argument: input frame pixel format is not supported"); ESP_RETURN_ON_ERROR(dvp_shared_ctrl_claim_io_signals(), TAG, "failed to claim io signals"); - esp_cam_ctlr_dvp_cam_t *ctlr = heap_caps_calloc(1, sizeof(esp_cam_ctlr_dvp_cam_t), CAM_DVP_MEM_ALLOC_CAPS); + esp_cam_ctlr_dvp_cam_t *ctlr = heap_caps_calloc(1, sizeof(esp_cam_ctlr_dvp_cam_t), DVP_CAM_CTLR_ALLOC_CAPS); ESP_GOTO_ON_FALSE(ctlr, ESP_ERR_NO_MEM, fail0, TAG, "no mem for CAM DVP controller context"); ESP_GOTO_ON_ERROR(s_dvp_claim_ctlr(config->ctlr_id, ctlr), fail1, TAG, "no available DVP controller"); @@ -699,7 +802,7 @@ esp_err_t esp_cam_new_dvp_ctlr(const esp_cam_ctlr_dvp_config_t *config, esp_cam_ ESP_LOGD(TAG, "alignment: 0x%x\n", alignment_size); fb_size_in_bytes = ALIGN_UP_BY(fb_size_in_bytes, alignment_size); if (!config->bk_buffer_dis) { - ctlr->backup_buffer = heap_caps_aligned_alloc(alignment_size, fb_size_in_bytes, MALLOC_CAP_SPIRAM); + ctlr->backup_buffer = heap_caps_aligned_alloc(alignment_size, fb_size_in_bytes, DVP_CAM_BK_BUFFER_ALLOC_CAPS); ESP_GOTO_ON_FALSE(ctlr->backup_buffer, ESP_ERR_NO_MEM, fail2, TAG, "no mem for DVP backup buffer"); } @@ -719,13 +822,21 @@ esp_err_t esp_cam_new_dvp_ctlr(const esp_cam_ctlr_dvp_config_t *config, esp_cam_ .port = config->ctlr_id, .byte_swap_en = config->byte_swap_en, }; - cam_hal_init(&ctlr->hal, &cam_hal_config); if (!config->pin_dont_init) { + // Initialzie DVP clock and GPIO internally ESP_GOTO_ON_ERROR(esp_cam_ctlr_dvp_init(config->ctlr_id, config->clk_src, config->pin), fail5, TAG, "failed to initialize clock and GPIO"); } + if (!config->external_xtal) { + // Generate DVP xtal clock internally + ESP_GOTO_ON_ERROR(esp_cam_ctlr_dvp_output_clock(config->ctlr_id, config->clk_src, config->xclk_freq), + fail5, TAG, "failed to generate xtal clock"); + } + + cam_hal_init(&ctlr->hal, &cam_hal_config); + ctlr->ctlr_id = config->ctlr_id; ctlr->fb_size_in_bytes = fb_size_in_bytes; ctlr->dvp_fsm = ESP_CAM_CTLR_DVP_CAM_FSM_INIT; @@ -743,6 +854,7 @@ esp_err_t esp_cam_new_dvp_ctlr(const esp_cam_ctlr_dvp_config_t *config, esp_cam_ ctlr->base.register_event_callbacks = esp_cam_ctlr_dvp_cam_register_event_callbacks; ctlr->base.get_internal_buffer = esp_cam_ctlr_dvp_cam_get_internal_buffer; ctlr->base.get_buffer_len = esp_cam_ctlr_get_dvp_cam_frame_buffer_len; + ctlr->base.alloc_buffer = esp_cam_ctlr_dvp_cam_alloc_buffer; *ret_handle = &ctlr->base; diff --git a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_gdma.c b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_gdma.c index bb1ef35c6c4..e9d82400b2d 100644 --- a/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_gdma.c +++ b/components/esp_driver_cam/dvp/src/esp_cam_ctlr_dvp_gdma.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -10,9 +10,24 @@ #include "esp_cache.h" #include "esp_private/esp_cache_private.h" #include "esp_cam_ctlr_dvp_dma.h" +#include "esp_memory_utils.h" #define ALIGN_UP_BY(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) +#if defined(SOC_GDMA_TRIG_PERIPH_CAM0_BUS) && (SOC_GDMA_TRIG_PERIPH_CAM0_BUS == SOC_GDMA_BUS_AHB) +#define DVP_GDMA_NEW_CHANNEL gdma_new_ahb_channel +#define DVP_GDMA_DESC_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA) +#elif defined(SOC_GDMA_TRIG_PERIPH_CAM0_BUS) && (SOC_GDMA_TRIG_PERIPH_CAM0_BUS == SOC_GDMA_BUS_AXI) +#define DVP_GDMA_NEW_CHANNEL gdma_new_axi_channel +#if CONFIG_SPIRAM +#define DVP_GDMA_DESC_ALLOC_CAPS (MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA) +#else +#define DVP_GDMA_DESC_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA) +#endif +#else +#error "Unsupported GDMA bus type for DVP" +#endif + static const char *TAG = "dvp_gdma"; /** @@ -70,9 +85,9 @@ esp_err_t esp_cam_ctlr_dvp_dma_init(esp_cam_ctlr_dvp_dma_t *dma, uint32_t burst_ #endif }; - ESP_RETURN_ON_ERROR(esp_cache_get_alignment(MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA, &alignment_size), TAG, "failed to get cache alignment"); + ESP_RETURN_ON_ERROR(esp_cache_get_alignment(DVP_GDMA_DESC_ALLOC_CAPS, &alignment_size), TAG, "failed to get cache alignment"); - ESP_RETURN_ON_ERROR(gdma_new_axi_channel(&rx_alloc_config, &dma->dma_chan), TAG, "new channel failed"); + ESP_RETURN_ON_ERROR(DVP_GDMA_NEW_CHANNEL(&rx_alloc_config, &dma->dma_chan), TAG, "new channel failed"); ESP_GOTO_ON_ERROR(gdma_connect(dma->dma_chan, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_CAM, 0)), fail0, TAG, "connect failed"); @@ -89,16 +104,19 @@ esp_err_t esp_cam_ctlr_dvp_dma_init(esp_cam_ctlr_dvp_dma_t *dma, uint32_t burst_ }; ESP_GOTO_ON_ERROR(gdma_config_transfer(dma->dma_chan, &transfer_config), fail1, TAG, "set trans ability failed"); + gdma_get_alignment_constraints(dma->dma_chan, &dma->int_mem_align, &dma->ext_mem_align); + dma->desc_count = size / ESP_CAM_CTLR_DVP_DMA_DESC_BUFFER_MAX_SIZE; if (size % ESP_CAM_CTLR_DVP_DMA_DESC_BUFFER_MAX_SIZE) { dma->desc_count++; } dma->size = size; - - ESP_LOGD(TAG, "alignment: 0x%x\n", alignment_size); + alignment_size = (alignment_size == 0) ? 1 : alignment_size; dma->desc_size = ALIGN_UP_BY(dma->desc_count * sizeof(esp_cam_ctlr_dvp_dma_desc_t), alignment_size); - dma->desc = heap_caps_aligned_alloc(alignment_size, dma->desc_size, MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA); + ESP_LOGD(TAG, "alignment_size: %d, dma->desc_count: %d, dma->desc_size: %d", alignment_size, dma->desc_count, dma->desc_size); + dma->desc = heap_caps_aligned_alloc(alignment_size, dma->desc_size, DVP_GDMA_DESC_ALLOC_CAPS); + ESP_GOTO_ON_FALSE(dma->desc, ESP_ERR_NO_MEM, fail1, TAG, "no mem for DVP DMA descriptor"); return ESP_OK; @@ -142,15 +160,15 @@ esp_err_t esp_cam_ctlr_dvp_dma_deinit(esp_cam_ctlr_dvp_dma_t *dma) */ esp_err_t IRAM_ATTR esp_cam_ctlr_dvp_dma_start(esp_cam_ctlr_dvp_dma_t *dma, uint8_t *buffer, size_t size) { - esp_err_t ret; - ESP_RETURN_ON_FALSE_ISR(dma, ESP_ERR_INVALID_ARG, TAG, "invalid argument: null pointer"); ESP_RETURN_ON_FALSE_ISR(dma->size >= size, ESP_ERR_INVALID_ARG, TAG, "input buffer size is out of range"); esp_cam_ctlr_dvp_config_dma_desc(dma->desc, buffer, size); - ret = esp_cache_msync(dma->desc, dma->desc_size, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_INVALIDATE); - assert(ret == ESP_OK); + if (esp_ptr_external_ram(dma->desc)) { + esp_err_t ret = esp_cache_msync(dma->desc, dma->desc_size, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_INVALIDATE); + assert(ret == ESP_OK); + } return gdma_start(dma->dma_chan, (intptr_t)dma->desc); } diff --git a/components/esp_driver_cam/esp_cam_ctlr.c b/components/esp_driver_cam/esp_cam_ctlr.c index a2a4e2e9d0d..43361addc9b 100644 --- a/components/esp_driver_cam/esp_cam_ctlr.c +++ b/components/esp_driver_cam/esp_cam_ctlr.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -91,3 +91,11 @@ esp_err_t esp_cam_ctlr_del(esp_cam_ctlr_handle_t handle) return handle->del(handle); } + +void *esp_cam_ctlr_alloc_buffer(esp_cam_ctlr_handle_t handle, size_t size, uint32_t buf_caps) +{ + ESP_RETURN_ON_FALSE(handle, NULL, TAG, "invalid argument: null pointer"); + ESP_RETURN_ON_FALSE(handle->alloc_buffer, NULL, TAG, "alloc_buffer function not supported"); + + return handle->alloc_buffer(handle, size, buf_caps); +} diff --git a/components/esp_driver_cam/include/esp_cam_ctlr.h b/components/esp_driver_cam/include/esp_cam_ctlr.h index 6365ad6b738..ed01642ad6f 100644 --- a/components/esp_driver_cam/include/esp_cam_ctlr.h +++ b/components/esp_driver_cam/include/esp_cam_ctlr.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ #include #include #include "esp_err.h" +#include "esp_heap_caps.h" #include "esp_cam_ctlr_types.h" #ifdef __cplusplus @@ -132,6 +133,23 @@ esp_err_t esp_cam_ctlr_get_frame_buffer(esp_cam_ctlr_handle_t handle, uint32_t f */ esp_err_t esp_cam_ctlr_get_frame_buffer_len(esp_cam_ctlr_handle_t handle, size_t *ret_fb_len); +/** + * @brief Allocate camera buffer for ESP CAM controller + * + * @note This function must be called after esp_cam_new_*_ctlr + * + * @param[in] handle ESP CAM controller handle + * @param[in] size Buffer size in bytes + * @param[in] buf_caps Buffer allocation capabilities: + * - MALLOC_CAP_SPIRAM || MALLOC_CAP_DMA: Memory in external SPI RAM + * - MALLOC_CAP_INTERNAL || MALLOC_CAP_DMA: Memory in internal SRAM + * + * @return + * - Buffer pointer on success + * - NULL on failure + */ +void *esp_cam_ctlr_alloc_buffer(esp_cam_ctlr_handle_t handle, size_t size, uint32_t buf_caps); + #ifdef __cplusplus } #endif diff --git a/components/esp_driver_cam/interface/esp_cam_ctlr_interface.h b/components/esp_driver_cam/interface/esp_cam_ctlr_interface.h index 031b9f66da5..893e48413d9 100644 --- a/components/esp_driver_cam/interface/esp_cam_ctlr_interface.h +++ b/components/esp_driver_cam/interface/esp_cam_ctlr_interface.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -133,6 +133,19 @@ struct esp_cam_ctlr_t { */ esp_err_t (*get_buffer_len)(esp_cam_ctlr_t *, size_t *); + /** + * @brief Allocate aligned camera buffer for ESP CAM controller + * + * @param[in] esp_cam_ctlr_t * ESP CAM controller handle + * @param[in] size_t Buffer size in bytes + * @param[in] uint32_t Buffer allocation capabilities + * + * @return + * - Buffer pointer on success + * - NULL on failure + */ + void *(*alloc_buffer)(esp_cam_ctlr_t *, size_t, uint32_t); + void *user_data; ///< User data }; diff --git a/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h b/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h index 10861262fae..6921ed0f23b 100644 --- a/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h +++ b/components/esp_driver_cam/isp_dvp/include/esp_cam_ctlr_isp_dvp.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -28,9 +28,9 @@ typedef struct { int de_io; ///< ISP DVP de IO numbers struct { uint32_t pclk_invert: 1; ///< The pclk is inverted - uint32_t hsync_invert: 1; ///< The hsync signal is inverted - uint32_t vsync_invert: 1; ///< The vsync signal is inverted - uint32_t de_invert: 1; ///< The de signal is inverted + uint32_t hsync_invert: 1; ///< The hsync signal is inverted (i.e. active low) + uint32_t vsync_invert: 1; ///< The vsync signal is inverted (i.e. active high) + uint32_t de_invert: 1; ///< The de signal is inverted (i.e. active low) } io_flags; ///< ISP DVP IO flags int queue_items; ///< Queue items struct { diff --git a/components/esp_driver_cam/isp_dvp/src/esp_cam_ctlr_isp_dvp.c b/components/esp_driver_cam/isp_dvp/src/esp_cam_ctlr_isp_dvp.c index 61fea881e26..ec20be674f7 100644 --- a/components/esp_driver_cam/isp_dvp/src/esp_cam_ctlr_isp_dvp.c +++ b/components/esp_driver_cam/isp_dvp/src/esp_cam_ctlr_isp_dvp.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -79,6 +79,7 @@ static esp_err_t s_isp_dvp_start(esp_cam_ctlr_handle_t handle); static esp_err_t s_isp_dvp_stop(esp_cam_ctlr_handle_t handle); static esp_err_t s_isp_dvp_receive(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, uint32_t timeout_ms); static bool s_dvp_dma_trans_done_callback(dw_gdma_channel_handle_t chan, const dw_gdma_trans_done_event_data_t *event_data, void *user_data); +static void *s_isp_dvp_alloc_buffer(esp_cam_ctlr_t *handle, size_t size, uint32_t buf_caps); esp_err_t esp_cam_new_isp_dvp_ctlr(isp_proc_handle_t isp_proc, const esp_cam_ctlr_isp_dvp_cfg_t *ctlr_config, esp_cam_ctlr_handle_t *ret_handle) { @@ -189,6 +190,7 @@ esp_err_t esp_cam_new_isp_dvp_ctlr(isp_proc_handle_t isp_proc, const esp_cam_ctl cam_ctlr->register_event_callbacks = s_isp_dvp_register_event_callbacks; cam_ctlr->get_internal_buffer = s_isp_dvp_get_frame_buffer; cam_ctlr->get_buffer_len = s_isp_dvp_get_frame_buffer_length; + cam_ctlr->alloc_buffer = s_isp_dvp_alloc_buffer; *ret_handle = cam_ctlr; return ESP_OK; @@ -567,3 +569,23 @@ static esp_err_t s_isp_declaim_dvp_controller(isp_dvp_controller_t *dvp_ctlr) return ESP_OK; } + +static void *s_isp_dvp_alloc_buffer(esp_cam_ctlr_t *handle, size_t size, uint32_t buf_caps) +{ + isp_dvp_controller_t *dvp_ctlr = __containerof(handle, isp_dvp_controller_t, base); + + if (!dvp_ctlr) { + ESP_LOGE(TAG, "invalid argument: handle is null"); + return NULL; + } + + void *buffer = heap_caps_calloc(1, size, buf_caps); + if (!buffer) { + ESP_LOGE(TAG, "failed to allocate buffer"); + return NULL; + } + + ESP_LOGD(TAG, "Allocated camera buffer: %p, size: %zu", buffer, size); + + return buffer; +} diff --git a/components/esp_driver_cam/test_apps/dvp/README.md b/components/esp_driver_cam/test_apps/dvp/README.md index 909282018f2..25fbbd517f0 100644 --- a/components/esp_driver_cam/test_apps/dvp/README.md +++ b/components/esp_driver_cam/test_apps/dvp/README.md @@ -1,2 +1,2 @@ -| Supported Targets | ESP32-P4 | -| ----------------- | -------- | +| Supported Targets | ESP32-P4 | ESP32-S3 | +| ----------------- | -------- | -------- | diff --git a/components/esp_driver_cam/test_apps/dvp/main/test_dvp_driver.c b/components/esp_driver_cam/test_apps/dvp/main/test_dvp_driver.c index 4f6b7041e81..b7e7e5ac2fe 100644 --- a/components/esp_driver_cam/test_apps/dvp/main/test_dvp_driver.c +++ b/components/esp_driver_cam/test_apps/dvp/main/test_dvp_driver.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,7 @@ #include "sdkconfig.h" #include "unity.h" #include "esp_cam_ctlr_dvp.h" +#include "esp_private/esp_cam_dvp.h" #include "esp_cam_ctlr.h" TEST_CASE("TEST DVP driver allocation", "[DVP]") @@ -17,9 +18,10 @@ TEST_CASE("TEST DVP driver allocation", "[DVP]") .h_res = 800, .v_res = 640, .input_data_color_type = CAM_CTLR_COLOR_RGB565, - .dma_burst_size = 128, + .dma_burst_size = 64, .byte_swap_en = false, .pin_dont_init = true, + .external_xtal = true, }; esp_cam_ctlr_handle_t handle = NULL; TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); @@ -41,10 +43,11 @@ TEST_CASE("TEST DVP driver allocation with JPEG input", "[DVP]") .clk_src = CAM_CLK_SRC_DEFAULT, .h_res = 800, .v_res = 640, - .dma_burst_size = 128, + .dma_burst_size = 64, .byte_swap_en = false, .pin_dont_init = true, .pic_format_jpeg = true, + .external_xtal = true, }; esp_cam_ctlr_handle_t handle = NULL; TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); @@ -67,10 +70,11 @@ TEST_CASE("TEST DVP driver no backup buffer usage", "[DVP]") .h_res = 800, .v_res = 640, .input_data_color_type = CAM_CTLR_COLOR_RGB565, - .dma_burst_size = 128, + .dma_burst_size = 64, .byte_swap_en = false, .bk_buffer_dis = true, .pin_dont_init = true, + .external_xtal = true, }; esp_cam_ctlr_handle_t handle = NULL; TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); @@ -84,3 +88,98 @@ TEST_CASE("TEST DVP driver no backup buffer usage", "[DVP]") TEST_ASSERT_EQUAL((dvp_config.h_res * dvp_config.v_res * 2), bk_buffer_len); // out type RGB565 using 2 byte / pixel TEST_ESP_OK(esp_cam_ctlr_del(handle)); } + +TEST_CASE("TEST DVP driver intern/extern init", "[DVP]") +{ + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = 800, + .v_res = 640, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 64, + .byte_swap_en = false, + .external_xtal = true, + }; + esp_cam_ctlr_handle_t handle = NULL; + + //Init externally, do not check pin + dvp_config.pin_dont_init = true; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); + + //Init internally but not set pin + dvp_config.pin_dont_init = false; + TEST_ESP_ERR(ESP_ERR_INVALID_ARG, esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + + //Init internally and set pin + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = 8, + }; + dvp_config.pin = &pin_cfg; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); +} + +TEST_CASE("TEST DVP driver intern/extern generate xclk", "[DVP]") +{ + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = 800, + .v_res = 640, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 64, + .byte_swap_en = false, + .external_xtal = true, + }; + esp_cam_ctlr_handle_t handle = NULL; + + //Init externally, generate xclk externally, check nothing + dvp_config.pin_dont_init = true; + dvp_config.external_xtal = true; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); + + //Init externally, generate xclk internally, do not check pin, check xclk_freq + dvp_config.pin_dont_init = true; + dvp_config.external_xtal = false; + TEST_ESP_ERR(ESP_ERR_INVALID_ARG, esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + dvp_config.xclk_freq = 20000000; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); + + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = 8, + .xclk_io = GPIO_NUM_NC, + }; + + //Init internally, generate xclk externally, check nothing + dvp_config.pin = &pin_cfg; + dvp_config.pin_dont_init = false; + dvp_config.external_xtal = true; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); + + //Init internally, generate xclk internally, check xclk_io and xclk_freq + dvp_config.pin = &pin_cfg; + dvp_config.pin_dont_init = false; + dvp_config.external_xtal = false; + TEST_ESP_ERR(ESP_ERR_INVALID_ARG, esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + + pin_cfg.xclk_io = 20; + dvp_config.pin = &pin_cfg; + TEST_ESP_OK(esp_cam_new_dvp_ctlr(&dvp_config, &handle)); + TEST_ESP_OK(esp_cam_ctlr_del(handle)); +} + +TEST_CASE("TEST DVP driver only output xclk signal", "[DVP]") +{ + TEST_ESP_OK(esp_cam_ctlr_dvp_start_clock(0, 20, CAM_CLK_SRC_DEFAULT, 20000000)); + TEST_ESP_OK(esp_cam_ctlr_dvp_deinit(0)); + +#if CONFIG_IDF_TARGET_ESP32S3 + TEST_ESP_OK(esp_cam_ctlr_dvp_start_clock(0, 20, CAM_CLK_SRC_PLL240M, 24000000)); + TEST_ESP_OK(esp_cam_ctlr_dvp_deinit(0)); +#endif +} diff --git a/components/esp_driver_cam/test_apps/dvp/pytest_dvp.py b/components/esp_driver_cam/test_apps/dvp/pytest_dvp.py index 139f1c0694b..7e15807406a 100644 --- a/components/esp_driver_cam/test_apps/dvp/pytest_dvp.py +++ b/components/esp_driver_cam/test_apps/dvp/pytest_dvp.py @@ -1,10 +1,27 @@ -# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut +from pytest_embedded_idf.utils import idf_parametrize -@pytest.mark.esp32p4 @pytest.mark.generic +@pytest.mark.parametrize( + 'config', + ['cache_safe'], + indirect=True, +) +@idf_parametrize('target', ['esp32p4'], indirect=['target']) def test_dvp(dut: Dut) -> None: dut.run_all_single_board_cases() + + +@pytest.mark.octal_psram +@pytest.mark.parametrize( + 'config', + ['cache_safe'], + indirect=True, +) +@idf_parametrize('target', ['esp32s3'], indirect=['target']) +def test_dvp_octal(dut: Dut) -> None: + dut.run_all_single_board_cases() diff --git a/components/esp_driver_cam/test_apps/dvp/sdkconfig.ci.cache_safe b/components/esp_driver_cam/test_apps/dvp/sdkconfig.ci.cache_safe index 6a7ded982f3..97180e808b1 100644 --- a/components/esp_driver_cam/test_apps/dvp/sdkconfig.ci.cache_safe +++ b/components/esp_driver_cam/test_apps/dvp/sdkconfig.ci.cache_safe @@ -1 +1,7 @@ -CONFIG_CAM_CTLR_MIPI_CSI_ISR_CACHE_SAFE=y +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +# silent the error check, as the error string are stored in rodata, causing RTL check failure +CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y +CONFIG_HAL_ASSERTION_SILENT=y + +CONFIG_CAM_CTLR_DVP_CAM_ISR_CACHE_SAFE=y diff --git a/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults b/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults index eb6374a3709..87397fa9453 100644 --- a/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults +++ b/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults @@ -2,4 +2,3 @@ # Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration # CONFIG_ESP_TASK_WDT_EN=n -CONFIG_FREERTOS_HZ=1000 diff --git a/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults.esp32s3 b/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults.esp32s3 new file mode 100644 index 00000000000..15ecad20b0a --- /dev/null +++ b/components/esp_driver_cam/test_apps/dvp/sdkconfig.defaults.esp32s3 @@ -0,0 +1,4 @@ +CONFIG_IDF_TARGET="esp32s3" + +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y diff --git a/components/esp_driver_i2c/i2c_common.c b/components/esp_driver_i2c/i2c_common.c index 12a452d5504..01c506c55ec 100644 --- a/components/esp_driver_i2c/i2c_common.c +++ b/components/esp_driver_i2c/i2c_common.c @@ -27,6 +27,7 @@ #include "esp_clk_tree.h" #include "clk_ctrl_os.h" #include "esp_private/gpio.h" +#include "esp_private/esp_gpio_reserve.h" #if SOC_LP_I2C_SUPPORTED #include "hal/rtc_io_ll.h" #include "driver/rtc_io.h" @@ -318,6 +319,17 @@ static esp_err_t s_hp_i2c_pins_config(i2c_bus_handle_t handle) { int port_id = handle->port_num; + // reserve the GPIO output path, because we don't expect another peripheral to signal to the same GPIO + uint64_t old_gpio_rsv_mask = esp_gpio_reserve(BIT64(handle->sda_num) | BIT64(handle->scl_num)); + // check if the GPIO is already used by others + if (old_gpio_rsv_mask & BIT64(handle->sda_num)) { + ESP_LOGW(TAG, "GPIO %d is not usable, maybe conflict with others", handle->sda_num); + } + // check if the GPIO is already used by others + if (old_gpio_rsv_mask & BIT64(handle->scl_num)) { + ESP_LOGW(TAG, "GPIO %d is not usable, maybe conflict with others", handle->scl_num); + } + // SDA pin configurations ESP_RETURN_ON_ERROR(gpio_set_level(handle->sda_num, 1), TAG, "i2c sda pin set level failed"); gpio_input_enable(handle->sda_num); @@ -356,6 +368,17 @@ static esp_err_t s_lp_i2c_pins_config(i2c_bus_handle_t handle) ESP_RETURN_ON_ERROR(!rtc_gpio_is_valid_gpio(handle->sda_num), TAG, "LP I2C SDA GPIO invalid"); ESP_RETURN_ON_ERROR(!rtc_gpio_is_valid_gpio(handle->scl_num), TAG, "LP I2C SCL GPIO invalid"); + // reserve the GPIO output path, because we don't expect another peripheral to signal to the same GPIO + uint64_t old_gpio_rsv_mask = esp_gpio_reserve(BIT64(handle->sda_num) | BIT64(handle->scl_num)); + // check if the GPIO is already used by others + if (old_gpio_rsv_mask & BIT64(handle->sda_num)) { + ESP_LOGW(TAG, "GPIO %d is not usable, maybe conflict with others", handle->sda_num); + } + // check if the GPIO is already used by others + if (old_gpio_rsv_mask & BIT64(handle->scl_num)) { + ESP_LOGW(TAG, "GPIO %d is not usable, maybe conflict with others", handle->scl_num); + } + #if !SOC_LP_GPIO_MATRIX_SUPPORTED /* Verify that the SDA and SCL line belong to the LP IO Mux I2C function group */ ESP_RETURN_ON_FALSE((handle->sda_num == LP_I2C_SDA_IOMUX_PAD), ESP_ERR_INVALID_ARG, TAG, LP_I2C_SDA_PIN_ERR_LOG); @@ -418,6 +441,9 @@ esp_err_t i2c_common_deinit_pins(i2c_bus_handle_t handle) { int port_id = handle->port_num; + esp_gpio_revoke(BIT64(handle->sda_num)); + esp_gpio_revoke(BIT64(handle->scl_num)); + if (handle->is_lp_i2c == false) { ESP_RETURN_ON_ERROR(gpio_output_disable(handle->sda_num), TAG, "disable i2c pins failed"); esp_rom_gpio_connect_in_signal(GPIO_MATRIX_CONST_ZERO_INPUT, i2c_periph_signal[port_id].sda_in_sig, 0); diff --git a/components/esp_driver_i2c/i2c_master.c b/components/esp_driver_i2c/i2c_master.c index 8beb6555029..4cfb10fb284 100644 --- a/components/esp_driver_i2c/i2c_master.c +++ b/components/esp_driver_i2c/i2c_master.c @@ -14,7 +14,7 @@ #if CONFIG_I2C_ENABLE_DEBUG_LOG // The local log level must be defined before including esp_log.h // Set the maximum log level for this source file -#define LOG_LOCAL_LEVEL ESP_LOG_DEBUG +#define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE #endif #include "esp_log.h" #include "esp_intr_alloc.h" @@ -157,7 +157,7 @@ static void s_i2c_err_log_print(i2c_master_event_t event, bool bypass_nack_log) } if (bypass_nack_log != true) { if (event == I2C_EVENT_NACK) { - ESP_LOGE(TAG, "I2C transaction unexpected nack detected"); + ESP_LOGD(TAG, "I2C transaction unexpected nack detected"); } } } @@ -507,7 +507,7 @@ static void s_i2c_send_commands(i2c_master_bus_handle_t i2c_master, TickType_t t } if (atomic_load(&i2c_master->status) == I2C_STATUS_ACK_ERROR) { - ESP_LOGE(TAG, "I2C hardware NACK detected"); + ESP_LOGD(TAG, "I2C hardware NACK detected"); const i2c_ll_hw_cmd_t hw_stop_cmd = { .op_code = I2C_LL_CMD_STOP, }; @@ -942,7 +942,10 @@ static esp_err_t s_i2c_synchronous_transaction(i2c_master_dev_handle_t i2c_dev, i2c_dev->master_bus->trans_finish = false; i2c_dev->master_bus->queue_trans = false; i2c_dev->master_bus->ack_check_disable = i2c_dev->ack_check_disable; - ESP_GOTO_ON_ERROR(s_i2c_transaction_start(i2c_dev, timeout_ms), err, TAG, "I2C transaction failed"); + ret = s_i2c_transaction_start(i2c_dev, timeout_ms); + if (ret != ESP_OK) { + goto err; + } xSemaphoreGive(i2c_dev->master_bus->bus_lock_mux); return ret; @@ -955,9 +958,6 @@ err: esp_err_t i2c_new_master_bus(const i2c_master_bus_config_t *bus_config, i2c_master_bus_handle_t *ret_bus_handle) { -#if CONFIG_I2C_ENABLE_DEBUG_LOG - esp_log_level_set(TAG, ESP_LOG_DEBUG); -#endif esp_err_t ret = ESP_OK; i2c_master_bus_t *i2c_master = NULL; i2c_port_num_t i2c_port_num = bus_config->i2c_port; @@ -1187,6 +1187,7 @@ esp_err_t i2c_master_multi_buffer_transmit(i2c_master_dev_handle_t i2c_dev, i2c_ ESP_RETURN_ON_FALSE(array_size <= (SOC_I2C_CMD_REG_NUM - 2), ESP_ERR_INVALID_ARG, TAG, "i2c command list cannot contain so many commands"); ESP_RETURN_ON_FALSE(buffer_info_array != NULL, ESP_ERR_INVALID_ARG, TAG, "buffer info array is empty"); + esp_err_t ret = ESP_OK; size_t op_index = 0; i2c_operation_t i2c_ops[SOC_I2C_CMD_REG_NUM] = {}; i2c_ops[op_index++].hw_cmd.op_code = I2C_LL_CMD_RESTART; @@ -1204,11 +1205,11 @@ esp_err_t i2c_master_multi_buffer_transmit(i2c_master_dev_handle_t i2c_dev, i2c_ i2c_ops[op_index++].hw_cmd.op_code = I2C_LL_CMD_STOP; if (i2c_dev->master_bus->async_trans == false) { - ESP_RETURN_ON_ERROR(s_i2c_synchronous_transaction(i2c_dev, i2c_ops, op_index, xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_synchronous_transaction(i2c_dev, i2c_ops, op_index, xfer_timeout_ms); } else { - ESP_RETURN_ON_ERROR(s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, op_index, xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, op_index, xfer_timeout_ms); } - return ESP_OK; + return ret; } esp_err_t i2c_master_transmit(i2c_master_dev_handle_t i2c_dev, const uint8_t *write_buffer, size_t write_size, int xfer_timeout_ms) @@ -1228,6 +1229,7 @@ esp_err_t i2c_master_transmit_receive(i2c_master_dev_handle_t i2c_dev, const uin ESP_RETURN_ON_FALSE((write_buffer != NULL) && (write_size > 0), ESP_ERR_INVALID_ARG, TAG, "i2c transmit buffer or size invalid"); ESP_RETURN_ON_FALSE((read_buffer != NULL) && (read_size > 0), ESP_ERR_INVALID_ARG, TAG, "i2c receive buffer or size invalid"); + esp_err_t ret = ESP_OK; i2c_operation_t i2c_ops[] = { {.hw_cmd = I2C_TRANS_START_COMMAND}, {.hw_cmd = I2C_TRANS_WRITE_COMMAND(i2c_dev->ack_check_disable ? false : true), .data = (uint8_t *)write_buffer, .total_bytes = write_size}, @@ -1238,17 +1240,18 @@ esp_err_t i2c_master_transmit_receive(i2c_master_dev_handle_t i2c_dev, const uin }; if (i2c_dev->master_bus->async_trans == false) { - ESP_RETURN_ON_ERROR(s_i2c_synchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_synchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms); } else { - ESP_RETURN_ON_ERROR(s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms); } - return ESP_OK; + return ret; } esp_err_t i2c_master_receive(i2c_master_dev_handle_t i2c_dev, uint8_t *read_buffer, size_t read_size, int xfer_timeout_ms) { ESP_RETURN_ON_FALSE(i2c_dev != NULL, ESP_ERR_INVALID_ARG, TAG, "i2c handle not initialized"); ESP_RETURN_ON_FALSE((read_buffer != NULL) && (read_size > 0), ESP_ERR_INVALID_ARG, TAG, "i2c receive buffer or size invalid"); + esp_err_t ret = ESP_OK; i2c_operation_t i2c_ops[] = { {.hw_cmd = I2C_TRANS_START_COMMAND}, @@ -1258,11 +1261,11 @@ esp_err_t i2c_master_receive(i2c_master_dev_handle_t i2c_dev, uint8_t *read_buff }; if (i2c_dev->master_bus->async_trans == false) { - ESP_RETURN_ON_ERROR(s_i2c_synchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_synchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms); } else { - ESP_RETURN_ON_ERROR(s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, DIM(i2c_ops), xfer_timeout_ms); } - return ESP_OK; + return ret; } esp_err_t i2c_master_probe(i2c_master_bus_handle_t bus_handle, uint16_t address, int xfer_timeout_ms) @@ -1327,6 +1330,7 @@ esp_err_t i2c_master_execute_defined_operations(i2c_master_dev_handle_t i2c_dev, ESP_RETURN_ON_FALSE(i2c_operation != NULL, ESP_ERR_INVALID_ARG, TAG, "i2c operation pointer is invalid"); ESP_RETURN_ON_FALSE(operation_list_num <= (SOC_I2C_CMD_REG_NUM), ESP_ERR_INVALID_ARG, TAG, "i2c command list cannot contain so many commands"); + esp_err_t ret = ESP_OK; i2c_operation_t i2c_ops[operation_list_num]; memset(i2c_ops, 0, sizeof(i2c_ops)); for (int i = 0; i < operation_list_num; i++) { @@ -1363,11 +1367,11 @@ esp_err_t i2c_master_execute_defined_operations(i2c_master_dev_handle_t i2c_dev, } if (i2c_dev->master_bus->async_trans == false) { - ESP_RETURN_ON_ERROR(s_i2c_synchronous_transaction(i2c_dev, i2c_ops, operation_list_num, xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_synchronous_transaction(i2c_dev, i2c_ops, operation_list_num, xfer_timeout_ms); } else { - ESP_RETURN_ON_ERROR(s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, operation_list_num, xfer_timeout_ms), TAG, "I2C transaction failed"); + ret = s_i2c_asynchronous_transaction(i2c_dev, i2c_ops, operation_list_num, xfer_timeout_ms); } - return ESP_OK; + return ret; } esp_err_t i2c_master_register_event_callbacks(i2c_master_dev_handle_t i2c_dev, const i2c_master_event_callbacks_t *cbs, void *user_data) @@ -1410,3 +1414,11 @@ esp_err_t i2c_master_bus_wait_all_done(i2c_master_bus_handle_t bus_handle, int t return ESP_OK; } + +#if CONFIG_I2C_ENABLE_DEBUG_LOG +__attribute__((constructor)) +static void i2c_master_override_default_log_level(void) +{ + esp_log_level_set(TAG, ESP_LOG_VERBOSE); +} +#endif diff --git a/components/esp_driver_jpeg/jpeg_decode.c b/components/esp_driver_jpeg/jpeg_decode.c index d940acc3397..c0121b1876c 100644 --- a/components/esp_driver_jpeg/jpeg_decode.c +++ b/components/esp_driver_jpeg/jpeg_decode.c @@ -245,6 +245,10 @@ esp_err_t jpeg_decoder_process(jpeg_decoder_handle_t decoder_engine, const jpeg_ ret = esp_cache_msync((void*)decoder_engine->header_info->buffer_offset, decoder_engine->header_info->buffer_left, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_UNALIGNED); assert(ret == ESP_OK); + // Before 2DDMA starts, invalidate cache ahead of time. + ret = esp_cache_msync((void*)decoder_engine->decoded_buf, outbuf_size, ESP_CACHE_MSYNC_FLAG_DIR_M2C); + assert(ret == ESP_OK); + ESP_GOTO_ON_ERROR(dma2d_enqueue(decoder_engine->dma2d_group_handle, &trans_desc, decoder_engine->trans_desc), err2, TAG, "enqueue dma2d failed"); bool need_yield; // Blocking for JPEG decode transaction finishes. diff --git a/components/esp_driver_jpeg/jpeg_encode.c b/components/esp_driver_jpeg/jpeg_encode.c index 9e9ce47e627..e57d62d25ae 100644 --- a/components/esp_driver_jpeg/jpeg_encode.c +++ b/components/esp_driver_jpeg/jpeg_encode.c @@ -237,7 +237,7 @@ esp_err_t jpeg_encoder_process(jpeg_encoder_handle_t encoder_engine, const jpeg_ memset(encoder_engine->txlink, 0, sizeof(dma2d_descriptor_t)); s_cfg_desc(encoder_engine, encoder_engine->txlink, JPEG_DMA2D_2D_ENABLE, DMA2D_DESCRIPTOR_BLOCK_RW_MODE_MULTIPLE, dma_vb, dma_hb, JPEG_DMA2D_EOF_NOT_LAST, dma2d_desc_pixel_format_to_pbyte_value(picture_format), DMA2D_DESCRIPTOR_BUFFER_OWNER_DMA, encoder_engine->header_info->origin_v, encoder_engine->header_info->origin_h, raw_buffer, NULL); - ret = esp_cache_msync((void*)raw_buffer, encoder_engine->header_info->origin_v * encoder_engine->header_info->origin_h * encoder_engine->bytes_per_pixel, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_UNALIGNED); + ret = esp_cache_msync((void*)raw_buffer, inbuf_size, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_UNALIGNED); assert(ret == ESP_OK); dma2d_trans_config_t trans_desc = { diff --git a/components/esp_driver_pcnt/README.md b/components/esp_driver_pcnt/README.md new file mode 100644 index 00000000000..a1f445eba48 --- /dev/null +++ b/components/esp_driver_pcnt/README.md @@ -0,0 +1,39 @@ +# PCNT Driver Design + +## Concurrency + +The count value and the overflow state of the count value are located in *different* registers, resulting in the software being unable to obtain information from both of them in the same read instruction. + +The race condition case is as follow: + +```mermaid +sequenceDiagram + participant HW as PCNT Hardware + participant CPU0_ISR as CPU0_ISR + participant CPU1_Task as CPU1_Task (pcnt_unit_get_count) + participant REG as Reg and Soft accum counter State + + CPU1_Task->>CPU1_Task: Call pcnt_unit_get_count() + Note over REG: intr_status = 0
cnt_reg = cnt_value
accum_value = old_value + CPU1_Task->>CPU1_Task: portENTER_CRITICAL_SAFE() + CPU1_Task->>REG: Read intr_status + Note over CPU1_Task: intr_status=0, no need to do compensation + HW->>REG: Overflow interrupt triggered + Note over REG: intr_status = 1
cnt_reg = 0
accum_value = old_value + REG->>CPU0_ISR: ISR is called + CPU0_ISR->>CPU0_ISR: try portENTER_CRITICAL_SAFE() but spin + + CPU1_Task->>REG: Read cnt_reg(0) + accum_value(old) + CPU1_Task->>CPU1_Task: portEXIT_CRITICAL_SAFE() + + CPU0_ISR->>CPU0_ISR: portENTER_CRITICAL_SAFE() + CPU0_ISR->>REG: Clear interrupt status and update accum_value + Note over REG: intr_status = 0
accum_value = new_value + CPU0_ISR->>CPU0_ISR: portEXIT_CRITICAL_SAFE() + + Note over CPU0_ISR: Process events + Note over CPU1_Task: Return incorrect count ❌ + +``` + +In the software, we determine whether to perform compensation by checking whether the count value exceeds half of the limit. This can prevent counting errors when the overflow frequency is not high. diff --git a/components/esp_driver_pcnt/src/pulse_cnt.c b/components/esp_driver_pcnt/src/pulse_cnt.c index fa5648b9611..63c313eb2dd 100644 --- a/components/esp_driver_pcnt/src/pulse_cnt.c +++ b/components/esp_driver_pcnt/src/pulse_cnt.c @@ -497,10 +497,37 @@ esp_err_t pcnt_unit_get_count(pcnt_unit_handle_t unit, int *value) pcnt_group_t *group = NULL; ESP_RETURN_ON_FALSE_ISR(unit && value, ESP_ERR_INVALID_ARG, TAG, "invalid argument"); group = unit->group; + int temp_value = 0; // the accum_value is also accessed by the ISR, so adding a critical section portENTER_CRITICAL_SAFE(&unit->spinlock); - *value = pcnt_ll_get_count(group->hal.dev, unit->unit_id) + unit->accum_value; + temp_value = pcnt_ll_get_count(group->hal.dev, unit->unit_id) ; + // Check for pending overflow interrupts that haven't been processed yet + // Add compensation to get accurate count + if (unit->flags.accum_count) { + uint32_t intr_status = pcnt_ll_get_intr_status(group->hal.dev); + if (intr_status & PCNT_LL_UNIT_WATCH_EVENT(unit->unit_id)) { + uint32_t event_status = pcnt_ll_get_event_status(group->hal.dev, unit->unit_id); + + // TODO: DIG-683 + // Note, the overflow may be triggered between `pcnt_ll_get_count` and `pcnt_ll_get_event_status` + // In this case, we don't want to do the compensation. + // so we should check the count value is greater(less) than the low(high) limit / 2 to filter this case. + // This workaround is only valid for the case that the counter won't overflow twice between `pcnt_ll_get_count()` and `pcnt_ll_get_intr_status()` + if (event_status & BIT(PCNT_LL_WATCH_EVENT_LOW_LIMIT) && temp_value >= unit->low_limit / 2) { + temp_value += unit->low_limit; + } else if (event_status & BIT(PCNT_LL_WATCH_EVENT_HIGH_LIMIT) && temp_value <= unit->high_limit / 2) { + temp_value += unit->high_limit; + } +#if SOC_PCNT_SUPPORT_STEP_NOTIFY && PCNT_LL_STEP_NOTIFY_DIR_LIMIT + else if (event_status & BIT(PCNT_LL_STEP_EVENT_REACH_LIMIT) && abs(temp_value) <= abs(unit->step_limit) / 2) { + temp_value += unit->step_limit; + } +#endif + } + } + + *value = temp_value + unit->accum_value; portEXIT_CRITICAL_SAFE(&unit->spinlock); return ESP_OK; @@ -951,11 +978,27 @@ IRAM_ATTR static void pcnt_default_isr(void *args) uint32_t intr_status = pcnt_ll_get_intr_status(group->hal.dev); if (intr_status & PCNT_LL_UNIT_WATCH_EVENT(unit_id)) { - pcnt_ll_clear_intr_status(group->hal.dev, PCNT_LL_UNIT_WATCH_EVENT(unit_id)); - // event status word contains information about the real watch event type uint32_t event_status = pcnt_ll_get_event_status(group->hal.dev, unit_id); + // clear interrupt status and update accum_value atomically + portENTER_CRITICAL_ISR(&unit->spinlock); + pcnt_ll_clear_intr_status(group->hal.dev, PCNT_LL_UNIT_WATCH_EVENT(unit_id)); + + if (unit->flags.accum_count) { + if (event_status & BIT(PCNT_LL_WATCH_EVENT_LOW_LIMIT)) { + unit->accum_value += unit->low_limit; + } else if (event_status & BIT(PCNT_LL_WATCH_EVENT_HIGH_LIMIT)) { + unit->accum_value += unit->high_limit; + } +#if SOC_PCNT_SUPPORT_STEP_NOTIFY && PCNT_LL_STEP_NOTIFY_DIR_LIMIT + else if (event_status & BIT(PCNT_LL_STEP_EVENT_REACH_LIMIT)) { + unit->accum_value += unit->step_limit; + } +#endif + } + portEXIT_CRITICAL_ISR(&unit->spinlock); + int count_value = 0; pcnt_unit_zero_cross_mode_t zc_mode = PCNT_UNIT_ZERO_CROSS_INVALID; @@ -973,11 +1016,6 @@ IRAM_ATTR static void pcnt_default_isr(void *args) event_status &= ~BIT(PCNT_LL_STEP_EVENT_REACH_LIMIT); // adjust current count value to the step limit count_value = unit->step_limit; - if (unit->flags.accum_count) { - portENTER_CRITICAL_ISR(&unit->spinlock); - unit->accum_value += unit->step_limit; - portEXIT_CRITICAL_ISR(&unit->spinlock); - } } // step event may happen with other pointer event at the same time, we don't need to process them again event_status &= ~(BIT(PCNT_LL_WATCH_EVENT_LOW_LIMIT) | BIT(PCNT_LL_WATCH_EVENT_HIGH_LIMIT) | @@ -988,20 +1026,10 @@ IRAM_ATTR static void pcnt_default_isr(void *args) event_status &= ~(BIT(PCNT_LL_WATCH_EVENT_LOW_LIMIT)); // adjust the count value to reflect the actual watch point value count_value = unit->low_limit; - if (unit->flags.accum_count) { - portENTER_CRITICAL_ISR(&unit->spinlock); - unit->accum_value += unit->low_limit; - portEXIT_CRITICAL_ISR(&unit->spinlock); - } } else if (event_status & BIT(PCNT_LL_WATCH_EVENT_HIGH_LIMIT)) { event_status &= ~(BIT(PCNT_LL_WATCH_EVENT_HIGH_LIMIT)); // adjust the count value to reflect the actual watch point value count_value = unit->high_limit; - if (unit->flags.accum_count) { - portENTER_CRITICAL_ISR(&unit->spinlock); - unit->accum_value += unit->high_limit; - portEXIT_CRITICAL_ISR(&unit->spinlock); - } } else if (event_status & BIT(PCNT_LL_WATCH_EVENT_THRES0)) { event_status &= ~(BIT(PCNT_LL_WATCH_EVENT_THRES0)); // adjust the count value to reflect the actual watch point value diff --git a/components/esp_driver_touch_sens/common/touch_sens_common.c b/components/esp_driver_touch_sens/common/touch_sens_common.c index f5119c72372..8ecbfaaf765 100644 --- a/components/esp_driver_touch_sens/common/touch_sens_common.c +++ b/components/esp_driver_touch_sens/common/touch_sens_common.c @@ -133,22 +133,24 @@ esp_err_t touch_sensor_new_channel(touch_sensor_handle_t sens_handle, int chan_i TOUCH_NULL_POINTER_CHECK(chan_cfg); TOUCH_NULL_POINTER_CHECK(ret_chan_handle); TOUCH_CHANNEL_CHECK(chan_id); + uint32_t ch_offset = chan_id - TOUCH_MIN_CHAN_ID; + ESP_RETURN_ON_FALSE(g_touch == sens_handle, ESP_ERR_INVALID_ARG, TAG, "The input touch sensor handle is unmatched"); esp_err_t ret = ESP_OK; xSemaphoreTake(sens_handle->mutex, portMAX_DELAY); ESP_GOTO_ON_FALSE(!sens_handle->is_enabled, ESP_ERR_INVALID_STATE, err2, TAG, "Please disable the touch sensor first"); - ESP_GOTO_ON_FALSE(!sens_handle->ch[chan_id], ESP_ERR_INVALID_STATE, err2, TAG, "The channel %d has been registered", chan_id); + ESP_GOTO_ON_FALSE(!sens_handle->ch[ch_offset], ESP_ERR_INVALID_STATE, err2, TAG, "The channel %d has been registered", chan_id); - sens_handle->ch[chan_id] = (touch_channel_handle_t)heap_caps_calloc(1, sizeof(struct touch_channel_s), TOUCH_MEM_ALLOC_CAPS); - ESP_GOTO_ON_FALSE(sens_handle->ch[chan_id], ESP_ERR_NO_MEM, err2, TAG, "No memory for touch channel"); - sens_handle->ch[chan_id]->id = chan_id; - sens_handle->ch[chan_id]->base = sens_handle; - sens_handle->ch[chan_id]->is_prox_chan = false; + sens_handle->ch[ch_offset] = (touch_channel_handle_t)heap_caps_calloc(1, sizeof(struct touch_channel_s), TOUCH_MEM_ALLOC_CAPS); + ESP_GOTO_ON_FALSE(sens_handle->ch[ch_offset], ESP_ERR_NO_MEM, err2, TAG, "No memory for touch channel"); + sens_handle->ch[ch_offset]->id = chan_id; + sens_handle->ch[ch_offset]->base = sens_handle; + sens_handle->ch[ch_offset]->is_prox_chan = false; /* Init the channel */ - ESP_GOTO_ON_ERROR(touch_priv_config_channel(sens_handle->ch[chan_id], chan_cfg), + ESP_GOTO_ON_ERROR(touch_priv_config_channel(sens_handle->ch[ch_offset], chan_cfg), err1, TAG, "Failed to configure the touch channel %d", chan_id); touch_channel_pin_init(chan_id); TOUCH_ENTER_CRITICAL(TOUCH_PERIPH_LOCK); @@ -159,13 +161,13 @@ esp_err_t touch_sensor_new_channel(touch_sensor_handle_t sens_handle, int chan_i touch_ll_set_channel_mask(sens_handle->chan_mask); TOUCH_EXIT_CRITICAL(TOUCH_PERIPH_LOCK); - *ret_chan_handle = sens_handle->ch[chan_id]; + *ret_chan_handle = sens_handle->ch[ch_offset]; xSemaphoreGive(sens_handle->mutex); return ret; err1: - free(sens_handle->ch[chan_id]); - sens_handle->ch[chan_id] = NULL; + free(sens_handle->ch[ch_offset]); + sens_handle->ch[ch_offset] = NULL; err2: xSemaphoreGive(sens_handle->mutex); return ret; @@ -188,14 +190,15 @@ esp_err_t touch_sensor_del_channel(touch_channel_handle_t chan_handle) ESP_GOTO_ON_ERROR(touch_sensor_config_sleep_channel(sens_handle, NULL), err, TAG, "Failed to disable sleep function on this channel"); } #endif - int id = chan_handle->id; + int ch_offset = chan_handle->id - TOUCH_MIN_CHAN_ID; + assert(ch_offset >= 0); TOUCH_ENTER_CRITICAL(TOUCH_PERIPH_LOCK); - sens_handle->chan_mask &= ~(1UL << id); + sens_handle->chan_mask &= ~(1UL << chan_handle->id); touch_ll_set_channel_mask(sens_handle->chan_mask); TOUCH_EXIT_CRITICAL(TOUCH_PERIPH_LOCK); - free(g_touch->ch[id]); - g_touch->ch[id] = NULL; + free(g_touch->ch[ch_offset]); + g_touch->ch[ch_offset] = NULL; err: xSemaphoreGive(sens_handle->mutex); return ret; @@ -358,7 +361,7 @@ esp_err_t touch_sensor_trigger_oneshot_scanning(touch_sensor_handle_t sens_handl FOR_EACH_TOUCH_CHANNEL(i) { if (sens_handle->ch[i]) { TOUCH_ENTER_CRITICAL(TOUCH_PERIPH_LOCK); - touch_ll_channel_sw_measure_mask(BIT(i)); + touch_ll_channel_sw_measure_mask(BIT(sens_handle->ch[i]->id)); touch_ll_trigger_oneshot_measurement(); TOUCH_EXIT_CRITICAL(TOUCH_PERIPH_LOCK); while (!touch_ll_is_measure_done()) { diff --git a/components/esp_driver_touch_sens/common/touch_sens_private.h b/components/esp_driver_touch_sens/common/touch_sens_private.h index 325acb775e5..48b671bb3a8 100644 --- a/components/esp_driver_touch_sens/common/touch_sens_private.h +++ b/components/esp_driver_touch_sens/common/touch_sens_private.h @@ -67,6 +67,7 @@ struct touch_sensor_s { touch_channel_handle_t ch[SOC_TOUCH_SENSOR_NUM]; /*!< Touch sensor channel handles, will be NULL if the channel is not registered */ uint32_t chan_mask; /*!< Enabled channel mask, corresponding bit will be set if the channel is registered */ uint32_t src_freq_hz; /*!< Source clock frequency */ + uint32_t interval_freq_hz; /*!< Frequency of the interval clock */ intr_handle_t intr_handle; /*!< Interrupt handle */ touch_event_callbacks_t cbs; /*!< Event callbacks */ touch_channel_handle_t deep_slp_chan; /*!< The configured channel for depp sleep, will be NULL if not enable the deep sleep */ diff --git a/components/esp_driver_touch_sens/hw_ver3/touch_version_specific.c b/components/esp_driver_touch_sens/hw_ver3/touch_version_specific.c index e9335d39652..4ef56906efd 100644 --- a/components/esp_driver_touch_sens/hw_ver3/touch_version_specific.c +++ b/components/esp_driver_touch_sens/hw_ver3/touch_version_specific.c @@ -63,7 +63,8 @@ void IRAM_ATTR touch_priv_default_intr_handler(void *arg) touch_ll_intr_clear(status); touch_base_event_data_t data; touch_ll_get_active_channel_mask(&data.status_mask); - data.chan = g_touch->ch[touch_ll_get_current_meas_channel()]; + int ch_offset = touch_ll_get_current_meas_channel() - TOUCH_MIN_CHAN_ID; + data.chan = g_touch->ch[ch_offset]; /* If the channel is not registered, return directly */ if (!data.chan) { return; @@ -146,11 +147,17 @@ static esp_err_t s_touch_convert_to_hal_config(touch_sensor_handle_t sens_handle TAG, "get clock frequency failed"); ESP_LOGD(TAG, "touch rtc clock source: RTC_FAST, frequency: %"PRIu32" Hz", sens_handle->src_freq_hz); } + if (!sens_handle->interval_freq_hz) { + ESP_RETURN_ON_ERROR(esp_clk_tree_src_get_freq_hz(SOC_MOD_CLK_RTC_SLOW, ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED, &sens_handle->interval_freq_hz), + TAG, "get interval clock frequency failed"); + } uint32_t src_freq_hz = sens_handle->src_freq_hz; uint32_t src_freq_mhz = src_freq_hz / 1000000; hal_cfg->power_on_wait_ticks = (uint32_t)sens_cfg->power_on_wait_us * src_freq_mhz; - hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * src_freq_mhz); + hal_cfg->power_on_wait_ticks = hal_cfg->power_on_wait_ticks > TOUCH_LL_PAD_MEASURE_WAIT_MAX ? + TOUCH_LL_PAD_MEASURE_WAIT_MAX : hal_cfg->power_on_wait_ticks; + hal_cfg->meas_interval_ticks = (uint32_t)(sens_cfg->meas_interval_us * sens_handle->interval_freq_hz / 1000000); hal_cfg->timeout_ticks = (uint32_t)sens_cfg->max_meas_time_us * src_freq_mhz; ESP_RETURN_ON_FALSE(hal_cfg->timeout_ticks <= TOUCH_LL_TIMEOUT_MAX, ESP_ERR_INVALID_ARG, TAG, "max_meas_time_ms should within %"PRIu32, TOUCH_LL_TIMEOUT_MAX / src_freq_mhz); diff --git a/components/esp_driver_touch_sens/test_apps/touch_sens/main/test_touch_sens_common.c b/components/esp_driver_touch_sens/test_apps/touch_sens/main/test_touch_sens_common.c index 226b8549fa2..c5c0adc3cee 100644 --- a/components/esp_driver_touch_sens/test_apps/touch_sens/main/test_touch_sens_common.c +++ b/components/esp_driver_touch_sens/test_apps/touch_sens/main/test_touch_sens_common.c @@ -49,11 +49,11 @@ TEST_CASE("touch_sens_install_uninstall_test", "[touch]") TEST_ESP_OK(touch_sensor_config_filter(touch, &filter_cfg)); for (int i = 0; i < TOUCH_TOTAL_CHAN_NUM; i++) { - TEST_ESP_OK(touch_sensor_new_channel(touch, i, &s_chan_cfg, &touch_chan[i])); + TEST_ESP_OK(touch_sensor_new_channel(touch, i + TOUCH_MIN_CHAN_ID, &s_chan_cfg, &touch_chan[i])); } touch_channel_handle_t fault_chan = NULL; - TEST_ASSERT(touch_sensor_new_channel(touch, TOUCH_TOTAL_CHAN_NUM, &s_chan_cfg, &fault_chan) == ESP_ERR_INVALID_ARG); - TEST_ASSERT(touch_sensor_new_channel(touch, 0, &s_chan_cfg, &fault_chan) == ESP_ERR_INVALID_STATE); + TEST_ASSERT(touch_sensor_new_channel(touch, TOUCH_TOTAL_CHAN_NUM + TOUCH_MIN_CHAN_ID, &s_chan_cfg, &fault_chan) == ESP_ERR_INVALID_ARG); + TEST_ASSERT(touch_sensor_new_channel(touch, TOUCH_MIN_CHAN_ID, &s_chan_cfg, &fault_chan) == ESP_ERR_INVALID_STATE); TEST_ESP_OK(touch_sensor_enable(touch)); TEST_ASSERT(touch_sensor_del_channel(touch_chan[0]) == ESP_ERR_INVALID_STATE); diff --git a/components/esp_driver_usb_serial_jtag/include/driver/usb_serial_jtag_select.h b/components/esp_driver_usb_serial_jtag/include/driver/usb_serial_jtag_select.h index 3fb185ed3d4..4c3e36d9ce8 100644 --- a/components/esp_driver_usb_serial_jtag/include/driver/usb_serial_jtag_select.h +++ b/components/esp_driver_usb_serial_jtag/include/driver/usb_serial_jtag_select.h @@ -1,6 +1,6 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -27,6 +27,13 @@ typedef void (*usj_select_notif_callback_t)(usj_select_notif_t usb_serial_jtag_s */ void usb_serial_jtag_set_select_notif_callback(usj_select_notif_callback_t usb_serial_jtag_select_notif_callback); +/** + * @brief Return the number of bytes available for reading + * + * @return the number of bytes available for reading in the buffer + */ +size_t usb_serial_jtag_get_read_bytes_available(void); + /** * @brief Return the readiness status of the driver for read operation * diff --git a/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag.c b/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag.c index a2ae108f1a4..631829de9e1 100644 --- a/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag.c +++ b/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag.c @@ -366,12 +366,23 @@ void usb_serial_jtag_set_select_notif_callback(usj_select_notif_callback_t usj_s } } -bool usb_serial_jtag_read_ready(void) +size_t usb_serial_jtag_get_read_bytes_available(void) { // sign the the driver is read ready is that data is waiting in the RX ringbuffer - UBaseType_t items_waiting = 0; - vRingbufferGetInfo(p_usb_serial_jtag_obj->rx_ring_buf, NULL, NULL, NULL, NULL, &items_waiting); - return items_waiting != 0; + UBaseType_t bytes_available = 0; + if (usb_serial_jtag_is_driver_installed()) { + vRingbufferGetInfo(p_usb_serial_jtag_obj->rx_ring_buf, NULL, NULL, NULL, NULL, &bytes_available); + if (bytes_available <= 0) { + return 0; + } + } + + return (size_t)bytes_available; +} + +bool usb_serial_jtag_read_ready(void) +{ + return usb_serial_jtag_get_read_bytes_available() != 0; } bool usb_serial_jtag_write_ready(void) diff --git a/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag_vfs.c b/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag_vfs.c index d24ef0c3519..90d8addacf1 100644 --- a/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag_vfs.c +++ b/components/esp_driver_usb_serial_jtag/src/usb_serial_jtag_vfs.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -226,40 +226,69 @@ static void usb_serial_jtag_return_char(int fd, int c) static ssize_t usb_serial_jtag_read(int fd, void* data, size_t size) { + assert(fd == USJ_LOCAL_FD); char *data_c = (char *) data; size_t received = 0; + size_t available_size = 0; + int c = NONE; // store the read char _lock_acquire_recursive(&s_ctx.read_lock); - while (received < size) { - int c = usb_serial_jtag_read_char(fd); - if (c == '\r') { - if (s_ctx.rx_mode == ESP_LINE_ENDINGS_CR) { - c = '\n'; - } else if (s_ctx.rx_mode == ESP_LINE_ENDINGS_CRLF) { - /* look ahead */ - int c2 = usb_serial_jtag_read_char(fd); - if (c2 == NONE) { - /* could not look ahead, put the current character back */ - usb_serial_jtag_return_char(fd, c); - break; - } - if (c2 == '\n') { - /* this was \r\n sequence. discard \r, return \n */ + + // if blocking read, wait for data to be available + if (!s_ctx.non_blocking) { + c = usb_serial_jtag_read_char(fd); + } + + // find the actual fetch size + available_size += usb_serial_jtag_get_read_bytes_available(); + if (c != NONE) { + available_size++; + } + if (s_ctx.peek_char != NONE) { + available_size++; + } + size_t fetch_size = MIN(available_size, size); + + if (fetch_size > 0) { + do { + if (c == NONE) { // for non-O_NONBLOCK mode, there is already a pre-fetched char + c = usb_serial_jtag_read_char(fd); + } + assert(c != NONE); + + if (c == '\r') { + if (s_ctx.rx_mode == ESP_LINE_ENDINGS_CR) { c = '\n'; - } else { - /* \r followed by something else. put the second char back, - * it will be processed on next iteration. return \r now. - */ - usb_serial_jtag_return_char(fd, c2); + } else if (s_ctx.rx_mode == ESP_LINE_ENDINGS_CRLF) { + /* look ahead */ + int c2 = usb_serial_jtag_read_char(fd); + fetch_size--; + if (c2 == NONE) { + /* could not look ahead, put the current character back */ + usb_serial_jtag_return_char(fd, c); + c = NONE; + break; + } + if (c2 == '\n') { + /* this was \r\n sequence. discard \r, return \n */ + c = '\n'; + } else { + /* \r followed by something else. put the second char back, + * it will be processed on next iteration. return \r now. + */ + usb_serial_jtag_return_char(fd, c2); + fetch_size++; + } } } - } else if (c == NONE) { - break; - } - data_c[received] = (char) c; - ++received; - if (c == '\n') { - break; - } + + data_c[received] = (char) c; + ++received; + c = NONE; + } while (received < fetch_size); + } + + if (c != NONE) { // fetched, but not used + usb_serial_jtag_return_char(fd, c); } _lock_release_recursive(&s_ctx.read_lock); if (received > 0) { @@ -455,7 +484,7 @@ static esp_err_t usb_serial_jtag_start_select(int nfds, fd_set *readfds, fd_set bool trigger_select = false; // check if the select should return instantly if the bus is read ready - if (FD_ISSET(USJ_LOCAL_FD, &args->readfds_orig) && usb_serial_jtag_read_ready()) { + if (FD_ISSET(USJ_LOCAL_FD, &args->readfds_orig) && (usb_serial_jtag_get_read_bytes_available() > 0)) { // signal immediately when data is buffered FD_SET(USJ_LOCAL_FD, readfds); trigger_select = true; diff --git a/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/main/test_vfs_usb_serial_jtag.c b/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/main/test_vfs_usb_serial_jtag.c index c349aab14c1..4e305baa87b 100644 --- a/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/main/test_vfs_usb_serial_jtag.c +++ b/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/main/test_vfs_usb_serial_jtag.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -23,11 +23,6 @@ #include "test_utils.h" #include "sdkconfig.h" -struct task_arg_t { - FILE* stream; - SemaphoreHandle_t done; -}; - static int read_bytes_with_select(FILE *stream, void *buf, size_t buf_len, struct timeval tv) { @@ -74,7 +69,7 @@ static int read_bytes_with_select(FILE *stream, void *buf, size_t buf_len, struc * write calls. At the end of the test, the variable is check to make sure the select returned * for each of the write calls. */ -TEST_CASE("test select read, write and timeout", "[usb_serial_jtag]") +TEST_CASE("test select read, write and timeout", "[usb_serial_jtag vfs]") { struct timeval tv; tv.tv_sec = 1; @@ -128,3 +123,86 @@ TEST_CASE("test select read, write and timeout", "[usb_serial_jtag]") usb_serial_jtag_vfs_use_nonblocking(); usb_serial_jtag_driver_uninstall(); } + +/* Test that the read function does not return prematurely when receiving a new line character + */ +TEST_CASE("read does not return on new line character", "[usb serial jtag vfs]") +{ + // Send a string with length less than the read requested length + const char in_buffer[] = "!(@*#&(!*@&#((SDasdkjhad\nce"; // read should not early return on \n + const size_t in_buffer_len = sizeof(in_buffer); + + const size_t out_buffer_len = in_buffer_len - 1; // don't compare the null character at the end of in_buffer string + char out_buffer[out_buffer_len] = {}; + + usb_serial_jtag_driver_config_t usj_config = USB_SERIAL_JTAG_DRIVER_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(usb_serial_jtag_driver_install(&usj_config)); + usb_serial_jtag_vfs_use_driver(); + + usb_serial_jtag_vfs_set_rx_line_endings(ESP_LINE_ENDINGS_LF); + usb_serial_jtag_vfs_set_tx_line_endings(ESP_LINE_ENDINGS_LF); + + int flags = fcntl(STDIN_FILENO, F_GETFL, 0); + fcntl(STDIN_FILENO, F_SETFL, flags | O_NONBLOCK); + + // trigger the test environment to send the test message + char ready_msg[] = "ready to receive\n"; + write(fileno(stdout), ready_msg, sizeof(ready_msg)); + + // wait for the string to be sent and buffered + vTaskDelay(pdMS_TO_TICKS(500)); + + char *out_buffer_ptr = out_buffer; + size_t bytes_read = 0; + do { + int nread = read(STDIN_FILENO, out_buffer_ptr, out_buffer_len); + printf("%d\n", nread); + if (nread > 0) { + out_buffer_ptr += nread; + bytes_read += nread; + } + } while (bytes_read < in_buffer_len); + + // string compare + for (size_t i = 0; i < out_buffer_len; i++) { + TEST_ASSERT_EQUAL(in_buffer[i], out_buffer[i]); + } + + usb_serial_jtag_vfs_use_nonblocking(); + fcntl(STDIN_FILENO, F_SETFL, flags); + usb_serial_jtag_vfs_set_rx_line_endings(ESP_LINE_ENDINGS_CRLF); + usb_serial_jtag_vfs_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF); + ESP_ERROR_CHECK(usb_serial_jtag_driver_uninstall()); + vTaskDelay(2); // wait for tasks to exit +} + +TEST_CASE("blocking read returns with available data", "[usb serial jtag vfs]") +{ + const size_t out_buffer_len = 32; + char out_buffer[out_buffer_len] = {}; + + usb_serial_jtag_driver_config_t usj_config = USB_SERIAL_JTAG_DRIVER_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(usb_serial_jtag_driver_install(&usj_config)); + usb_serial_jtag_vfs_use_driver(); + + usb_serial_jtag_vfs_set_rx_line_endings(ESP_LINE_ENDINGS_LF); + usb_serial_jtag_vfs_set_tx_line_endings(ESP_LINE_ENDINGS_LF); + + int flags = fcntl(STDIN_FILENO, F_GETFL, 0); + fcntl(STDIN_FILENO, F_SETFL, flags & (~O_NONBLOCK)); + + // trigger the test environment to send the test message + char ready_msg[] = "ready to receive\n"; + write(fileno(stdout), ready_msg, sizeof(ready_msg)); + + const int nread = read(STDIN_FILENO, out_buffer, out_buffer_len); + TEST_ASSERT(nread > 0); + TEST_ASSERT(nread < out_buffer_len); + + usb_serial_jtag_vfs_use_nonblocking(); + fcntl(STDIN_FILENO, F_SETFL, flags); + usb_serial_jtag_vfs_set_rx_line_endings(ESP_LINE_ENDINGS_CRLF); + usb_serial_jtag_vfs_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF); + ESP_ERROR_CHECK(usb_serial_jtag_driver_uninstall()); + vTaskDelay(2); // wait for tasks to exit +} diff --git a/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/pytest_usb_serial_jtag_vfs.py b/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/pytest_usb_serial_jtag_vfs.py index 897f3179eec..fad239963a0 100644 --- a/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/pytest_usb_serial_jtag_vfs.py +++ b/components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs/pytest_usb_serial_jtag_vfs.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut +from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.esp32s3 @@ -16,10 +17,47 @@ from pytest_embedded import Dut ], indirect=True,) @pytest.mark.parametrize('test_message', ['test123456789!@#%^&*']) -def test_usj_vfs_release(dut: Dut, test_message: list) -> None: +@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'], indirect=['target']) +def test_usj_vfs_select(dut: Dut, test_message: list) -> None: dut.expect_exact('Press ENTER to see the list of tests') dut.write('\"test select read, write and timeout\"') dut.expect_exact('select timed out', timeout=2) dut.write(test_message) dut.expect_exact(test_message, timeout=2) dut.expect(r'\d{1} Tests 0 Failures 0 Ignored', timeout=10) + + +@pytest.mark.usb_serial_jtag +@pytest.mark.parametrize( + 'port, flash_port, config', + [ + pytest.param('/dev/serial_ports/ttyACM-esp32', '/dev/serial_ports/ttyUSB-esp32', 'release'), + ], + indirect=True, +) +@pytest.mark.parametrize('test_message', ['!(@*#&(!*@&#((SDasdkjhad\nce']) +@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'], indirect=['target']) +def test_usj_vfs_read_return(dut: Dut, test_message: list) -> None: + dut.expect_exact('Press ENTER to see the list of tests') + dut.write('"read does not return on new line character"') + dut.expect_exact('ready to receive', timeout=2) + dut.write(test_message) + dut.expect(r'\d{1} Tests 0 Failures 0 Ignored', timeout=10) + + +@pytest.mark.usb_serial_jtag +@pytest.mark.parametrize( + 'port, flash_port, config', + [ + pytest.param('/dev/serial_ports/ttyACM-esp32', '/dev/serial_ports/ttyUSB-esp32', 'release'), + ], + indirect=True, +) +@pytest.mark.parametrize('test_message', ['testdata']) +@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'], indirect=['target']) +def test_usj_vfs_read_blocking(dut: Dut, test_message: list) -> None: + dut.expect_exact('Press ENTER to see the list of tests') + dut.write('"blocking read returns with available data"') + dut.expect_exact('ready to receive', timeout=2) + dut.write(test_message) + dut.expect(r'\d{1} Tests 0 Failures 0 Ignored', timeout=10) diff --git a/components/esp_event/include/esp_event.h b/components/esp_event/include/esp_event.h index c1a9d8612f2..cfaf5eefa4f 100644 --- a/components/esp_event/include/esp_event.h +++ b/components/esp_event/include/esp_event.h @@ -118,7 +118,9 @@ esp_err_t esp_event_loop_run(esp_event_loop_handle_t event_loop, TickType_t tick * * Registering multiple handlers to events is possible. Registering a single handler to multiple events is * also possible. However, registering the same handler to the same event multiple times would cause the - * previous registrations to be overwritten. + * overwriting of the event_handler_arg but the handler will be kept at the same position in the list associated + * with the event that triggers it. It means that the call order of registered handlers for that event will remain + * the same. * * @param[in] event_base the base ID of the event to register the handler for * @param[in] event_id the ID of the event to register the handler for diff --git a/components/esp_gdbstub/src/gdbstub.c b/components/esp_gdbstub/src/gdbstub.c index 916fc1feb4e..68ae4fe75a2 100644 --- a/components/esp_gdbstub/src/gdbstub.c +++ b/components/esp_gdbstub/src/gdbstub.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -696,7 +696,7 @@ static void handle_P_command(const unsigned char *cmd, int len) static void handle_qSupported_command(const unsigned char *cmd, int len) { esp_gdbstub_send_start(); - esp_gdbstub_send_str("qSupported:multiprocess+;swbreak-;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+"); + esp_gdbstub_send_str("qSupported:multiprocess+;swbreak-;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;no-resumed+"); esp_gdbstub_send_end(); } diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 95ccc0ac66d..9929d8bfdfe 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -34,6 +34,8 @@ static const char *TAG = "HTTP_CLIENT"; ESP_STATIC_ASSERT((int)ESP_HTTP_CLIENT_TLS_VER_ANY == (int)ESP_TLS_VER_ANY, "Enum mismatch in esp_http_client and esp-tls"); ESP_STATIC_ASSERT((int)ESP_HTTP_CLIENT_TLS_VER_MAX <= (int)ESP_TLS_VER_TLS_MAX, "HTTP client supported TLS is not supported in esp-tls"); +ESP_STATIC_ASSERT((int)HTTP_TLS_DYN_BUF_RX_STATIC == (int)ESP_TLS_DYN_BUF_RX_STATIC, "Enum mismatch in esp_http_client and esp-tls"); +ESP_STATIC_ASSERT((int)HTTP_TLS_DYN_BUF_STRATEGY_MAX <= (int)ESP_TLS_DYN_BUF_STRATEGY_MAX, "HTTP client supported TLS is not supported in esp-tls"); #if CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT == -1 #define ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT portMAX_DELAY @@ -794,6 +796,14 @@ esp_http_client_handle_t esp_http_client_init(const esp_http_client_config_t *co } esp_transport_ssl_set_tls_version(ssl, config->tls_version); +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + /* When tls_dyn_buf_strategy is 0, mbedTLS dynamic buffer allocation uses default behavior. + * No need to call esp_transport_ssl_set_esp_tls_dyn_buf_strategy() in this case */ + if (config->tls_dyn_buf_strategy != 0 && config->tls_dyn_buf_strategy < HTTP_TLS_DYN_BUF_STRATEGY_MAX) { + esp_transport_ssl_set_esp_tls_dyn_buf_strategy(ssl, config->tls_dyn_buf_strategy); + } +#endif + #if CONFIG_ESP_TLS_USE_SECURE_ELEMENT if (config->use_secure_element) { esp_transport_ssl_use_secure_element(ssl); diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index c7b7a1b08e5..7a127fb3157 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -138,6 +138,11 @@ typedef enum { HTTP_ADDR_TYPE_INET6 = AF_INET6, /**< IPv6 address family. */ } esp_http_client_addr_type_t; +typedef enum { + HTTP_TLS_DYN_BUF_RX_STATIC = 1, /*!< Strategy to disable dynamic RX buffer allocations and convert to static allocation post-handshake, reducing memory fragmentation */ + HTTP_TLS_DYN_BUF_STRATEGY_MAX, /*!< to indicate max */ +} esp_http_client_tls_dyn_buf_strategy_t; + /** * @brief HTTP configuration */ @@ -200,6 +205,10 @@ typedef struct { struct esp_transport_item_t *transport; #endif esp_http_client_addr_type_t addr_type; /*!< Address type used in http client configurations */ + +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER + esp_http_client_tls_dyn_buf_strategy_t tls_dyn_buf_strategy; /*!< TLS dynamic buffer strategy */ +#endif } esp_http_client_config_t; /** diff --git a/components/esp_http_server/src/esp_httpd_priv.h b/components/esp_http_server/src/esp_httpd_priv.h index e56418236ee..33af33c1525 100644 --- a/components/esp_http_server/src/esp_httpd_priv.h +++ b/components/esp_http_server/src/esp_httpd_priv.h @@ -132,6 +132,15 @@ struct httpd_data { httpd_err_handler_func_t *err_handler_fns; }; +/** + * @brief Options for receiving HTTP request data + */ +typedef enum { + HTTPD_RECV_OPT_NONE = 0, + HTTPD_RECV_OPT_HALT_AFTER_PENDING = 1, /*!< Halt immediately after receiving from pending buffer */ + HTTPD_RECV_OPT_BLOCKING = 2, /*!< Receive blocking (don't return partial length) */ +} httpd_recv_opt_t; + /******************* Group : Session Management ********************/ /** @name Session Management * Functions related to HTTP session management @@ -422,22 +431,27 @@ int httpd_send(httpd_req_t *req, const char *buf, size_t buf_len); * * @note The exposed API httpd_recv() is simply this function with last parameter * set as false. This function is used internally during reception and - * processing of a new request. The option to halt after receiving pending - * data prevents the server from requesting more data than is needed for - * completing a packet in case when all the remaining part of the packet is - * in the pending buffer. + * processing of a new request. + * + * There are 2 options available that affect the behavior of the function: + * - HTTPD_RECV_OPT_HALT_AFTER_PENDING + * The option to halt after receiving pending data prevents the server from + * requesting more data than is needed for completing a packet in case when + * all the remaining part of the packet is in the pending buffer. + * + * - HTTPD_RECV_OPT_BLOCKING + * The option to not return until the `buf_len` bytes have been read. * * @param[in] req Pointer to new HTTP request which only has the socket descriptor * @param[out] buf Pointer to the buffer which will be filled with the received data * @param[in] buf_len Length of the buffer - * @param[in] halt_after_pending When set true, halts immediately after receiving from - * pending buffer + * @param[in] opt Receive option * * @return * - Length of data : if successful * - ESP_FAIL : if failed */ -int httpd_recv_with_opt(httpd_req_t *r, char *buf, size_t buf_len, bool halt_after_pending); +int httpd_recv_with_opt(httpd_req_t *r, char *buf, size_t buf_len, httpd_recv_opt_t opt); /** * @brief For un-receiving HTTP request data diff --git a/components/esp_http_server/src/httpd_txrx.c b/components/esp_http_server/src/httpd_txrx.c index fa50378f69e..1ca2165d71c 100644 --- a/components/esp_http_server/src/httpd_txrx.c +++ b/components/esp_http_server/src/httpd_txrx.c @@ -95,7 +95,7 @@ static size_t httpd_recv_pending(httpd_req_t *r, char *buf, size_t buf_len) return buf_len; } -int httpd_recv_with_opt(httpd_req_t *r, char *buf, size_t buf_len, bool halt_after_pending) +int httpd_recv_with_opt(httpd_req_t *r, char *buf, size_t buf_len, httpd_recv_opt_t opt) { ESP_LOGD(TAG, LOG_FMT("requested length = %"NEWLIB_NANO_COMPAT_FORMAT), NEWLIB_NANO_COMPAT_CAST(buf_len)); @@ -112,34 +112,41 @@ int httpd_recv_with_opt(httpd_req_t *r, char *buf, size_t buf_len, bool halt_aft /* If buffer filled then no need to recv. * If asked to halt after receiving pending data then * return with received length */ - if (!buf_len || halt_after_pending) { + if (!buf_len || opt == HTTPD_RECV_OPT_HALT_AFTER_PENDING) { return pending_len; } } /* Receive data of remaining length */ - int ret = ra->sd->recv_fn(ra->sd->handle, ra->sd->fd, buf, buf_len, 0); - if (ret < 0) { - ESP_LOGD(TAG, LOG_FMT("error in recv_fn")); - if ((ret == HTTPD_SOCK_ERR_TIMEOUT) && (pending_len != 0)) { - /* If recv() timeout occurred, but pending data is - * present, return length of pending data. - * This behavior is similar to that of socket recv() - * function, which, in case has only partially read the - * requested length, due to timeout, returns with read - * length, rather than error */ - return pending_len; + size_t recv_len = pending_len; + do { + int ret = ra->sd->recv_fn(ra->sd->handle, ra->sd->fd, buf, buf_len, 0); + if (ret < 0) { + ESP_LOGD(TAG, LOG_FMT("error in recv_fn")); + if ((ret == HTTPD_SOCK_ERR_TIMEOUT) && (pending_len != 0)) { + /* If recv() timeout occurred, but pending data is + * present, return length of pending data. + * This behavior is similar to that of socket recv() + * function, which, in case has only partially read the + * requested length, due to timeout, returns with read + * length, rather than error */ + return pending_len; + } + return ret; } - return ret; - } - ESP_LOGD(TAG, LOG_FMT("received length = %"NEWLIB_NANO_COMPAT_FORMAT), NEWLIB_NANO_COMPAT_CAST((ret + pending_len))); - return ret + pending_len; + recv_len += ret; + buf += ret; + buf_len -= ret; + } while (buf_len > 0 && opt == HTTPD_RECV_OPT_BLOCKING); + + ESP_LOGD(TAG, LOG_FMT("received length = %"NEWLIB_NANO_COMPAT_FORMAT), NEWLIB_NANO_COMPAT_CAST(recv_len)); + return recv_len; } int httpd_recv(httpd_req_t *r, char *buf, size_t buf_len) { - return httpd_recv_with_opt(r, buf, buf_len, false); + return httpd_recv_with_opt(r, buf, buf_len, HTTPD_RECV_OPT_NONE); } size_t httpd_unrecv(struct httpd_req *r, const char *buf, size_t buf_len) diff --git a/components/esp_http_server/src/httpd_uri.c b/components/esp_http_server/src/httpd_uri.c index 5746febc74b..64befe83e02 100644 --- a/components/esp_http_server/src/httpd_uri.c +++ b/components/esp_http_server/src/httpd_uri.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -171,6 +171,12 @@ esp_err_t httpd_register_uri_handler(httpd_handle_t handle, hd->hd_calls[i]->handle_ws_control_frames = uri_handler->handle_ws_control_frames; if (uri_handler->supported_subprotocol) { hd->hd_calls[i]->supported_subprotocol = strdup(uri_handler->supported_subprotocol); + if (hd->hd_calls[i]->supported_subprotocol == NULL) { + /* Failed to allocate memory */ + free((void *)hd->hd_calls[i]->uri); + free(hd->hd_calls[i]); + return ESP_ERR_HTTPD_ALLOC_MEM; + } } else { hd->hd_calls[i]->supported_subprotocol = NULL; } diff --git a/components/esp_http_server/src/httpd_ws.c b/components/esp_http_server/src/httpd_ws.c index bcf32cf9e69..4bffe538421 100644 --- a/components/esp_http_server/src/httpd_ws.c +++ b/components/esp_http_server/src/httpd_ws.c @@ -296,7 +296,7 @@ esp_err_t httpd_ws_recv_frame(httpd_req_t *req, httpd_ws_frame_t *frame, size_t /* Grab the second byte */ uint8_t second_byte = 0; - if (httpd_recv_with_opt(req, (char *)&second_byte, sizeof(second_byte), false) <= 0) { + if (httpd_recv_with_opt(req, (char *)&second_byte, sizeof(second_byte), HTTPD_RECV_OPT_BLOCKING) < sizeof(second_byte)) { ESP_LOGW(TAG, LOG_FMT("Failed to receive the second byte")); return ESP_FAIL; } @@ -313,7 +313,7 @@ esp_err_t httpd_ws_recv_frame(httpd_req_t *req, httpd_ws_frame_t *frame, size_t } else if (init_len == 126) { /* Case 2: If length byte is 126, then this frame's length bit is 16 bits */ uint8_t length_bytes[2] = { 0 }; - if (httpd_recv_with_opt(req, (char *)length_bytes, sizeof(length_bytes), false) <= 0) { + if (httpd_recv_with_opt(req, (char *)length_bytes, sizeof(length_bytes), HTTPD_RECV_OPT_BLOCKING) < sizeof(length_bytes)) { ESP_LOGW(TAG, LOG_FMT("Failed to receive 2 bytes length")); return ESP_FAIL; } @@ -322,8 +322,8 @@ esp_err_t httpd_ws_recv_frame(httpd_req_t *req, httpd_ws_frame_t *frame, size_t } else if (init_len == 127) { /* Case 3: If length is byte 127, then this frame's length bit is 64 bits */ uint8_t length_bytes[8] = { 0 }; - if (httpd_recv_with_opt(req, (char *)length_bytes, sizeof(length_bytes), false) <= 0) { - ESP_LOGW(TAG, LOG_FMT("Failed to receive 2 bytes length")); + if (httpd_recv_with_opt(req, (char *)length_bytes, sizeof(length_bytes), HTTPD_RECV_OPT_BLOCKING) < sizeof(length_bytes)) { + ESP_LOGW(TAG, LOG_FMT("Failed to receive 8 bytes length")); return ESP_FAIL; } @@ -338,7 +338,7 @@ esp_err_t httpd_ws_recv_frame(httpd_req_t *req, httpd_ws_frame_t *frame, size_t } /* If this frame is masked, dump the mask as well */ if (masked) { - if (httpd_recv_with_opt(req, (char *)aux->mask_key, sizeof(aux->mask_key), false) <= 0) { + if (httpd_recv_with_opt(req, (char *)aux->mask_key, sizeof(aux->mask_key), HTTPD_RECV_OPT_BLOCKING) < sizeof(aux->mask_key)) { ESP_LOGW(TAG, LOG_FMT("Failed to receive mask key")); return ESP_FAIL; } @@ -375,7 +375,7 @@ esp_err_t httpd_ws_recv_frame(httpd_req_t *req, httpd_ws_frame_t *frame, size_t size_t offset = 0; while (left_len > 0) { - int read_len = httpd_recv_with_opt(req, (char *)frame->payload + offset, left_len, false); + int read_len = httpd_recv_with_opt(req, (char *)frame->payload + offset, left_len, HTTPD_RECV_OPT_NONE); if (read_len <= 0) { ESP_LOGW(TAG, LOG_FMT("Failed to receive payload")); return ESP_FAIL; @@ -483,7 +483,7 @@ esp_err_t httpd_ws_get_frame_type(httpd_req_t *req) /* Read the first byte from the frame to get the FIN flag and Opcode */ /* Please refer to RFC6455 Section 5.2 for more details */ uint8_t first_byte = 0; - if (httpd_recv_with_opt(req, (char *)&first_byte, sizeof(first_byte), false) <= 0) { + if (httpd_recv_with_opt(req, (char *)&first_byte, sizeof(first_byte), HTTPD_RECV_OPT_BLOCKING) < sizeof(first_byte)) { /* If the recv() return code is <= 0, then this socket FD is invalid (i.e. a broken connection) */ /* Here we mark it as a Close message and close it later. */ ESP_LOGW(TAG, LOG_FMT("Failed to read header byte (socket FD invalid), closing socket now")); diff --git a/components/esp_hw_support/Kconfig b/components/esp_hw_support/Kconfig index ef9d4f9c51f..0c4a8f6aca4 100644 --- a/components/esp_hw_support/Kconfig +++ b/components/esp_hw_support/Kconfig @@ -282,4 +282,14 @@ menu "Hardware Settings" Due to the poor low-temperature characteristics of RC32K (it cannot operate below -40 degrees Celsius), please avoid using it whenever possible + + config ESP_ENABLE_PVT + bool "Auto adjust hp & lp voltage using pvt function (MUST ENABLE FOR MP)" + depends on SOC_PMU_PVT_SUPPORTED + default y + help + If enabled, hp & lp voltage can be auto adjust by PVT characteristic. + Otherwise, internal voltage will be set to fix dbias. + This is a must for stable mass production. Disable for debugging only. + endmenu diff --git a/components/esp_hw_support/linker.lf b/components/esp_hw_support/linker.lf index af8f84c0cd5..a30384a17b1 100644 --- a/components/esp_hw_support/linker.lf +++ b/components/esp_hw_support/linker.lf @@ -25,6 +25,8 @@ entries: if SPIRAM_FLASH_LOAD_TO_PSRAM = y: pmu_init (noflash) pmu_param (noflash) + if SOC_PMU_PVT_SUPPORTED = y: + pmu_pvt (noflash) if SOC_USB_SERIAL_JTAG_SUPPORTED = y: sleep_console (noflash) if SOC_USB_OTG_SUPPORTED && SOC_PM_SUPPORT_CNNT_PD = y: diff --git a/components/esp_hw_support/port/esp32p4/CMakeLists.txt b/components/esp_hw_support/port/esp32p4/CMakeLists.txt index 80c879245ab..fd15470400b 100644 --- a/components/esp_hw_support/port/esp32p4/CMakeLists.txt +++ b/components/esp_hw_support/port/esp32p4/CMakeLists.txt @@ -18,6 +18,10 @@ if(NOT BOOTLOADER_BUILD) endif() +if(NOT BOOTLOADER_BUILD AND CONFIG_ESP_ENABLE_PVT) + list(APPEND srcs "pmu_pvt.c") +endif() + add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" "${srcs}") target_sources(${COMPONENT_LIB} PRIVATE "${srcs}") diff --git a/components/esp_hw_support/port/esp32p4/include/soc/rtc.h b/components/esp_hw_support/port/esp32p4/include/soc/rtc.h index 7c627a03bd2..20875057b14 100644 --- a/components/esp_hw_support/port/esp32p4/include/soc/rtc.h +++ b/components/esp_hw_support/port/esp32p4/include/soc/rtc.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -95,6 +95,36 @@ set sleep_init default param #define RTC_CNTL_PD_CUR_SLEEP_DEFAULT 1 #define RTC_CNTL_DG_VDD_DRV_B_SLP_DEFAULT 254 +#if CONFIG_ESP_ENABLE_PVT + +#define PVT_CHANNEL0_SEL 49 +#define PVT_CHANNEL1_SEL 53 +#define PVT_CHANNEL0_CFG 0x13e80 +#define PVT_CHANNEL1_CFG 0x13e80 +#define PVT_CHANNEL2_CFG 0x10000 +#define PVT_CMD0 0x24 +#define PVT_CMD1 0x5 +#define PVT_CMD2 0x427 +#define PVT_TARGET 0x7d00 +#define PVT_CLK_DIV 1 +#define PVT_EDG_MODE 1 +#define PVT_DELAY_NUM_HIGH 164 +#define PVT_DELAY_NUM_LOW 157 + +/** + * @brief Initialize PVT related parameters + */ +void pvt_auto_dbias_init(void); + +/** + * @brief Enable or disable PVT functions + * + * @param enable true to enable, false to disable + */ +void pvt_func_enable(bool enable); + +#endif //#if CONFIG_ESP_ENABLE_PVT + /* The follow value is used to get a reasonable rtc voltage dbias value according to digital dbias & some other value storing in efuse (based on ATE 5k ECO3 chips) diff --git a/components/esp_hw_support/port/esp32p4/pmu_init.c b/components/esp_hw_support/port/esp32p4/pmu_init.c index f511dd4341a..a223985f57d 100644 --- a/components/esp_hw_support/port/esp32p4/pmu_init.c +++ b/components/esp_hw_support/port/esp32p4/pmu_init.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -18,6 +18,8 @@ #include "esp_private/esp_pmu.h" #include "soc/regi2c_dig_reg.h" #include "regi2c_ctrl.h" +#include "esp_rom_sys.h" +#include "soc/rtc.h" static __attribute__((unused)) const char *TAG = "pmu_init"; @@ -194,4 +196,10 @@ void pmu_init(void) pmu_hp_system_init_default(PMU_instance()); pmu_lp_system_init_default(PMU_instance()); pmu_power_domain_force_default(PMU_instance()); +#if CONFIG_ESP_ENABLE_PVT + pvt_auto_dbias_init(); + pvt_func_enable(true); + // For PVT func taking effect, need delay. + esp_rom_delay_us(1000); +#endif } diff --git a/components/esp_hw_support/port/esp32p4/pmu_param.c b/components/esp_hw_support/port/esp32p4/pmu_param.c index 44b73bd6a1b..36a8f64de8a 100644 --- a/components/esp_hw_support/port/esp32p4/pmu_param.c +++ b/components/esp_hw_support/port/esp32p4/pmu_param.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,11 @@ #include "soc/pmu_icg_mapping.h" #include "esp_private/esp_pmu.h" #include "soc/clk_tree_defs.h" +#include "hal/efuse_ll.h" +#include "hal/efuse_hal.h" +#include "esp_hw_log.h" + +static __attribute__((unused)) const char *TAG = "pmu_param"; #ifndef ARRAY_SIZE #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) @@ -330,3 +335,46 @@ const pmu_lp_system_analog_param_t * pmu_lp_system_analog_param_default(pmu_lp_m assert(mode < ARRAY_SIZE(lp_analog)); return &lp_analog[mode]; } + +uint32_t get_act_hp_dbias(void) +{ + /* hp_cali_dbias is read from efuse to ensure that the hp_active_voltage is close to 1.15V + */ + uint32_t hp_cali_dbias = HP_CALI_ACTIVE_DBIAS_DEFAULT; + uint32_t blk_version = efuse_hal_blk_version(); + uint32_t hp_cali_dbias_efuse = 0; + if (blk_version >= 2) { + hp_cali_dbias_efuse = efuse_ll_get_active_hp_dbias(); + } + if (hp_cali_dbias_efuse > 0) { + hp_cali_dbias = hp_cali_dbias_efuse + 16; + if (hp_cali_dbias > 31) { + hp_cali_dbias = 31; + } + } else { + ESP_HW_LOGW(TAG, "hp_cali_dbias not burnt in efuse, use default."); + } + return hp_cali_dbias; +} + +uint32_t get_act_lp_dbias(void) +{ + /* lp_cali_dbias is read from efuse to ensure that the lp_active_voltage is close to 1.15V + */ + uint32_t lp_cali_dbias = LP_CALI_ACTIVE_DBIAS_DEFAULT; + uint32_t blk_version = efuse_hal_blk_version(); + uint32_t lp_cali_dbias_efuse = 0; + if (blk_version >= 2) { + lp_cali_dbias_efuse = efuse_ll_get_active_lp_dbias(); + } + if (lp_cali_dbias_efuse > 0) { + //efuse dbias need to add 4 to near to dcdc voltage + lp_cali_dbias = lp_cali_dbias_efuse + 16 + 4; + if (lp_cali_dbias > 31) { + lp_cali_dbias = 31; + } + } else { + ESP_HW_LOGW(TAG, "lp_cali_dbias not burnt in efuse, use default."); + } + return lp_cali_dbias; +} diff --git a/components/esp_hw_support/port/esp32p4/pmu_pvt.c b/components/esp_hw_support/port/esp32p4/pmu_pvt.c new file mode 100644 index 00000000000..03a07258caf --- /dev/null +++ b/components/esp_hw_support/port/esp32p4/pmu_pvt.c @@ -0,0 +1,154 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include "sdkconfig.h" +#include "esp_attr.h" +#include "soc/soc.h" +#include "soc/pmu_struct.h" +#include "soc/pvt_reg.h" +#include "soc/pmu_reg.h" +#include "soc/hp_sys_clkrst_reg.h" +#include "hal/pmu_hal.h" +#include "pmu_param.h" +#include "esp_rom_sys.h" +#include "esp_private/esp_pmu.h" +#include "soc/regi2c_dig_reg.h" +#include "regi2c_ctrl.h" +#include "soc/rtc.h" +#include "hal/efuse_ll.h" +#include "hal/efuse_hal.h" +#include "esp_hw_log.h" + +static __attribute__((unused)) const char *TAG = "pmu_pvt"; + +#if CONFIG_ESP_ENABLE_PVT + +static uint8_t get_lp_hp_gap(void) +{ + int8_t lp_hp_gap = 0; + uint32_t blk_version = efuse_hal_blk_version(); + uint8_t lp_hp_gap_efuse = 0; + if (blk_version >= 2) { + lp_hp_gap_efuse = efuse_ll_get_dbias_vol_gap(); + bool gap_flag = lp_hp_gap_efuse >> 4; + uint8_t gap_abs_value = lp_hp_gap_efuse & 0xf; + if (gap_flag) { + lp_hp_gap = -1 * gap_abs_value; + } else { + lp_hp_gap = gap_abs_value; + } + lp_hp_gap = lp_hp_gap - 8; + assert((lp_hp_gap >= -15) && (lp_hp_gap <= 7)); + if (lp_hp_gap < 0 ) { + lp_hp_gap = 16 - lp_hp_gap; + } + } + return lp_hp_gap; +} + +static void set_pvt_hp_lp_gap(uint8_t value) +{ + bool flag = value >> 4; + uint8_t abs_value = value & 0xf; + + SET_PERI_REG_BITS(PVT_DBIAS_CMD0_REG, PVT_DBIAS_CMD0_OFFSET_FLAG, flag, PVT_DBIAS_CMD0_OFFSET_FLAG_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD0_REG, PVT_DBIAS_CMD0_OFFSET_VALUE, abs_value, PVT_DBIAS_CMD0_OFFSET_VALUE_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD1_REG, PVT_DBIAS_CMD1_OFFSET_FLAG, flag, PVT_DBIAS_CMD1_OFFSET_FLAG_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD1_REG, PVT_DBIAS_CMD1_OFFSET_VALUE, abs_value, PVT_DBIAS_CMD1_OFFSET_VALUE_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD2_REG, PVT_DBIAS_CMD2_OFFSET_FLAG, flag, PVT_DBIAS_CMD2_OFFSET_FLAG_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD2_REG, PVT_DBIAS_CMD2_OFFSET_VALUE, abs_value, PVT_DBIAS_CMD2_OFFSET_VALUE_S); +} + +static uint32_t pvt_get_dcmvset(void) +{ + return GET_PERI_REG_BITS2(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_HP_DBIAS_VOL_V, PMU_HP_DBIAS_VOL_S); +} + +static uint32_t pvt_get_lp_dbias(void) +{ + return GET_PERI_REG_BITS2(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_LP_DBIAS_VOL_V, PMU_LP_DBIAS_VOL_S); +} + +void pvt_auto_dbias_init(void) +{ + uint32_t blk_version = efuse_hal_blk_version(); + if (blk_version >= 2) { + SET_PERI_REG_MASK(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_160M_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_SOC_CLK_CTRL1_REG, HP_SYS_CLKRST_REG_PVT_SYS_CLK_EN); + /*config for dbias func*/ + CLEAR_PERI_REG_MASK(PVT_DBIAS_TIMER_REG, PVT_TIMER_EN); + esp_rom_delay_us(100); + SET_PERI_REG_BITS(PVT_DBIAS_CHANNEL_SEL0_REG, PVT_DBIAS_CHANNEL0_SEL, PVT_CHANNEL0_SEL, PVT_DBIAS_CHANNEL0_SEL_S); + SET_PERI_REG_BITS(PVT_DBIAS_CHANNEL_SEL0_REG, PVT_DBIAS_CHANNEL1_SEL, PVT_CHANNEL1_SEL, PVT_DBIAS_CHANNEL1_SEL_S); // Select monitor cell, which used to monitor PVT situation + SET_PERI_REG_BITS(PVT_DBIAS_CHANNEL0_SEL_REG, PVT_DBIAS_CHANNEL0_CFG, PVT_CHANNEL0_CFG, PVT_DBIAS_CHANNEL0_CFG_S); + SET_PERI_REG_BITS(PVT_DBIAS_CHANNEL1_SEL_REG, PVT_DBIAS_CHANNEL1_CFG, PVT_CHANNEL1_CFG, PVT_DBIAS_CHANNEL1_CFG_S); + SET_PERI_REG_BITS(PVT_DBIAS_CHANNEL2_SEL_REG, PVT_DBIAS_CHANNEL2_CFG, PVT_CHANNEL2_CFG, PVT_DBIAS_CHANNEL2_CFG_S); // Configure filter threshold for avoiding auto-dbias overly sensitive regulation + SET_PERI_REG_BITS(PVT_DBIAS_CMD0_REG, PVT_DBIAS_CMD0_PVT, PVT_CMD0, PVT_DBIAS_CMD0_PVT_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD1_REG, PVT_DBIAS_CMD1_PVT, PVT_CMD1, PVT_DBIAS_CMD1_PVT_S); + SET_PERI_REG_BITS(PVT_DBIAS_CMD2_REG, PVT_DBIAS_CMD2_PVT, PVT_CMD2, PVT_DBIAS_CMD2_PVT_S); // Configure auto-dbias adjust property, such as adjusting step + SET_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_DBIAS_INIT); // Start calibration @HP_CALI_DBIAS_DEFAULT + SET_PERI_REG_BITS(PVT_DBIAS_TIMER_REG, PVT_TIMER_TARGET, PVT_TARGET, PVT_TIMER_TARGET_S); // Configure auto-dbias voltage regulation cycle + + SET_PERI_REG_BITS(HP_SYS_CLKRST_PERI_CLK_CTRL24_REG, HP_SYS_CLKRST_REG_PVT_CLK_DIV_NUM, PVT_CLK_DIV, HP_SYS_CLKRST_REG_PVT_CLK_DIV_NUM_S); // PVT function clock divider number + SET_PERI_REG_BITS(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP_CLK_DIV_NUM, PVT_CLK_DIV, HP_SYS_CLKRST_REG_PVT_PERI_GROUP_CLK_DIV_NUM_S); // PVT function clock divider number + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL24_REG, HP_SYS_CLKRST_REG_PVT_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP1_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP2_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP3_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP4_CLK_EN); + + /*config for pvt cell: unit0; site3; vt1*/ + SET_PERI_REG_MASK(PVT_CLK_CFG_REG, PVT_MONITOR_CLK_PVT_EN); // Once enable cannot be closed + esp_rom_delay_us(100); + SET_PERI_REG_BITS(PVT_COMB_PD_SITE3_UNIT0_VT1_CONF2_REG, PVT_MONITOR_EDG_MOD_VT1_PD_SITE3_UNIT0, PVT_EDG_MODE, PVT_MONITOR_EDG_MOD_VT1_PD_SITE3_UNIT0_S); // Select edge_mode + SET_PERI_REG_BITS(PVT_COMB_PD_SITE3_UNIT0_VT1_CONF1_REG, PVT_DELAY_LIMIT_VT1_PD_SITE3_UNIT0, PVT_DELAY_NUM_HIGH, PVT_DELAY_LIMIT_VT1_PD_SITE3_UNIT0_S); // The threshold for determining whether the voltage is too high + SET_PERI_REG_BITS(PVT_COMB_PD_SITE3_UNIT1_VT1_CONF1_REG, PVT_DELAY_LIMIT_VT1_PD_SITE3_UNIT1, PVT_DELAY_NUM_LOW, PVT_DELAY_LIMIT_VT1_PD_SITE3_UNIT1_S); // The threshold for determining whether the voltage is too low + + /*config lp offset for pvt func*/ + uint8_t lp_hp_gap = get_lp_hp_gap(); + set_pvt_hp_lp_gap(lp_hp_gap); + } else { + ESP_HW_LOGW(TAG, "blk_version is less than 2, pvt auto dbias init not supported in efuse."); + } +} + +void pvt_func_enable(bool enable) +{ + uint32_t blk_version = efuse_hal_blk_version(); + if (blk_version >= 2){ + + if (enable) { + SET_PERI_REG_MASK(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_160M_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_SOC_CLK_CTRL1_REG, HP_SYS_CLKRST_REG_PVT_SYS_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL24_REG, HP_SYS_CLKRST_REG_PVT_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP1_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP2_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP3_CLK_EN); + SET_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL25_REG, HP_SYS_CLKRST_REG_PVT_PERI_GROUP4_CLK_EN); + SET_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_DBIAS_INIT); // Start calibration @HP_CALI_DBIAS_DEFAULT + SET_PERI_REG_MASK(PVT_CLK_CFG_REG, PVT_MONITOR_CLK_PVT_EN); // Once enable cannot be closed + SET_PERI_REG_MASK(PVT_COMB_PD_SITE3_UNIT0_VT1_CONF1_REG, PVT_MONITOR_EN_VT1_PD_SITE3_UNIT0); // Enable pvt clk + esp_rom_delay_us(1000); + CLEAR_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_REGULATOR0_DBIAS_SEL); // Hand over control of dbias to pvt + CLEAR_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_DBIAS_INIT); // Must clear @HP_CALI_DBIAS_DEFAULT + SET_PERI_REG_MASK(PVT_DBIAS_TIMER_REG, PVT_TIMER_EN); // Enable auto dbias + } else { + uint32_t pvt_dcmvset = pvt_get_dcmvset(); + uint32_t pvt_lpdbias = pvt_get_lp_dbias(); // Update pvt_cali_dbias + SET_PERI_REG_BITS(PMU_HP_ACTIVE_BIAS_REG, PMU_HP_ACTIVE_DCM_VSET, pvt_dcmvset, PMU_HP_ACTIVE_DCM_VSET_S); + SET_PERI_REG_BITS(PMU_HP_SLEEP_LP_REGULATOR0_REG, PMU_HP_SLEEP_LP_REGULATOR_DBIAS, pvt_lpdbias, PMU_HP_SLEEP_LP_REGULATOR_DBIAS_S); + SET_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_REGULATOR0_DBIAS_SEL); // Hand over control of dbias to pmu + CLEAR_PERI_REG_MASK(HP_SYS_CLKRST_PERI_CLK_CTRL24_REG, HP_SYS_CLKRST_REG_PVT_CLK_EN); + } + } else { + ESP_HW_LOGD(TAG, "blk_version is less than 2, pvt function not supported in efuse."); + } +} + +#endif diff --git a/components/esp_hw_support/port/esp32p4/pmu_sleep.c b/components/esp_hw_support/port/esp32p4/pmu_sleep.c index 04daf809b94..d621fb25f9c 100644 --- a/components/esp_hw_support/port/esp32p4/pmu_sleep.c +++ b/components/esp_hw_support/port/esp32p4/pmu_sleep.c @@ -195,7 +195,7 @@ const pmu_sleep_config_t* pmu_sleep_config_default( analog_default.lp_sys[LP(SLEEP)].analog.bias_sleep = PMU_BIASSLP_SLEEP_ON; analog_default.lp_sys[LP(SLEEP)].analog.dbg_atten = PMU_DBG_ATTEN_ACTIVE_DEFAULT; #if !CONFIG_ESP_SLEEP_KEEP_DCDC_ALWAYS_ON - analog_default.lp_sys[LP(SLEEP)].analog.dbias = LP_CALI_DBIAS; + analog_default.lp_sys[LP(SLEEP)].analog.dbias = LP_CALI_ACTIVE_DBIAS_DEFAULT; #endif } diff --git a/components/esp_hw_support/port/esp32p4/private_include/pmu_param.h b/components/esp_hw_support/port/esp32p4/private_include/pmu_param.h index 899a1ecbe4a..d4b53eebaab 100644 --- a/components/esp_hw_support/port/esp32p4/private_include/pmu_param.h +++ b/components/esp_hw_support/port/esp32p4/private_include/pmu_param.h @@ -18,7 +18,7 @@ extern "C" { #define HP_CALI_ACTIVE_DCM_VSET_DEFAULT 27 // For DCDC, about 1.25v #define HP_CALI_ACTIVE_DBIAS_DEFAULT 24 // For HP regulator -#define LP_CALI_DBIAS 29 // For LP regulator +#define LP_CALI_ACTIVE_DBIAS_DEFAULT 29 // For LP regulator // FOR XTAL FORCE PU IN SLEEP #define PMU_PD_CUR_SLEEP_ON 0 @@ -53,6 +53,9 @@ extern "C" { #define PMU_DBG_ATTEN_DEEPSLEEP_DEFAULT 12 #define PMU_LP_DBIAS_DEEPSLEEP_0V7 23 +uint32_t get_act_hp_dbias(void); +uint32_t get_act_lp_dbias(void); + typedef struct { pmu_hp_dig_power_reg_t dig_power; pmu_hp_clk_power_reg_t clk_power; diff --git a/components/esp_hw_support/port/esp32p4/rtc_clk_init.c b/components/esp_hw_support/port/esp32p4/rtc_clk_init.c index 2003e500666..a8bc0d5b18e 100644 --- a/components/esp_hw_support/port/esp32p4/rtc_clk_init.c +++ b/components/esp_hw_support/port/esp32p4/rtc_clk_init.c @@ -54,11 +54,22 @@ void rtc_clk_init(rtc_clk_config_t cfg) REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_OR_FORCE_XPD_IPH, 0); REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_OR_FORCE_XPD_VGATE_BUF, 0); - pmu_ll_lp_set_regulator_dbias(&PMU, PMU_MODE_LP_ACTIVE, LP_CALI_DBIAS); + uint32_t hp_dbias = get_act_hp_dbias(); + uint32_t lp_dbias = get_act_lp_dbias(); + pmu_ll_hp_set_regulator_xpd(&PMU, PMU_MODE_HP_ACTIVE, true); + pmu_ll_hp_set_regulator_dbias(&PMU, PMU_MODE_HP_ACTIVE, hp_dbias); + pmu_ll_lp_set_regulator_dbias(&PMU, PMU_MODE_LP_ACTIVE, lp_dbias); + + uint32_t pvt_hp_dcmvset = GET_PERI_REG_BITS2(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_HP_DBIAS_VOL_V, PMU_HP_DBIAS_VOL_S); + uint32_t hp_dcmvset = HP_CALI_ACTIVE_DCM_VSET_DEFAULT; + if (pvt_hp_dcmvset > hp_dcmvset) { + hp_dcmvset = pvt_hp_dcmvset; + } // Switch to DCDC pmu_ll_set_dcdc_en(&PMU, true); pmu_ll_set_dcdc_switch_force_power_down(&PMU, false); - pmu_ll_hp_set_dcm_vset(&PMU, PMU_MODE_HP_ACTIVE, HP_CALI_ACTIVE_DCM_VSET_DEFAULT); + pmu_ll_hp_set_dcm_vset(&PMU, PMU_MODE_HP_ACTIVE, hp_dcmvset); + SET_PERI_REG_MASK(PMU_HP_ACTIVE_HP_REGULATOR0_REG, PMU_DIG_REGULATOR0_DBIAS_SEL); // Hand over control of dbias to pmu esp_rom_delay_us(1000); pmu_ll_hp_set_regulator_xpd(&PMU, PMU_MODE_HP_ACTIVE, false); diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index cba59b88449..7d25c4314fa 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -20,6 +20,7 @@ #include "esp_private/esp_sleep_internal.h" #include "esp_private/esp_timer_private.h" #include "esp_private/rtc_clk.h" +#include "soc/rtc.h" #include "esp_private/sleep_event.h" #include "esp_private/system_internal.h" #include "esp_private/io_mux.h" @@ -290,8 +291,9 @@ static bool s_light_sleep_wakeup = false; static portMUX_TYPE spinlock_rtc_deep_sleep = portMUX_INITIALIZER_UNLOCKED; static const char *TAG = "sleep"; -static RTC_FAST_ATTR int32_t s_sleep_sub_mode_ref_cnt[ESP_SLEEP_MODE_MAX] = { 0 }; -//in this mode, 2uA is saved, but RTC memory can't use at high temperature, and RTCIO can't be used as INPUT. + +/* APP core of esp32 can't access to RTC FAST MEMORY, do not define it with RTC_IRAM_ATTR */ +RTC_SLOW_ATTR static int32_t s_sleep_sub_mode_ref_cnt[ESP_SLEEP_MODE_MAX] = { 0 }; void esp_sleep_overhead_out_time_refresh(void) { @@ -384,12 +386,12 @@ esp_deep_sleep_wake_stub_fn_t esp_get_deep_sleep_wake_stub(void) } #if CONFIG_IDF_TARGET_ESP32 -/* APP core of esp32 can't access to RTC FAST MEMORY, do not define it with RTC_IRAM_ATTR */ -void +/* APP core of esp32 can't access to RTC FAST MEMORY, link to RTC SLOW MEMORY instead*/ +RTC_SLOW_ATTR #else -void RTC_IRAM_ATTR +RTC_IRAM_ATTR #endif -esp_set_deep_sleep_wake_stub(esp_deep_sleep_wake_stub_fn_t new_stub) +void esp_set_deep_sleep_wake_stub(esp_deep_sleep_wake_stub_fn_t new_stub) { #if SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY wake_stub_fn_handler = new_stub; @@ -398,7 +400,14 @@ esp_set_deep_sleep_wake_stub(esp_deep_sleep_wake_stub_fn_t new_stub) #endif } -void RTC_IRAM_ATTR esp_default_wake_deep_sleep(void) + +#if CONFIG_IDF_TARGET_ESP32 +/* APP core of esp32 can't access to RTC FAST MEMORY, link to RTC SLOW MEMORY instead*/ +RTC_SLOW_ATTR +#else +RTC_IRAM_ATTR +#endif +void esp_default_wake_deep_sleep(void) { /* Clear MMU for CPU 0 */ #if CONFIG_IDF_TARGET_ESP32 @@ -699,6 +708,9 @@ FORCE_INLINE_ATTR void misc_modules_sleep_prepare(uint32_t sleep_flags, bool dee regi2c_tsens_reg_read(); #endif } +#if CONFIG_ESP_ENABLE_PVT + pvt_func_enable(false); +#endif #if !CONFIG_IDF_TARGET_ESP32C61 // TODO: IDF-7370 @@ -713,6 +725,10 @@ FORCE_INLINE_ATTR void misc_modules_sleep_prepare(uint32_t sleep_flags, bool dee */ FORCE_INLINE_ATTR void misc_modules_wake_prepare(uint32_t sleep_flags) { +#if CONFIG_ESP_ENABLE_PVT + pvt_func_enable(true); +#endif + #if CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP if (sleep_flags & PMU_SLEEP_PD_TOP) { // There is no driver to manage the flashboot watchdog, and it is definitely be in off state when @@ -2557,11 +2573,11 @@ static uint32_t get_sleep_flags(uint32_t sleep_flags, bool deepsleep) #if CONFIG_IDF_TARGET_ESP32 /* APP core of esp32 can't access to RTC FAST MEMORY, do not define it with RTC_IRAM_ATTR */ -void +RTC_SLOW_ATTR #else -void RTC_IRAM_ATTR +RTC_IRAM_ATTR #endif -esp_deep_sleep_disable_rom_logging(void) +void esp_deep_sleep_disable_rom_logging(void) { rtc_suppress_rom_log(); } diff --git a/components/esp_hw_support/sleep_system_peripheral.c b/components/esp_hw_support/sleep_system_peripheral.c index 77557765e6c..4a7b623f3fc 100644 --- a/components/esp_hw_support/sleep_system_peripheral.c +++ b/components/esp_hw_support/sleep_system_peripheral.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -121,6 +121,16 @@ esp_err_t sleep_pau_retention_init(void) } #endif +#if CONFIG_ESP_ENABLE_PVT +esp_err_t sleep_pvt_retention_init(void) +{ + esp_err_t err = sleep_retention_entries_create(pvt_regs_retention, ARRAY_SIZE(pvt_regs_retention), REGDMA_LINK_PRI_SYS_PERIPH_LOW, SLEEP_RETENTION_MODULE_SYS_PERIPH); + ESP_RETURN_ON_ERROR(err, TAG, "failed to allocate memory for system (PVT) retention"); + ESP_LOGI(TAG, "PVT sleep retention initialization"); + return ESP_OK; +} +#endif + static __attribute__((unused)) esp_err_t sleep_sys_periph_retention_init(void *arg) { esp_err_t err; @@ -152,6 +162,11 @@ static __attribute__((unused)) esp_err_t sleep_sys_periph_retention_init(void *a if(err) goto error; #if SOC_PAU_IN_TOP_DOMAIN err = sleep_pau_retention_init(); + if(err) goto error; +#endif +#if CONFIG_ESP_ENABLE_PVT + err = sleep_pvt_retention_init(); + if(err) goto error; #endif error: diff --git a/components/esp_hw_support/test_apps/.build-test-rules.yml b/components/esp_hw_support/test_apps/.build-test-rules.yml index 0585429ebae..95cd9fa76e4 100644 --- a/components/esp_hw_support/test_apps/.build-test-rules.yml +++ b/components/esp_hw_support/test_apps/.build-test-rules.yml @@ -52,5 +52,7 @@ components/esp_hw_support/test_apps/vad_wakeup: - if: SOC_LP_VAD_SUPPORTED != 1 components/esp_hw_support/test_apps/wakeup_tests: + enable: + - if: SOC_DEEP_SLEEP_SUPPORTED == 1 and SOC_LIGHT_SLEEP_SUPPORTED == 1 disable: - - if: IDF_TARGET in ["esp32c5", "esp32p4", "linux", "esp32c61"] + - if: IDF_TARGET in ["esp32c5", "linux", "esp32c61"] diff --git a/components/esp_hw_support/test_apps/rtc_8md256/main/test_rtc_8md256.c b/components/esp_hw_support/test_apps/rtc_8md256/main/test_rtc_8md256.c index 3831015833a..220a65a5c0b 100644 --- a/components/esp_hw_support/test_apps/rtc_8md256/main/test_rtc_8md256.c +++ b/components/esp_hw_support/test_apps/rtc_8md256/main/test_rtc_8md256.c @@ -6,6 +6,7 @@ #include #include +#include #include "esp_sleep.h" #include "unity.h" #include "unity_test_utils.h" @@ -38,6 +39,30 @@ TEST_CASE("Can use 8MD256 as RTC clock source in deepsleep", "[pm]") test_deepsleep(false); } +static void check_reset_reason_deep_sleep(void) +{ + TEST_ASSERT_EQUAL(ESP_RST_DEEPSLEEP, esp_reset_reason()); +} + +static void enter_deepsleep_by_core1(void *args) +{ + do { + test_deepsleep(false); + } while (1); +} + +static void request_core1_do_deepsleep(void) +{ + fflush(stdout); + fsync(fileno(stdout)); + xTaskCreatePinnedToCore(enter_deepsleep_by_core1, "deep_sleep_task", 4096, NULL, 6, NULL, 1); + while(1); +} + +TEST_CASE_MULTIPLE_STAGES("Can use 8MD256 as RTC clock source in deepsleep (enter sleep by core1)", "[pm]", + request_core1_do_deepsleep, + check_reset_reason_deep_sleep); + static void test_lightsleep(bool force_rtc_periph) { esp_sleep_enable_timer_wakeup(2000000); diff --git a/components/esp_hw_support/test_apps/wakeup_tests/README.md b/components/esp_hw_support/test_apps/wakeup_tests/README.md index a8b7833fa30..bf47d80ec64 100644 --- a/components/esp_hw_support/test_apps/wakeup_tests/README.md +++ b/components/esp_hw_support/test_apps/wakeup_tests/README.md @@ -1,2 +1,2 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | diff --git a/components/esp_hw_support/test_apps/wakeup_tests/main/src/io_wakeup_cmd.c b/components/esp_hw_support/test_apps/wakeup_tests/main/src/io_wakeup_cmd.c index 3c8c9fc870a..39b5591cd67 100644 --- a/components/esp_hw_support/test_apps/wakeup_tests/main/src/io_wakeup_cmd.c +++ b/components/esp_hw_support/test_apps/wakeup_tests/main/src/io_wakeup_cmd.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -10,6 +10,7 @@ #include "esp_sleep.h" #include "driver/rtc_io.h" #include "driver/gpio.h" +#include "hal/gpio_ll.h" #include "esp_console.h" #include "linenoise/linenoise.h" #include "argtable3/argtable3.h" @@ -128,7 +129,7 @@ static void register_ext1_wakeup(void) const esp_console_cmd_t cmd = { .command = "ext1", - .help = "configue ext1 wakeup", + .help = "configure ext1 wakeup", .hint = NULL, .func = &process_ext1_wakeup, .argtable = &ext1_wakeup_args @@ -202,7 +203,7 @@ static void register_rtcio_wakeup(void) const esp_console_cmd_t cmd = { .command = "rtcio", - .help = "configue rtcio wakeup", + .help = "configure rtcio wakeup", .hint = NULL, .func = &process_rtcio_wakeup, .argtable = &rtcio_wakeup_args @@ -247,13 +248,14 @@ static int process_gpio_wakeup(int argc, char **argv) if (gpio_wakeup_args.disable->count) { ESP_ERROR_CHECK(gpio_wakeup_disable(io_wakeup_num)); + ESP_ERROR_CHECK(gpio_intr_disable(io_wakeup_num)); } else { gpio_config_t config = { .pin_bit_mask = BIT64(io_wakeup_num), .mode = GPIO_MODE_INPUT, .pull_down_en = false, .pull_up_en = false, - .intr_type = GPIO_INTR_DISABLE + .intr_type = (io_wakeup_level == 0) ? GPIO_INTR_LOW_LEVEL : GPIO_INTR_HIGH_LEVEL }; ESP_ERROR_CHECK(gpio_config(&config)); @@ -277,7 +279,7 @@ static void register_gpio_wakeup(void) const esp_console_cmd_t cmd = { .command = "gpio", - .help = "configue gpio wakeup", + .help = "configure gpio wakeup", .hint = NULL, .func = &process_gpio_wakeup, .argtable = &gpio_wakeup_args @@ -336,7 +338,7 @@ static void register_gpio_control(void) const esp_console_cmd_t cmd = { .command = "gpio_control", - .help = "configue gpio control", + .help = "configure gpio control", .hint = NULL, .func = &process_gpio_control, .argtable = &gpio_control_args @@ -358,11 +360,51 @@ static int process_get_wakeup_cause(int argc, char **argv) switch (esp_sleep_get_wakeup_cause()) { case ESP_SLEEP_WAKEUP_EXT1: { - printf("Wake up from EXT1\n"); +#if SOC_PM_SUPPORT_EXT1_WAKEUP && SOC_RTCIO_PIN_COUNT > 0 + uint64_t wakeup_pin_mask = esp_sleep_get_ext1_wakeup_status(); + if (wakeup_pin_mask != 0) { + int pin = __builtin_ffsll(wakeup_pin_mask) - 1; + printf("Wake up from EXT1 at IO%d\n", pin); + } else +#endif + { + printf("Wake up from EXT1 triggered, but unknown wake-up IO\n"); + } break; } case ESP_SLEEP_WAKEUP_GPIO: { - printf("Wake up from GPIO\n"); + if (esp_reset_reason() == ESP_RST_DEEPSLEEP) { +#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP + uint64_t wakeup_pin_mask = esp_sleep_get_gpio_wakeup_status(); + if (wakeup_pin_mask != 0) { + int pin = __builtin_ffsll(wakeup_pin_mask) - 1; + printf("Wake up from GPIO at IO%d\n", pin); + } else { + printf("Wake up from GPIO triggered, but unknown wake-up IO\n"); + } +#endif + } else { + struct { + union { + struct + { + uint32_t status_l; + uint32_t status_h; + }; + uint64_t val; + }; + } gpio_intr_status; + gpio_ll_get_intr_status(&GPIO, 0, &gpio_intr_status.status_l); + gpio_ll_get_intr_status_high(&GPIO, 0, &gpio_intr_status.status_h); + + if (gpio_intr_status.val) { + printf("Wake up from GPIO at IO%d\n", __builtin_ffsll(gpio_intr_status.val) - 1); + } else { + printf("Wake up from GPIO triggered, but unknown wake-up IO\n"); + } + gpio_ll_clear_intr_status(&GPIO, 0xFFFFFFFF); + gpio_ll_clear_intr_status_high(&GPIO, 0xFFFFFFFF); + } break; } default: { diff --git a/components/esp_hw_support/test_apps/wakeup_tests/pytest_wakeup_tests.py b/components/esp_hw_support/test_apps/wakeup_tests/pytest_wakeup_tests.py index b99d1345a40..b4511844d16 100644 --- a/components/esp_hw_support/test_apps/wakeup_tests/pytest_wakeup_tests.py +++ b/components/esp_hw_support/test_apps/wakeup_tests/pytest_wakeup_tests.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 - from time import sleep from typing import Tuple @@ -23,6 +22,40 @@ available_gpio_nums = { 'esp32c3': [0, 1, 2, 3, 4, 5, 6, 7, 10, 18, 19], 'esp32c6': [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 15, 18, 19, 20, 21, 22, 23], 'esp32h2': [0, 1, 2, 3, 4, 5, 10, 11, 12, 22, 25, 26, 27], + 'esp32p4': [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 28, + 29, + 30, + 31, + 32, + 33, + 36, + 49, + 50, + 51, + 52, + 53, + 54, + ], + 'esp32c5': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 23, 24, 25, 26], } available_rtcio_nums = { @@ -33,6 +66,8 @@ available_rtcio_nums = { 'esp32c3': [0, 1, 2, 3, 4, 5], 'esp32c6': [0, 1, 2, 3, 4, 5, 6, 7], 'esp32h2': [7, 8, 9, 10, 11, 12, 13, 14], + 'esp32p4': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + 'esp32c5': [0, 1, 2, 3, 4, 5, 6], } @@ -41,6 +76,7 @@ available_rtcio_nums = { @pytest.mark.esp32s3 @pytest.mark.esp32c6 @pytest.mark.esp32h2 +@pytest.mark.esp32p4 @pytest.mark.generic_multi_device @pytest.mark.parametrize('count', [2], indirect=True) @pytest.mark.parametrize('config', TEST_CONFIGS, indirect=True) @@ -81,7 +117,12 @@ def test_ext1_deepsleep(dut: Tuple[IdfDut, IdfDut]) -> None: sleep(2) wakee.write('cause') - wakee.expect('Wake up from EXT1', timeout=10) + # esp32 ext1 all low wakeup mode can not detect wakeup pin. + if (dut[0].target == 'esp32') and (wakeup_level == 0): + wakee.expect('Wake up from EXT1', timeout=10) + else: + wakee.expect(f'Wake up from EXT1 at IO{gpio_num}', timeout=10) + wakee.write(f'ext1 -p {gpio_num} -d') wakee.expect(f'io_wakeup_num = {gpio_num}', timeout=10) @@ -89,6 +130,7 @@ def test_ext1_deepsleep(dut: Tuple[IdfDut, IdfDut]) -> None: @pytest.mark.esp32c2 @pytest.mark.esp32c3 @pytest.mark.esp32c6 +@pytest.mark.esp32p4 @pytest.mark.generic_multi_device @pytest.mark.parametrize('count', [2], indirect=True) @pytest.mark.parametrize('config', TEST_CONFIGS, indirect=True) @@ -129,7 +171,7 @@ def test_rtcio_deepsleep(dut: Tuple[IdfDut, IdfDut]) -> None: sleep(2) wakee.write('cause') - wakee.expect('Wake up from GPIO', timeout=10) + wakee.expect(f'Wake up from GPIO at IO{gpio_num}', timeout=10) wakee.write(f'rtcio -p {gpio_num} -d') wakee.expect(f'io_wakeup_num = {gpio_num}', timeout=10) @@ -141,6 +183,7 @@ def test_rtcio_deepsleep(dut: Tuple[IdfDut, IdfDut]) -> None: @pytest.mark.esp32s3 @pytest.mark.esp32c6 @pytest.mark.esp32h2 +@pytest.mark.esp32p4 @pytest.mark.generic_multi_device @pytest.mark.parametrize('count', [2], indirect=True) @pytest.mark.parametrize('config', TEST_CONFIGS, indirect=True) @@ -175,7 +218,7 @@ def test_gpio_wakeup_enable_lightsleep(dut: Tuple[IdfDut, IdfDut]) -> None: wakee.expect('esp_light_sleep_start', timeout=10) wakee.write('cause') - wakee.expect('Wake up from GPIO', timeout=10) + wakee.expect(f'Wake up from GPIO at IO{gpio_num}', timeout=10) wakee.write(f'gpio -p {gpio_num} -d') wakee.expect(f'io_wakeup_num = {gpio_num}', timeout=10) diff --git a/components/esp_lcd/i80/esp_lcd_panel_io_i80.c b/components/esp_lcd/i80/esp_lcd_panel_io_i80.c index 0f96148c3cd..ee392c602c3 100644 --- a/components/esp_lcd/i80/esp_lcd_panel_io_i80.c +++ b/components/esp_lcd/i80/esp_lcd_panel_io_i80.c @@ -197,7 +197,9 @@ esp_err_t esp_lcd_new_i80_bus(const esp_lcd_i80_bus_config_t *bus_config, esp_lc (uint32_t)lcd_ll_get_interrupt_status_reg(bus->hal.dev), LCD_LL_EVENT_TRANS_DONE, i80_lcd_default_isr_handler, bus, &bus->intr); ESP_GOTO_ON_ERROR(ret, err, TAG, "install interrupt failed"); - lcd_ll_enable_interrupt(bus->hal.dev, LCD_LL_EVENT_TRANS_DONE, false); // disable all interrupts + PERIPH_RCC_ATOMIC() { + lcd_ll_enable_interrupt(bus->hal.dev, LCD_LL_EVENT_TRANS_DONE, false); // disable all interrupts + } lcd_ll_clear_interrupt_status(bus->hal.dev, UINT32_MAX); // clear pending interrupt // install DMA service bus->max_transfer_bytes = bus_config->max_transfer_bytes; @@ -213,8 +215,10 @@ esp_err_t esp_lcd_new_i80_bus(const esp_lcd_i80_bus_config_t *bus_config, esp_lc lcd_ll_set_swizzle_mode(bus->hal.dev, LCD_LL_SWIZZLE_AB2BA); // number of data cycles is controlled by DMA buffer size lcd_ll_enable_output_always_on(bus->hal.dev, true); - // enable trans done interrupt - lcd_ll_enable_interrupt(bus->hal.dev, LCD_LL_EVENT_TRANS_DONE, true); + PERIPH_RCC_ATOMIC() { + // enable trans done interrupt + lcd_ll_enable_interrupt(bus->hal.dev, LCD_LL_EVENT_TRANS_DONE, true); + } // trigger a quick "trans done" event, and wait for the interrupt line goes active // this could ensure we go into ISR handler next time we call `esp_intr_enable` lcd_periph_trigger_quick_trans_done_event(bus); diff --git a/components/esp_lcd/rgb/esp_lcd_panel_rgb.c b/components/esp_lcd/rgb/esp_lcd_panel_rgb.c index 72df1e8266d..cf639f89fb8 100644 --- a/components/esp_lcd/rgb/esp_lcd_panel_rgb.c +++ b/components/esp_lcd/rgb/esp_lcd_panel_rgb.c @@ -332,7 +332,9 @@ esp_err_t esp_lcd_new_rgb_panel(const esp_lcd_rgb_panel_config_t *rgb_panel_conf (uint32_t)lcd_ll_get_interrupt_status_reg(rgb_panel->hal.dev), LCD_LL_EVENT_VSYNC_END, rgb_lcd_default_isr_handler, rgb_panel, &rgb_panel->intr); ESP_GOTO_ON_ERROR(ret, err, TAG, "install interrupt failed"); - lcd_ll_enable_interrupt(rgb_panel->hal.dev, LCD_LL_EVENT_VSYNC_END, false); // disable all interrupts + PERIPH_RCC_ATOMIC() { + lcd_ll_enable_interrupt(rgb_panel->hal.dev, LCD_LL_EVENT_VSYNC_END, false); // disable all interrupts + } lcd_ll_clear_interrupt_status(rgb_panel->hal.dev, UINT32_MAX); // clear pending interrupt // install DMA service @@ -569,8 +571,10 @@ static esp_err_t rgb_panel_init(esp_lcd_panel_t *panel) // in stream mode, after finish one frame, the LCD controller will ask for data automatically from the DMA // DMA should prepare the next frame data within porch region lcd_ll_enable_auto_next_frame(rgb_panel->hal.dev, rgb_panel->flags.stream_mode); - // trigger interrupt on the end of frame - lcd_ll_enable_interrupt(rgb_panel->hal.dev, LCD_LL_EVENT_VSYNC_END, true); + PERIPH_RCC_ATOMIC() { + // trigger interrupt on the end of frame + lcd_ll_enable_interrupt(rgb_panel->hal.dev, LCD_LL_EVENT_VSYNC_END, true); + } // enable intr esp_intr_enable(rgb_panel->intr); // start transmission diff --git a/components/esp_mm/CMakeLists.txt b/components/esp_mm/CMakeLists.txt index 923ab0aae69..bf81e65185b 100644 --- a/components/esp_mm/CMakeLists.txt +++ b/components/esp_mm/CMakeLists.txt @@ -14,14 +14,15 @@ set(srcs) if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP) set(srcs "esp_mmu_map.c" "port/${target}/ext_mem_layout.c" - "esp_cache.c") + "esp_cache_msync.c" + "esp_cache_utils.c") if(CONFIG_IDF_TARGET_ESP32) list(APPEND srcs "cache_esp32.c") endif() else() if(CONFIG_SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) - list(APPEND srcs "esp_cache.c") + list(APPEND srcs "esp_cache_msync.c") endif() endif() diff --git a/components/esp_mm/esp_cache.c b/components/esp_mm/esp_cache_msync.c similarity index 88% rename from components/esp_mm/esp_cache.c rename to components/esp_mm/esp_cache_msync.c index d193ace39e6..e8af782c265 100644 --- a/components/esp_mm/esp_cache.c +++ b/components/esp_mm/esp_cache_msync.c @@ -147,42 +147,6 @@ esp_err_t esp_cache_msync(void *addr, size_t size, int flags) return ESP_OK; } -void esp_cache_suspend_ext_mem_cache(void) -{ -#if (CONFIG_SPIRAM && SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) - /** - * before suspending the external mem cache, writeback internal mem cache content back to external mem cache - * to avoid stuck issue caused by internal mem cache auto-writeback - */ - cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL); -#endif - cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); -} - -void esp_cache_resume_ext_mem_cache(void) -{ - cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); -} - -#if SOC_CACHE_FREEZE_SUPPORTED -void esp_cache_freeze_ext_mem_cache(void) -{ -#if (CONFIG_SPIRAM && SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) - /** - * before freezing the external mem cache, writeback internal mem cache content back to external mem cache - * to avoid stuck issue caused by internal mem cache auto-writeback - */ - cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL); -#endif - cache_hal_freeze(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); -} - -void esp_cache_unfreeze_ext_mem_cache(void) -{ - cache_hal_unfreeze(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); -} -#endif //#if SOC_CACHE_FREEZE_SUPPORTED - //The esp_cache_aligned_malloc function is marked deprecated but also called by other //(also deprecated) functions in this file. In order to work around that generating warnings, it's //split into a non-deprecated internal function and the stubbed external deprecated function. diff --git a/components/esp_mm/esp_cache_utils.c b/components/esp_mm/esp_cache_utils.c new file mode 100644 index 00000000000..f986c3b4ff5 --- /dev/null +++ b/components/esp_mm/esp_cache_utils.c @@ -0,0 +1,114 @@ +/* + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD +* +* SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include "sys/lock.h" +#include "sdkconfig.h" +#include "esp_check.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "esp_memory_utils.h" +#include "soc/soc_caps.h" +#include "hal/cache_hal.h" +#include "hal/cache_ll.h" +#include "esp_private/esp_cache_private.h" +#include "esp_private/critical_section.h" +#if __riscv +#include "riscv/rv_utils.h" +#endif + +#define ALIGN_UP_BY(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) + +void esp_cache_suspend_ext_mem_cache(void) +{ +#if (CONFIG_SPIRAM && SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) + /** + * before suspending the external mem cache, writeback internal mem cache content back to external mem cache + * to avoid stuck issue caused by internal mem cache auto-writeback + */ + cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL); +#endif + cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); +} + +void esp_cache_resume_ext_mem_cache(void) +{ + cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); +} + +/*----------------------------------------------------------------------------- + * Cache Freeze Related + *----------------------------------------------------------------------------*/ +#if SOC_CACHE_FREEZE_SUPPORTED +DEFINE_CRIT_SECTION_LOCK_STATIC(s_spinlock); + +void esp_cache_freeze_ext_mem_cache(void) +{ +#if (CONFIG_SPIRAM && SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) +#if !CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE + int cpuid = xPortGetCoreID(); + uint32_t other_cpuid = (cpuid == 0) ? 1 : 0; + esp_cpu_stall(other_cpuid); +#else + //single core mode, don't need to stall other core +#endif + /** + * before freezing the external mem cache, writeback internal mem cache content back to external mem cache + * to avoid stuck issue caused by internal mem cache auto-writeback + */ + cache_ll_writeback_all(CACHE_LL_LEVEL_INT_MEM, CACHE_TYPE_DATA, CACHE_LL_ID_ALL); +#endif + + cache_hal_freeze(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); + +#if (CONFIG_SPIRAM && SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE) +#if !CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE + esp_cpu_unstall(other_cpuid); +#else + //single core mode, don't need to unstall other core +#endif +#endif +} + +void esp_cache_unfreeze_ext_mem_cache(void) +{ + cache_hal_unfreeze(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL); +} + +static inline bool s_task_stack_is_sane_when_cache_frozen(void) +{ + const void *sp = (const void *)esp_cpu_get_sp(); + + return esp_ptr_in_dram(sp) +#if CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP + || esp_ptr_in_rtc_dram_fast(sp) +#endif + ; +} + +void esp_cache_freeze_caches_disable_interrupts(void) +{ + assert(s_task_stack_is_sane_when_cache_frozen()); + esp_os_enter_critical_safe(&s_spinlock); + + /** + * - disable non-iram interrupt on current core + * - current core call cache freeze + * - external access from other cores will hang on cache + */ + esp_intr_noniram_disable(); + esp_cache_freeze_ext_mem_cache(); +} + +void esp_cache_unfreeze_caches_enable_interrupts(void) +{ + esp_cache_unfreeze_ext_mem_cache(); + esp_intr_noniram_enable(); + esp_os_exit_critical_safe(&s_spinlock); +} +#endif diff --git a/components/esp_mm/esp_mmu_map.c b/components/esp_mm/esp_mmu_map.c index 32dadf7a822..6bdd8420efb 100644 --- a/components/esp_mm/esp_mmu_map.c +++ b/components/esp_mm/esp_mmu_map.c @@ -27,6 +27,7 @@ #include "esp_private/cache_utils.h" #include "esp_private/esp_cache_esp32_private.h" +#include "esp_private/esp_cache_private.h" #include "esp_private/esp_mmu_map_private.h" #include "ext_mem_layout.h" #include "esp_mmu_map.h" @@ -373,6 +374,26 @@ IRAM_ATTR esp_err_t esp_mmu_paddr_find_caps(const esp_paddr_t paddr, mmu_mem_cap return ESP_OK; } +static void IRAM_ATTR NOINLINE_ATTR s_stop_cache(void) +{ +#if SOC_CACHE_FREEZE_SUPPORTED && !CONFIG_IDF_TARGET_ESP32P4 + // On P4, due to limitations on stalling another core, we temporarily use cache disable/enable + esp_cache_freeze_caches_disable_interrupts(); +#else + spi_flash_disable_interrupts_caches_and_other_cpu(); +#endif +} + +static void IRAM_ATTR NOINLINE_ATTR s_start_cache(void) +{ +#if SOC_CACHE_FREEZE_SUPPORTED && !CONFIG_IDF_TARGET_ESP32P4 + // On P4, due to limitations on stalling another core, we temporarily use cache disable/enable + esp_cache_unfreeze_caches_enable_interrupts(); +#else + spi_flash_enable_interrupts_caches_and_other_cpu(); +#endif +} + static void IRAM_ATTR NOINLINE_ATTR s_do_cache_invalidate(uint32_t vaddr_start, uint32_t size) { #if CONFIG_IDF_TARGET_ESP32 @@ -416,10 +437,8 @@ static void IRAM_ATTR NOINLINE_ATTR s_do_mapping(mmu_target_t target, uint32_t v { /** * Disable Cache, after this function, involved code and data should be placed in internal RAM. - * - * @note we call this for now, but this will be refactored to move out of `spi_flash` */ - spi_flash_disable_interrupts_caches_and_other_cpu(); + s_stop_cache(); uint32_t actual_mapped_len = s_mapping_operation(target, vaddr_start, paddr_start, size); @@ -433,7 +452,7 @@ static void IRAM_ATTR NOINLINE_ATTR s_do_mapping(mmu_target_t target, uint32_t v s_do_cache_invalidate(vaddr_start, size); //enable Cache, after this function, internal RAM access is no longer mandatory - spi_flash_enable_interrupts_caches_and_other_cpu(); + s_start_cache(); ESP_EARLY_LOGV(TAG, "actual_mapped_len is 0x%"PRIx32, actual_mapped_len); } @@ -514,7 +533,9 @@ esp_err_t esp_mmu_map(esp_paddr_t paddr_start, size_t size, mmu_target_t target, */ const uint32_t new_paddr_offset = paddr_start - mem_block->paddr_start; *out_ptr = (void *)mem_block->vaddr_start + new_paddr_offset; - ESP_GOTO_ON_FALSE(false, ESP_ERR_INVALID_STATE, err, TAG, "paddr block is mapped already, vaddr_start: %p, size: 0x%x", (void *)mem_block->vaddr_start, mem_block->size); + ESP_LOGD(TAG, "paddr block is mapped already, vaddr_start: %p, size: 0x%x", (void *)mem_block->vaddr_start, mem_block->size); + ret = ESP_ERR_INVALID_STATE; + goto err; } if (!allow_overlap && is_overlapped) { @@ -613,15 +634,13 @@ static void IRAM_ATTR NOINLINE_ATTR s_do_unmapping(uint32_t vaddr_start, uint32_ { /** * Disable Cache, after this function, involved code and data should be placed in internal RAM. - * - * @note we call this for now, but this will be refactored to move out of `spi_flash` */ - spi_flash_disable_interrupts_caches_and_other_cpu(); + s_stop_cache(); s_unmapping_operation(vaddr_start, size); //enable Cache, after this function, internal RAM access is no longer mandatory - spi_flash_enable_interrupts_caches_and_other_cpu(); + s_start_cache(); } esp_err_t esp_mmu_unmap(void *ptr) @@ -759,8 +778,11 @@ esp_err_t IRAM_ATTR esp_mmu_map_dump_mapped_blocks_private(void) static bool NOINLINE_ATTR IRAM_ATTR s_vaddr_to_paddr(uint32_t vaddr, esp_paddr_t *out_paddr, mmu_target_t *out_target) { uint32_t mmu_id = 0; - //we call this for now, but this will be refactored to move out of `spi_flash` - spi_flash_disable_interrupts_caches_and_other_cpu(); + /** + * Disable Cache, after this function, involved code and data should be placed in internal RAM. + */ + s_stop_cache(); + #if SOC_MMU_PER_EXT_MEM_TARGET mmu_id = mmu_hal_get_id_from_vaddr(vaddr); #endif @@ -770,7 +792,9 @@ static bool NOINLINE_ATTR IRAM_ATTR s_vaddr_to_paddr(uint32_t vaddr, esp_paddr_t is_mapped = mmu_hal_vaddr_to_paddr(1, vaddr, out_paddr, out_target); } #endif - spi_flash_enable_interrupts_caches_and_other_cpu(); + + //enable Cache, after this function, internal RAM access is no longer mandatory + s_start_cache(); return is_mapped; } @@ -794,14 +818,19 @@ esp_err_t esp_mmu_vaddr_to_paddr(void *vaddr, esp_paddr_t *out_paddr, mmu_target static bool NOINLINE_ATTR IRAM_ATTR s_paddr_to_vaddr(esp_paddr_t paddr, mmu_target_t target, mmu_vaddr_t type, uint32_t *out_vaddr) { - //we call this for now, but this will be refactored to move out of `spi_flash` - spi_flash_disable_interrupts_caches_and_other_cpu(); + /** + * Disable Cache, after this function, involved code and data should be placed in internal RAM. + */ + s_stop_cache(); + uint32_t mmu_id = 0; #if SOC_MMU_PER_EXT_MEM_TARGET mmu_id = mmu_hal_get_id_from_target(target); #endif bool found = mmu_hal_paddr_to_vaddr(mmu_id, paddr, target, type, out_vaddr); - spi_flash_enable_interrupts_caches_and_other_cpu(); + + //enable Cache, after this function, internal RAM access is no longer mandatory + s_start_cache(); return found; } diff --git a/components/esp_mm/include/esp_private/esp_cache_private.h b/components/esp_mm/include/esp_private/esp_cache_private.h index 7380fddfa4b..9768765b737 100644 --- a/components/esp_mm/include/esp_private/esp_cache_private.h +++ b/components/esp_mm/include/esp_private/esp_cache_private.h @@ -53,6 +53,18 @@ void esp_cache_freeze_ext_mem_cache(void); * @note This API must be called after a `esp_cache_freeze_ext_mem_cache` */ void esp_cache_unfreeze_ext_mem_cache(void); + +/** + * @brief Freeze external memory cache and disable non-iram interrupts + * + * @note This API will enter a critical section, you will need to call `esp_cache_unfreeze_caches_enable_interrupts` to exit it. + */ +void esp_cache_freeze_caches_disable_interrupts(void); + +/** + * @brief Unfreeze external memory cache and re-enable non-iram interrupts + */ +void esp_cache_unfreeze_caches_enable_interrupts(void); #endif /** diff --git a/components/esp_mm/linker.lf b/components/esp_mm/linker.lf index 1af07775ddb..bf3f3820c32 100644 --- a/components/esp_mm/linker.lf +++ b/components/esp_mm/linker.lf @@ -3,7 +3,8 @@ archive: libesp_mm.a entries: if APP_BUILD_TYPE_PURE_RAM_APP = n: - esp_cache (noflash) + esp_cache_msync (noflash) + esp_cache_utils (noflash) if IDF_TARGET_ESP32 = y: cache_esp32 (noflash) diff --git a/components/esp_mm/test_apps/mm/main/CMakeLists.txt b/components/esp_mm/test_apps/mm/main/CMakeLists.txt index dc8881aef7d..6b99509dbe2 100644 --- a/components/esp_mm/test_apps/mm/main/CMakeLists.txt +++ b/components/esp_mm/test_apps/mm/main/CMakeLists.txt @@ -6,9 +6,12 @@ if(CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED) list(APPEND srcs "test_cache_msync.c") endif() +if(CONFIG_SOC_CACHE_FREEZE_SUPPORTED) + list(APPEND srcs "test_cache_utils.c") +endif() # In order for the cases defined by `TEST_CASE` to be linked into the final elf, # the component can be registered as WHOLE_ARCHIVE idf_component_register(SRCS ${srcs} - PRIV_REQUIRES unity esp_partition spi_flash esp_mm driver esp_timer test_mm_utils + PRIV_REQUIRES unity esp_partition spi_flash esp_mm driver esp_timer test_mm_utils test_utils WHOLE_ARCHIVE) diff --git a/components/esp_mm/test_apps/mm/main/idf_component.yml b/components/esp_mm/test_apps/mm/main/idf_component.yml new file mode 100644 index 00000000000..f5001494e21 --- /dev/null +++ b/components/esp_mm/test_apps/mm/main/idf_component.yml @@ -0,0 +1,3 @@ +dependencies: + test_utils: + path: ${IDF_PATH}/tools/unit-test-app/components/test_utils diff --git a/components/esp_mm/test_apps/mm/main/test_cache_utils.c b/components/esp_mm/test_apps/mm/main/test_cache_utils.c new file mode 100644 index 00000000000..70f2529ec39 --- /dev/null +++ b/components/esp_mm/test_apps/mm/main/test_cache_utils.c @@ -0,0 +1,67 @@ +/* + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD +* +* SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include "sdkconfig.h" +#include "inttypes.h" +#include "unity.h" +#include "esp_log.h" +#include "esp_attr.h" +#include "esp_cpu.h" +#include "esp_private/esp_cache_private.h" +#include "esp_private/cache_utils.h" +#include "test_utils.h" + +#if !CONFIG_FREERTOS_UNICORE + +#define RECORD_TIME_PREPARE() uint32_t __t1, __t2 +#define RECORD_TIME_START() do {__t1 = esp_cpu_get_cycle_count();} while(0) +#define RECORD_TIME_END(p_time) do{__t2 = esp_cpu_get_cycle_count(); p_time = (__t2 - __t1);} while(0) +#define GET_US_BY_CCOUNT(t) ((double)(t)/CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ) + +static void IRAM_ATTR NOINLINE_ATTR s_test_func_freeze_unfreeze(void) +{ + esp_cache_freeze_caches_disable_interrupts(); + for (int i = 0; i < 100; i++) { + asm volatile("nop"); + } + esp_cache_unfreeze_caches_enable_interrupts(); +} + +static void IRAM_ATTR NOINLINE_ATTR s_test_func_disable_enable(void) +{ + spi_flash_disable_interrupts_caches_and_other_cpu(); + for (int i = 0; i < 100; i++) { + asm volatile("nop"); + } + spi_flash_enable_interrupts_caches_and_other_cpu(); +} + +TEST_CASE("test esp_cache_freeze_caches_disable_interrupts speed", "[cache]") +{ + uint32_t cache_disable_enable_time = 0; + uint32_t cache_freeze_unfreeze_time = 0; + + s_test_func_freeze_unfreeze(); + s_test_func_disable_enable(); + + RECORD_TIME_PREPARE(); + RECORD_TIME_START(); + s_test_func_freeze_unfreeze(); + RECORD_TIME_END(cache_freeze_unfreeze_time); + uint32_t cache_freeze_unfreeze_time_us = GET_US_BY_CCOUNT(cache_freeze_unfreeze_time); + IDF_LOG_PERFORMANCE("Cache freeze time", "cache_freeze_unfreeze_time: %"PRId32" cpu cycles, %"PRId32" us", cache_freeze_unfreeze_time, cache_freeze_unfreeze_time_us); + + RECORD_TIME_START(); + s_test_func_disable_enable(); + RECORD_TIME_END(cache_disable_enable_time); + uint32_t cache_disable_enable_time_us = GET_US_BY_CCOUNT(cache_disable_enable_time); + IDF_LOG_PERFORMANCE("Cache disable time", "cache_disable_enable_time: %"PRId32", cpu cycles, %"PRId32" us", cache_disable_enable_time, cache_disable_enable_time_us); + + TEST_ASSERT(cache_freeze_unfreeze_time < cache_disable_enable_time); +} +#endif // #if !CONFIG_FREERTOS_UNICORE diff --git a/components/esp_netif/lwip/esp_netif_lwip.c b/components/esp_netif/lwip/esp_netif_lwip.c index e7c538bdee8..8769284b100 100644 --- a/components/esp_netif/lwip/esp_netif_lwip.c +++ b/components/esp_netif/lwip/esp_netif_lwip.c @@ -1387,7 +1387,14 @@ static void esp_netif_internal_dhcpc_cb(struct netif *netif) ESP_LOGE(TAG, "dhcpc cb: failed to post got ip event (%x)", ret); } #ifdef CONFIG_LWIP_DHCP_RESTORE_LAST_IP - dhcp_ip_addr_store(netif); + /* + * Store the IP address only for non-Point-to-Point interfaces. + * P2P interfaces (like PPP) have dynamic addressing that shouldn't be stored + * for later restoration, as they're negotiated on each connection. + */ + if (!_IS_NETIF_ANY_POINT2POINT_TYPE(esp_netif)) { + dhcp_ip_addr_store(netif); + } #endif /* CONFIG_LWIP_DHCP_RESTORE_LAST_IP */ } else { ESP_LOGD(TAG, "if%p ip unchanged", esp_netif); diff --git a/components/esp_phy/Kconfig b/components/esp_phy/Kconfig index 75b5be45cd4..93661e0973f 100644 --- a/components/esp_phy/Kconfig +++ b/components/esp_phy/Kconfig @@ -166,6 +166,12 @@ menu "PHY" high interference, enable this option will sacrifice Wi-Fi OFDM receive performance. But to guarantee 11b receive performance serves as a bottom line in this case. + config ESP_PHY_PLL_TRACK_PERIOD_MS + int "Set the period of the pll track" + default 1000 + help + Set the period of the pll track. + config ESP_PHY_PLL_TRACK_DEBUG bool "Enable pll track logging" default n @@ -177,5 +183,29 @@ menu "PHY" default n help Select to support record and query phy used time. + + config ESP_PHY_IRAM_OPT + bool "PHY IRAM speed optimization" + default y + help + Select this option to place frequently called PHY library functions in IRAM. + When this option is disabled, more than 1.1Kbytes of IRAM memory will be saved, + but PHY performance will be reduced. This config only affect esp32c2 now. + + menuconfig ESP_PHY_DEBUG + bool "Enable PHY Debug" + default n + help + Enabling this option allows different kinds of phy debugging features. + + config ESP_PHY_DISABLE_PLL_TRACK + bool "Disable phy pll track(only for experimental)" + depends on ESP_PHY_DEBUG + default n + help + Disable pll track. This configuration option is used for experimental. + PLL track helps the PHY module adapt to temperature changes, ensuring stable performance. + When pll enabled, the ESP PHY module will periodically track and adjust PLL parameters. + endif endmenu # PHY diff --git a/components/esp_phy/src/phy_common.c b/components/esp_phy/src/phy_common.c index 2003cd02ad9..16c387f7e2a 100644 --- a/components/esp_phy/src/phy_common.c +++ b/components/esp_phy/src/phy_common.c @@ -26,6 +26,7 @@ static const char* TAG = "phy_comm"; static volatile uint16_t s_phy_modem_flag = 0; +#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK extern void phy_param_track_tot(bool en_wifi, bool en_ble_154); static esp_timer_handle_t phy_track_pll_timer; #if CONFIG_ESP_WIFI_ENABLED @@ -34,8 +35,9 @@ static volatile int64_t s_wifi_prev_timestamp; #if CONFIG_IEEE802154_ENABLED || CONFIG_BT_ENABLED static volatile int64_t s_bt_154_prev_timestamp; #endif -#define PHY_TRACK_PLL_PERIOD_IN_US 1000000 +#define PHY_TRACK_PLL_PERIOD_IN_US (CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS * 1000) static void phy_track_pll_internal(void); +#endif static esp_phy_ant_gpio_config_t s_phy_ant_gpio_config = { 0 }; static esp_phy_ant_config_t s_phy_ant_config = { 0 }; @@ -47,6 +49,7 @@ bool phy_enabled_modem_contains(esp_phy_modem_t modem) } #endif +#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK void phy_track_pll(void) { // Light sleep scenario: enabling and disabling PHY frequently, the timer will not get triggered. @@ -121,6 +124,7 @@ void phy_track_pll_deinit(void) ESP_ERROR_CHECK(esp_timer_stop(phy_track_pll_timer)); ESP_ERROR_CHECK(esp_timer_delete(phy_track_pll_timer)); } +#endif void phy_set_modem_flag(esp_phy_modem_t modem) { diff --git a/components/esp_phy/src/phy_init.c b/components/esp_phy/src/phy_init.c index 1e902a318b4..c33b6cb5d99 100644 --- a/components/esp_phy/src/phy_init.c +++ b/components/esp_phy/src/phy_init.c @@ -329,7 +329,7 @@ void esp_phy_enable(esp_phy_modem_t modem) #endif // ESP32 will track pll in the wifi/BT modem interrupt handler. -#if !CONFIG_IDF_TARGET_ESP32 +#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK phy_track_pll_init(); #endif @@ -340,7 +340,7 @@ void esp_phy_enable(esp_phy_modem_t modem) } phy_set_modem_flag(modem); -#if !CONFIG_IDF_TARGET_ESP32 +#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK // Immediately track pll when phy enabled. phy_track_pll(); #endif @@ -360,7 +360,7 @@ void esp_phy_disable(esp_phy_modem_t modem) phy_clr_modem_flag(modem); if (phy_get_modem_flag() == 0) { // ESP32 will track pll in the wifi/BT modem interrupt handler. -#if !CONFIG_IDF_TARGET_ESP32 +#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK phy_track_pll_deinit(); #endif #if SOC_PM_MODEM_RETENTION_BY_BACKUPDMA diff --git a/components/esp_phy/src/phy_init_esp32hxx.c b/components/esp_phy/src/phy_init_esp32hxx.c index 9ff88d452fe..af45ae733ae 100644 --- a/components/esp_phy/src/phy_init_esp32hxx.c +++ b/components/esp_phy/src/phy_init_esp32hxx.c @@ -113,11 +113,15 @@ void esp_phy_enable(esp_phy_modem_t modem) } else { phy_wakeup_init(); } +#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK phy_track_pll_init(); +#endif } phy_set_modem_flag(modem); // Immediately track pll when phy enabled. +#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK phy_track_pll(); +#endif #if CONFIG_ESP_PHY_RECORD_USED_TIME phy_record_time(true, modem); #endif @@ -133,7 +137,9 @@ void esp_phy_disable(esp_phy_modem_t modem) phy_clr_modem_flag(modem); if (phy_get_modem_flag() == 0) { +#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK phy_track_pll_deinit(); +#endif phy_close_rf(); phy_xpd_tsens(); #if SOC_MODEM_CLOCK_IS_INDEPENDENT diff --git a/components/esp_psram/device/esp_psram_impl_ap_hex.c b/components/esp_psram/device/esp_psram_impl_ap_hex.c index 5741acef32a..acf07e4d73e 100644 --- a/components/esp_psram/device/esp_psram_impl_ap_hex.c +++ b/components/esp_psram/device/esp_psram_impl_ap_hex.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -48,7 +48,8 @@ #define AP_HEX_PSRAM_WR_LATENCY 2 #endif -#define AP_HEX_PSRAM_VENDOR_ID 0xD +#define AP_HEX_PSRAM_VENDOR_ID_AP 0xD +#define AP_HEX_PSRAM_VENDOR_ID_UNILC 0x1A //UnilC shares driver pattern with AP #define AP_HEX_PSRAM_CS_SETUP_TIME 4 #define AP_HEX_PSRAM_CS_HOLD_TIME 4 #define AP_HEX_PSRAM_CS_ECC_HOLD_TIME 4 @@ -56,6 +57,8 @@ #define AP_HEX_PSRAM_MPLL_DEFAULT_FREQ_MHZ 400 +#define AP_HEX_PSRAM_REF_DATA 0x5a6b7c8d + typedef struct { union { struct { @@ -257,6 +260,41 @@ static void s_get_psram_mode_reg(int spi_num, hex_psram_mode_reg_t *out_reg) false); } +/** + * Check if PSRAM is connected by write and read + */ +static esp_err_t s_check_psram_connected(int spi_num) +{ + uint32_t addr = 0x80; + uint32_t ref_data = AP_HEX_PSRAM_REF_DATA; + uint32_t exp_data = 0; + int data_bit_len = 32; + + //write + addr = 0x0; + s_psram_common_transaction(spi_num, + AP_HEX_PSRAM_SYNC_WRITE, AP_HEX_PSRAM_WR_CMD_BITLEN, + addr, AP_HEX_PSRAM_ADDR_BITLEN, + AP_HEX_PSRAM_WR_DUMMY_BITLEN, + (uint8_t *)&ref_data, data_bit_len, + NULL, 0, + false); + + //read MR4 and MR8 + s_psram_common_transaction(spi_num, + AP_HEX_PSRAM_SYNC_READ, AP_HEX_PSRAM_RD_CMD_BITLEN, + addr, AP_HEX_PSRAM_ADDR_BITLEN, + AP_HEX_PSRAM_RD_DUMMY_BITLEN, + NULL, 0, + (uint8_t *)&exp_data, data_bit_len, + false); + + ESP_EARLY_LOGD(TAG, "exp_data: 0x%08x", exp_data); + ESP_EARLY_LOGD(TAG, "ref_data: 0x%08x", ref_data); + + return (exp_data == ref_data ? ESP_OK : ESP_FAIL); +} + static void s_print_psram_info(hex_psram_mode_reg_t *reg_val) { ESP_EARLY_LOGI(TAG, "vendor id : 0x%02x (%s)", reg_val->mr1.vendor_id, reg_val->mr1.vendor_id == 0x0d ? "AP" : "UNKNOWN"); @@ -405,12 +443,17 @@ esp_err_t esp_psram_impl_enable(void) mode_reg.mr8.x16 = 0; #endif s_init_psram_mode_reg(PSRAM_CTRLR_LL_MSPI_ID_3, &mode_reg); - //Print PSRAM info - s_get_psram_mode_reg(PSRAM_CTRLR_LL_MSPI_ID_3, &mode_reg); - if (mode_reg.mr1.vendor_id != AP_HEX_PSRAM_VENDOR_ID) { - ESP_EARLY_LOGE(TAG, "PSRAM ID read error: 0x%08x, PSRAM chip not found or not supported, or wrong PSRAM line mode", mode_reg.mr1.vendor_id); + + if (s_check_psram_connected(PSRAM_CTRLR_LL_MSPI_ID_3) != ESP_OK) { + ESP_EARLY_LOGE(TAG, "PSRAM chip is not connected"); return ESP_ERR_NOT_SUPPORTED; } + + s_get_psram_mode_reg(PSRAM_CTRLR_LL_MSPI_ID_3, &mode_reg); + if (mode_reg.mr1.vendor_id != AP_HEX_PSRAM_VENDOR_ID_AP && mode_reg.mr1.vendor_id != AP_HEX_PSRAM_VENDOR_ID_UNILC) { + ESP_EARLY_LOGW(TAG, "PSRAM ID read error: 0x%08x, fallback to use default driver pattern", mode_reg.mr1.vendor_id); + } + s_print_psram_info(&mode_reg); s_psram_size = mode_reg.mr2.density == 0x1 ? PSRAM_SIZE_4MB : mode_reg.mr2.density == 0X3 ? PSRAM_SIZE_8MB : diff --git a/components/esp_psram/device/esp_psram_impl_ap_quad.c b/components/esp_psram/device/esp_psram_impl_ap_quad.c index a269751388b..412141fbac2 100644 --- a/components/esp_psram/device/esp_psram_impl_ap_quad.c +++ b/components/esp_psram/device/esp_psram_impl_ap_quad.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -19,6 +19,8 @@ #include "esp_quad_psram_defs.h" #include "soc/soc_caps.h" +#define AP_HEX_PSRAM_REF_DATA 0x5a6b7c8d + static const char* TAG = "quad_psram"; static uint32_t s_psram_size = 0; //this stands for physical psram size in bytes @@ -172,6 +174,42 @@ static void psram_set_cs_timing(void) psram_ctrlr_ll_set_cs_setup(PSRAM_CTRLR_LL_MSPI_ID_0, PSRAM_CS_SETUP_VAL); } +/** + * Check if PSRAM is connected by write and read + */ +static esp_err_t s_check_psram_connected(int spi_num) +{ + uint32_t addr = 0x0; + uint32_t ref_data = AP_HEX_PSRAM_REF_DATA; + uint32_t exp_data = 0; + int data_bit_len = 32; + + //write + psram_exec_cmd(spi_num, PSRAM_HAL_CMD_SPI, + PSRAM_WRITE, 8, + addr, 24, + 0, + (uint8_t *)&ref_data, data_bit_len, + NULL, 0, + PSRAM_LL_CS_SEL, + false); + + //read MR4 and MR8 + psram_exec_cmd(spi_num, PSRAM_HAL_CMD_SPI, + PSRAM_READ, 8, + addr, 24, + 0, + NULL, 0, + (uint8_t *)&exp_data, data_bit_len, + PSRAM_LL_CS_SEL, + false); + + ESP_EARLY_LOGV(TAG, "exp_data: 0x%08x", exp_data); + ESP_EARLY_LOGV(TAG, "ref_data: 0x%08x", ref_data); + + return (exp_data == ref_data ? ESP_OK : ESP_FAIL); +} + static void psram_gpio_config(void) { //CS1 @@ -250,6 +288,12 @@ esp_err_t esp_psram_impl_enable(void) //We use SPI1 to init PSRAM psram_disable_qio_mode(PSRAM_CTRLR_LL_MSPI_ID_1); + + if (s_check_psram_connected(PSRAM_CTRLR_LL_MSPI_ID_1) != ESP_OK) { + ESP_EARLY_LOGE(TAG, "PSRAM chip is not connected, or wrong PSRAM line mode"); + return ESP_ERR_NOT_SUPPORTED; + } + psram_read_id(PSRAM_CTRLR_LL_MSPI_ID_1, (uint8_t *)&psram_id, PSRAM_ID_BITS_NUM); if (!PSRAM_IS_VALID(psram_id)) { /* 16Mbit psram ID read error workaround: @@ -258,8 +302,7 @@ esp_err_t esp_psram_impl_enable(void) */ psram_read_id(PSRAM_CTRLR_LL_MSPI_ID_1, (uint8_t *)&psram_id, PSRAM_ID_BITS_NUM); if (!PSRAM_IS_VALID(psram_id)) { - ESP_EARLY_LOGE(TAG, "PSRAM ID read error: 0x%08x, PSRAM chip not found or not supported, or wrong PSRAM line mode", (uint32_t)psram_id); - return ESP_ERR_NOT_SUPPORTED; + ESP_EARLY_LOGW(TAG, "PSRAM ID read error: 0x%08x, fallback to use default driver pattern", (uint32_t)psram_id); } } diff --git a/components/esp_psram/esp32s3/esp_psram_impl_octal.c b/components/esp_psram/esp32s3/esp_psram_impl_octal.c index a801079ac80..1f3254499ee 100644 --- a/components/esp_psram/esp32s3/esp_psram_impl_octal.c +++ b/components/esp_psram/esp32s3/esp_psram_impl_octal.c @@ -45,6 +45,8 @@ #define OCT_PSRAM_PAGE_SIZE 2 //2 for 1024B #define OCT_PSRAM_ECC_ENABLE_MASK BIT(8) +#define OCT_PSRAM_REF_DATA 0x5a6b7c8d + typedef struct { union { struct { @@ -222,6 +224,44 @@ static void s_get_psram_mode_reg(int spi_num, opi_psram_mode_reg_t *out_reg) false); } +/** + * Check if PSRAM is connected by write and read + */ +static esp_err_t s_check_psram_connected(int spi_num) +{ + esp_rom_spiflash_read_mode_t mode = ESP_ROM_SPIFLASH_OPI_DTR_MODE; + int cmd_len = OCT_PSRAM_WR_CMD_BITLEN; + uint32_t addr = 0x0; + int addr_bit_len = OCT_PSRAM_ADDR_BITLEN; + uint32_t ref_data = OCT_PSRAM_REF_DATA; + uint32_t exp_data = 0; + int data_bit_len = 32; + + //write + esp_rom_opiflash_exec_cmd(spi_num, mode, + OPI_PSRAM_SYNC_WRITE, cmd_len, + addr, addr_bit_len, + OCT_PSRAM_WR_DUMMY_BITLEN, + (uint8_t *)&ref_data, data_bit_len, + NULL, 0, + BIT(1), + false); + //read + esp_rom_opiflash_exec_cmd(spi_num, mode, + OPI_PSRAM_SYNC_READ, cmd_len, + addr, addr_bit_len, + OCT_PSRAM_RD_DUMMY_BITLEN, + NULL, 0, + (uint8_t *)&exp_data, data_bit_len, + BIT(1), + false); + + ESP_EARLY_LOGD(TAG, "exp_data: 0x%08x", exp_data); + ESP_EARLY_LOGD(TAG, "ref_data: 0x%08x", ref_data); + + return (exp_data == ref_data ? ESP_OK : ESP_FAIL); +} + static void s_print_psram_info(opi_psram_mode_reg_t *reg_val) { ESP_EARLY_LOGI(TAG, "vendor id : 0x%02x (%s)", reg_val->mr1.vendor_id, reg_val->mr1.vendor_id == 0x0d ? "AP" : (reg_val->mr1.vendor_id == 0x1a ? "UnilC" : "UNKNOWN")); @@ -316,12 +356,17 @@ esp_err_t esp_psram_impl_enable(void) mode_reg.mr8.bl = 3; mode_reg.mr8.bt = 0; s_init_psram_mode_reg(1, &mode_reg); - //Print PSRAM info - s_get_psram_mode_reg(1, &mode_reg); - if (mode_reg.mr1.vendor_id != OCT_PSRAM_VENDOR_ID_AP && mode_reg.mr1.vendor_id != OCT_PSRAM_VENDOR_ID_UNILC) { - ESP_EARLY_LOGE(TAG, "PSRAM ID read error: 0x%08x, PSRAM chip not found or not supported, or wrong PSRAM line mode", mode_reg.mr1.vendor_id); + + if (s_check_psram_connected(1) != ESP_OK) { + ESP_EARLY_LOGE(TAG, "PSRAM chip is not connected, or wrong PSRAM line mode"); return ESP_ERR_NOT_SUPPORTED; } + + s_get_psram_mode_reg(1, &mode_reg); + if (mode_reg.mr1.vendor_id != OCT_PSRAM_VENDOR_ID_AP && mode_reg.mr1.vendor_id != OCT_PSRAM_VENDOR_ID_UNILC) { + ESP_EARLY_LOGW(TAG, "PSRAM ID read error: 0x%08x, fallback to use default driver pattern", mode_reg.mr1.vendor_id); + } + s_print_psram_info(&mode_reg); s_psram_size = mode_reg.mr2.density == 0x1 ? PSRAM_SIZE_4MB : mode_reg.mr2.density == 0X3 ? PSRAM_SIZE_8MB : diff --git a/components/esp_psram/esp_psram.c b/components/esp_psram/esp_psram.c index a5e650178e2..e9b2a55ad3d 100644 --- a/components/esp_psram/esp_psram.c +++ b/components/esp_psram/esp_psram.c @@ -455,17 +455,17 @@ bool IRAM_ATTR esp_psram_check_ptr_addr(const void *p) return true; } -#if CONFIG_SPIRAM_RODATA && !CONFIG_IDF_TARGET_ESP32S2 - if (mmu_psram_check_ptr_addr_in_rodata_alignment_gap(p)) { +#if CONFIG_SPIRAM_RODATA + if (mmu_psram_check_ptr_addr_in_xip_psram_rodata_region(p)) { return true; } -#endif /* CONFIG_SPIRAM_RODATA && !CONFIG_IDF_TARGET_ESP32S2 */ +#endif -#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS && SOC_MMU_DI_VADDR_SHARED - if (mmu_psram_check_ptr_addr_in_instruction_alignment_gap(p)) { +#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS + if (mmu_psram_check_ptr_addr_in_xip_psram_instruction_region(p)) { return true; } -#endif /* CONFIG_SPIRAM_FETCH_INSTRUCTIONS && SOC_MMU_DI_VADDR_SHARED */ +#endif return false; } diff --git a/components/esp_psram/include/esp_private/mmu_psram_flash.h b/components/esp_psram/include/esp_private/mmu_psram_flash.h index a1fbcf0f4bd..37392c39d0f 100644 --- a/components/esp_psram/include/esp_private/mmu_psram_flash.h +++ b/components/esp_psram/include/esp_private/mmu_psram_flash.h @@ -56,13 +56,13 @@ size_t mmu_psram_get_text_segment_length(void); void mmu_psram_get_instruction_alignment_gap_info(uint32_t *gap_start, uint32_t *gap_size); /** - * @brief Check if the pointer is in the instruction alignment gap + * @brief Check if the pointer is in the xip psram instruction region * * @param[in] p Pointer to check * - * @return true if the pointer is in the instruction alignment gap, false otherwise + * @return true if the pointer is in the instruction region, false otherwise */ -bool mmu_psram_check_ptr_addr_in_instruction_alignment_gap(const void *p); +bool mmu_psram_check_ptr_addr_in_xip_psram_instruction_region(const void *p); /** * @brief Copy Flash texts to PSRAM @@ -101,13 +101,13 @@ size_t mmu_psram_get_rodata_segment_length(void); esp_err_t mmu_config_psram_rodata_segment(uint32_t start_page, uint32_t psram_size, uint32_t *out_page); /** - * @brief Check if the pointer is in the rodata alignment gap + * @brief Check if the pointer is in the xip psram rodata region * * @param[in] p Pointer to check * - * @return true if the pointer is in the rodata alignment gap, false otherwise + * @return true if the pointer is in the rodata region, false otherwise */ -bool mmu_psram_check_ptr_addr_in_rodata_alignment_gap(const void *p); +bool mmu_psram_check_ptr_addr_in_xip_psram_rodata_region(const void *p); #endif //#if CONFIG_SPIRAM_RODATA /*---------------------------------------------------------------------------- diff --git a/components/esp_psram/mmu_psram_flash.c b/components/esp_psram/mmu_psram_flash.c index c33c9f26e0e..9f415f706fb 100644 --- a/components/esp_psram/mmu_psram_flash.c +++ b/components/esp_psram/mmu_psram_flash.c @@ -33,6 +33,7 @@ #endif #define ALIGN_UP_BY(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) +#define ALIGN_DOWN_BY(num, align) ((num) & (~((align) - 1))) /*---------------------------------------------------------------------------- Part 1 APIs (See @Backgrounds on top of this file) @@ -44,10 +45,22 @@ const static char *TAG = "mmu_psram"; //TODO IDF-4387 static uint32_t page0_mapped = 0; static uint32_t page0_page = INVALID_PHY_PAGE; + +/** + * If using `int`, then for CLANG, with enabled optimization when inlined function is provided with the address of external symbol, the two least bits of the constant used inside that function get cleared. + * Optimizer assumes that address of external symbol should be aligned to 4-bytes and therefore aligns constant value used for bitwise AND operation with that address. + * + * This means `extern int _instruction_reserved_start;` can be unaligned to 4 bytes, whereas using `char` can solve this issue. + * + * As we only use these symbol address, we declare them as `char` here + */ +extern char _instruction_reserved_start; +extern char _instruction_reserved_end; +extern char _rodata_reserved_start; +extern char _rodata_reserved_end; #endif //#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS || CONFIG_SPIRAM_RODATA #if CONFIG_SPIRAM_FETCH_INSTRUCTIONS -extern char _instruction_reserved_end; #define INSTRUCTION_ALIGNMENT_GAP_START ALIGN_UP_BY((uint32_t)&_instruction_reserved_end, 4) #define INSTRUCTION_ALIGNMENT_GAP_END ALIGN_UP_BY((uint32_t)&_instruction_reserved_end, CONFIG_MMU_PAGE_SIZE) @@ -71,11 +84,12 @@ void mmu_psram_get_instruction_alignment_gap_info(uint32_t *gap_start, uint32_t *gap_end = INSTRUCTION_ALIGNMENT_GAP_END; } -bool IRAM_ATTR mmu_psram_check_ptr_addr_in_instruction_alignment_gap(const void *p) +bool mmu_psram_check_ptr_addr_in_xip_psram_instruction_region(const void *p) { - if ((intptr_t)p >= INSTRUCTION_ALIGNMENT_GAP_START && (intptr_t)p < INSTRUCTION_ALIGNMENT_GAP_END) { + if ((intptr_t)p >= ALIGN_DOWN_BY((uint32_t)&_instruction_reserved_start, CONFIG_MMU_PAGE_SIZE) && (intptr_t)p < ALIGN_UP_BY((uint32_t)&_instruction_reserved_end, CONFIG_MMU_PAGE_SIZE)) { return true; } + return false; } @@ -116,7 +130,6 @@ esp_err_t mmu_config_psram_text_segment(uint32_t start_page, uint32_t psram_size #endif //#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS #if CONFIG_SPIRAM_RODATA -extern char _rodata_reserved_end; #define RODATA_ALIGNMENT_GAP_START ALIGN_UP_BY((uint32_t)&_rodata_reserved_end, 4) #define RODATA_ALIGNMENT_GAP_END ALIGN_UP_BY((uint32_t)&_rodata_reserved_end, CONFIG_MMU_PAGE_SIZE) @@ -142,11 +155,12 @@ void mmu_psram_get_rodata_alignment_gap_info(uint32_t *gap_start, uint32_t *gap_ *gap_end = RODATA_ALIGNMENT_GAP_END; } -bool IRAM_ATTR mmu_psram_check_ptr_addr_in_rodata_alignment_gap(const void *p) +bool mmu_psram_check_ptr_addr_in_xip_psram_rodata_region(const void *p) { - if ((intptr_t)p >= RODATA_ALIGNMENT_GAP_START && (intptr_t)p < RODATA_ALIGNMENT_GAP_END) { + if ((intptr_t)p >= ALIGN_DOWN_BY((uint32_t)&_rodata_reserved_start, CONFIG_MMU_PAGE_SIZE) && (intptr_t)p < ALIGN_UP_BY((uint32_t)&_rodata_reserved_end, CONFIG_MMU_PAGE_SIZE)) { return true; } + return false; } @@ -192,19 +206,6 @@ esp_err_t mmu_config_psram_rodata_segment(uint32_t start_page, uint32_t psram_si /*---------------------------------------------------------------------------- Part 2 APIs (See @Backgrounds on top of this file) -------------------------------------------------------------------------------*/ -/** - * If using `int`, then for CLANG, with enabled optimization when inlined function is provided with the address of external symbol, the two least bits of the constant used inside that function get cleared. - * Optimizer assumes that address of external symbol should be aligned to 4-bytes and therefore aligns constant value used for bitwise AND operation with that address. - * - * This means `extern int _instruction_reserved_start;` can be unaligned to 4 bytes, whereas using `char` can solve this issue. - * - * As we only use these symbol address, we declare them as `char` here - */ -extern char _instruction_reserved_start; -extern char _instruction_reserved_end; -extern char _rodata_reserved_start; -extern char _rodata_reserved_end; - //------------------------------------Copy Flash .text to PSRAM-------------------------------------// #if CONFIG_SPIRAM_FETCH_INSTRUCTIONS static uint32_t instruction_in_spiram; diff --git a/components/esp_psram/mmu_psram_flash_v2.c b/components/esp_psram/mmu_psram_flash_v2.c index 7611ac33af2..0f08c99d2f7 100644 --- a/components/esp_psram/mmu_psram_flash_v2.c +++ b/components/esp_psram/mmu_psram_flash_v2.c @@ -103,11 +103,12 @@ void mmu_psram_get_instruction_alignment_gap_info(uint32_t *gap_start, uint32_t *gap_end = INSTRUCTION_ALIGNMENT_GAP_END; } -bool IRAM_ATTR mmu_psram_check_ptr_addr_in_instruction_alignment_gap(const void *p) +bool mmu_psram_check_ptr_addr_in_xip_psram_instruction_region(const void *p) { - if ((intptr_t)p >= INSTRUCTION_ALIGNMENT_GAP_START && (intptr_t)p < INSTRUCTION_ALIGNMENT_GAP_END) { + if ((intptr_t)p >= ALIGN_DOWN_BY((uint32_t)&_instruction_reserved_start, CONFIG_MMU_PAGE_SIZE) && (intptr_t)p < ALIGN_UP_BY((uint32_t)&_instruction_reserved_end, CONFIG_MMU_PAGE_SIZE)) { return true; } + return false; } @@ -164,11 +165,12 @@ void mmu_psram_get_rodata_alignment_gap_info(uint32_t *gap_start, uint32_t *gap_ *gap_end = RODATA_ALIGNMENT_GAP_END; } -bool IRAM_ATTR mmu_psram_check_ptr_addr_in_rodata_alignment_gap(const void *p) +bool mmu_psram_check_ptr_addr_in_xip_psram_rodata_region(const void *p) { - if ((intptr_t)p >= RODATA_ALIGNMENT_GAP_START && (intptr_t)p < RODATA_ALIGNMENT_GAP_END) { + if ((intptr_t)p >= ALIGN_DOWN_BY((uint32_t)&_rodata_reserved_start, CONFIG_MMU_PAGE_SIZE) && (intptr_t)p < ALIGN_UP_BY((uint32_t)&_rodata_reserved_end, CONFIG_MMU_PAGE_SIZE)) { return true; } + return false; } diff --git a/components/esp_psram/test_apps/psram/main/test_psram.c b/components/esp_psram/test_apps/psram/main/test_psram.c index d93e3cf83cb..3ce5bc9c7de 100644 --- a/components/esp_psram/test_apps/psram/main/test_psram.c +++ b/components/esp_psram/test_apps/psram/main/test_psram.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -140,6 +140,18 @@ TEST_CASE("test spi1 flash operation after putting .text and .rodata into psram" TEST_ESP_OK(gptimer_disable(gptimer)); TEST_ESP_OK(gptimer_del_timer(gptimer)); } + +TEST_CASE("test esp_psram_check_ptr_addr with xip rodata and instruction region", "[psram]") +{ + bool on_psram = false; + + on_psram = esp_psram_check_ptr_addr(s_get_partition); + TEST_ASSERT(on_psram); + + on_psram = esp_psram_check_ptr_addr(s_test_buf); + TEST_ASSERT(on_psram); +} + #endif //CONFIG_SPIRAM_FETCH_INSTRUCTIONS && CONFIG_SPIRAM_RODATA TEST_CASE("test psram unaligned access", "[psram]") diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld index 00800134b26..52b67bf7a44 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble-eco4.ld @@ -41,7 +41,7 @@ r_ble_hci_trans_cfg_hs = 0x40000aec; r_ble_hci_trans_cfg_ll = 0x40000af0; r_ble_hci_trans_deinit = 0x40000af4; //r_ble_hci_trans_env_init = 0x40000af8; -r_ble_hci_trans_init = 0x40000afc; +//r_ble_hci_trans_init = 0x40000afc; r_ble_hci_uart_acl_tx = 0x40000b00; r_ble_hci_uart_cmdevt_tx = 0x40000b04; r_ble_hci_uart_config = 0x40000b08; @@ -159,7 +159,7 @@ r_ble_ll_adv_sm_deinit = 0x40000cc4; r_ble_ll_adv_sm_event_init = 0x40000cc8; //r_ble_ll_adv_sm_find_configured = 0x40000ccc; r_ble_ll_adv_sm_get = 0x40000cd0; -r_ble_ll_adv_sm_init = 0x40000cd4; +//r_ble_ll_adv_sm_init = 0x40000cd4; r_ble_ll_adv_sm_reset = 0x40000cd8; r_ble_ll_adv_sm_start = 0x40000cdc; r_ble_ll_adv_sm_start_periodic = 0x40000ce0; @@ -233,8 +233,8 @@ r_ble_ll_conn_is_dev_connected = 0x40000dec; r_ble_ll_conn_is_empty_pdu = 0x40000df0; r_ble_ll_conn_is_lru = 0x40000df4; r_ble_ll_conn_master_init = 0x40000df8; -r_ble_ll_conn_module_deinit = 0x40000dfc; -r_ble_ll_conn_module_init = 0x40000e00; +//r_ble_ll_conn_module_deinit = 0x40000dfc; +//r_ble_ll_conn_module_init = 0x40000e00; r_ble_ll_conn_module_reset = 0x40000e04; r_ble_ll_conn_num_comp_pkts_event_send = 0x40000e0c; r_ble_ll_conn_prepare_tx_pdu = 0x40000e10; @@ -245,11 +245,11 @@ r_ble_ll_conn_set_csa = 0x40000e20; r_ble_ll_conn_set_ext_con_params = 0x40000e24; r_ble_ll_conn_set_global_chanmap = 0x40000e28; r_ble_ll_conn_set_phy = 0x40000e2c; -r_ble_ll_conn_set_txpwr_by_handle = 0x40000e30; +//r_ble_ll_conn_set_txpwr_by_handle = 0x40000e30; r_ble_ll_conn_set_unknown_rx_octets = 0x40000e34; //r_ble_ll_conn_slave_start = 0x40000e38; r_ble_ll_conn_sm_get = 0x40000e3c; -r_ble_ll_conn_sm_new = 0x40000e40; +//r_ble_ll_conn_sm_new = 0x40000e40; r_ble_ll_conn_sm_npl_deinit = 0x40000e44; r_ble_ll_conn_sm_npl_init = 0x40000e48; r_ble_ll_conn_tx_pkt_in = 0x40000e4c; @@ -694,7 +694,7 @@ r_ble_lll_conn_halt = 0x4000152c; r_ble_lll_conn_master_common_init = 0x40001530; r_ble_lll_conn_master_new = 0x40001534; r_ble_lll_conn_module_deinit = 0x40001538; -r_ble_lll_conn_module_init = 0x4000153c; +//r_ble_lll_conn_module_init = 0x4000153c; r_ble_lll_conn_module_reset = 0x40001540; r_ble_lll_conn_no_mem_evt_pre_cb = 0x40001544; r_ble_lll_conn_pre_process = 0x40001548; @@ -767,7 +767,7 @@ r_ble_lll_rfmgmt_deinit = 0x4000164c; //r_ble_lll_rfmgmt_enable = 0x40001654; //r_ble_lll_rfmgmt_enable_now = 0x40001658; r_ble_lll_rfmgmt_init = 0x4000165c; -r_ble_lll_rfmgmt_is_enabled = 0x40001660; +//r_ble_lll_rfmgmt_is_enabled = 0x40001660; r_ble_lll_rfmgmt_release = 0x40001664; r_ble_lll_rfmgmt_release_ev = 0x40001668; r_ble_lll_rfmgmt_reset = 0x4000166c; @@ -785,7 +785,7 @@ r_ble_lll_scan_aux_data_free = 0x40001698; r_ble_lll_scan_chk_resume = 0x4000169c; r_ble_lll_scan_clean_cur_aux_data = 0x400016a0; //r_ble_lll_scan_coex_event_cb = 0x400016a4; -r_ble_lll_scan_common_init = 0x400016a8; +//r_ble_lll_scan_common_init = 0x400016a8; r_ble_lll_scan_deinit = 0x400016ac; r_ble_lll_scan_duration_period_timers_restart = 0x400016b0; r_ble_lll_scan_duration_period_timers_stop = 0x400016b4; @@ -806,7 +806,7 @@ r_ble_lll_scan_process_rsp_in_isr = 0x400016e8; r_ble_lll_scan_restart = 0x400016f0; r_ble_lll_scan_rx_isr_on_aux = 0x400016f4; r_ble_lll_scan_rx_isr_on_legacy = 0x400016f8; -r_ble_lll_scan_rx_pkt_isr = 0x400016fc; +//r_ble_lll_scan_rx_pkt_isr = 0x400016fc; r_ble_lll_scan_sched_next_aux = 0x40001700; r_ble_lll_scan_sched_remove = 0x40001704; r_ble_lll_scan_start = 0x40001708; @@ -1156,8 +1156,8 @@ r_hal_timer_env_deinit = 0x40002f18; r_ble_ll_env_deinit = 0x40002f1c; r_ble_ll_generic_data_deinit = 0x40002f20; //r_ble_hci_trans_env_deinit = 0x40002f24; -r_ble_ll_conn_callout_env_init = 0x40002f28; -r_ble_ll_conn_callout_env_deinit = 0x40002f2c; +//r_ble_ll_conn_callout_env_init = 0x40002f28; +//r_ble_ll_conn_callout_env_deinit = 0x40002f2c; r_ble_ll_scan_callout_env_init = 0x40002f30; r_ble_ll_scan_callout_env_deinit = 0x40002f34; r_ble_ll_callout_env_init = 0x40002f38; @@ -1184,7 +1184,7 @@ r_ble_ll_conn_is_lru_compare_with_sync = 0x40002f88; r_ble_ll_conn_rollback_last_unmapped_chan = 0x40002f8c; //r_ble_ll_hci_vs_csa_set = 0x40002f90; r_ble_ll_hci_reset = 0x40002f94; -r_ble_ll_adv_status_check = 0x40002f98; +//r_ble_ll_adv_status_check = 0x40002f98; r_ble_ll_conn_status_check = 0x40002f9c; r_ble_ll_scan_status_check = 0x40002fa0; r_ble_ll_sync_status_check = 0x40002fa4; diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld index b940fe9d111..9673a3aa298 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ble.ld @@ -34,7 +34,7 @@ r_ble_hci_trans_buf_alloc = 0x40000ae4; r_ble_hci_trans_buf_free = 0x40000ae8; r_ble_hci_trans_cfg_hs = 0x40000aec; r_ble_hci_trans_cfg_ll = 0x40000af0; -r_ble_hci_trans_init = 0x40000afc; +//r_ble_hci_trans_init = 0x40000afc; r_ble_hci_uart_acl_tx = 0x40000b00; r_ble_hci_uart_cmdevt_tx = 0x40000b04; r_ble_hci_uart_config = 0x40000b08; @@ -196,7 +196,7 @@ r_ble_ll_conn_set_csa = 0x40000e20; r_ble_ll_conn_set_ext_con_params = 0x40000e24; r_ble_ll_conn_set_global_chanmap = 0x40000e28; r_ble_ll_conn_set_phy = 0x40000e2c; -r_ble_ll_conn_set_txpwr_by_handle = 0x40000e30; +//r_ble_ll_conn_set_txpwr_by_handle = 0x40000e30; r_ble_ll_conn_set_unknown_rx_octets = 0x40000e34; r_ble_ll_conn_sm_get = 0x40000e3c; r_ble_ll_conn_tx_pkt_in = 0x40000e4c; @@ -362,7 +362,7 @@ r_ble_ll_resolv_get_list = 0x40001160; r_ble_ll_resolv_get_priv_addr = 0x40001164; r_ble_ll_resolv_get_rpa_tmo = 0x40001168; r_ble_ll_resolv_irk_nonzero = 0x40001170; -r_ble_ll_resolv_list_add = 0x40001174; +//r_ble_ll_resolv_list_add = 0x40001174; r_ble_ll_resolv_list_chg_allowed = 0x40001178; r_ble_ll_resolv_list_clr = 0x4000117c; r_ble_ll_resolv_list_find = 0x40001180; @@ -510,7 +510,7 @@ r_ble_lll_adv_make_done = 0x40001438; r_ble_lll_adv_periodic_done = 0x4000143c; r_ble_lll_adv_periodic_event_done = 0x40001440; r_ble_lll_adv_periodic_rmvd_from_sched = 0x40001444; -r_ble_lll_adv_periodic_schedule_first = 0x40001448; +//r_ble_lll_adv_periodic_schedule_first = 0x40001448; r_ble_lll_adv_pri_schedule_tx_pdu = 0x40001458; r_ble_lll_adv_reschedule_event = 0x4000145c; r_ble_lll_adv_reschedule_periodic_event = 0x40001460; @@ -521,7 +521,7 @@ r_ble_lll_adv_sm_deinit = 0x40001478; r_ble_lll_adv_sm_event_init = 0x4000147c; r_ble_lll_adv_sm_event_restore = 0x40001480; r_ble_lll_adv_sm_event_store = 0x40001484; -r_ble_lll_adv_sm_init = 0x40001488; +//r_ble_lll_adv_sm_init = 0x40001488; r_ble_lll_adv_sm_reset = 0x4000148c; r_ble_lll_adv_start = 0x40001490; r_ble_lll_adv_stop = 0x40001494; @@ -609,7 +609,7 @@ r_ble_lll_per_adv_coex_dpc_update = 0x40001634; r_ble_lll_per_adv_coex_dpc_update_on_data_updated = 0x40001638; r_ble_lll_per_adv_coex_dpc_update_on_scheduled = 0x4000163c; r_ble_lll_per_adv_coex_dpc_update_on_start = 0x40001640; -r_ble_lll_rfmgmt_is_enabled = 0x40001660; +//r_ble_lll_rfmgmt_is_enabled = 0x40001660; //r_ble_lll_rfmgmt_release = 0x40001664; r_ble_lll_rfmgmt_scan_changed = 0x40001670; r_ble_lll_rfmgmt_sched_changed = 0x40001674; @@ -622,7 +622,7 @@ r_ble_lll_scan_abort_aux_sched = 0x40001694; r_ble_lll_scan_chk_resume = 0x4000169c; r_ble_lll_scan_clean_cur_aux_data = 0x400016a0; //r_ble_lll_scan_coex_event_cb = 0x400016a4; -r_ble_lll_scan_common_init = 0x400016a8; +//r_ble_lll_scan_common_init = 0x400016a8; r_ble_lll_scan_deinit = 0x400016ac; r_ble_lll_scan_duration_period_timers_restart = 0x400016b0; r_ble_lll_scan_duration_period_timers_stop = 0x400016b4; diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld index 2102daeb9ee..482643f9d62 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld @@ -129,7 +129,7 @@ s_trans_id = 0x3fcdfac4; ***************************************/ /* Functions */ -coex_core_event_duration_get = 0x40002178; +/* coex_core_event_duration_get = 0x40002178; */ /* coex_core_timer_idx_get = 0x4000218c; */ coex_hw_timer_tick_get = 0x400021b8; diff --git a/components/esp_security/Kconfig b/components/esp_security/Kconfig index 7a8c9ff6316..908d02961be 100644 --- a/components/esp_security/Kconfig +++ b/components/esp_security/Kconfig @@ -50,4 +50,12 @@ menu "ESP Security Specific" the cases when trusted boot is not enabled and the attacker tries carrying out non-constant time point multiplication operations by changing the default ESP-IDF configurations. Performing constant time operations protect the ECC multiplication operations from timing attacks. + + config ESP_ECDSA_ENABLE_P192_CURVE + bool "Enable ECDSA 192-curve operations" + depends on SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + default N + help + By default, only the 256-bit curve operations are allowed. If this configuration is enabled, + it will set the eFuse to allow ECDSA operations using both the 192-bit and 256-bit curves. endmenu diff --git a/components/esp_security/src/init.c b/components/esp_security/src/init.c index ab75144cdac..11d01f89d91 100644 --- a/components/esp_security/src/init.c +++ b/components/esp_security/src/init.c @@ -58,6 +58,15 @@ ESP_SYSTEM_INIT_FN(esp_security_init, SECONDARY, BIT(0), 103) } } #endif + +#if CONFIG_ESP_ECDSA_ENABLE_P192_CURVE + esp_err_t err; + err = esp_efuse_enable_ecdsa_p192_curve_mode(); + if (err != ESP_OK) { + return err; + } +#endif + return ESP_OK; } diff --git a/components/esp_system/port/soc/esp32c5/system_internal.c b/components/esp_system/port/soc/esp32c5/system_internal.c index 76d7037d8ca..4afbaf9c494 100644 --- a/components/esp_system/port/soc/esp32c5/system_internal.c +++ b/components/esp_system/port/soc/esp32c5/system_internal.c @@ -22,6 +22,7 @@ #include "soc/rtc_periph.h" #include "soc/uart_reg.h" #include "hal/wdt_hal.h" +#include "hal/uart_ll.h" #if SOC_MODEM_CLOCK_SUPPORTED #include "hal/modem_syscon_ll.h" #include "hal/modem_lpcon_ll.h" @@ -78,6 +79,10 @@ void IRAM_ATTR esp_system_reset_modules_on_exit(void) CLEAR_PERI_REG_MASK(PCR_HMAC_CONF_REG, PCR_HMAC_RST_EN); CLEAR_PERI_REG_MASK(PCR_RSA_CONF_REG, PCR_RSA_RST_EN); CLEAR_PERI_REG_MASK(PCR_SHA_CONF_REG, PCR_SHA_RST_EN); + + // UART's sclk is controlled in the PCR register and does not reset with the UART module. The ROM missed enabling + // it when initializing the ROM UART. If it is not turned on, it will trigger LP_WDT in the ROM. + uart_ll_sclk_enable(&UART0); } /* "inner" restart function for after RTOS, interrupts & anything else on this diff --git a/components/esp_system/port/soc/esp32c6/system_internal.c b/components/esp_system/port/soc/esp32c6/system_internal.c index 9a7bd4189fb..5d4bf93131c 100644 --- a/components/esp_system/port/soc/esp32c6/system_internal.c +++ b/components/esp_system/port/soc/esp32c6/system_internal.c @@ -20,6 +20,7 @@ #include "esp_private/rtc_clk.h" #include "soc/rtc_periph.h" #include "soc/uart_reg.h" +#include "hal/uart_ll.h" #include "hal/wdt_hal.h" #include "hal/modem_syscon_ll.h" #include "hal/modem_lpcon_ll.h" @@ -75,6 +76,10 @@ void IRAM_ATTR esp_system_reset_modules_on_exit(void) CLEAR_PERI_REG_MASK(PCR_HMAC_CONF_REG, PCR_HMAC_RST_EN); CLEAR_PERI_REG_MASK(PCR_RSA_CONF_REG, PCR_RSA_RST_EN); CLEAR_PERI_REG_MASK(PCR_SHA_CONF_REG, PCR_SHA_RST_EN); + + // UART's sclk is controlled in the PCR register and does not reset with the UART module. The ROM missed enabling + // it when initializing the ROM UART. If it is not turned on, it will trigger LP_WDT in the ROM. + uart_ll_sclk_enable(&UART0); } /* "inner" restart function for after RTOS, interrupts & anything else on this diff --git a/components/esp_system/port/soc/esp32c61/system_internal.c b/components/esp_system/port/soc/esp32c61/system_internal.c index dac6f938161..bfe80c1055c 100644 --- a/components/esp_system/port/soc/esp32c61/system_internal.c +++ b/components/esp_system/port/soc/esp32c61/system_internal.c @@ -20,6 +20,7 @@ #include "esp_private/rtc_clk.h" #include "soc/rtc_periph.h" #include "soc/uart_reg.h" +#include "hal/uart_ll.h" #include "hal/wdt_hal.h" #include "esp_private/cache_err_int.h" @@ -78,6 +79,10 @@ void IRAM_ATTR esp_system_reset_modules_on_exit(void) CLEAR_PERI_REG_MASK(PCR_HMAC_CONF_REG, PCR_HMAC_RST_EN); CLEAR_PERI_REG_MASK(PCR_RSA_CONF_REG, PCR_RSA_RST_EN); CLEAR_PERI_REG_MASK(PCR_SHA_CONF_REG, PCR_SHA_RST_EN); + + // UART's sclk is controlled in the PCR register and does not reset with the UART module. The ROM missed enabling + // it when initializing the ROM UART. If it is not turned on, it will trigger LP_WDT in the ROM. + uart_ll_sclk_enable(&UART0); } /* "inner" restart function for after RTOS, interrupts & anything else on this diff --git a/components/esp_system/port/soc/esp32h2/system_internal.c b/components/esp_system/port/soc/esp32h2/system_internal.c index 49425511823..e08beb85eae 100644 --- a/components/esp_system/port/soc/esp32h2/system_internal.c +++ b/components/esp_system/port/soc/esp32h2/system_internal.c @@ -23,6 +23,7 @@ #include "soc/uart_reg.h" #include "hal/wdt_hal.h" #include "hal/spimem_flash_ll.h" +#include "hal/uart_ll.h" #include "esp_private/cache_err_int.h" #include "esp_private/mspi_timing_tuning.h" @@ -73,6 +74,10 @@ void IRAM_ATTR esp_system_reset_modules_on_exit(void) CLEAR_PERI_REG_MASK(PCR_HMAC_CONF_REG, PCR_HMAC_RST_EN); CLEAR_PERI_REG_MASK(PCR_RSA_CONF_REG, PCR_RSA_RST_EN); CLEAR_PERI_REG_MASK(PCR_SHA_CONF_REG, PCR_SHA_RST_EN); + + // UART's sclk is controlled in the PCR register and does not reset with the UART module. The ROM missed enabling + // it when initializing the ROM UART. If it is not turned on, it will trigger LP_WDT in the ROM. + uart_ll_sclk_enable(&UART0); } /* "inner" restart function for after RTOS, interrupts & anything else on this diff --git a/components/esp_system/port/soc/esp32p4/clk.c b/components/esp_system/port/soc/esp32p4/clk.c index 8b94ede3f58..54f6a3c2669 100644 --- a/components/esp_system/port/soc/esp32p4/clk.c +++ b/components/esp_system/port/soc/esp32p4/clk.c @@ -379,7 +379,10 @@ __attribute__((weak)) void esp_perip_clk_init(void) REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL1_REG, HP_SYS_CLKRST_REG_REF_50M_CLK_EN); REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL1_REG, HP_SYS_CLKRST_REG_REF_25M_CLK_EN); // 240M CLK is for Key Management use, should not be gated +#if !CONFIG_ESP_ENABLE_PVT REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_160M_CLK_EN); +#endif + // 160M CLK is for PVT use, should not be gated REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_120M_CLK_EN); REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_80M_CLK_EN); REG_CLR_BIT(HP_SYS_CLKRST_REF_CLK_CTRL2_REG, HP_SYS_CLKRST_REG_REF_20M_CLK_EN); diff --git a/components/esp_vfs_console/test_apps/usb_cdc_vfs/main/test_app_main.c b/components/esp_vfs_console/test_apps/usb_cdc_vfs/main/test_app_main.c index 4e0b84d5bb0..92441a08340 100644 --- a/components/esp_vfs_console/test_apps/usb_cdc_vfs/main/test_app_main.c +++ b/components/esp_vfs_console/test_apps/usb_cdc_vfs/main/test_app_main.c @@ -40,6 +40,63 @@ static bool wait_for_read_ready(FILE *stream) } } +static void test_usb_cdc_select(void) +{ + test_setup(__func__, sizeof(__func__)); + + struct timeval tv; + tv.tv_sec = 1; + tv.tv_usec = 0; + char out_buffer[32]; + memset(out_buffer, 0, sizeof(out_buffer)); + size_t out_buffer_len = sizeof(out_buffer); + + // stdin needs to be non blocking to properly call read after select returns + // with read ready on stdin. + int fd = fileno(stdin); + int flags = fcntl(fd, F_GETFL); + flags |= O_NONBLOCK; + int res = fcntl(fd, F_SETFL, flags); + TEST_ASSERT(res == 0); + + // init driver + // ESP_ERROR_CHECK(esp_usb_console_init()); + // esp_vfs_dev_cdcacm_register(); + + // send the message from pytest environment and make sure it can be read + bool message_received = false; + size_t char_read = 0; + while (!message_received && out_buffer_len > char_read) { + int nread = read_bytes_with_select(stdin, out_buffer + char_read, out_buffer_len - char_read, &tv); + if (nread > 0) { + char_read += nread; + if (out_buffer[char_read - 1] == '\n') { + message_received = true; + } + } else if (nread == -2) { + // time out occurred, send the expected message back to the testing + // environment to trigger the testing environment into sending the + // test message. don't update this message without updating the pytest + // function since the string is expected as is by the test environment + char timeout_msg[] = "select timed out\n"; + write(fileno(stdout), timeout_msg, sizeof(timeout_msg)); + flush_write(); + } else { + break; + } + } + + // write the received message back to the test environment. The test + // environment will check that the message received matches the one sent + write(fileno(stdout), out_buffer, char_read); + flush_write(); + + vTaskDelay(10); // wait for the string to send +} + +/** + * @brief Test that the non blocking read is compliant with POSIX standards + */ static void test_usb_cdc_read_non_blocking(void) { test_setup(__func__, sizeof(__func__)); @@ -86,7 +143,97 @@ static void test_usb_cdc_read_non_blocking(void) TEST_ASSERT(errno != EWOULDBLOCK); } +/** + * @brief Test that the blocking read will return with the available + * data even if the size is less than the requested size. + */ +static void test_usb_cdc_read_blocking(void) +{ + test_setup(__func__, sizeof(__func__)); + + const size_t out_buffer_len = 32; + char out_buffer[out_buffer_len] = {}; + + ESP_ERROR_CHECK(esp_vfs_dev_cdcacm_register()); + + esp_vfs_dev_cdcacm_set_rx_line_endings(ESP_LINE_ENDINGS_LF); + esp_vfs_dev_cdcacm_set_tx_line_endings(ESP_LINE_ENDINGS_LF); + + /* make sure blocking mode is enabled */ + int flags = fcntl(STDIN_FILENO, F_GETFL, 0); + fcntl(STDIN_FILENO, F_SETFL, flags & (~O_NONBLOCK)); + + // trigger the test environment to send the test message + char ready_msg[] = "ready to receive\n"; + write(fileno(stdout), ready_msg, sizeof(ready_msg)); + + const int nread = read(STDIN_FILENO, out_buffer, out_buffer_len); + TEST_ASSERT(nread > 0); + TEST_ASSERT(nread < out_buffer_len); + + fcntl(STDIN_FILENO, F_SETFL, flags); + esp_vfs_dev_cdcacm_set_rx_line_endings(ESP_LINE_ENDINGS_CRLF); + esp_vfs_dev_cdcacm_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF); + vTaskDelay(2); // wait for tasks to exit +} + +/** + * @brief Test that the read function does not prematurely return + * on reception of new line character. + */ +static void test_usb_cdc_read_no_exit_on_newline_reception(void) +{ + test_setup(__func__, sizeof(__func__)); + + // Send a string with length less than the read requested length + const char in_buffer[] = "!(@*#&(!*@&#((SDasdkjhad\nce"; // read should not early return on \n + const size_t in_buffer_len = sizeof(in_buffer); + + const size_t out_buffer_len = in_buffer_len - 1; // don't compare the null character at the end of in_buffer string + char out_buffer[out_buffer_len] = {}; + + ESP_ERROR_CHECK(esp_vfs_dev_cdcacm_register()); + + esp_vfs_dev_cdcacm_set_rx_line_endings(ESP_LINE_ENDINGS_LF); + esp_vfs_dev_cdcacm_set_tx_line_endings(ESP_LINE_ENDINGS_LF); + + int flags = fcntl(STDIN_FILENO, F_GETFL, 0); + fcntl(STDIN_FILENO, F_SETFL, flags | O_NONBLOCK); + + // trigger the test environment to send the test message + char ready_msg[] = "ready to receive\n"; + write(fileno(stdout), ready_msg, sizeof(ready_msg)); + + // wait for the string to be sent and buffered + vTaskDelay(pdMS_TO_TICKS(500)); + + char *out_buffer_ptr = out_buffer; + size_t bytes_read = 0; + do { + int nread = read(STDIN_FILENO, out_buffer_ptr, out_buffer_len); + if (nread > 0) { + out_buffer_ptr += nread; + bytes_read += nread; + } + } while (bytes_read < in_buffer_len); + + // string compare + for (size_t i = 0; i < out_buffer_len; i++) { + TEST_ASSERT_EQUAL(in_buffer[i], out_buffer[i]); + } + + fcntl(STDIN_FILENO, F_SETFL, flags); + esp_vfs_dev_cdcacm_set_rx_line_endings(ESP_LINE_ENDINGS_CRLF); + esp_vfs_dev_cdcacm_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF); + vTaskDelay(2); // wait for tasks to exit +} + +/* Always make sure that the function calling sequence in the main + * function matches the expected order in the pytest function. + */ void app_main(void) { test_usb_cdc_read_non_blocking(); + test_usb_cdc_read_blocking(); + test_usb_cdc_read_no_exit_on_newline_reception(); } diff --git a/components/esp_vfs_console/test_apps/usb_cdc_vfs/pytest_usb_cdc_vfs.py b/components/esp_vfs_console/test_apps/usb_cdc_vfs/pytest_usb_cdc_vfs.py index b462d0f8b29..0403a5e8fd0 100644 --- a/components/esp_vfs_console/test_apps/usb_cdc_vfs/pytest_usb_cdc_vfs.py +++ b/components/esp_vfs_console/test_apps/usb_cdc_vfs/pytest_usb_cdc_vfs.py @@ -18,3 +18,13 @@ def test_usb_cdc_vfs_default(dut: Dut, test_message: str) -> None: dut.expect_exact('test_usb_cdc_read_non_blocking', timeout=2) dut.expect_exact('send_bytes', timeout=2) dut.write('abcdefgh') + + # test run: test_usb_cdc_read_blocking + dut.expect_exact('test_usb_cdc_read_blocking', timeout=2) + dut.expect_exact('ready to receive', timeout=2) + dut.write('testdata') + + # test run: test_usb_cdc_read_no_exit_on_newline_reception + dut.expect_exact('test_usb_cdc_read_no_exit_on_newline_reception', timeout=2) + dut.expect_exact('ready to receive', timeout=2) + dut.write('!(@*#&(!*@&#((SDasdkjhad\nce') diff --git a/components/esp_vfs_console/vfs_cdcacm.c b/components/esp_vfs_console/vfs_cdcacm.c index 3402e342200..b210b035b3a 100644 --- a/components/esp_vfs_console/vfs_cdcacm.c +++ b/components/esp_vfs_console/vfs_cdcacm.c @@ -146,13 +146,16 @@ static void cdcacm_return_char(int c) static ssize_t cdcacm_read(int fd, void *data, size_t size) { - assert(fd == 0); + assert(fd == USB_CDC_LOCAL_FD); char *data_c = (char *) data; ssize_t received = 0; _lock_acquire_recursive(&s_read_lock); if (s_blocking) { - while (cdcacm_data_length_in_buffer() < size) { + /* in blocking mode, wait for data. by the POSIX standards, + * the amount of available bytes does not need to match the + * requested size to return */ + while (cdcacm_data_length_in_buffer() <= 0) { xSemaphoreTake(s_rx_semaphore, portMAX_DELAY); } } else { @@ -161,21 +164,12 @@ static ssize_t cdcacm_read(int fd, void *data, size_t size) size = MIN(size, cdcacm_data_length_in_buffer()); } - if (s_rx_mode == ESP_LINE_ENDINGS_CR || s_rx_mode == ESP_LINE_ENDINGS_LF) { - /* This is easy. Just receive, and if needed replace \r by \n. */ - received = esp_usb_console_read_buf(data_c, size); - if (s_rx_mode == ESP_LINE_ENDINGS_CR) { - /* Change CRs to newlines */ - for (ssize_t i = 0; i < received; i++) { - if (data_c[i] == '\r') { - data_c[i] = '\n'; - } - } - } - } else { - while (received < size) { - int c = cdcacm_read_char(); - if (c == '\r') { + while (received < size) { + int c = cdcacm_read_char(); + if (c == '\r') { + if (s_rx_mode == ESP_LINE_ENDINGS_CR) { + c = '\n'; + } else if (s_rx_mode == ESP_LINE_ENDINGS_CRLF) { /* look ahead */ int c2 = cdcacm_read_char(); if (c2 == NONE) { @@ -192,14 +186,12 @@ static ssize_t cdcacm_read(int fd, void *data, size_t size) */ cdcacm_return_char(c2); } - } else if (c == NONE) { - break; - } - data_c[received++] = (char) c; - if (c == '\n') { - break; } + + } else if (c == NONE) { + break; } + data_c[received++] = (char) c; } _lock_release_recursive(&s_read_lock); if (received > 0) { diff --git a/components/esp_wifi/include/esp_wifi_types_generic.h b/components/esp_wifi/include/esp_wifi_types_generic.h index 3204661dc24..18f936540e9 100644 --- a/components/esp_wifi/include/esp_wifi_types_generic.h +++ b/components/esp_wifi/include/esp_wifi_types_generic.h @@ -76,7 +76,7 @@ typedef struct { * @brief Wi-Fi authmode type * Strength of authmodes * Personal Networks : OPEN < WEP < WPA_PSK < OWE < WPA2_PSK = WPA_WPA2_PSK < WAPI_PSK < WPA3_PSK = WPA2_WPA3_PSK = DPP - * Enterprise Networks : WIFI_AUTH_WPA2_ENTERPRISE < WIFI_AUTH_WPA3_ENTERPRISE = WIFI_AUTH_WPA2_WPA3_ENTERPRISE < WIFI_AUTH_WPA3_ENT_192 + * Enterprise Networks : WIFI_AUTH_WPA_ENTERPRISE < WIFI_AUTH_WPA2_ENTERPRISE < WIFI_AUTH_WPA3_ENTERPRISE = WIFI_AUTH_WPA2_WPA3_ENTERPRISE < WIFI_AUTH_WPA3_ENT_192 */ typedef enum { WIFI_AUTH_OPEN = 0, /**< Authenticate mode : open */ @@ -84,8 +84,8 @@ typedef enum { WIFI_AUTH_WPA_PSK, /**< Authenticate mode : WPA_PSK */ WIFI_AUTH_WPA2_PSK, /**< Authenticate mode : WPA2_PSK */ WIFI_AUTH_WPA_WPA2_PSK, /**< Authenticate mode : WPA_WPA2_PSK */ - WIFI_AUTH_ENTERPRISE, /**< Authenticate mode : Wi-Fi EAP security */ - WIFI_AUTH_WPA2_ENTERPRISE = WIFI_AUTH_ENTERPRISE, /**< Authenticate mode : Wi-Fi EAP security */ + WIFI_AUTH_ENTERPRISE, /**< Authenticate mode : Wi-Fi EAP security, treated the same as WIFI_AUTH_WPA2_ENTERPRISE */ + WIFI_AUTH_WPA2_ENTERPRISE = WIFI_AUTH_ENTERPRISE, /**< Authenticate mode : WPA2-Enterprise security */ WIFI_AUTH_WPA3_PSK, /**< Authenticate mode : WPA3_PSK */ WIFI_AUTH_WPA2_WPA3_PSK, /**< Authenticate mode : WPA2_WPA3_PSK */ WIFI_AUTH_WAPI_PSK, /**< Authenticate mode : WAPI_PSK */ @@ -96,6 +96,7 @@ typedef enum { WIFI_AUTH_DPP, /**< Authenticate mode : DPP */ WIFI_AUTH_WPA3_ENTERPRISE, /**< Authenticate mode : WPA3-Enterprise Only Mode */ WIFI_AUTH_WPA2_WPA3_ENTERPRISE, /**< Authenticate mode : WPA3-Enterprise Transition Mode */ + WIFI_AUTH_WPA_ENTERPRISE, /**< Authenticate mode : WPA-Enterprise security */ WIFI_AUTH_MAX } wifi_auth_mode_t; diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 206fe3e13e7..2b0789ab329 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 206fe3e13e788b5fad8be6d39b5d9742e4bd9985 +Subproject commit 2b0789ab329f622eea43117459126391ac5546c5 diff --git a/components/esp_wifi/test_apps/wifi_connect/main/app_main.c b/components/esp_wifi/test_apps/wifi_connect/main/app_main.c index 5816593f4ae..3d14ad85dcb 100644 --- a/components/esp_wifi/test_apps/wifi_connect/main/app_main.c +++ b/components/esp_wifi/test_apps/wifi_connect/main/app_main.c @@ -37,6 +37,7 @@ void setUp(void) void tearDown(void) { ESP_ERROR_CHECK(esp_wifi_deinit()); + vTaskDelay(500 / portTICK_PERIOD_MS); size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); check_leak(before_free_8bit, after_free_8bit, "8BIT"); diff --git a/components/esp_wifi/test_apps/wifi_connect/main/test_wifi_conn.c b/components/esp_wifi/test_apps/wifi_connect/main/test_wifi_conn.c index 2088774a552..8602330315e 100644 --- a/components/esp_wifi/test_apps/wifi_connect/main/test_wifi_conn.c +++ b/components/esp_wifi/test_apps/wifi_connect/main/test_wifi_conn.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 * @@ -272,11 +272,11 @@ static void esp_wifi_connect_first_time(void) // make sure softap has started vTaskDelay(1000 / portTICK_PERIOD_MS); - wifi_config_t w_config; - memset(&w_config, 0, sizeof(w_config)); - memcpy(w_config.sta.ssid, TEST_DEFAULT_SSID, strlen(TEST_DEFAULT_SSID)); - memcpy(w_config.sta.password, TEST_DEFAULT_PWD, strlen(TEST_DEFAULT_PWD)); - w_config.sta.channel = 1; + wifi_config_t w_config = { + .sta.ssid = TEST_DEFAULT_SSID, + .sta.password = "invalid_password", + .sta.channel = 1, + }; wifi_event_handler_flag |= EVENT_HANDLER_FLAG_DO_NOT_AUTO_RECONNECT; @@ -284,7 +284,6 @@ static void esp_wifi_connect_first_time(void) ESP_LOGI(TAG, "start esp_wifi_connect first time: %s", TEST_DEFAULT_SSID); TEST_ESP_OK(esp_wifi_connect()); } - static void test_wifi_connect_at_scan_phase(void) { @@ -304,8 +303,8 @@ static void test_wifi_connect_before_connected_phase(void) esp_wifi_connect_first_time(); - // connect before connected - vTaskDelay(730 / portTICK_PERIOD_MS); + // connect before connected from channel 1 to 6 need 720ms + vTaskDelay(725 / portTICK_PERIOD_MS); ESP_LOGI(TAG, "connect when first connect after scan before connected"); TEST_ESP_ERR(ESP_ERR_WIFI_CONN, esp_wifi_connect()); wifi_event_handler_flag |= EVENT_HANDLER_FLAG_DO_NOT_AUTO_RECONNECT; diff --git a/components/esp_wifi/test_apps/wifi_connect/sdkconfig.defaults b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.defaults index 7a161c4bbd5..4f3584cd25a 100644 --- a/components/esp_wifi/test_apps/wifi_connect/sdkconfig.defaults +++ b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.defaults @@ -1,3 +1,4 @@ # ignore task watchdog triggered by unity_run_menu -CONFIG_ESP_TASK_WDT=n +CONFIG_ESP_TASK_WDT_EN=n +CONFIG_FREERTOS_HZ=1000 diff --git a/components/freertos/FreeRTOS-Kernel-SMP/portable/riscv/port.c b/components/freertos/FreeRTOS-Kernel-SMP/portable/riscv/port.c index 3bd684e44e5..650151edf5c 100644 --- a/components/freertos/FreeRTOS-Kernel-SMP/portable/riscv/port.c +++ b/components/freertos/FreeRTOS-Kernel-SMP/portable/riscv/port.c @@ -252,7 +252,7 @@ static void vPortTLSPointersDelCb( void *pxTCB ) if ( pvThreadLocalStoragePointersDelCallback[ x ] != NULL ) { //If del cb is set /* In case the TLSP deletion callback has been overwritten by a TLS pointer, gracefully abort. */ if ( !esp_ptr_executable( pvThreadLocalStoragePointersDelCallback[ x ] ) ) { - ESP_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); + ESP_EARLY_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); abort(); } diff --git a/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c b/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c index 799a8b03395..f5302a205f2 100644 --- a/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c +++ b/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c @@ -717,7 +717,7 @@ static void vPortTLSPointersDelCb( void *pxTCB ) if ( pvThreadLocalStoragePointersDelCallback[ x ] != NULL ) { //If del cb is set /* In case the TLSP deletion callback has been overwritten by a TLS pointer, gracefully abort. */ if ( !esp_ptr_executable( pvThreadLocalStoragePointersDelCallback[ x ] ) ) { - ESP_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); + ESP_EARLY_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); abort(); } diff --git a/components/hal/ecdsa_hal.c b/components/hal/ecdsa_hal.c index 5c10802e2c9..8f5d463a26c 100644 --- a/components/hal/ecdsa_hal.c +++ b/components/hal/ecdsa_hal.c @@ -47,10 +47,13 @@ static void configure_ecdsa_periph(ecdsa_hal_config_t *conf) } #if SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - ecdsa_ll_set_k_type(conf->sign_type); - - if (conf->sign_type == ECDSA_K_TYPE_DETERMINISITIC) { - ecdsa_ll_set_deterministic_loop(conf->loop_number); + if (ecdsa_ll_is_deterministic_mode_supported()) { + ecdsa_ll_set_k_type(conf->sign_type); +#if !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + if (conf->sign_type == ECDSA_K_TYPE_DETERMINISITIC) { + ecdsa_ll_set_deterministic_loop(conf->loop_number); + } +#endif /* !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ } #endif } @@ -224,11 +227,11 @@ void ecdsa_hal_export_pubkey(ecdsa_hal_config_t *conf, uint8_t *pub_x, uint8_t * } #endif /* SOC_ECDSA_SUPPORT_EXPORT_PUBKEY */ -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE +#if SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE && !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP bool ecdsa_hal_det_signature_k_check(void) { return (ecdsa_ll_check_k_value() == 0); } -#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ +#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE && !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ diff --git a/components/hal/esp32c2/include/hal/cache_ll.h b/components/hal/esp32c2/include/hal/cache_ll.h index ba192c98b60..814173cfa36 100644 --- a/components/hal/esp32c2/include/hal/cache_ll.h +++ b/components/hal/esp32c2/include/hal/cache_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -149,6 +149,32 @@ static inline void cache_ll_invalidate_addr(uint32_t cache_level, cache_type_t t Cache_Invalidate_Addr(vaddr, size); } +/** + * @brief Freeze Cache + * + * @param cache_level level of the cache + * @param type see `cache_type_t` + * @param cache_id id of the cache in this type and level + */ +__attribute__((always_inline)) +static inline void cache_ll_freeze_cache(uint32_t cache_level, cache_type_t type, uint32_t cache_id) +{ + Cache_Freeze_ICache_Enable(CACHE_FREEZE_ACK_BUSY); +} + +/** + * @brief Unfreeze Cache + * + * @param cache_level level of the cache + * @param type see `cache_type_t` + * @param cache_id id of the cache in this type and level + */ +__attribute__((always_inline)) +static inline void cache_ll_unfreeze_cache(uint32_t cache_level, cache_type_t type, uint32_t cache_id) +{ + Cache_Freeze_ICache_Disable(); +} + /** * @brief Get Cache line size, in bytes * diff --git a/components/hal/esp32c3/include/hal/cache_ll.h b/components/hal/esp32c3/include/hal/cache_ll.h index 71022d0121f..0dfcc45447d 100644 --- a/components/hal/esp32c3/include/hal/cache_ll.h +++ b/components/hal/esp32c3/include/hal/cache_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -152,6 +152,32 @@ static inline void cache_ll_invalidate_addr(uint32_t cache_level, cache_type_t t Cache_Invalidate_Addr(vaddr, size); } +/** + * @brief Freeze Cache + * + * @param cache_level level of the cache + * @param type see `cache_type_t` + * @param cache_id id of the cache in this type and level + */ +__attribute__((always_inline)) +static inline void cache_ll_freeze_cache(uint32_t cache_level, cache_type_t type, uint32_t cache_id) +{ + Cache_Freeze_ICache_Enable(CACHE_FREEZE_ACK_BUSY); +} + +/** + * @brief Unfreeze Cache + * + * @param cache_level level of the cache + * @param type see `cache_type_t` + * @param cache_id id of the cache in this type and level + */ +__attribute__((always_inline)) +static inline void cache_ll_unfreeze_cache(uint32_t cache_level, cache_type_t type, uint32_t cache_id) +{ + Cache_Freeze_ICache_Disable(); +} + /** * @brief Get Cache line size, in bytes * diff --git a/components/hal/esp32c5/include/hal/ecdsa_ll.h b/components/hal/esp32c5/include/hal/ecdsa_ll.h index 58bb389aeb6..225a86d40a3 100644 --- a/components/hal/esp32c5/include/hal/ecdsa_ll.h +++ b/components/hal/esp32c5/include/hal/ecdsa_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -415,17 +415,6 @@ static inline int ecdsa_ll_get_operation_result(void) return REG_GET_BIT(ECDSA_RESULT_REG, ECDSA_OPERATION_RESULT); } -/** - * @brief Check if the k value is greater than the curve order. - * - * @return 0, k value is not greater than the curve order. In this case, the k value is the set k value. - * @return 1, k value is greater than than the curve order. In this case, the k value is the set (k mod n). - */ -static inline int ecdsa_ll_check_k_value(void) -{ - return REG_GET_BIT(ECDSA_RESULT_REG, ECDSA_K_VALUE_WARNING); -} - #ifdef __cplusplus } #endif diff --git a/components/hal/esp32h2/efuse_hal.c b/components/hal/esp32h2/efuse_hal.c index 94a1051713a..f6d1c0f40a8 100644 --- a/components/hal/esp32h2/efuse_hal.c +++ b/components/hal/esp32h2/efuse_hal.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,7 @@ #include #include "sdkconfig.h" #include "soc/soc_caps.h" +#include "soc/chip_revision.h" #include "hal/assert.h" #include "hal/efuse_hal.h" #include "hal/efuse_ll.h" @@ -79,6 +80,16 @@ void efuse_hal_rs_calculate(const void *data, void *rs_values) ets_efuse_rs_calculate(data, rs_values); } +uint32_t efuse_hal_get_ecdsa_curve_mode(void) +{ + if (ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 102)) { + return efuse_ll_get_ecdsa_curve_mode(); + } else { + // Curve mode is not configurable for previous versions + return 0; + } +} + /******************* eFuse control functions *************************/ bool efuse_hal_is_coding_error_in_block(unsigned block) diff --git a/components/hal/esp32h2/include/hal/ecdsa_ll.h b/components/hal/esp32h2/include/hal/ecdsa_ll.h index bea4ef26efb..65299c12190 100644 --- a/components/hal/esp32h2/include/hal/ecdsa_ll.h +++ b/components/hal/esp32h2/include/hal/ecdsa_ll.h @@ -211,6 +211,26 @@ static inline void ecdsa_ll_set_z_mode(ecdsa_ll_sha_mode_t mode) } } +/** + * @brief Set the signature generation type of ECDSA operation + * + * @param type Type of the ECDSA signature + */ +static inline void ecdsa_ll_set_k_type(ecdsa_sign_type_t type) +{ + switch (type) { + case ECDSA_K_TYPE_TRNG: + REG_CLR_BIT(ECDSA_CONF_REG, ECDSA_DETERMINISTIC_K); + break; + case ECDSA_K_TYPE_DETERMINISITIC: + REG_SET_BIT(ECDSA_CONF_REG, ECDSA_DETERMINISTIC_K); + break; + default: + HAL_ASSERT(false && "Unsupported K type"); + break; + } +} + /** * @brief Set the stage of ECDSA operation * @@ -378,6 +398,26 @@ static inline int ecdsa_ll_get_operation_result(void) return REG_GET_BIT(ECDSA_RESULT_REG, ECDSA_OPERATION_RESULT); } +/** + * @brief Check if the ECDSA curves configuration is supported + * The ECDSA curves configuration is only avliable in chip version + * above 1.2 in ESP32-H2 + */ +static inline bool ecdsa_ll_is_configurable_curve_supported(void) +{ + return ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 102); +} + +/** + * @brief Check if the ECDSA deterministic mode is supported + * The ECDSA deterministic mode is only available in chip version + * above 1.2 in ESP32-H2 + */ +static inline bool ecdsa_ll_is_deterministic_mode_supported(void) +{ + return ESP_CHIP_REV_ABOVE(efuse_hal_chip_revision(), 102); +} + #ifdef __cplusplus } #endif diff --git a/components/hal/esp32h2/include/hal/efuse_hal.h b/components/hal/esp32h2/include/hal/efuse_hal.h index b6c83d6da6d..37c4f72cd95 100644 --- a/components/hal/esp32h2/include/hal/efuse_hal.h +++ b/components/hal/esp32h2/include/hal/efuse_hal.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -54,6 +54,13 @@ void efuse_hal_program(uint32_t block); */ void efuse_hal_rs_calculate(const void *data, void *rs_values); +/** + * @brief Get ECDSA curve mode + * + * @return ECDSA curve mode + */ +uint32_t efuse_hal_get_ecdsa_curve_mode(void); + /** * @brief Checks coding error in a block * diff --git a/components/hal/esp32h2/include/hal/efuse_ll.h b/components/hal/esp32h2/include/hal/efuse_ll.h index 16226aa4631..09055e2df5e 100644 --- a/components/hal/esp32h2/include/hal/efuse_ll.h +++ b/components/hal/esp32h2/include/hal/efuse_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,6 +20,11 @@ extern "C" { /******************* eFuse fields *************************/ +__attribute__((always_inline)) static inline uint32_t efuse_ll_get_ecdsa_curve_mode(void) +{ + return EFUSE.rd_repeat_data0.ecdsa_curve_mode; +} + __attribute__((always_inline)) static inline uint32_t efuse_ll_get_flash_crypt_cnt(void) { return EFUSE.rd_repeat_data1.spi_boot_crypt_cnt; diff --git a/components/hal/esp32p4/include/hal/cam_ll.h b/components/hal/esp32p4/include/hal/cam_ll.h index a48dba2dc83..6c7467023e4 100644 --- a/components/hal/esp32p4/include/hal/cam_ll.h +++ b/components/hal/esp32p4/include/hal/cam_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -593,6 +593,12 @@ static inline void cam_ll_enable_interrupt(lcd_cam_dev_t *dev, uint32_t mask, bo dev->lc_dma_int_ena.val &= ~(mask & 0x0c); } } +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_ATOMIC_ENV variable in advance +#define cam_ll_enable_interrupt(...) do { \ + (void)__DECLARE_RCC_ATOMIC_ENV; \ + cam_ll_enable_interrupt(__VA_ARGS__); \ + } while(0) /** * @brief Get interrupt status value diff --git a/components/hal/esp32p4/include/hal/ecdsa_ll.h b/components/hal/esp32p4/include/hal/ecdsa_ll.h index f3429cf1b28..1e8a713f75c 100644 --- a/components/hal/esp32p4/include/hal/ecdsa_ll.h +++ b/components/hal/esp32p4/include/hal/ecdsa_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -432,6 +432,14 @@ static inline int ecdsa_ll_check_k_value(void) return REG_GET_BIT(ECDSA_RESULT_REG, ECDSA_K_VALUE_WARNING); } +/** + * @brief Check if the ECDSA deterministic mode is supported + */ +static inline bool ecdsa_ll_is_deterministic_mode_supported(void) +{ + return true; +} + #ifdef __cplusplus } #endif diff --git a/components/hal/esp32p4/include/hal/efuse_ll.h b/components/hal/esp32p4/include/hal/efuse_ll.h index 11fd66c61d0..c9aefa8f082 100644 --- a/components/hal/esp32p4/include/hal/efuse_ll.h +++ b/components/hal/esp32p4/include/hal/efuse_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -144,6 +144,21 @@ __attribute__((always_inline)) static inline uint32_t efuse_ll_get_controller_st return EFUSE.status.state; } +__attribute__((always_inline)) static inline uint32_t efuse_ll_get_active_hp_dbias(void) +{ + return EFUSE.rd_mac_sys_4.active_hp_dbias; +} + +__attribute__((always_inline)) static inline uint32_t efuse_ll_get_active_lp_dbias(void) +{ + return EFUSE.rd_mac_sys_4.active_lp_dbias; +} + +__attribute__((always_inline)) static inline int32_t efuse_ll_get_dbias_vol_gap(void) +{ + return EFUSE.rd_mac_sys_5.lp_dcdc_dbias_vol_gap; +} + /******************* eFuse control functions *************************/ #ifdef __cplusplus diff --git a/components/hal/esp32p4/include/hal/lcd_ll.h b/components/hal/esp32p4/include/hal/lcd_ll.h index 7c67bbadefc..416e93b5202 100644 --- a/components/hal/esp32p4/include/hal/lcd_ll.h +++ b/components/hal/esp32p4/include/hal/lcd_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -726,6 +726,12 @@ static inline void lcd_ll_enable_interrupt(lcd_cam_dev_t *dev, uint32_t mask, bo dev->lc_dma_int_ena.val &= ~(mask & 0x03); } } +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_ATOMIC_ENV variable in advance +#define lcd_ll_enable_interrupt(...) do { \ + (void)__DECLARE_RCC_ATOMIC_ENV; \ + lcd_ll_enable_interrupt(__VA_ARGS__); \ + } while(0) /** * @brief Get interrupt status value diff --git a/components/hal/esp32p4/include/hal/pmu_ll.h b/components/hal/esp32p4/include/hal/pmu_ll.h index 46f3f5902e7..599dcbb79a8 100644 --- a/components/hal/esp32p4/include/hal/pmu_ll.h +++ b/components/hal/esp32p4/include/hal/pmu_ll.h @@ -702,6 +702,7 @@ static inline uint32_t pmu_ll_ext1_get_wakeup_status(void) static inline void pmu_ll_ext1_clear_wakeup_status(void) { REG_SET_BIT(PMU_EXT_WAKEUP_CNTL_REG, PMU_EXT_WAKEUP_STATUS_CLR); + REG_CLR_BIT(PMU_EXT_WAKEUP_CNTL_REG, PMU_EXT_WAKEUP_STATUS_CLR); } /** diff --git a/components/hal/esp32p4/include/hal/touch_sensor_ll.h b/components/hal/esp32p4/include/hal/touch_sensor_ll.h index 37280c3b5d2..5d47aa137ec 100644 --- a/components/hal/esp32p4/include/hal/touch_sensor_ll.h +++ b/components/hal/esp32p4/include/hal/touch_sensor_ll.h @@ -45,7 +45,7 @@ extern "C" { #define TOUCH_LL_INTR_MASK_PROX_DONE BIT(5) #define TOUCH_LL_INTR_MASK_ALL (0x3F) -#define TOUCH_LL_FULL_CHANNEL_MASK ((uint16_t)((1U << SOC_TOUCH_SENSOR_NUM) - 1)) +#define TOUCH_LL_FULL_CHANNEL_MASK ((uint16_t)((1U << (SOC_TOUCH_SENSOR_NUM)) - 1) << SOC_TOUCH_MIN_CHAN_ID) #define TOUCH_LL_NULL_CHANNEL (15) // Null Channel id. Used for disabling some functions like sleep/proximity/waterproof #define TOUCH_LL_PAD_MEASURE_WAIT_MAX (0x7FFF) // The timer frequency is 8Mhz, the max value is 0xff @@ -273,8 +273,7 @@ static inline void touch_ll_trigger_oneshot_measurement(void) static inline void touch_ll_measure_channel_once(uint16_t chan_mask) { - // Channel shift workaround - LP_ANA_PERI.touch_mux1.touch_start = chan_mask << 1; + LP_ANA_PERI.touch_mux1.touch_start = chan_mask; } /** @@ -290,8 +289,7 @@ static inline void touch_ll_measure_channel_once(uint16_t chan_mask) static inline void touch_ll_set_chan_active_threshold(uint32_t touch_num, uint8_t sample_cfg_id, uint32_t thresh) { HAL_ASSERT(sample_cfg_id < SOC_TOUCH_SAMPLE_CFG_NUM); - // Channel shift workaround - HAL_FORCE_MODIFY_U32_REG_FIELD(LP_ANA_PERI.touch_padx_thn[touch_num + 1].thresh[sample_cfg_id], threshold, thresh); // codespell:ignore + HAL_FORCE_MODIFY_U32_REG_FIELD(LP_ANA_PERI.touch_padx_thn[touch_num].thresh[sample_cfg_id], threshold, thresh); // codespell:ignore } /** @@ -304,8 +302,8 @@ static inline void touch_ll_set_chan_active_threshold(uint32_t touch_num, uint8_ __attribute__((always_inline)) static inline void touch_ll_enable_scan_mask(uint16_t chan_mask, bool enable) { - // Channel shift workaround: the lowest bit takes no effect - uint16_t mask = (chan_mask << 1) & TOUCH_PAD_BIT_MASK_ALL; + // the lowest bit takes no effect + uint16_t mask = chan_mask & TOUCH_LL_FULL_CHANNEL_MASK; uint16_t prev_mask = LP_ANA_PERI.touch_scan_ctrl1.touch_scan_pad_map; if (enable) { LP_ANA_PERI.touch_scan_ctrl1.touch_scan_pad_map = prev_mask | mask; @@ -328,8 +326,8 @@ static inline void touch_ll_enable_scan_mask(uint16_t chan_mask, bool enable) */ static inline void touch_ll_set_channel_mask(uint16_t enable_mask) { - // Channel shift workaround: the lowest bit takes no effect - uint16_t mask = (enable_mask << 1) & TOUCH_PAD_BIT_MASK_ALL; + // the lowest bit takes no effect + uint16_t mask = enable_mask & TOUCH_LL_FULL_CHANNEL_MASK; LP_ANA_PERI.touch_scan_ctrl1.touch_scan_pad_map = mask; LP_ANA_PERI.touch_filter2.touch_outen = mask; } @@ -342,9 +340,8 @@ static inline void touch_ll_set_channel_mask(uint16_t enable_mask) __attribute__((always_inline)) static inline void touch_ll_channel_sw_measure_mask(uint16_t chan_mask) { - // Channel shift workaround - LP_ANA_PERI.touch_mux1.touch_xpd = chan_mask << 1; - LP_ANA_PERI.touch_mux1.touch_start = chan_mask << 1; + LP_ANA_PERI.touch_mux1.touch_xpd = chan_mask; + LP_ANA_PERI.touch_mux1.touch_start = chan_mask; } /** @@ -355,8 +352,7 @@ static inline void touch_ll_channel_sw_measure_mask(uint16_t chan_mask) static inline void touch_ll_channel_power_off(uint16_t chan_mask) { uint32_t curr_mask = LP_ANA_PERI.touch_mux1.touch_xpd; - // Channel shift workaround - LP_ANA_PERI.touch_mux1.touch_xpd = (~(chan_mask << 1)) & curr_mask; + LP_ANA_PERI.touch_mux1.touch_xpd = (~chan_mask) & curr_mask; } /** @@ -367,8 +363,7 @@ static inline void touch_ll_channel_power_off(uint16_t chan_mask) __attribute__((always_inline)) static inline void touch_ll_get_active_channel_mask(uint32_t *active_mask) { - // Channel shift workaround - *active_mask = (LP_TOUCH.chn_status.pad_active >> 1); + *active_mask = LP_TOUCH.chn_status.pad_active; } /** @@ -400,8 +395,7 @@ static inline void touch_ll_read_chan_data(uint32_t touch_num, uint8_t sample_cf HAL_ASSERT(type == TOUCH_LL_READ_BENCHMARK || type == TOUCH_LL_READ_SMOOTH); LP_ANA_PERI.touch_mux0.touch_freq_sel = sample_cfg_id; LP_ANA_PERI.touch_mux0.touch_data_sel = type; - // Channel shift workaround - *data = LP_TOUCH.chn_data[touch_num + 1].pad_data; + *data = HAL_FORCE_READ_U32_REG_FIELD(LP_TOUCH.chn_data[touch_num], pad_data); } /** @@ -416,11 +410,6 @@ static inline bool touch_ll_is_measure_done(void) return (bool)LP_TOUCH.chn_status.meas_done; } -static inline uint32_t touch_ll_get_current_measure_channel(void) -{ - // Channel shift workaround - return (uint32_t)(LP_TOUCH.chn_status.scan_curr - 1); -} /** * Select the counting mode of the binarized touch out wave * @@ -493,8 +482,11 @@ static inline void touch_ll_set_idle_channel_connect(touch_pad_conn_type_t type) __attribute__((always_inline)) static inline uint32_t touch_ll_get_current_meas_channel(void) { - // Channel shift workaround - return (uint32_t)(LP_TOUCH.chn_status.scan_curr - 1); + uint32_t curr_chan = LP_TOUCH.chn_status.scan_curr; + HAL_ASSERT(curr_chan < 14); + // Workaround: the curr channel read 0 when the actual channel is 14 + curr_chan = curr_chan == 0 ? 14 : curr_chan; + return curr_chan; } /** @@ -770,8 +762,7 @@ static inline void touch_ll_force_update_benchmark(uint32_t benchmark) */ static inline void touch_ll_waterproof_set_guard_chan(uint32_t pad_num) { - // Channel shift workaround - LP_ANA_PERI.touch_scan_ctrl2.touch_out_ring = pad_num == TOUCH_LL_NULL_CHANNEL ? TOUCH_LL_NULL_CHANNEL : pad_num + 1; + LP_ANA_PERI.touch_scan_ctrl2.touch_out_ring = pad_num; } /** @@ -794,8 +785,7 @@ static inline void touch_ll_waterproof_enable(bool enable) */ static inline void touch_ll_waterproof_set_shield_chan_mask(uint32_t mask) { - // Channel shift workaround - LP_ANA_PERI.touch_mux0.touch_bufsel = mask << 1; + LP_ANA_PERI.touch_mux0.touch_bufsel = mask; } /** @@ -821,16 +811,13 @@ static inline void touch_ll_set_proximity_sensing_channel(uint8_t prox_chan, uin { switch (prox_chan) { case 0: - // Channel shift workaround - LP_ANA_PERI.touch_approach.touch_approach_pad0 = touch_num + 1; + LP_ANA_PERI.touch_approach.touch_approach_pad0 = touch_num; break; case 1: - // Channel shift workaround - LP_ANA_PERI.touch_approach.touch_approach_pad1 = touch_num + 1; + LP_ANA_PERI.touch_approach.touch_approach_pad1 = touch_num; break; case 2: - // Channel shift workaround - LP_ANA_PERI.touch_approach.touch_approach_pad2 = touch_num + 1; + LP_ANA_PERI.touch_approach.touch_approach_pad2 = touch_num; break; default: // invalid proximity channel @@ -921,8 +908,7 @@ static inline bool touch_ll_is_proximity_sensing_channel(uint32_t touch_num) */ static inline void touch_ll_sleep_set_channel_num(uint32_t touch_num) { - // Channel shift workaround - LP_ANA_PERI.touch_slp0.touch_slp_pad = touch_num + 1; + LP_ANA_PERI.touch_slp0.touch_slp_pad = touch_num; } /** diff --git a/components/hal/esp32s3/include/hal/cam_ll.h b/components/hal/esp32s3/include/hal/cam_ll.h new file mode 100644 index 00000000000..28b151fa92d --- /dev/null +++ b/components/hal/esp32s3/include/hal/cam_ll.h @@ -0,0 +1,621 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once + +#include +#include "hal/misc.h" +#include "hal/assert.h" +#include "soc/lcd_cam_struct.h" +#include "soc/system_struct.h" +#include "hal/cam_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define CAM_LL_GET_HW(id) (((id) == 0) ? (&LCD_CAM) : NULL) + +#define CAM_LL_CLK_FRAC_DIV_N_MAX 256 // CAM_CLK = CAM_CLK_S / (N + b/a), the N register is 8 bit-width +#define CAM_LL_CLK_FRAC_DIV_AB_MAX 64 // CAM_CLK = CAM_CLK_S / (N + b/a), the a/b register is 6 bit-width + +/** + * @brief Enable the bus clock for CAM module + * + * @param group_id Group ID + * @param enable true to enable, false to disable + */ +static inline void cam_ll_enable_bus_clock(int group_id, bool en) +{ + (void)group_id; + SYSTEM.perip_clk_en1.lcd_cam_clk_en = en; +} +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_RC_ATOMIC_ENV variable in advance +#define cam_ll_enable_bus_clock(...) do { \ + (void)__DECLARE_RCC_RC_ATOMIC_ENV; \ + cam_ll_enable_bus_clock(__VA_ARGS__); \ + } while(0) + +/** + * @brief Reset the CAM module + * + * @param group_id Group ID + */ +static inline void cam_ll_reset_register(int group_id) +{ + (void)group_id; + SYSTEM.perip_rst_en1.lcd_cam_rst = 1; + SYSTEM.perip_rst_en1.lcd_cam_rst = 0; +} + +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_RC_ATOMIC_ENV variable in advance +#define cam_ll_reset_register(...) do { \ + (void)__DECLARE_RCC_RC_ATOMIC_ENV; \ + cam_ll_reset_register(__VA_ARGS__); \ + } while(0) + +/** + * @brief Enable clock gating + * + * @param group_id Group ID + * @param en True to enable, False to disable + */ +static inline void cam_ll_enable_clk(int group_id, bool en) +{ + (void)group_id; + (void)en; + //For compatibility +} + +/** + * @brief Select clock source for CAM peripheral + * + * @param group_id Group ID + * @param src Clock source + */ +static inline void cam_ll_select_clk_src(int group_id, cam_clock_source_t src) +{ + switch (src) { + case CAM_CLK_SRC_XTAL: + LCD_CAM.cam_ctrl.cam_clk_sel = 1; + break; + case CAM_CLK_SRC_PLL240M: + LCD_CAM.cam_ctrl.cam_clk_sel = 2; + break; + case CAM_CLK_SRC_PLL160M: + LCD_CAM.cam_ctrl.cam_clk_sel = 3; + break; + default: + // disable LCD clock source + LCD_CAM.cam_ctrl.cam_clk_sel = 0; + HAL_ASSERT(false); + break; + } +} + +/** + * @brief Get the CAM source clock type + * + * @param dev CAM register base address + * @param src The pointer to accept the CAM source clock type + */ +static inline void cam_ll_get_clk_src(lcd_cam_dev_t *dev, cam_clock_source_t *src) +{ + switch (LCD_CAM.cam_ctrl.cam_clk_sel) { + case 1: + *src = CAM_CLK_SRC_XTAL; + break; + case 2: + *src = CAM_CLK_SRC_PLL240M; + break; + case 3: + *src = CAM_CLK_SRC_PLL160M; + break; + default: + HAL_ASSERT(false); + break; + } +} + +/** + * @brief Set clock coefficient of CAM peripheral + * + * @param group_id Group ID + * @param div_num Integer part of the divider + * @param div_a denominator of the divider + * @param div_b numerator of the divider + */ +__attribute__((always_inline)) +static inline void cam_ll_set_group_clock_coeff(int group_id, int div_num, int div_a, int div_b) +{ + HAL_ASSERT(div_num >= 2 && div_num < CAM_LL_CLK_FRAC_DIV_N_MAX); + + LCD_CAM.cam_ctrl.cam_clkm_div_num = div_num; + LCD_CAM.cam_ctrl.cam_clkm_div_a = div_a; + LCD_CAM.cam_ctrl.cam_clkm_div_b = div_b; +} + +/** + * @brief Enable stop signal for CAM peripheral + * + * @param dev CAM register base address + * @param en True to stop when GDMA Rx FIFO is full, False to not stop + */ +static inline void cam_ll_enable_stop_signal(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl.cam_stop_en = en; +} + +/** + * @brief Set vsync filter threshold value + * + * @param dev CAM register base address + * @param value Filter threshold value for CAM_VSYNC_SIGNAL, range [0, 7] + */ +static inline void cam_ll_set_vsync_filter_thres(lcd_cam_dev_t *dev, uint32_t value) +{ + dev->cam_ctrl.cam_vsync_filter_thres = value; +} + +/** + * @brief Enable to generate LCD_CAM_CAM_HS_INT + * + * @param dev CAM register base address + * @param en True to enable to generate LCD_CAM_CAM_HS_INT, False to disable + */ +static inline void cam_ll_enable_hs_line_int(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl.cam_line_int_en = en; +} + +/** + * @brief Enable CAM_VSYNC to generate in_suc_eof + * + * @param dev CAM register base address + * @param en True to enable CAM_VSYNC to generate in_suc_eof, False to use LCD_CAM_CAM_REC_DATA_BYTELEN to control in_suc_eof + */ +static inline void cam_ll_enable_vsync_generate_eof(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl.cam_vs_eof_en = en; +} + +/** + * @brief Enable to swap every two 8-bit input data + * + * @param dev CAM register base address + * @param en True to enable invert, False to disable invert + */ +static inline void cam_ll_enable_8bits_data_invert(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_rgb_yuv.cam_conv_8bits_data_inv = en; +} + +/** + * @brief Enable YUV-RGB converter + * + * @param dev CAM register base address + * @param en True to enable converter, False to disable converter + */ +static inline void cam_ll_enable_rgb_yuv_convert(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_rgb_yuv.cam_conv_bypass = en; +} + +/** + * @brief Set convert data line width + * + * @param dev CAM register base address + * @param width data line width (8 or 16) + */ +static inline void cam_ll_set_convert_data_width(lcd_cam_dev_t *dev, uint32_t width) +{ + HAL_ASSERT(width == 8 || width == 16); + dev->cam_rgb_yuv.cam_conv_mode_8bits_on = (width == 8) ? 1 : 0; +} + +/** + * @brief Set the color range of input data + * + * @param dev CAM register base address + * @param range Color range + */ +static inline void cam_ll_set_input_color_range(lcd_cam_dev_t *dev, color_range_t range) +{ + if (range == COLOR_RANGE_LIMIT) { + dev->cam_rgb_yuv.cam_conv_data_in_mode = 0; + } else if (range == COLOR_RANGE_FULL) { + dev->cam_rgb_yuv.cam_conv_data_in_mode = 1; + } +} + +/** + * @brief Set the color range of output data + * + * @param dev CAM register base address + * @param range Color range + */ +static inline void cam_ll_set_output_color_range(lcd_cam_dev_t *dev, color_range_t range) +{ + if (range == COLOR_RANGE_LIMIT) { + dev->cam_rgb_yuv.cam_conv_data_out_mode = 0; + } else if (range == COLOR_RANGE_FULL) { + dev->cam_rgb_yuv.cam_conv_data_out_mode = 1; + } +} + +/** + * @brief Set YUV conversion standard + * + * @param dev CAM register base address + * @param std YUV conversion standard + */ +static inline void cam_ll_set_yuv_convert_std(lcd_cam_dev_t *dev, color_conv_std_rgb_yuv_t std) +{ + if (std == COLOR_CONV_STD_RGB_YUV_BT601) { + dev->cam_rgb_yuv.cam_conv_protocol_mode = 0; + } else if (std == COLOR_CONV_STD_RGB_YUV_BT709) { + dev->cam_rgb_yuv.cam_conv_protocol_mode = 1; + } +} + +/** + * @brief Set the converter mode: RGB565 to YUV + * + * @param dev CAM register base address + * @param yuv_sample YUV sample mode + */ +static inline void cam_ll_set_convert_mode_rgb_to_yuv(lcd_cam_dev_t *dev, color_pixel_yuv_format_t yuv_sample) +{ + dev->cam_rgb_yuv.cam_conv_trans_mode = 1; + dev->cam_rgb_yuv.cam_conv_yuv2yuv_mode = 3; + switch (yuv_sample) { + case COLOR_PIXEL_YUV422: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 0; + break; + case COLOR_PIXEL_YUV420: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 1; + break; + case COLOR_PIXEL_YUV411: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 2; + break; + default: + abort(); + } +} + +/** + * @brief Set the converter mode: YUV to RGB565 + * + * @param dev CAM register base address + * @param yuv_sample YUV sample mode + */ +static inline void cam_ll_set_convert_mode_yuv_to_rgb(lcd_cam_dev_t *dev, color_pixel_yuv_format_t yuv_sample) +{ + dev->cam_rgb_yuv.cam_conv_trans_mode = 0; + dev->cam_rgb_yuv.cam_conv_yuv2yuv_mode = 3; + switch (yuv_sample) { + case COLOR_PIXEL_YUV422: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 0; + break; + case COLOR_PIXEL_YUV420: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 1; + break; + case COLOR_PIXEL_YUV411: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 2; + break; + default: + abort(); + } +} + +/** + * @brief Set the converter mode: YUV to YUV + * + * @param dev CAM register base address + * @param src_sample Source YUV sample mode + * @param dst_sample Destination YUV sample mode + */ +static inline void cam_ll_set_convert_mode_yuv_to_yuv(lcd_cam_dev_t *dev, color_pixel_yuv_format_t src_sample, color_pixel_yuv_format_t dst_sample) +{ + HAL_ASSERT(src_sample != dst_sample); + dev->cam_rgb_yuv.cam_conv_trans_mode = 1; + switch (src_sample) { + case COLOR_PIXEL_YUV422: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 0; + break; + case COLOR_PIXEL_YUV420: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 1; + break; + case COLOR_PIXEL_YUV411: + dev->cam_rgb_yuv.cam_conv_yuv_mode = 2; + break; + default: + abort(); + } + switch (dst_sample) { + case COLOR_PIXEL_YUV422: + dev->cam_rgb_yuv.cam_conv_yuv2yuv_mode = 0; + break; + case COLOR_PIXEL_YUV420: + dev->cam_rgb_yuv.cam_conv_yuv2yuv_mode = 1; + break; + case COLOR_PIXEL_YUV411: + dev->cam_rgb_yuv.cam_conv_yuv2yuv_mode = 2; + break; + default: + abort(); + } +} + +/** + * @brief Set camera received data byte length + * + * @param dev CAM register base address + * @param length received data byte length, range [0, 0xFFFF] + */ +static inline void cam_ll_set_recv_data_bytelen(lcd_cam_dev_t *dev, uint32_t length) +{ + HAL_FORCE_MODIFY_U32_REG_FIELD(dev->cam_ctrl1, cam_rec_data_bytelen, length); +} + +/** + * @brief Set line number to trigger interrupt + * + * @param dev CAM register base address + * @param number line number to trigger hs interrupt, range [0, 0x3F] + */ +static inline void cam_ll_set_line_int_num(lcd_cam_dev_t *dev, uint32_t number) +{ + dev->cam_ctrl1.cam_line_int_num = number; +} + +/** + * @brief Whether to invert the input signal CAM_PCLK + * + * @param dev CAM register base address + * @param en True to invert, False to not invert + */ +static inline void cam_ll_enable_invert_pclk(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl1.cam_clk_inv = en; +} + +/** + * @brief Enable CAM_VSYNC filter function + * + * @param dev CAM register base address + * @param en True to enable, False to bypass + */ +static inline void cam_ll_enable_vsync_filter(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl1.cam_vsync_filter_en = en; +} + +/** + * @brief Set CAM input data width + * + * @param dev CAM register base address + * @param stride 16: The bit number of input data is 9~16. 8: The bit number of input data is 0~8. + */ +static inline void cam_ll_set_input_data_width(lcd_cam_dev_t *dev, uint32_t stride) +{ + switch (stride) { + case 8: + dev->cam_ctrl1.cam_2byte_en = 0; + break; + case 16: + dev->cam_ctrl1.cam_2byte_en = 1; + break; + default: + HAL_ASSERT(false); + break; + } +} + +/** + * @brief Whether to invert CAM_DE + * + * @param dev CAM register base address + * @param en True to invert, False to not invert + */ +static inline void cam_ll_enable_invert_de(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl1.cam_de_inv = en; +} + +/** + * @brief Whether to invert CAM_HSYNC + * + * @param dev CAM register base address + * @param en True to invert, False to not invert + */ +static inline void cam_ll_enable_invert_hsync(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl1.cam_hsync_inv = en; +} + +/** + * @brief Whether to invert CAM_VSYNC + * + * @param dev CAM register base address + * @param en True to invert, False to not invert + */ +static inline void cam_ll_enable_invert_vsync(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl1.cam_vsync_inv = en; +} + +/** + * @brief Enable the mode to control the input control signals + * + * @param dev CAM register base address + * @param mode 1: Input control signals are CAM_DE, CAM_HSYNC and CAM_VSYNC; + * 0: Input control signals are CAM_DE and CAM_VSYNC. CAM_HSYNC and CAM_DE are all 1 the the same time. + */ +static inline void cam_ll_set_vh_de_mode(lcd_cam_dev_t *dev, bool enable) +{ + dev->cam_ctrl1.cam_vh_de_mode_en = enable; +} + +/** + * @brief Get the mode of input control signals + * + * @param dev CAM register base address + * @param en The pointer to accept the vh_de mode status. 1: Input control signals are CAM_DE, CAM_HSYNC and CAM_VSYNC; + * 0: Input control signals are CAM_DE and CAM_VSYNC. CAM_HSYNC and CAM_DE are all 1 the the same time. + */ +static inline void cam_ll_get_vh_de_mode(lcd_cam_dev_t *dev, bool *en) +{ + *en = dev->cam_ctrl1.cam_vh_de_mode_en; +} + +/** + * @brief Set the wire width of CAM output + * + * @param dev CAM register base address + * @param width CAM output wire width + */ +static inline void cam_ll_set_data_wire_width(lcd_cam_dev_t *dev, uint32_t width) +{ + // data line width is same as data stride that set in `cam_ll_set_input_data_width` +} + +/** + * @brief Start the CAM transaction + * + * @param dev CAM register base address + */ +__attribute__((always_inline)) +static inline void cam_ll_start(lcd_cam_dev_t *dev) +{ + dev->cam_ctrl.cam_update = 1; + dev->cam_ctrl1.cam_start = 1; +} + +/** + * @brief Stop the CAM transaction + * + * @param dev CAM register base address + */ +__attribute__((always_inline)) +static inline void cam_ll_stop(lcd_cam_dev_t *dev) +{ + dev->cam_ctrl1.cam_start = 0; + dev->cam_ctrl.cam_update = 1; // self clear +} + +/** + * @brief Whether to reverse the data bit order + * + * @note It acts before the YUV-RGB converter + * + * @param dev CAM register base address + * @param en True to reverse, False to not reverse + */ +__attribute__((always_inline)) +static inline void cam_ll_reverse_dma_data_bit_order(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl.cam_bit_order = en; +} + +/** + * @brief Whether to swap adjacent two bytes + * + * @note This acts before the YUV-RGB converter, mainly to change the data endian. + * {B1,B0},{B3,B2} => {B0,B1}{B2,B3} + * + * @param dev CAM register base address + * @param en True to swap the byte order, False to not swap + */ +__attribute__((always_inline)) +static inline void cam_ll_swap_dma_data_byte_order(lcd_cam_dev_t *dev, bool en) +{ + dev->cam_ctrl.cam_byte_order = en; +} + +/** + * @brief Reset camera module + * + * @param dev CAM register base address + */ +__attribute__((always_inline)) +static inline void cam_ll_reset(lcd_cam_dev_t *dev) +{ + dev->cam_ctrl1.cam_reset = 1; // self clear +} + +/** + * @brief Reset Async RX FIFO + * + * @param dev CAM register base address + */ +__attribute__((always_inline)) +static inline void cam_ll_fifo_reset(lcd_cam_dev_t *dev) +{ + dev->cam_ctrl1.cam_afifo_reset = 1; // self clear +} + +/** + * @brief Enable/disable interrupt by mask + * + * @param dev CAM register base address + * @param mask Interrupt mask + * @param en True to enable interrupt, False to disable interrupt + */ +static inline void cam_ll_enable_interrupt(lcd_cam_dev_t *dev, uint32_t mask, bool en) +{ + if (en) { + dev->lc_dma_int_ena.val |= mask & 0x0c; + } else { + dev->lc_dma_int_ena.val &= ~(mask & 0x0c); + } +} +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_ATOMIC_ENV variable in advance +#define cam_ll_enable_interrupt(...) do { \ + (void)__DECLARE_RCC_ATOMIC_ENV; \ + cam_ll_enable_interrupt(__VA_ARGS__); \ + } while(0) + +/** + * @brief Get interrupt status value + * + * @param dev CAM register base address + * @return Interrupt status value + */ +__attribute__((always_inline)) +static inline uint32_t cam_ll_get_interrupt_status(lcd_cam_dev_t *dev) +{ + return dev->lc_dma_int_st.val & 0x0c; +} + +/** + * @brief Clear interrupt status by mask + * + * @param dev CAM register base address + * @param mask Interrupt status mask + */ +__attribute__((always_inline)) +static inline void cam_ll_clear_interrupt_status(lcd_cam_dev_t *dev, uint32_t mask) +{ + dev->lc_dma_int_clr.val = mask & 0x0c; +} + +/** + * @brief Get address of interrupt status register address + * + * @param dev CAM register base address + * @return Interrupt status register address + */ +static inline volatile void *cam_ll_get_interrupt_status_reg(lcd_cam_dev_t *dev) +{ + return &dev->lc_dma_int_st; +} + +#ifdef __cplusplus +} +#endif diff --git a/components/hal/esp32s3/include/hal/lcd_ll.h b/components/hal/esp32s3/include/hal/lcd_ll.h index 8ef0a32626d..644cbb7825b 100644 --- a/components/hal/esp32s3/include/hal/lcd_ll.h +++ b/components/hal/esp32s3/include/hal/lcd_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -709,6 +709,12 @@ static inline void lcd_ll_enable_interrupt(lcd_cam_dev_t *dev, uint32_t mask, bo dev->lc_dma_int_ena.val &= ~(mask & 0x03); } } +/// use a macro to wrap the function, force the caller to use it in a critical section +/// the critical section needs to declare the __DECLARE_RCC_ATOMIC_ENV variable in advance +#define lcd_ll_enable_interrupt(...) do { \ + (void)__DECLARE_RCC_ATOMIC_ENV; \ + lcd_ll_enable_interrupt(__VA_ARGS__); \ + } while(0) /** * @brief Get interrupt status value diff --git a/components/hal/include/hal/usb_dwc_hal.h b/components/hal/include/hal/usb_dwc_hal.h index d4c880571f7..9314bfdce61 100644 --- a/components/hal/include/hal/usb_dwc_hal.h +++ b/components/hal/include/hal/usb_dwc_hal.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -29,15 +29,6 @@ extern "C" { // ----------------------- Configs ------------------------- -/** - * @brief Possible FIFO biases - */ -typedef enum { - USB_HAL_FIFO_BIAS_DEFAULT, /**< Default (balanced) FIFO sizes */ - USB_HAL_FIFO_BIAS_RX, /**< Bigger RX FIFO for IN transfers */ - USB_HAL_FIFO_BIAS_PTX, /**< Bigger periodic TX FIFO for ISOC OUT transfers */ -} usb_hal_fifo_bias_t; - /** * @brief MPS limits based on FIFO configuration * @@ -261,20 +252,35 @@ void usb_dwc_hal_deinit(usb_dwc_hal_context_t *hal); void usb_dwc_hal_core_soft_reset(usb_dwc_hal_context_t *hal); /** - * @brief Set FIFO bias + * @brief Check if FIFO configuration is valid * - * This function will set the sizes of each of the FIFOs (RX FIFO, Non-periodic TX FIFO, Periodic TX FIFO) and must be - * called at least once before allocating the channel. Based on the type of endpoints (and the endpoints' MPS), there - * may be situations where this function may need to be called again to resize the FIFOs. If resizing FIFOs dynamically, - * it is the user's responsibility to ensure there are no active channels when this function is called. + * This function checks that the sum of FIFO sizes does not exceed available space. + * It does not modify hardware state and is safe to call from HAL or upper layers. * - * @note After a port reset, the FIFO size registers will reset to their default values, so this function must be called - * again post reset. - * - * @param[in] hal Context of the HAL layer - * @param[in] fifo_bias FIFO bias configuration + * @param[in] hal Pointer to HAL context (must be initialized) + * @param[in] config Pointer to FIFO config to validate + * @return true if config is valid, false otherwise */ -void usb_dwc_hal_set_fifo_bias(usb_dwc_hal_context_t *hal, const usb_hal_fifo_bias_t fifo_bias); +bool usb_dwc_hal_fifo_config_is_valid(const usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config); + + +/** + * @brief Set the FIFO sizes of the USB-DWC core + * + * This function programs the FIFO sizing registers (RX FIFO, Non-Periodic TX FIFO, + * and Periodic TX FIFO) based on the provided configuration. It must be called + * during USB initialization, before any channels are allocated or transfers started. + * + * The sum of all FIFO sizes must not exceed the hardware-defined limit + * (see HWCFG3.DfifoDepth and EPINFO_CTL). + * + * @note This function must be called exactly once during initialization and after + * each USB port reset. It is typically used internally by the USB Host stack. + * + * @param[inout] hal Pointer to the HAL context + * @param[in] config Pointer to the FIFO configuration to apply (must be valid) + */ +void usb_dwc_hal_set_fifo_config(usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config); /** * @brief Get MPS limits diff --git a/components/hal/test_apps/crypto/main/Kconfig.projbuild b/components/hal/test_apps/crypto/main/Kconfig.projbuild index ee68e84f19b..f51dbf67ca2 100644 --- a/components/hal/test_apps/crypto/main/Kconfig.projbuild +++ b/components/hal/test_apps/crypto/main/Kconfig.projbuild @@ -22,7 +22,7 @@ menu "Test App Configuration" Enabling this option includes HMAC Peripheral related test cases in the build for supported targets. config CRYPTO_TEST_APP_ENABLE_ECDSA_TESTS - depends on !CRYPTO_TEST_APP_ENABLE_HMAC_TESTS + depends on SOC_ECDSA_SUPPORTED && !CRYPTO_TEST_APP_ENABLE_HMAC_TESTS bool "Enable ECDSA Peripheral test cases" default n help diff --git a/components/hal/test_apps/crypto/main/ecdsa/test_ecdsa.c b/components/hal/test_apps/crypto/main/ecdsa/test_ecdsa.c index 6d29b0fccfc..c7ddbeecd72 100644 --- a/components/hal/test_apps/crypto/main/ecdsa/test_ecdsa.c +++ b/components/hal/test_apps/crypto/main/ecdsa/test_ecdsa.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: CC0-1.0 */ @@ -12,6 +12,8 @@ #include "esp_efuse_chip.h" #include "esp_private/esp_crypto_lock_internal.h" #include "esp_random.h" +#include "esp_log.h" +#include "esp_efuse.h" #include "hal/ecc_ll.h" #include "hal/ecdsa_hal.h" #include "hal/ecdsa_ll.h" @@ -27,6 +29,8 @@ #include "ecdsa_params.h" #include "hal_crypto_common.h" +__attribute__((unused)) static const char * TAG = "crypto_test"; + static void ecdsa_enable_and_reset(void) { ECDSA_RCC_ATOMIC() { @@ -147,9 +151,9 @@ void test_ecdsa_sign(bool is_p256, uint8_t* sha, uint8_t* r_le, uint8_t* s_le, b uint8_t zeroes[32] = {0}; uint16_t len; -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE +#if !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP uint16_t det_loop_number = 1; -#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ +#endif /* !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ ecdsa_hal_config_t conf = { .mode = ECDSA_MODE_SIGN_GEN, @@ -180,11 +184,11 @@ void test_ecdsa_sign(bool is_p256, uint8_t* sha, uint8_t* r_le, uint8_t* s_le, b bool process_again = false; do { -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - if (k_type == ECDSA_K_TYPE_DETERMINISITIC) { +#if !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + if (ecdsa_ll_is_deterministic_mode_supported() && k_type == ECDSA_K_TYPE_DETERMINISITIC) { conf.loop_number = det_loop_number++; } -#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ +#endif /* !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ ecdsa_hal_gen_signature(&conf, sha_le, r_le, s_le, len); @@ -192,8 +196,8 @@ void test_ecdsa_sign(bool is_p256, uint8_t* sha, uint8_t* r_le, uint8_t* s_le, b || !memcmp(r_le, zeroes, len) || !memcmp(s_le, zeroes, len); -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - if (k_type == ECDSA_K_TYPE_DETERMINISITIC) { +#if SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE && !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + if (ecdsa_ll_is_deterministic_mode_supported() && k_type == ECDSA_K_TYPE_DETERMINISITIC) { process_again |= !ecdsa_hal_det_signature_k_check(); } #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ @@ -282,17 +286,29 @@ TEST_TEAR_DOWN(ecdsa) TEST(ecdsa, ecdsa_SECP192R1_signature_verification) { - TEST_ASSERT_EQUAL(0, test_ecdsa_verify(0, sha, ecdsa192_r, ecdsa192_s, ecdsa192_pub_x, ecdsa192_pub_y)); + if (!esp_efuse_is_ecdsa_p192_curve_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA 192-curve operations are disabled."); + } else { + TEST_ASSERT_EQUAL(0, test_ecdsa_verify(0, sha, ecdsa192_r, ecdsa192_s, ecdsa192_pub_x, ecdsa192_pub_y)); + } } TEST(ecdsa, ecdsa_SECP192R1_sign_and_verify) { - test_ecdsa_sign_and_verify(0, sha, ecdsa192_pub_x, ecdsa192_pub_y, false, ECDSA_K_TYPE_TRNG); + if (!esp_efuse_is_ecdsa_p192_curve_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA 192-curve operations are disabled."); + } else { + test_ecdsa_sign_and_verify(0, sha, ecdsa192_pub_x, ecdsa192_pub_y, false, ECDSA_K_TYPE_TRNG); + } } TEST(ecdsa, ecdsa_SECP192R1_corrupt_signature) { - test_ecdsa_corrupt_data(0, sha, ecdsa192_r, ecdsa192_s, ecdsa192_pub_x, ecdsa192_pub_y); + if (!esp_efuse_is_ecdsa_p192_curve_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA 192-curve operations are disabled."); + } else { + test_ecdsa_corrupt_data(0, sha, ecdsa192_r, ecdsa192_s, ecdsa192_pub_x, ecdsa192_pub_y); + } } TEST(ecdsa, ecdsa_SECP256R1_signature_verification) @@ -313,19 +329,33 @@ TEST(ecdsa, ecdsa_SECP256R1_corrupt_signature) #ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE TEST(ecdsa, ecdsa_SECP192R1_det_sign_and_verify) { - test_ecdsa_sign_and_verify(0, sha, ecdsa192_pub_x, ecdsa192_pub_y, false, ECDSA_K_TYPE_DETERMINISITIC); + if (!ecdsa_ll_is_deterministic_mode_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA deterministic mode is not supported."); + } else if (!esp_efuse_is_ecdsa_p192_curve_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA 192-curve operations are disabled."); + } else { + test_ecdsa_sign_and_verify(0, sha, ecdsa192_pub_x, ecdsa192_pub_y, false, ECDSA_K_TYPE_DETERMINISITIC); + } } TEST(ecdsa, ecdsa_SECP256R1_det_sign_and_verify) { - test_ecdsa_sign_and_verify(1, sha, ecdsa256_pub_x, ecdsa256_pub_y, false, ECDSA_K_TYPE_DETERMINISITIC); + if (!ecdsa_ll_is_deterministic_mode_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA deterministic mode is not supported."); + } else { + test_ecdsa_sign_and_verify(1, sha, ecdsa256_pub_x, ecdsa256_pub_y, false, ECDSA_K_TYPE_DETERMINISITIC); + } } #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ #ifdef SOC_ECDSA_SUPPORT_EXPORT_PUBKEY TEST(ecdsa, ecdsa_SECP192R1_export_pubkey) { - test_ecdsa_export_pubkey(0, ecdsa192_pub_x, ecdsa192_pub_y, 0); + if (!esp_efuse_is_ecdsa_p192_curve_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA 192-curve operations are disabled."); + } else { + test_ecdsa_export_pubkey(0, ecdsa192_pub_x, ecdsa192_pub_y, 0); + } } TEST(ecdsa, ecdsa_SECP256R1_export_pubkey) diff --git a/components/hal/usb_dwc_hal.c b/components/hal/usb_dwc_hal.c index 342d76ee7f7..96b26d33b92 100644 --- a/components/hal/usb_dwc_hal.c +++ b/components/hal/usb_dwc_hal.c @@ -185,64 +185,53 @@ void usb_dwc_hal_core_soft_reset(usb_dwc_hal_context_t *hal) } } -void usb_dwc_hal_set_fifo_bias(usb_dwc_hal_context_t *hal, const usb_hal_fifo_bias_t fifo_bias) +bool usb_dwc_hal_fifo_config_is_valid(const usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config) { - HAL_ASSERT(hal->channels.hdls); - const uint16_t fifo_size_lines = hal->constant_config.fifo_size; - /* - * Recommended FIFO sizes (see 2.1.2.4 for programming guide) - * - * RXFIFO: ((LPS/4) * 2) + 2 - * NPTXFIFO: (LPS/4) * 2 - * PTXFIFO: (LPS/4) * 2 - * - * Recommended sizes fit 2 packets of each type. For S2 and S3 we can't fit even one MPS ISOC packet (1023 FS and 1024 HS). - * So the calculations below are compromises between the available FIFO size and optimal performance. - */ - - // Information for maintainers: this calculation is here for backward compatibility - // It should be removed when we allow HAL users to configure the FIFO sizes IDF-9042 - const int otg_dfifo_depth = hal->constant_config.hsphy_type ? 1024 : 256; - - usb_dwc_hal_fifo_config_t fifo_config; - switch (fifo_bias) { - // Define minimum viable (fits at least 1 MPS) FIFO sizes for non-biased FIFO types - // Allocate the remaining size to the biased FIFO type - case USB_HAL_FIFO_BIAS_DEFAULT: - fifo_config.nptx_fifo_lines = otg_dfifo_depth / 4; - fifo_config.ptx_fifo_lines = otg_dfifo_depth / 8; - fifo_config.rx_fifo_lines = fifo_size_lines - fifo_config.ptx_fifo_lines - fifo_config.nptx_fifo_lines; - break; - case USB_HAL_FIFO_BIAS_RX: - fifo_config.nptx_fifo_lines = otg_dfifo_depth / 16; - fifo_config.ptx_fifo_lines = otg_dfifo_depth / 8; - fifo_config.rx_fifo_lines = fifo_size_lines - fifo_config.ptx_fifo_lines - fifo_config.nptx_fifo_lines; - break; - case USB_HAL_FIFO_BIAS_PTX: - fifo_config.rx_fifo_lines = otg_dfifo_depth / 8 + 2; // 2 extra lines are allocated for status information. See USB-OTG Programming Guide, chapter 2.1.2.1 - fifo_config.nptx_fifo_lines = otg_dfifo_depth / 16; - fifo_config.ptx_fifo_lines = fifo_size_lines - fifo_config.nptx_fifo_lines - fifo_config.rx_fifo_lines; - break; - default: - abort(); + if (!hal || !config) { + return false; } + uint32_t used_lines = config->rx_fifo_lines + config->nptx_fifo_lines + config->ptx_fifo_lines; + return (used_lines <= hal->constant_config.fifo_size); +} - HAL_ASSERT((fifo_config.rx_fifo_lines + fifo_config.nptx_fifo_lines + fifo_config.ptx_fifo_lines) <= fifo_size_lines); - //Check that none of the channels are active + +void usb_dwc_hal_set_fifo_config(usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config) +{ + // Check internal HAL state + HAL_ASSERT(hal != NULL); + HAL_ASSERT(hal->channels.hdls != NULL); + + // Validate provided config + HAL_ASSERT(config != NULL); + + // Check if configuration exceeds available FIFO memory + HAL_ASSERT(usb_dwc_hal_fifo_config_is_valid(hal, config)); + + // Ensure no active channels (must only be called before USB install completes) for (int i = 0; i < hal->constant_config.chan_num_total; i++) { if (hal->channels.hdls[i] != NULL) { HAL_ASSERT(!hal->channels.hdls[i]->flags.active); } } - //Set the new FIFO lengths - usb_dwc_ll_grxfsiz_set_fifo_size(hal->dev, fifo_config.rx_fifo_lines); - usb_dwc_ll_gnptxfsiz_set_fifo_size(hal->dev, fifo_config.rx_fifo_lines, fifo_config.nptx_fifo_lines); - usb_dwc_ll_hptxfsiz_set_ptx_fifo_size(hal->dev, fifo_config.rx_fifo_lines + fifo_config.nptx_fifo_lines, fifo_config.ptx_fifo_lines); - //Flush the FIFOs + + // Program FIFO size registers + usb_dwc_ll_grxfsiz_set_fifo_size(hal->dev, config->rx_fifo_lines);// Set RX FIFO size (GRXFSIZ) + // Set Non-Periodic TX FIFO (GNPTXFSIZ) + // Offset = RX FIFO lines + usb_dwc_ll_gnptxfsiz_set_fifo_size(hal->dev, config->rx_fifo_lines, config->nptx_fifo_lines); + // Set Periodic TX FIFO (HPTXFSIZ) + // Offset = RX + NPTX + usb_dwc_ll_hptxfsiz_set_ptx_fifo_size(hal->dev, + config->rx_fifo_lines + config->nptx_fifo_lines, + config->ptx_fifo_lines); + + // Flush all FIFOs usb_dwc_ll_grstctl_flush_nptx_fifo(hal->dev); usb_dwc_ll_grstctl_flush_ptx_fifo(hal->dev); usb_dwc_ll_grstctl_flush_rx_fifo(hal->dev); - hal->fifo_config = fifo_config; // Implicit struct copy + + // Save configuration to HAL context + hal->fifo_config = *config; hal->flags.fifo_sizes_set = 1; } diff --git a/components/ieee802154/driver/esp_ieee802154_dev.c b/components/ieee802154/driver/esp_ieee802154_dev.c index c6b7868f9c9..c40505578a2 100644 --- a/components/ieee802154/driver/esp_ieee802154_dev.c +++ b/components/ieee802154/driver/esp_ieee802154_dev.c @@ -385,6 +385,7 @@ static IRAM_ATTR void next_operation(void) #if !CONFIG_IEEE802154_TEST if (s_pending_tx.frame) { // Here the driver needs to recover the setting of rx aborts, see function `ieee802154_transmit`. + ieee802154_ll_disable_rx_abort_events(IEEE802154_RX_ABORT_ALL); ieee802154_ll_enable_rx_abort_events(BIT(IEEE802154_RX_ABORT_BY_TX_ACK_TIMEOUT - 1) | BIT(IEEE802154_RX_ABORT_BY_TX_ACK_COEX_BREAK - 1)); // Clear the RX abort event again for avoiding the risk if there are still some rx abort events created after last isr process. ieee802154_ll_clear_events(IEEE802154_EVENT_RX_ABORT); diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 33f87955b22..574025461de 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -371,9 +371,9 @@ menu "LWIP" config LWIP_DHCP_OPTIONS_LEN int "DHCP total option length" - default 68 if LWIP_DHCP_DISABLE_VENDOR_CLASS_ID - default 108 if !LWIP_DHCP_DISABLE_VENDOR_CLASS_ID - range 68 255 + default 69 if LWIP_DHCP_DISABLE_VENDOR_CLASS_ID + default 109 if !LWIP_DHCP_DISABLE_VENDOR_CLASS_ID + range 69 255 depends on LWIP_IPV4 help Set total length of outgoing DHCP option msg. Generally bigger value means it can carry more diff --git a/components/lwip/port/hooks/lwip_default_hooks.c b/components/lwip/port/hooks/lwip_default_hooks.c index ce951695845..b8b5bcc79ee 100644 --- a/components/lwip/port/hooks/lwip_default_hooks.c +++ b/components/lwip/port/hooks/lwip_default_hooks.c @@ -8,10 +8,20 @@ #include "lwip/prot/dhcp.h" #include "lwip/dhcp.h" #include "lwip/prot/iana.h" +#include "esp_log.h" #include #define __weak __attribute__((weak)) +/** + * Default lwip behavior is to silence LWIP_ERROR() if LWIP_DEBUG is not set. + * In some case (if IDF hooks are used), we need to log the error message + * instead of silently ignoring it -- using this macro + */ +#define LWIP_ERROR_LOG(message, expression, handler) do { if (!(expression)) { \ + ESP_LOGE("LWIP_ERROR", message); \ + handler;}} while(0) + #ifdef CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT struct netif *__weak lwip_hook_ip6_route(const ip6_addr_t *src, const ip6_addr_t *dest) @@ -243,8 +253,9 @@ void dhcp_append_extra_opts(struct netif *netif, uint8_t state, struct dhcp_msg state == DHCP_STATE_REQUESTING || state == DHCP_STATE_BACKING_OFF || state == DHCP_STATE_SELECTING) { size_t i; u8_t *options = msg_out->options + *options_out_len; - LWIP_ERROR("dhcp_append(client_id): options_out_len + 3 + netif->hwaddr_len <= DHCP_OPTIONS_LEN", - *options_out_len + 3U + netif->hwaddr_len <= DHCP_OPTIONS_LEN, return;); + /* size of this option is not hwaddr_len, but hwaddr_len + 1 (IANA_HWTYPE_ETHERNET) */ + LWIP_ERROR_LOG("dhcp_append(client_id): options_out_len + 3 + (netif->hwaddr_len + 1) <= DHCP_OPTIONS_LEN, please increase LWIP_DHCP_OPTIONS_LEN", + *options_out_len + 3U + (netif->hwaddr_len + 1) <= DHCP_OPTIONS_LEN, return;); *options_out_len = *options_out_len + netif->hwaddr_len + 3; *options++ = DHCP_OPTION_CLIENT_ID; *options++ = netif->hwaddr_len + 1; /* option size */ @@ -274,7 +285,7 @@ void dhcp_append_extra_opts(struct netif *netif, uint8_t state, struct dhcp_msg } #endif /* LWIP_NETIF_HOSTNAME */ } - LWIP_ERROR("dhcp_append(vci): options_out_len + 3 + vci_size <= DHCP_OPTIONS_LEN", + LWIP_ERROR_LOG("dhcp_append(vci): options_out_len + 3 + vci_size <= DHCP_OPTIONS_LEN, please increase LWIP_DHCP_OPTIONS_LEN", *options_out_len + 3U + len <= DHCP_OPTIONS_LEN, return;); if (p) { u8_t *options = msg_out->options + *options_out_len; diff --git a/components/mbedtls/CMakeLists.txt b/components/mbedtls/CMakeLists.txt index d3f4fe40a7d..7174837f052 100644 --- a/components/mbedtls/CMakeLists.txt +++ b/components/mbedtls/CMakeLists.txt @@ -247,9 +247,11 @@ if(CONFIG_SOC_SHA_SUPPORTED) ) endif() -# CONFIG_ESP_TLS_USE_DS_PERIPHERAL can be enabled only for the supported targets. -if(CONFIG_ESP_TLS_USE_DS_PERIPHERAL) - target_sources(mbedcrypto PRIVATE "${COMPONENT_DIR}/port/esp_ds/esp_rsa_sign_alt.c") +if(CONFIG_SOC_DIG_SIGN_SUPPORTED) +target_sources(mbedcrypto PRIVATE + "${COMPONENT_DIR}/port/esp_ds/esp_rsa_sign_alt.c" + "${COMPONENT_DIR}/port/esp_ds/esp_rsa_dec_alt.c" + "${COMPONENT_DIR}/port/esp_ds/esp_ds_common.c") endif() # Note: some mbedTLS hardware acceleration can be enabled/disabled by config. diff --git a/components/mbedtls/Kconfig b/components/mbedtls/Kconfig index fab5a91960c..dba613b43c5 100644 --- a/components/mbedtls/Kconfig +++ b/components/mbedtls/Kconfig @@ -245,6 +245,15 @@ menu "mbedTLS" See mbedTLS documentation for required API and more details. + config MBEDTLS_SSL_KEYING_MATERIAL_EXPORT + bool "Enable keying material export" + default n + depends on MBEDTLS_TLS_ENABLED + help + Enable shared symmetric keys export for TLS sessions using mbedtls_ssl_export_keying_material() + after SSL handshake. The process for deriving the keys is specified in RFC 5705 for TLS 1.2 + and in RFC 8446, Section 7.5, for TLS 1.3. + config MBEDTLS_PKCS7_C bool "Enable PKCS number 7" default y diff --git a/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py b/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py index 2e5bca544b1..545a2dc3685 100755 --- a/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py +++ b/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py @@ -8,7 +8,7 @@ # The bundle will have the format: number of certificates; crt 1 subject name length; crt 1 public key length; # crt 1 subject name; crt 1 public key; crt 2... # -# SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import argparse import csv @@ -16,17 +16,32 @@ import os import re import struct import sys +import warnings DEFAULT_CERT_BUNDLE_MAX_CERTS = 200 +# Ignore warning about non-positive serial numbers in certificates +# Some CA certificates from the certificate bundle contain zero as serial number +# Please see https://github.com/pyca/cryptography/issues/12948 for more details +warnings.filterwarnings( + 'ignore', + message=( + r"Parsed a serial number which wasn't positive \(i.e., it was negative or zero\), " + 'which is disallowed by RFC 5280. ' + 'Loading this certificate will cause an exception in a future release of cryptography.' + ), +) + try: from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization except ImportError: - print('The cryptography package is not installed.' - 'Please refer to the Get Started section of the ESP-IDF Programming Guide for ' - 'setting up the required packages.') + print( + 'The cryptography package is not installed.' + 'Please refer to the Get Started section of the ESP-IDF Programming Guide for ' + 'setting up the required packages.' + ) raise ca_bundle_bin_file = 'x509_crt_bundle' @@ -35,13 +50,13 @@ quiet = False def status(msg): - """ Print status message to stderr """ + """Print status message to stderr""" if not quiet: critical(msg) def critical(msg): - """ Print critical message to stderr """ + """Print critical message to stderr""" sys.stderr.write('gen_crt_bundle.py: ') sys.stderr.write(msg) sys.stderr.write('\n') @@ -53,7 +68,6 @@ class CertificateBundle: self.compressed_crts = [] def add_from_path(self, crts_path): - found = False for file_path in os.listdir(crts_path): found |= self.add_from_file(os.path.join(crts_path, file_path)) @@ -84,7 +98,7 @@ class CertificateBundle: return False def add_from_pem(self, crt_str): - """ A single PEM file may have multiple certificates """ + """A single PEM file may have multiple certificates""" crt = '' count = 0 @@ -113,9 +127,11 @@ class CertificateBundle: def create_bundle(self, max_certs=DEFAULT_CERT_BUNDLE_MAX_CERTS): if max_certs < len(self.certificates): - critical(f'No. of certs in the certificate bundle = {len(self.certificates)} exceeds\n \ + critical( + f'No. of certs in the certificate bundle = {len(self.certificates)} exceeds\n \ Max allowed certificates in the certificate bundle = {max_certs} \ - Please update the menuconfig option with appropriate value') + Please update the menuconfig option with appropriate value' + ) raise ValueError # Sort certificates in order to do binary search when looking up certificates @@ -130,7 +146,9 @@ class CertificateBundle: for crt in self.certificates: """ Read the public key as DER format """ pub_key = crt.public_key() - pub_key_der = pub_key.public_bytes(serialization.Encoding.DER, serialization.PublicFormat.SubjectPublicKeyInfo) + pub_key_der = pub_key.public_bytes( + serialization.Encoding.DER, serialization.PublicFormat.SubjectPublicKeyInfo + ) """ Read the subject name as DER format """ sub_name_der = crt.subject.public_bytes(default_backend()) @@ -152,7 +170,6 @@ class CertificateBundle: return bundle def add_with_filter(self, crts_path, filter_path): - filter_set = set() with open(filter_path, 'r', encoding='utf-8') as f: csv_reader = csv.reader(f, delimiter=',') @@ -189,12 +206,26 @@ def main(): parser = argparse.ArgumentParser(description='ESP-IDF x509 certificate bundle utility') parser.add_argument('--quiet', '-q', help="Don't print non-critical status messages to stderr", action='store_true') - parser.add_argument('--input', '-i', nargs='+', required=True, - help='Paths to the custom certificate folders or files to parse, parses all .pem or .der files') - parser.add_argument('--filter', '-f', help='Path to CSV-file where the second columns contains the name of the certificates \ - that should be included from cacrt_all.pem') - parser.add_argument('--max-certs', '-m', help='Maximum number of certificates allowed in the certificate bundle', - type=int, default=DEFAULT_CERT_BUNDLE_MAX_CERTS) + parser.add_argument( + '--input', + '-i', + nargs='+', + required=True, + help='Paths to the custom certificate folders or files to parse, parses all .pem or .der files', + ) + parser.add_argument( + '--filter', + '-f', + help='Path to CSV-file where the second columns contains the name of the certificates \ + that should be included from cacrt_all.pem', + ) + parser.add_argument( + '--max-certs', + '-m', + help='Maximum number of certificates allowed in the certificate bundle', + type=int, + default=DEFAULT_CERT_BUNDLE_MAX_CERTS, + ) args = parser.parse_args() diff --git a/components/mbedtls/mbedtls b/components/mbedtls/mbedtls index 601990b1d81..b5d87eaa674 160000 --- a/components/mbedtls/mbedtls +++ b/components/mbedtls/mbedtls @@ -1 +1 @@ -Subproject commit 601990b1d81510a135da9bb0476d6ed3cb8c011b +Subproject commit b5d87eaa6748b7a6fa70593178c08b4480e9b71e diff --git a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c index d76f6b5049c..d3169d47584 100644 --- a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c +++ b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -18,6 +18,17 @@ #define TX_IDLE_BUFFER_SIZE (MBEDTLS_SSL_HEADER_LEN + CACHE_BUFFER_SIZE) +#define ESP_MBEDTLS_RETURN_IF_RX_BUF_STATIC(ssl) \ + do { \ + if (ssl->MBEDTLS_PRIVATE(in_buf)) { \ + esp_mbedtls_ssl_buf_states state = esp_mbedtls_get_buf_state(ssl->MBEDTLS_PRIVATE(in_buf)); \ + if (state == ESP_MBEDTLS_SSL_BUF_STATIC) { \ + return 0; \ + } \ + } \ + } while(0) + + static const char *TAG = "Dynamic Impl"; static void esp_mbedtls_set_buf_state(unsigned char *buf, esp_mbedtls_ssl_buf_states state) @@ -140,6 +151,29 @@ static void init_rx_buffer(mbedtls_ssl_context *ssl, unsigned char *buf) ssl->MBEDTLS_PRIVATE(in_left) = 0; } +esp_err_t esp_mbedtls_dynamic_set_rx_buf_static(mbedtls_ssl_context *ssl) +{ + unsigned char cache_buf[16]; + memcpy(cache_buf, ssl->MBEDTLS_PRIVATE(in_buf), 16); + esp_mbedtls_reset_free_rx_buffer(ssl); + + struct esp_mbedtls_ssl_buf *esp_buf; + int buffer_len = tx_buffer_len(ssl, MBEDTLS_SSL_IN_BUFFER_LEN); + esp_buf = mbedtls_calloc(1, SSL_BUF_HEAD_OFFSET_SIZE + buffer_len); + if (!esp_buf) { + ESP_LOGE(TAG, "rx buf alloc(%d bytes) failed", SSL_BUF_HEAD_OFFSET_SIZE + buffer_len); + return ESP_ERR_NO_MEM; + } + esp_mbedtls_init_ssl_buf(esp_buf, buffer_len); + init_rx_buffer(ssl, esp_buf->buf); + + memcpy(ssl->MBEDTLS_PRIVATE(in_ctr), cache_buf, 8); + memcpy(ssl->MBEDTLS_PRIVATE(in_iv), cache_buf + 8, 8); + esp_mbedtls_set_buf_state(ssl->MBEDTLS_PRIVATE(in_buf), ESP_MBEDTLS_SSL_BUF_STATIC); + return ESP_OK; + +} + static int esp_mbedtls_alloc_tx_buf(mbedtls_ssl_context *ssl, int len) { struct esp_mbedtls_ssl_buf *esp_buf; @@ -324,6 +358,12 @@ exit: int esp_mbedtls_add_rx_buffer(mbedtls_ssl_context *ssl) { + /* + * If RX buffer is set to static mode, this macro will return early + * and skip dynamic buffer allocation logic below + */ + ESP_MBEDTLS_RETURN_IF_RX_BUF_STATIC(ssl); + int cached = 0; int ret = 0; int buffer_len; @@ -403,6 +443,12 @@ exit: int esp_mbedtls_free_rx_buffer(mbedtls_ssl_context *ssl) { + /* + * If RX buffer is set to static mode, this macro will return early + * and skip dynamic buffer free logic below + */ + ESP_MBEDTLS_RETURN_IF_RX_BUF_STATIC(ssl); + int ret = 0; unsigned char buf[16]; struct esp_mbedtls_ssl_buf *esp_buf; diff --git a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.h b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.h index ad7a716be58..54409766f53 100644 --- a/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.h +++ b/components/mbedtls/port/dynamic/esp_mbedtls_dynamic_impl.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -26,6 +26,8 @@ #include "esp_log.h" #include "sdkconfig.h" +#include "mbedtls/esp_mbedtls_dynamic.h" + #define TRACE_CHECK(_fn, _state) \ ({ \ ESP_LOGV(TAG, "%d " _state " to do \"%s\"", __LINE__, # _fn); \ @@ -48,8 +50,9 @@ }) typedef enum { - ESP_MBEDTLS_SSL_BUF_CACHED, + ESP_MBEDTLS_SSL_BUF_CACHED = 0, ESP_MBEDTLS_SSL_BUF_NO_CACHED, + ESP_MBEDTLS_SSL_BUF_STATIC, } esp_mbedtls_ssl_buf_states; struct esp_mbedtls_ssl_buf { diff --git a/components/mbedtls/port/ecdsa/ecdsa_alt.c b/components/mbedtls/port/ecdsa/ecdsa_alt.c index 7dd3e6d01e9..96a14e7930d 100644 --- a/components/mbedtls/port/ecdsa/ecdsa_alt.c +++ b/components/mbedtls/port/ecdsa/ecdsa_alt.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -337,9 +337,9 @@ static int esp_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi* r, mbedtls_mpi* s bool process_again = false; -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - uint16_t deterministic_loop_number = 1; -#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ +#if !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + uint16_t deterministic_loop_number __attribute__((unused)) = 1; +#endif /* !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ do { ecdsa_hal_config_t conf = { @@ -347,10 +347,12 @@ static int esp_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi* r, mbedtls_mpi* s .curve = curve, .sha_mode = ECDSA_Z_USER_PROVIDED, .sign_type = k_type, -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - .loop_number = deterministic_loop_number++, -#endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ }; +#if !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + if (ecdsa_ll_is_deterministic_mode_supported()) { + conf.loop_number = deterministic_loop_number++; + } +#endif /* !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP */ if (use_km_key) { conf.use_km_key = 1; @@ -375,8 +377,8 @@ static int esp_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi* r, mbedtls_mpi* s || !memcmp(r_le, zeroes, len) || !memcmp(s_le, zeroes, len); -#ifdef SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE - if (k_type == ECDSA_K_TYPE_DETERMINISITIC) { +#if SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE && !SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + if (ecdsa_ll_is_deterministic_mode_supported() && k_type == ECDSA_K_TYPE_DETERMINISITIC) { process_again |= !ecdsa_hal_det_signature_k_check(); } #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ @@ -472,12 +474,18 @@ int __wrap_mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r, /* * Check `d` whether it contains the hardware key */ +#if CONFIG_MBEDTLS_HARDWARE_ECDSA_SIGN if (d->MBEDTLS_PRIVATE(s) == ECDSA_KEY_MAGIC) { - // Use hardware ECDSA peripheral - return esp_ecdsa_sign(grp, r, s, d, buf, blen, ECDSA_K_TYPE_DETERMINISITIC); - } else { - return __real_mbedtls_ecdsa_sign_det_ext(grp, r, s, d, buf, blen, md_alg, f_rng_blind, p_rng_blind); + if (ecdsa_ll_is_deterministic_mode_supported()) { + // Use hardware ECDSA peripheral + return esp_ecdsa_sign(grp, r, s, d, buf, blen, ECDSA_K_TYPE_DETERMINISITIC); + } else { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } } +#endif + // Fallback to software implementation + return __real_mbedtls_ecdsa_sign_det_ext(grp, r, s, d, buf, blen, md_alg, f_rng_blind, p_rng_blind); } extern int __real_mbedtls_ecdsa_sign_det_restartable(mbedtls_ecp_group *grp, @@ -507,12 +515,18 @@ int __wrap_mbedtls_ecdsa_sign_det_restartable(mbedtls_ecp_group *grp, /* * Check `d` whether it contains the hardware key */ +#if CONFIG_MBEDTLS_HARDWARE_ECDSA_SIGN if (d->MBEDTLS_PRIVATE(s) == ECDSA_KEY_MAGIC) { - // Use hardware ECDSA peripheral - return esp_ecdsa_sign(grp, r, s, d, buf, blen, ECDSA_K_TYPE_DETERMINISITIC); - } else { - return __real_mbedtls_ecdsa_sign_det_restartable(grp, r, s, d, buf, blen, md_alg, f_rng_blind, p_rng_blind, NULL); + if (ecdsa_ll_is_deterministic_mode_supported()) { + // Use hardware ECDSA peripheral + return esp_ecdsa_sign(grp, r, s, d, buf, blen, ECDSA_K_TYPE_DETERMINISITIC); + } else { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } } +#endif + // Fallback to software implementation + return __real_mbedtls_ecdsa_sign_det_ext(grp, r, s, d, buf, blen, md_alg, f_rng_blind, p_rng_blind); } #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ @@ -582,15 +596,22 @@ int __wrap_mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx, mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); + ecdsa_sign_type_t k_type = ECDSA_K_TYPE_TRNG; +#if defined(SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE) && defined(CONFIG_MBEDTLS_ECDSA_DETERMINISTIC) + if (ecdsa_ll_is_deterministic_mode_supported()) { + k_type = ECDSA_K_TYPE_DETERMINISITIC; + } +#endif + /* * Check `d` whether it contains the hardware key */ if (ctx->MBEDTLS_PRIVATE(d).MBEDTLS_PRIVATE(s) == ECDSA_KEY_MAGIC) { // Use hardware ECDSA peripheral #if defined(SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE) && defined(CONFIG_MBEDTLS_ECDSA_DETERMINISTIC) - MBEDTLS_MPI_CHK(esp_ecdsa_sign(&ctx->MBEDTLS_PRIVATE(grp), &r, &s, &ctx->MBEDTLS_PRIVATE(d), hash, hlen, ECDSA_K_TYPE_DETERMINISITIC)); + MBEDTLS_MPI_CHK(esp_ecdsa_sign(&ctx->MBEDTLS_PRIVATE(grp), &r, &s, &ctx->MBEDTLS_PRIVATE(d), hash, hlen, k_type)); #else - MBEDTLS_MPI_CHK(esp_ecdsa_sign(&ctx->MBEDTLS_PRIVATE(grp), &r, &s, &ctx->MBEDTLS_PRIVATE(d), hash, hlen, ECDSA_K_TYPE_TRNG)); + MBEDTLS_MPI_CHK(esp_ecdsa_sign(&ctx->MBEDTLS_PRIVATE(grp), &r, &s, &ctx->MBEDTLS_PRIVATE(d), hash, hlen, k_type)); #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ } @@ -712,7 +733,9 @@ int __wrap_mbedtls_ecdsa_verify_restartable(mbedtls_ecp_group *grp, const mbedtls_mpi *s, mbedtls_ecdsa_restart_ctx *rs_ctx) { - if ((grp->id == MBEDTLS_ECP_DP_SECP192R1 || grp->id == MBEDTLS_ECP_DP_SECP256R1) && blen == ECDSA_SHA_LEN) { + if (((grp->id == MBEDTLS_ECP_DP_SECP192R1 && esp_efuse_is_ecdsa_p192_curve_supported()) + || (grp->id == MBEDTLS_ECP_DP_SECP256R1 && esp_efuse_is_ecdsa_p256_curve_supported())) + && blen == ECDSA_SHA_LEN) { return esp_ecdsa_verify(grp, buf, blen, Q, r, s); } else { return __real_mbedtls_ecdsa_verify_restartable(grp, buf, blen, Q, r, s, rs_ctx); diff --git a/components/mbedtls/port/esp_ds/esp_ds_common.c b/components/mbedtls/port/esp_ds/esp_ds_common.c new file mode 100644 index 00000000000..7cef54b389e --- /dev/null +++ b/components/mbedtls/port/esp_ds/esp_ds_common.c @@ -0,0 +1,226 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "esp_ds.h" +#include "esp_log.h" +#include "esp_ds_common.h" +#include "esp_memory_utils.h" +#include "esp_ds/esp_ds_rsa.h" +#include "freertos/FreeRTOS.h" +#include "freertos/semphr.h" +#include "mbedtls/rsa.h" +#include + +#ifdef SOC_DIG_SIGN_SUPPORTED +#include "rom/digital_signature.h" +#else +#error "Selected target does not support DS peripheral" +#endif + +#define FACTOR_KEYLEN_IN_BYTES 4 + +static const char *TAG = "ESP_DS_COMMON"; + +static hmac_key_id_t s_esp_ds_hmac_key_id = -1; +static esp_ds_data_t *s_ds_data = NULL; +static SemaphoreHandle_t s_ds_lock = NULL; +static int s_timeout_ms = 0; + +esp_ds_data_t *esp_ds_get_data_ctx(void) +{ + return s_ds_data; +} + +hmac_key_id_t esp_ds_get_hmac_key_id(void) +{ + return s_esp_ds_hmac_key_id; +} + +size_t esp_ds_get_keylen(void *ctx) +{ + if (s_ds_data == NULL) { + ESP_LOGE(TAG, "s_ds_data is NULL, cannot get key length"); + return 0; + } + /* calculating the rsa_length in bytes */ + return ((s_ds_data->rsa_length + 1) * FACTOR_KEYLEN_IN_BYTES); +} + +/* Lock for the DS session, other TLS connections trying to use the DS peripheral will be blocked + * till this DS session is completed (i.e. TLS handshake for this connection is completed) */ +static void __attribute__((constructor)) esp_ds_conn_lock(void) +{ + if ((s_ds_lock = xSemaphoreCreateMutex()) == NULL) { + ESP_EARLY_LOGE(TAG, "mutex for the DS session lock could not be created"); + } +} + +void esp_ds_release_ds_lock(void) +{ + if (s_ds_lock == NULL) { + ESP_LOGE(TAG, "s_ds_lock is NULL, cannot release lock"); + return; + } + if (xSemaphoreGetMutexHolder(s_ds_lock) == xTaskGetCurrentTaskHandle()) { + /* Give back the semaphore (DS lock) */ + xSemaphoreGive(s_ds_lock); + } +} + +void esp_ds_set_session_timeout(int timeout) +{ + /* add additional offset of 1000 ms to have enough time for deleting the TLS connection and free the previous ds context after exceeding timeout value (this offset also helps when timeout is set to 0) */ + if (timeout > s_timeout_ms) { + s_timeout_ms = timeout + 1000; + } +} + +esp_err_t esp_ds_init_data_ctx(esp_ds_data_ctx_t *ds_data) +{ + if (ds_data == NULL || ds_data->esp_ds_data == NULL) { + return ESP_ERR_INVALID_ARG; + } + /* mutex is given back when the DS context is freed after the TLS handshake is completed or in case of failure (at cleanup) */ + if ((xSemaphoreTake(s_ds_lock, s_timeout_ms / portTICK_PERIOD_MS) != pdTRUE)) { + ESP_LOGE(TAG, "ds_lock could not be obtained in specified time"); + return ESP_FAIL; + } + s_ds_data = ds_data->esp_ds_data; + ESP_LOGD(TAG, "Using DS with key block %u, RSA length %u", ds_data->efuse_key_id, ds_data->rsa_length_bits); + s_esp_ds_hmac_key_id = (hmac_key_id_t) ds_data->efuse_key_id; + + const unsigned rsa_length_int = (ds_data->rsa_length_bits / 32) - 1; + if (esp_ptr_byte_accessible(s_ds_data)) { + /* calculate the rsa_length in terms of esp_digital_signature_length_t which is required for the internal DS API */ + s_ds_data->rsa_length = rsa_length_int; + } else if (s_ds_data->rsa_length != rsa_length_int) { + /* + * Configuration data is most likely from DROM segment and it + * is not properly formatted for all parameters consideration. + * Moreover, we can not modify as it is read-only and hence + * the error. + */ + ESP_LOGE(TAG, "RSA length mismatch %u, %u", s_ds_data->rsa_length, rsa_length_int); + return ESP_ERR_INVALID_ARG; + } + + return ESP_OK; +} + +esp_err_t esp_ds_deinit_data_ctx(void) +{ + esp_ds_release_ds_lock(); + s_ds_data = NULL; + s_esp_ds_hmac_key_id = -1; + + return ESP_OK; +} + +int esp_ds_mgf_mask(unsigned char *dst, size_t dlen, unsigned char *src, + size_t slen, mbedtls_md_type_t md_alg) +{ + unsigned char counter[4]; + unsigned char *p; + unsigned int hlen; + size_t i, use_len; + unsigned char mask[MBEDTLS_MD_MAX_SIZE]; + int ret = 0; + const mbedtls_md_info_t *md_info; + mbedtls_md_context_t md_ctx; + + mbedtls_md_init(&md_ctx); + md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) { + goto exit; + } + + hlen = mbedtls_md_get_size(md_info); + + memset(mask, 0, sizeof(mask)); + memset(counter, 0, 4); + + /* Generate and apply dbMask */ + p = dst; + + while (dlen > 0) { + use_len = hlen; + if (dlen < hlen) { + use_len = dlen; + } + + if ((ret = mbedtls_md_starts(&md_ctx)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_update(&md_ctx, src, slen)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_update(&md_ctx, counter, 4)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_finish(&md_ctx, mask)) != 0) { + goto exit; + } + + for (i = 0; i < use_len; ++i) { + *p++ ^= mask[i]; + } + + counter[3]++; + + dlen -= use_len; + } + +exit: + mbedtls_platform_zeroize(mask, sizeof(mask)); + mbedtls_md_free(&md_ctx); + + return ret; +} + +int esp_ds_hash_mprime(const unsigned char *hash, size_t hlen, + const unsigned char *salt, size_t slen, + unsigned char *out, mbedtls_md_type_t md_alg) +{ + const unsigned char zeros[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + mbedtls_md_context_t md_ctx; + int ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + mbedtls_md_init(&md_ctx); + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_starts(&md_ctx)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_update(&md_ctx, zeros, sizeof(zeros))) != 0) { + goto exit; + } + if ((ret = mbedtls_md_update(&md_ctx, hash, hlen)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_update(&md_ctx, salt, slen)) != 0) { + goto exit; + } + if ((ret = mbedtls_md_finish(&md_ctx, out)) != 0) { + goto exit; + } + +exit: + mbedtls_md_free(&md_ctx); + + return ret; +} diff --git a/components/mbedtls/port/esp_ds/esp_ds_common.h b/components/mbedtls/port/esp_ds/esp_ds_common.h new file mode 100644 index 00000000000..b80f702a5d1 --- /dev/null +++ b/components/mbedtls/port/esp_ds/esp_ds_common.h @@ -0,0 +1,62 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "mbedtls/md.h" + +#define FACTOR_KEYLEN_IN_BYTES 4 +#define SWAP_INT32(x) (((x) >> 24) | (((x) & 0x00FF0000) >> 8) | (((x) & 0x0000FF00) << 8) | ((x) << 24)) + +/** + * @brief Get the data context for the digital signature. + * + * @return esp_ds_data_t* esp ds data context pointer. + */ +esp_ds_data_t *esp_ds_get_data_ctx(void); + +/** + * @brief Get the HMAC key ID used for digital signature operations. + * + * @return hmac_key_id_t HMAC key ID. + */ +hmac_key_id_t esp_ds_get_hmac_key_id(void); + +/** + * @brief Mask generation function (MGF) for TLS 1.3. + * + * @param[in] dst Pointer to the destination buffer. + * @param[in] dlen Length of the destination buffer. + * @param[in] src Pointer to the source buffer. + * @param[in] slen Length of the salt value. + * @param[in] md_alg The message digest algorithm type. + * @return int Returns 0 on success, or a negative error code on failure. + */ +int esp_ds_mgf_mask(unsigned char *dst, size_t dlen, unsigned char *src, + size_t slen, mbedtls_md_type_t md_alg); + +/** + * @brief Generates a hash using the M-Prime algorithm as specified in RFC 8446. + * + * @param hash Pointer to the input hash. + * @param hlen Length of the input hash. + * @param salt Pointer to the salt value. + * @param slen Length of the salt value. + * @param out Pointer to the output buffer where the hash will be stored. + * @param md_alg The message digest algorithm type to use for hashing. + * @return int Returns 0 on success, or a negative error code on failure. + */ +int esp_ds_hash_mprime(const unsigned char *hash, size_t hlen, + const unsigned char *salt, size_t slen, + unsigned char *out, mbedtls_md_type_t md_alg); + +#ifdef __cplusplus +} +#endif diff --git a/components/mbedtls/port/esp_ds/esp_rsa_dec_alt.c b/components/mbedtls/port/esp_ds/esp_rsa_dec_alt.c new file mode 100644 index 00000000000..b415285c1cd --- /dev/null +++ b/components/mbedtls/port/esp_ds/esp_rsa_dec_alt.c @@ -0,0 +1,293 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + + +#include +#include "sdkconfig.h" +#include "esp_ds.h" +#include "rsa_dec_alt.h" +#include "mbedtls/rsa.h" +#include "esp_ds_common.h" +#include "esp_log.h" + +static const char *TAG = "ESP_RSA_DEC_ALT"; + +#define MIN_V15_PADDING_LEN 11 + +static int esp_ds_rsaes_pkcs1_v15_unpadding(unsigned char *input, + size_t ilen, + unsigned char *output, + size_t output_max_len, + size_t *olen) +{ + if (ilen < MIN_V15_PADDING_LEN) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } + + unsigned char bad = 0; + size_t msg_len = 0; + size_t msg_max_len = 0; + unsigned char pad_done = 0; + size_t pad_count = 0; + + msg_max_len = (output_max_len > ilen - MIN_V15_PADDING_LEN) ? ilen - MIN_V15_PADDING_LEN : output_max_len; + + /* Check the first byte (0x00) */ + bad |= input[0]; + + /* Check the padding type */ + bad |= input[1] ^ MBEDTLS_RSA_CRYPT; + + /* Scan for separator (0x00) and count padding bytes in constant time */ + for (size_t i = 2; i < ilen; i++) { + unsigned char found = (input[i] == 0x00); + pad_done = pad_done | found; + pad_count += (pad_done == 0) ? 1 : 0; + } + + /* Check if we found a separator and padding is long enough */ + bad |= (pad_done == 0); /* No separator found */ + bad |= (pad_count < 8); /* Padding too short (need at least 8 non-zero bytes) */ + + /* Calculate message length */ + msg_len = ilen - pad_count - 3; + + /* Check if separator is not at the very end */ + bad |= (msg_len > output_max_len); + if (bad) { + msg_len = msg_max_len; + } + + /* Verify padding bytes are non-zero in constant time */ + for (size_t i = 2; i < ilen; i++) { + unsigned char in_padding = (i < pad_count + 2); + unsigned char is_zero = (input[i] == 0x00); + bad |= in_padding & is_zero; + } + + if (bad) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } + + *olen = msg_len; + if (*olen > 0) { + memcpy(output, input + ilen - msg_len, msg_len); + } + return 0; +} + +static int esp_ds_compute_hash(mbedtls_md_type_t md_alg, + const unsigned char *input, size_t ilen, + unsigned char *output) +{ + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + return mbedtls_md(md_info, input, ilen, output); +} + +static int esp_ds_rsaes_pkcs1_v21_unpadding(unsigned char *input, + size_t ilen, + unsigned char *output, + size_t output_max_len, + size_t *olen) +{ + int ret; + unsigned int hlen = mbedtls_md_get_size_from_type(MBEDTLS_MD_SHA256); + unsigned char bad = 0; + size_t pad_len = 0; + size_t msg_len = 0; + + /* Validate input length */ + bad |= (ilen < 2 * hlen + 2); + + /* Apply MGF masks */ + ret = esp_ds_mgf_mask(input + 1, hlen, input + hlen + 1, ilen - hlen - 1, MBEDTLS_MD_SHA256); + if (ret != 0) { + ESP_LOGE(TAG, "Error in MGF mask, returned %d", ret); + return ret; + } + + ret = esp_ds_mgf_mask(input + hlen + 1, ilen - hlen - 1, input + 1, hlen, MBEDTLS_MD_SHA256); + if (ret != 0) { + ESP_LOGE(TAG, "Error in MGF mask, returned %d", ret); + return ret; + } + + /* Check first byte (should be 0x00) */ + bad |= input[0]; + + /* Skip the first byte and maskSeed */ + unsigned char *db = input + 1 + hlen; + size_t db_len = ilen - hlen - 1; + + /* Compute hash, label is NULL and label_len is 0 */ + unsigned char lhash[MBEDTLS_MD_MAX_SIZE]; + ret = esp_ds_compute_hash(MBEDTLS_MD_SHA256, NULL, 0, lhash); + if (ret != 0) { + ESP_LOGE(TAG, "Error in compute_hash, returned %d", ret); + return ret; + } + + /* Verify hash portion of db against lhash */ + for (size_t i = 0; i < hlen && i < db_len; i++) { + bad |= db[i] ^ lhash[i]; + } + + /* Skip past lhash in DB */ + unsigned char *p = db + hlen; + size_t remaining = db_len - hlen; + + /* Get zero-padding len, following mbedTLS pattern + * Always read till end of buffer (minus one, for the 01 byte) */ + unsigned char in_padding = 1; + for (size_t i = 0; i < remaining - 1; i++) { + unsigned char is_zero = (p[i] == 0); + in_padding = in_padding & is_zero; + pad_len += in_padding; + } + + p += pad_len; + bad |= (*p != 0x01); + p++; + + /* Calculate message length */ + msg_len = remaining - pad_len - 1; + + /* Check output buffer size */ + bad |= (output_max_len < msg_len); + + if (bad) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } + + /* Copy message in constant time */ + *olen = msg_len; + if (*olen > 0) { + memcpy(output, p, msg_len); + } + + return 0; +} + +int esp_ds_rsa_decrypt(void *ctx, size_t *olen, + const unsigned char *input, unsigned char *output, + size_t output_max_len) +{ + int padding = MBEDTLS_RSA_PKCS_V15; + + if (ctx != NULL) { + mbedtls_rsa_context *rsa_ctx = (mbedtls_rsa_context *)ctx; + if (rsa_ctx->MBEDTLS_PRIVATE(padding) == MBEDTLS_RSA_PKCS_V15) { + padding = MBEDTLS_RSA_PKCS_V15; + } else if (rsa_ctx->MBEDTLS_PRIVATE(padding) == MBEDTLS_RSA_PKCS_V21) { + padding = MBEDTLS_RSA_PKCS_V21; + } else { + ESP_LOGE(TAG, "Unsupported padding type %d", rsa_ctx->MBEDTLS_PRIVATE(padding)); + return -1; + } + } + + size_t ilen = esp_ds_get_keylen(ctx); + if (ilen == 0) { + ESP_LOGE(TAG, "Invalid RSA key length"); + return -1; + } + size_t data_len = ilen / 4; + + uint32_t *output_tmp = NULL; + + uint32_t *input_tmp = calloc(data_len, sizeof(uint32_t)); + if (input_tmp == NULL) { + ESP_LOGE(TAG, "Could not allocate memory for internal DS operations"); + return -1; + } + + for (unsigned int i = 0; i < (data_len); i++) { + input_tmp[i] = SWAP_INT32(((uint32_t *)input)[(data_len) - (i + 1)]); + } + + esp_ds_data_t *s_ds_data = esp_ds_get_data_ctx(); + if (s_ds_data == NULL) { + ESP_LOGE(TAG, "s_ds_data is NULL, cannot perform decryption"); + free(input_tmp); + return -1; + } + hmac_key_id_t s_esp_ds_hmac_key_id = esp_ds_get_hmac_key_id(); + + esp_ds_context_t *esp_ds_ctx = NULL; + esp_err_t ds_r = esp_ds_start_sign((const void *)input_tmp, + s_ds_data, + s_esp_ds_hmac_key_id, + &esp_ds_ctx); + + if (ds_r != ESP_OK) { + ESP_LOGE(TAG, "Error in esp_ds_start_sign, returned %d ", ds_r); + goto exit; + } + + ds_r = esp_ds_finish_sign((void *)input_tmp, esp_ds_ctx); + if (ds_r != ESP_OK) { + if (ds_r == ESP_ERR_HW_CRYPTO_DS_INVALID_DIGEST) { + ESP_LOGE(TAG, "Invalid digest in DS data reported by esp_ds_finish_sign"); + } else { + ESP_LOGE(TAG, "Error in esp_ds_finish_sign, returned %d ", ds_r); + } + goto exit; + } + + esp_ds_release_ds_lock(); + + output_tmp = calloc(data_len, sizeof(uint32_t)); + if (output_tmp == NULL) { + ESP_LOGE(TAG, "Could not allocate memory for output_tmp"); + goto exit; + } + + for (unsigned int i = 0; i < (data_len); i++) { + ((uint32_t *)output_tmp)[i] = SWAP_INT32(((uint32_t *)input_tmp)[(data_len) - (i + 1)]); + } + + // Unpad the decrypted data + if (padding == MBEDTLS_RSA_PKCS_V15) { + if (esp_ds_rsaes_pkcs1_v15_unpadding((uint8_t *)output_tmp, ilen, (uint8_t *)output_tmp, ilen, olen) != 0) { + ESP_LOGE(TAG, "Error in v15 unpadding"); + goto exit; + } + } else if (padding == MBEDTLS_RSA_PKCS_V21) { + if (esp_ds_rsaes_pkcs1_v21_unpadding((uint8_t *)output_tmp, ilen, (uint8_t *)output_tmp, ilen, olen) != 0) { + ESP_LOGE(TAG, "Error in v21 unpadding"); + goto exit; + } + } else { + ESP_LOGE(TAG, "Unsupported padding type %d", padding); + goto exit; + } + + // Copy the decrypted data to output buffer + if (output_max_len < *olen) { + ESP_LOGE(TAG, "Output buffer is too small, output_max_len: %zu, olen: %zu", output_max_len, *olen); + goto exit; + } + + memcpy(output, output_tmp, *olen); + free(output_tmp); + free(input_tmp); + return 0; +exit: + esp_ds_release_ds_lock(); + if (input_tmp) { + free(input_tmp); + } + if (output_tmp) { + free(output_tmp); + } + if (olen) { + *olen = 0; // Set olen to 0 in case of error + } + return -1; +} diff --git a/components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c b/components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c index 6b9f8e36b6a..635dfdc0d15 100644 --- a/components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c +++ b/components/mbedtls/port/esp_ds/esp_rsa_sign_alt.c @@ -7,6 +7,7 @@ #include "esp_ds.h" #include "rsa_sign_alt.h" #include "esp_memory_utils.h" +#include "sdkconfig.h" #ifdef CONFIG_IDF_TARGET_ESP32S2 #include "esp32s2/rom/digital_signature.h" @@ -30,85 +31,14 @@ #include "esp_heap_caps.h" #include "freertos/FreeRTOS.h" #include "freertos/semphr.h" -#include -static const char *TAG = "ESP_RSA_SIGN_ALT"; -#define SWAP_INT32(x) (((x) >> 24) | (((x) & 0x00FF0000) >> 8) | (((x) & 0x0000FF00) << 8) | ((x) << 24)) - +#include "mbedtls/build_info.h" #include "mbedtls/rsa.h" #include "mbedtls/oid.h" #include "mbedtls/platform_util.h" +#include "esp_ds_common.h" #include -static hmac_key_id_t s_esp_ds_hmac_key_id; -static esp_ds_data_t *s_ds_data; -static SemaphoreHandle_t s_ds_lock; -static int s_timeout_ms = 0; - -/* key length in bytes = (esp_digital_signature_length_t key + 1 ) * FACTOR_KEYLEN_IN_BYTES */ -#define FACTOR_KEYLEN_IN_BYTES 4 - -/* Lock for the DS session, other TLS connections trying to use the DS peripheral will be blocked - * till this DS session is completed (i.e. TLS handshake for this connection is completed) */ -static void __attribute__((constructor)) esp_ds_conn_lock (void) -{ - if ((s_ds_lock = xSemaphoreCreateMutex()) == NULL) { - ESP_EARLY_LOGE(TAG, "mutex for the DS session lock could not be created"); - } -} - -void esp_ds_set_session_timeout(int timeout) -{ - /* add additional offset of 1000 ms to have enough time for deleting the TLS connection and free the previous ds context after exceeding timeout value (this offset also helps when timeout is set to 0) */ - if (timeout > s_timeout_ms) { - s_timeout_ms = timeout + 1000; - } -} - -esp_err_t esp_ds_init_data_ctx(esp_ds_data_ctx_t *ds_data) -{ - if (ds_data == NULL || ds_data->esp_ds_data == NULL) { - return ESP_ERR_INVALID_ARG; - } - /* mutex is given back when the DS context is freed after the TLS handshake is completed or in case of failure (at cleanup) */ - if ((xSemaphoreTake(s_ds_lock, s_timeout_ms / portTICK_PERIOD_MS) != pdTRUE)) { - ESP_LOGE(TAG, "ds_lock could not be obtained in specified time"); - return ESP_FAIL; - } - s_ds_data = ds_data->esp_ds_data; - ESP_LOGD(TAG, "Using DS with key block %u, RSA length %u", ds_data->efuse_key_id, ds_data->rsa_length_bits); - s_esp_ds_hmac_key_id = (hmac_key_id_t) ds_data->efuse_key_id; - - const unsigned rsa_length_int = (ds_data->rsa_length_bits / 32) - 1; - if (esp_ptr_byte_accessible(s_ds_data)) { - /* calculate the rsa_length in terms of esp_digital_signature_length_t which is required for the internal DS API */ - s_ds_data->rsa_length = rsa_length_int; - } else if (s_ds_data->rsa_length != rsa_length_int) { - /* - * Configuration data is most likely from DROM segment and it - * is not properly formatted for all parameters consideration. - * Moreover, we can not modify as it is read-only and hence - * the error. - */ - ESP_LOGE(TAG, "RSA length mismatch %u, %u", s_ds_data->rsa_length, rsa_length_int); - return ESP_ERR_INVALID_ARG; - } - - return ESP_OK; -} - -void esp_ds_release_ds_lock(void) -{ - if (xSemaphoreGetMutexHolder(s_ds_lock) == xTaskGetCurrentTaskHandle()) { - /* Give back the semaphore (DS lock) */ - xSemaphoreGive(s_ds_lock); - } -} - -size_t esp_ds_get_keylen(void *ctx) -{ - /* calculating the rsa_length in bytes */ - return ((s_ds_data->rsa_length + 1) * FACTOR_KEYLEN_IN_BYTES); -} +static const char *TAG = "ESP_RSA_SIGN_ALT"; static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, unsigned int hashlen, @@ -223,6 +153,120 @@ static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, return ( 0 ); } +#ifdef CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 +static int rsa_rsassa_pss_pkcs1_v21_encode( int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + int saltlen, + unsigned char *sig, size_t dst_len) +{ + size_t olen; + unsigned char *p = sig; + unsigned char *salt = NULL; + size_t slen, min_slen, hlen, offset = 0; + int ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + size_t msb; + + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + if (f_rng == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + olen = dst_len; + + if (md_alg != MBEDTLS_MD_NONE) { + /* Gather length of hash to sign */ + size_t exp_hashlen = mbedtls_md_get_size_from_type(md_alg); + if (exp_hashlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + if (hashlen != exp_hashlen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + } + + hlen = mbedtls_md_get_size_from_type(md_alg); + if (hlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + if (saltlen == MBEDTLS_RSA_SALT_LEN_ANY) { + /* Calculate the largest possible salt length, up to the hash size. + * Normally this is the hash length, which is the maximum salt length + * according to FIPS 185-4 �5.5 (e) and common practice. If there is not + * enough room, use the maximum salt length that fits. The constraint is + * that the hash length plus the salt length plus 2 bytes must be at most + * the key length. This complies with FIPS 186-4 �5.5 (e) and RFC 8017 + * (PKCS#1 v2.2) �9.1.1 step 3. */ + min_slen = hlen - 2; + if (olen < hlen + min_slen + 2) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } else if (olen >= hlen + hlen + 2) { + slen = hlen; + } else { + slen = olen - hlen - 2; + } + } else if ((saltlen < 0) || (saltlen + hlen + 2 > olen)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } else { + slen = (size_t) saltlen; + } + + memset(sig, 0, olen); + + /* Note: EMSA-PSS encoding is over the length of N - 1 bits */ + msb = dst_len * 8 - 1; + p += olen - hlen - slen - 2; + *p++ = 0x01; + + + /* Generate salt of length slen in place in the encoded message */ + salt = p; + if ((ret = f_rng(p_rng, salt, slen)) != 0) { + return MBEDTLS_ERR_RSA_RNG_FAILED; + } + p += slen; + + /* Generate H = Hash( M' ) */ + ret = esp_ds_hash_mprime(hash, hashlen, salt, slen, p, md_alg); + if (ret != 0) { + return ret; + } + + /* Compensate for boundary condition when applying mask */ + if (msb % 8 == 0) { + offset = 1; + } + + /* maskedDB: Apply dbMask to DB */ + ret = esp_ds_mgf_mask(sig + offset, olen - hlen - 1 - offset, p, hlen, md_alg); + if (ret != 0) { + return ret; + } + + msb = dst_len * 8 - 1; + sig[0] &= 0xFF >> (olen * 8 - msb); + + p += hlen; + *p++ = 0xBC; + return ret; +} + +static int rsa_rsassa_pkcs1_v21_encode(int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + size_t dst_len, + unsigned char *dst ) +{ + return rsa_rsassa_pss_pkcs1_v21_encode(f_rng, p_rng, md_alg, hashlen, hash, MBEDTLS_RSA_SALT_LEN_ANY, dst, dst_len); +} +#endif /* CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 */ int esp_ds_rsa_sign( void *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, @@ -232,7 +276,42 @@ int esp_ds_rsa_sign( void *ctx, esp_ds_context_t *esp_ds_ctx; esp_err_t ds_r; int ret = -1; - uint32_t *signature = heap_caps_malloc_prefer((s_ds_data->rsa_length + 1) * FACTOR_KEYLEN_IN_BYTES, 2, MALLOC_CAP_32BIT | MALLOC_CAP_INTERNAL, MALLOC_CAP_DEFAULT | MALLOC_CAP_INTERNAL); + + /* This check is done to keep the compatibility with the previous versions of the API + * which allows NULL ctx. If ctx is NULL, then the default padding + * MBEDTLS_RSA_PKCS_V15 is used. + */ + int padding = MBEDTLS_RSA_PKCS_V15; + if (ctx != NULL) { + mbedtls_rsa_context *rsa_ctx = (mbedtls_rsa_context *)ctx; + padding = rsa_ctx->MBEDTLS_PRIVATE(padding); + } + esp_ds_data_t *s_ds_data = esp_ds_get_data_ctx(); + if (s_ds_data == NULL) { + ESP_LOGE(TAG, "Digital signature data context is NULL"); + return -1; + } + const size_t data_len = s_ds_data->rsa_length + 1; + const size_t sig_len = data_len * FACTOR_KEYLEN_IN_BYTES; + + if (padding == MBEDTLS_RSA_PKCS_V21) { +#ifdef CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 + if ((ret = (rsa_rsassa_pkcs1_v21_encode(f_rng, p_rng ,md_alg, hashlen, hash, sig_len, sig ))) != 0) { + ESP_LOGE(TAG, "Error in pkcs1_v21 encoding, returned %d", ret); + return -1; + } +#else /* CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 */ + ESP_LOGE(TAG, "RSA PKCS#1 v2.1 padding is not supported. Please enable CONFIG_MBEDTLS_SSL_PROTO_TLS1_3"); + return -1; +#endif /* CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 */ + } else { + if ((ret = (rsa_rsassa_pkcs1_v15_encode(md_alg, hashlen, hash, sig_len, sig ))) != 0) { + ESP_LOGE(TAG, "Error in pkcs1_v15 encoding, returned %d", ret); + return -1; + } + } + + uint32_t *signature = heap_caps_malloc_prefer(sig_len, 2, MALLOC_CAP_32BIT | MALLOC_CAP_INTERNAL, MALLOC_CAP_DEFAULT | MALLOC_CAP_INTERNAL); if (signature == NULL) { ESP_LOGE(TAG, "Could not allocate memory for internal DS operations"); return -1; @@ -248,6 +327,8 @@ int esp_ds_rsa_sign( void *ctx, signature[i] = SWAP_INT32(((uint32_t *)sig)[(s_ds_data->rsa_length + 1) - (i + 1)]); } + hmac_key_id_t s_esp_ds_hmac_key_id = esp_ds_get_hmac_key_id(); + ds_r = esp_ds_start_sign((const void *)signature, s_ds_data, s_esp_ds_hmac_key_id, diff --git a/components/mbedtls/port/include/esp_ds/esp_ds_rsa.h b/components/mbedtls/port/include/esp_ds/esp_ds_rsa.h new file mode 100644 index 00000000000..7f126d546b3 --- /dev/null +++ b/components/mbedtls/port/include/esp_ds/esp_ds_rsa.h @@ -0,0 +1,104 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp_ds.h" +#include "mbedtls/md.h" + +/** + * @brief ESP-DS data context + * + * @note This structure includes encrypted private key parameters such as ciphertext_c, initialization vector, efuse_key_id, RSA key length, which are obtained when DS peripheral is configured. + */ + +/* Context for encrypted private key data required for DS */ +typedef struct esp_ds_data_ctx { + esp_ds_data_t *esp_ds_data; + uint8_t efuse_key_id; /* efuse block id in which DS_KEY is stored e.g. 0,1*/ + uint16_t rsa_length_bits; /* length of RSA private key in bits e.g. 2048 */ +} esp_ds_data_ctx_t; + +/** + * @brief Initializes internal DS data context + * + * This function allocates and initializes internal ds data context which is used for Digital Signature operation. + * + * @in ds_data ds_data context containing encrypted private key parameters + * @return + * - ESP_OK In case of success + * - ESP_ERR_NO_MEM In case internal context could not be allocated. + * - ESP_ERR_INVALID_ARG in case input parametrers are NULL + * + */ +esp_err_t esp_ds_init_data_ctx(esp_ds_data_ctx_t *ds_data); + +/** + * @brief Deinitializes internal DS data context + * + * This function deinitializes internal ds data context which is used for Digital Signature operation. + * + * @return esp_err_t + * - ESP_OK In case of success + * - ESP_ERR_INVALID_STATE In case internal context is not initialized + */ +esp_err_t esp_ds_deinit_data_ctx(void); + +/** + * + * @brief Release the ds lock acquired for the DS operation (then the DS peripheral can be used for other TLS connection) + * + */ +void esp_ds_release_ds_lock(void); + +/** + * + * @brief Alternate implementation for mbedtls_rsa_rsassa_pkcs1_v15_sign, Internally makes use + * of DS module to perform hardware accelerated RSA sign operation + */ +int esp_ds_rsa_sign( void *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, unsigned int hashlen, + const unsigned char *hash, unsigned char *sig ); + +/* + * @brief Get RSA key length in bytes from internal DS context + * + * @return RSA key length in bytes + */ +size_t esp_ds_get_keylen(void *ctx); + +/* + * @brief Set timeout (equal to TLS session timeout), so that DS module usage can be synchronized in case of multiple TLS connections using DS module, + */ +void esp_ds_set_session_timeout(int timeout); + +/** + * @brief Alternate implementation for mbedtls_rsa_decrypt, Internally makes use + * of DS module to perform hardware accelerated RSA decrypt operation + * + * @param ctx Context for the RSA operation. It should be a pointer to an mbedtls_rsa_context structure. + * The RSA context should have the correct padding type set (either MBEDTLS_RSA_PKCS_V15 or MBEDTLS_RSA_PKCS_V21). + * If ctx is NULL, the default padding type (MBEDTLS_RSA_PKCS_V15) will be used. + * @param olen Pointer to the output length variable, which will be set to the length of the decrypted data. + * @param input The input data to be decrypted. It should be a pointer to an array of unsigned char. + * @param output The buffer to hold the decrypted output. It should be a pointer to an array of unsigned char. + * @param output_max_len The maximum length of the output buffer. It should be greater than or equal to the expected length of the decrypted data. + * @return int + * - 0 on success + * - -1 on failure + */ +int esp_ds_rsa_decrypt(void *ctx, size_t *olen, + const unsigned char *input, unsigned char *output, + size_t output_max_len); + +#ifdef __cplusplus +} +#endif diff --git a/components/mbedtls/port/include/esp_ds/esp_rsa_sign_alt.h b/components/mbedtls/port/include/esp_ds/esp_rsa_sign_alt.h index 7c00ced5482..529a2dc3e46 100644 --- a/components/mbedtls/port/include/esp_ds/esp_rsa_sign_alt.h +++ b/components/mbedtls/port/include/esp_ds/esp_rsa_sign_alt.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -36,7 +36,7 @@ typedef struct esp_ds_data_ctx { * * @in ds_data ds_data context containing encrypted private key parameters * @return - * - ESP_OK In case of succees + * - ESP_OK In case of success * - ESP_ERR_NO_MEM In case internal context could not be allocated. * - ESP_ERR_INVALID_ARG in case input parametrers are NULL * @@ -55,10 +55,10 @@ void esp_ds_release_ds_lock(void); * @brief Alternate implementation for mbedtls_rsa_rsassa_pkcs1_v15_sign, Internally makes use * of DS module to perform hardware accelerated RSA sign operation */ -int esp_ds_rsa_sign( void *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_md_type_t md_alg, unsigned int hashlen, - const unsigned char *hash, unsigned char *sig ); +int esp_ds_rsa_sign(void *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, unsigned int hashlen, + const unsigned char *hash, unsigned char *sig); /* * @brief Get RSA key length in bytes from internal DS context diff --git a/components/mbedtls/port/include/mbedtls/esp_config.h b/components/mbedtls/port/include/mbedtls/esp_config.h index c5707dd6f3d..54f49bdc146 100644 --- a/components/mbedtls/port/include/mbedtls/esp_config.h +++ b/components/mbedtls/port/include/mbedtls/esp_config.h @@ -1143,6 +1143,24 @@ #undef MBEDTLS_SSL_KEEP_PEER_CERTIFICATE #endif +/** + * \def MBEDTLS_SSL_KEYING_MATERIAL_EXPORT + * + * When this option is enabled, the client and server can extract additional + * shared symmetric keys after an SSL handshake using the function + * mbedtls_ssl_export_keying_material(). + * + * The process for deriving the keys is specified in RFC 5705 for TLS 1.2 and + * in RFC 8446, Section 7.5, for TLS 1.3. + * + * Comment this macro to disable mbedtls_ssl_export_keying_material(). + */ +#ifdef CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT +#define MBEDTLS_SSL_KEYING_MATERIAL_EXPORT +#else +#undef MBEDTLS_SSL_KEYING_MATERIAL_EXPORT +#endif + /** * \def MBEDTLS_SSL_CBC_RECORD_SPLITTING * diff --git a/components/mbedtls/port/include/mbedtls/esp_mbedtls_dynamic.h b/components/mbedtls/port/include/mbedtls/esp_mbedtls_dynamic.h new file mode 100644 index 00000000000..2c00be33c77 --- /dev/null +++ b/components/mbedtls/port/include/mbedtls/esp_mbedtls_dynamic.h @@ -0,0 +1,28 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "mbedtls/ssl.h" +#include "esp_err.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Set the dynamic buffer rx statically after the handshake. This is to avoid frequent allocation and deallocation of dynamic buffer. + * + * @param ssl mbedtls ssl context + * @return esp_err_t + * - ESP_OK: Successfully set the rx buffer to static + * - ESP_ERR_NO_MEM: Failed to allocate memory for the rx buffer + */ +esp_err_t esp_mbedtls_dynamic_set_rx_buf_static(mbedtls_ssl_context *ssl); + +#ifdef __cplusplus +} +#endif diff --git a/components/mbedtls/port/include/rsa_dec_alt.h b/components/mbedtls/port/include/rsa_dec_alt.h new file mode 100644 index 00000000000..6c6f29b0b43 --- /dev/null +++ b/components/mbedtls/port/include/rsa_dec_alt.h @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#ifdef __cpluscplus +extern "C" { +#endif + +#include "sdkconfig.h" + +#if defined(CONFIG_SOC_DIG_SIGN_SUPPORTED) +#include "esp_ds/esp_ds_rsa.h" +#endif + +#ifdef __cpluscplus +} +#endif diff --git a/components/mbedtls/port/include/rsa_sign_alt.h b/components/mbedtls/port/include/rsa_sign_alt.h index bd299cfc3e2..23911adb58b 100644 --- a/components/mbedtls/port/include/rsa_sign_alt.h +++ b/components/mbedtls/port/include/rsa_sign_alt.h @@ -1,28 +1,21 @@ /* - * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once -#ifndef _RSA_SIGN_ALT_H_ -#define _RSA_SIGN_ALT_H_ - #ifdef __cpluscplus extern "C" { #endif -#ifdef CONFIG_ESP_TLS_USE_DS_PERIPHERAL -#include "esp_ds/esp_rsa_sign_alt.h" -#else - -#error "DS configuration flags not activated, please enable required menuconfig flags" +#include "sdkconfig.h" +#if defined(CONFIG_SOC_DIG_SIGN_SUPPORTED) +#include "esp_ds/esp_ds_rsa.h" #endif #ifdef __cpluscplus } #endif - -#endif diff --git a/components/mbedtls/test_apps/main/CMakeLists.txt b/components/mbedtls/test_apps/main/CMakeLists.txt index 931e39b1890..980ab891abd 100644 --- a/components/mbedtls/test_apps/main/CMakeLists.txt +++ b/components/mbedtls/test_apps/main/CMakeLists.txt @@ -4,7 +4,6 @@ set(TEST_CRTS "crts/server_cert_chain.pem" "crts/bad_md_crt.pem" "crts/wrong_sig_crt_esp32_com.pem" "crts/correct_sig_crt_esp32_com.pem") - idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." PRIV_REQUIRES cmock test_utils mbedtls esp_timer unity spi_flash esp_psram @@ -16,3 +15,6 @@ target_compile_definitions(${mbedtls} INTERFACE "-DMBEDTLS_DEPRECATED_WARNING") target_compile_definitions(mbedtls PUBLIC "-DMBEDTLS_DEPRECATED_WARNING") target_compile_definitions(mbedcrypto PUBLIC "-DMBEDTLS_DEPRECATED_WARNING") target_compile_definitions(mbedx509 PUBLIC "-DMBEDTLS_DEPRECATED_WARNING") + +# Add linker wrap option to override esp_ds_finish_sign +target_link_options(${COMPONENT_LIB} INTERFACE "-Wl,--wrap=esp_ds_finish_sign,--wrap=esp_ds_start_sign") diff --git a/components/mbedtls/test_apps/main/test_ds_sign_and_decrypt.c b/components/mbedtls/test_apps/main/test_ds_sign_and_decrypt.c new file mode 100644 index 00000000000..cf3f23f14e1 --- /dev/null +++ b/components/mbedtls/test_apps/main/test_ds_sign_and_decrypt.c @@ -0,0 +1,259 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include "unity.h" +#include "mbedtls/rsa.h" +#include "esp_random.h" +#include "sdkconfig.h" + +#ifdef CONFIG_HEAP_TRACING +#include +#define NUM_RECORDS 100 +static heap_trace_record_t trace_record[NUM_RECORDS]; // This buffer must be in internal RAM +#endif + +#ifdef SOC_DIG_SIGN_SUPPORTED +#include "soc/soc_caps.h" +#include "esp_ds.h" +#include "esp_ds/esp_ds_rsa.h" + +int mbedtls_esp_random(void *ctx, unsigned char *output, size_t len) +{ + if (len == 0 || output == NULL) { + return -1; + } + esp_fill_random(output, len); + return 0; +} + +TEST_CASE("ds sign test pkcs1_v15", "[ds_rsa]") +{ + mbedtls_rsa_context rsa_ctx; + rsa_ctx.MBEDTLS_PRIVATE(padding) = MBEDTLS_RSA_PKCS_V15; + unsigned char hash[32] = {0}; + mbedtls_esp_random(NULL, hash, sizeof(hash)); // Fill hash with random data + unsigned int hashlen = sizeof(hash); + unsigned char signature[256] = {0}; + + // esp_ds is not initialized, so we expect an error + int err = esp_ds_rsa_sign(&rsa_ctx, mbedtls_esp_random, NULL, MBEDTLS_MD_SHA256, hashlen, hash, signature); + TEST_ASSERT_EQUAL(-1, err); + + // Initialize the esp_ds context + esp_ds_data_ctx_t ctx; + esp_ds_data_t ds_data; + ds_data.rsa_length = ESP_DS_RSA_2048; // Example length + ctx.esp_ds_data = &ds_data; + ctx.efuse_key_id = 1; // Example efuse key ID + ctx.rsa_length_bits = 2048; // Example RSA length in bits + + err = esp_ds_init_data_ctx(&ctx); + TEST_ASSERT_EQUAL(ESP_OK, err); + + // Now we can call esp_ds_rsa_sign again + err = esp_ds_rsa_sign(&rsa_ctx, mbedtls_esp_random, NULL, MBEDTLS_MD_SHA256, hashlen, hash, signature); + TEST_ASSERT_EQUAL(0, err); + TEST_ASSERT_NOT_NULL(signature); + + err = esp_ds_deinit_data_ctx(); + TEST_ASSERT_EQUAL(ESP_OK, err); + + // Because we have wrapped around the ds_start_sign and ds_finish_sign functions, + // we are not actually performing the real signing operation. That test is done in the + // crypto test_apps, so here we just check that the surrounding code works as expected. + // In this test, we have used v15 padding, so we expect the signature to be non-null + // and the hash to be part of the signature. + TEST_ASSERT_EQUAL(0, memcmp(hash, signature + (256 - hashlen), hashlen)); + + // Let's also ensure that signature has correct encoding + // Just before the hash start, it should have size of hash + TEST_ASSERT_EQUAL(hashlen, signature[256 - hashlen - 1]); + + // One byte before should be MBEDTLS_ASN1_OCTET_STRING + TEST_ASSERT_EQUAL(0x04, signature[256 - hashlen - 2]); + + // And the first byte should be 0x00, indicating that this is a valid PKCS#1 v1.5 signature + TEST_ASSERT_EQUAL(0x00, signature[0]); +} + +#ifdef CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 +TEST_CASE("ds sign test pkcs1_v21", "[ds_rsa]") +{ + mbedtls_rsa_context rsa_ctx; + rsa_ctx.MBEDTLS_PRIVATE(padding) = MBEDTLS_RSA_PKCS_V21; + unsigned char hash[32] = {0}; + mbedtls_esp_random(NULL, hash, sizeof(hash)); // Fill hash with random data + unsigned int hashlen = sizeof(hash); + unsigned char signature[256] = {0}; + + // esp_ds is not initialized, so we expect an error + int err = esp_ds_rsa_sign(&rsa_ctx, mbedtls_esp_random, NULL, MBEDTLS_MD_SHA256, hashlen, hash, signature); + TEST_ASSERT_EQUAL(-1, err); + + // Initialize the esp_ds context + esp_ds_data_ctx_t ctx; + esp_ds_data_t ds_data; + ds_data.rsa_length = ESP_DS_RSA_2048; // Example length + ctx.esp_ds_data = &ds_data; + ctx.efuse_key_id = 1; // Example efuse key ID + ctx.rsa_length_bits = 2048; // Example RSA length in bits + + err = esp_ds_init_data_ctx(&ctx); + TEST_ASSERT_EQUAL(ESP_OK, err); + + // Now we can call esp_ds_rsa_sign again + err = esp_ds_rsa_sign(&rsa_ctx, mbedtls_esp_random, NULL, MBEDTLS_MD_SHA256, hashlen, hash, signature); + TEST_ASSERT_EQUAL(0, err); + TEST_ASSERT_NOT_NULL(signature); + + err = esp_ds_deinit_data_ctx(); + TEST_ASSERT_EQUAL(ESP_OK, err); +} +#endif // CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 + +/* Generated external data for OAEP padding */ +const unsigned char oaep_padded_v21[] = { + 0x00, 0xb6, 0xd9, 0xe6, 0x62, 0xa5, 0xa0, 0xf7, 0xc7, 0xfe, 0xb9, 0x33, 0xdd, 0xdd, 0x67, 0xd7, + 0x35, 0xa5, 0x9d, 0xf7, 0x21, 0x55, 0xf9, 0x60, 0xa8, 0x38, 0x86, 0xb2, 0x73, 0x90, 0xf5, 0x40, + 0x06, 0x85, 0x51, 0x60, 0x10, 0x01, 0x91, 0x24, 0x47, 0x2e, 0x86, 0x16, 0xa6, 0xbc, 0x35, 0x5b, + 0xe4, 0xca, 0x74, 0x9c, 0xe2, 0xe0, 0x2b, 0x2d, 0x63, 0x56, 0x0f, 0x71, 0xe0, 0x8e, 0x1c, 0xa5, + 0x58, 0x72, 0x30, 0x2f, 0x93, 0xf7, 0xd9, 0x0f, 0x16, 0xed, 0x86, 0xd3, 0xbf, 0x42, 0x12, 0x0a, + 0xaa, 0x3b, 0x16, 0x43, 0x84, 0x0d, 0x6d, 0xc8, 0xf9, 0x22, 0xc7, 0x25, 0xf6, 0x61, 0xb4, 0xb8, + 0xd7, 0x07, 0x76, 0x1a, 0xfb, 0x01, 0x01, 0xd7, 0xd2, 0x9b, 0xc1, 0xec, 0x34, 0x53, 0x14, 0x78, + 0xc4, 0x10, 0xf5, 0xf1, 0x28, 0xf6, 0x30, 0x32, 0xe7, 0x8c, 0x27, 0x62, 0x17, 0xf0, 0x47, 0x10, + 0x87, 0xfa, 0xe6, 0x02, 0x90, 0x45, 0xf9, 0x20, 0x79, 0x42, 0xf9, 0x2a, 0x42, 0x06, 0xae, 0x37, + 0xf4, 0xae, 0x12, 0x6b, 0x9c, 0x7b, 0x7e, 0xed, 0x85, 0xdf, 0xdd, 0x27, 0x27, 0xf5, 0xac, 0xb6, + 0x9c, 0x7a, 0xd9, 0x1f, 0x45, 0xd8, 0xb3, 0xed, 0x73, 0xd7, 0x9e, 0xab, 0x68, 0xb8, 0x25, 0xeb, + 0xc5, 0xcc, 0x8a, 0x04, 0x03, 0xd3, 0xd8, 0x60, 0xcc, 0xab, 0xe9, 0xd1, 0xb1, 0x18, 0x28, 0x84, + 0xf9, 0x52, 0xd6, 0xe2, 0x3c, 0x2a, 0x19, 0x5c, 0xd8, 0x73, 0xff, 0x71, 0x94, 0xd6, 0x8b, 0x5f, + 0x69, 0x09, 0x2f, 0xd2, 0xb0, 0x23, 0xda, 0x1a, 0xe4, 0x47, 0x2d, 0xb6, 0xbf, 0x08, 0xbd, 0x5d, + 0x37, 0x9c, 0x81, 0xdd, 0x54, 0x42, 0xad, 0xf7, 0x65, 0xb2, 0x8e, 0xf7, 0x70, 0x7d, 0x62, 0x0a, + 0x3a, 0x1c, 0xf5, 0xe8, 0x9f, 0x17, 0x22, 0x66, 0x3d, 0xc5, 0xab, 0xf6, 0x51, 0xe9, 0x84, 0x73, +}; + +const unsigned char message[] = { + 0x62, 0x1c, 0xaa, 0x4a, 0xae, 0xf8, 0x1f, 0x4b, 0x59, 0x70, 0xee, 0xcb, 0x0c, 0x91, 0x35, 0xc9, + 0x4a, 0xe2, 0x85, 0xf4, 0xfc, 0x21, 0x18, 0x3e, 0xa6, 0xed, 0xa6, 0x71, 0xdb, 0xfe, 0x2b, 0x95, + 0x67, 0x45, 0xb7, +}; +const size_t message_len = 35; + +TEST_CASE("ds decrypt test pkcs1_v21", "[ds_rsa]") +{ +#ifdef CONFIG_HEAP_TRACING + heap_trace_init_standalone(trace_record, NUM_RECORDS); + heap_trace_start(HEAP_TRACE_LEAKS); +#endif + mbedtls_rsa_context rsa_ctx; + rsa_ctx.MBEDTLS_PRIVATE(padding) = MBEDTLS_RSA_PKCS_V21; + // Initialize the esp_ds context + esp_ds_data_ctx_t ctx; + esp_ds_data_t ds_data; + ds_data.rsa_length = ESP_DS_RSA_2048; // Example length + ctx.esp_ds_data = &ds_data; + ctx.efuse_key_id = 1; // Example efuse key ID + ctx.rsa_length_bits = 2048; // Example RSA length in bits + + unsigned char decrypted[256] = {0}; + size_t decrypted_len = 0; + + // esp_ds is not initialized, so we expect an error + int err = esp_ds_rsa_decrypt(&rsa_ctx, &decrypted_len, oaep_padded_v21, decrypted, sizeof(decrypted)); + TEST_ASSERT_EQUAL(-1, err); + + err = esp_ds_init_data_ctx(&ctx); + TEST_ASSERT_EQUAL(ESP_OK, err); + + err = esp_ds_rsa_decrypt(&rsa_ctx, &decrypted_len, oaep_padded_v21, decrypted, sizeof(decrypted)); + TEST_ASSERT_EQUAL(0, err); + TEST_ASSERT_NOT_NULL(decrypted); + + err = esp_ds_deinit_data_ctx(); + TEST_ASSERT_EQUAL(ESP_OK, err); + + TEST_ASSERT_EQUAL(decrypted_len, message_len); + TEST_ASSERT_EQUAL_MEMORY(decrypted, message, message_len); +#ifdef CONFIG_HEAP_TRACING + heap_trace_stop(); + heap_trace_dump(); +#endif +} + +const unsigned char v15_padded[] = { + 0x00, 0x02, 0xdf, 0x36, 0xfc, 0x41, 0x57, 0x40, 0x87, 0x3f, 0x88, 0xa7, 0x7f, 0x7a, 0x33, 0xbe, + 0x2f, 0xf7, 0xdd, 0x8a, 0xb6, 0x6a, 0xb4, 0x6a, 0x96, 0xdb, 0x63, 0xbf, 0x50, 0xd8, 0x08, 0x5b, + 0x07, 0x9e, 0xdf, 0x4c, 0x1e, 0xb2, 0x6c, 0x83, 0x22, 0xff, 0x21, 0xc8, 0x99, 0xe1, 0x6c, 0x3d, + 0x31, 0x82, 0x8e, 0xb6, 0xb3, 0x3f, 0x77, 0xc6, 0x7d, 0xb1, 0x05, 0x97, 0xd0, 0x96, 0x49, 0x78, + 0x62, 0xd5, 0x7b, 0x5b, 0x49, 0x8c, 0xb0, 0x4e, 0x5f, 0xf2, 0x92, 0xc2, 0x9f, 0xd4, 0x77, 0x0a, + 0x77, 0x94, 0x9f, 0x80, 0xff, 0xde, 0x6a, 0xe7, 0x62, 0x36, 0x9f, 0x73, 0x78, 0xb3, 0xc0, 0x2f, + 0xd8, 0xf9, 0x06, 0x60, 0x78, 0xbc, 0x50, 0x06, 0x0d, 0x33, 0x6c, 0x5f, 0xcc, 0x4d, 0x40, 0x4e, + 0x12, 0x53, 0x39, 0x3b, 0x24, 0x4f, 0x9c, 0x14, 0x20, 0xbd, 0x71, 0x1d, 0xdc, 0xc5, 0xbc, 0x88, + 0xd1, 0x87, 0x4a, 0xac, 0x21, 0xb6, 0x06, 0x9d, 0x56, 0xe5, 0xb7, 0x05, 0x61, 0x32, 0x30, 0x97, + 0x7d, 0x72, 0x2f, 0x45, 0xf0, 0xc6, 0x55, 0x01, 0x87, 0x78, 0xbc, 0xa4, 0x9b, 0x4f, 0xe1, 0xc5, + 0x59, 0x8a, 0xaa, 0x3c, 0xd1, 0x0a, 0xe3, 0xbe, 0x0b, 0xde, 0x21, 0xa8, 0x3b, 0x89, 0x9f, 0x0a, + 0x30, 0x22, 0x64, 0x4e, 0x90, 0x71, 0x52, 0x27, 0x23, 0x7b, 0xe7, 0x0b, 0x07, 0xa9, 0x7e, 0x15, + 0xb1, 0xfe, 0x0e, 0x0e, 0x1b, 0x8e, 0xc3, 0xf0, 0x26, 0x66, 0xfb, 0xdf, 0x78, 0xf8, 0x03, 0xd5, + 0xf5, 0x90, 0x08, 0x04, 0x7c, 0x9f, 0x11, 0xa5, 0x5e, 0x5b, 0x2b, 0x01, 0x00, 0x62, 0x1c, 0xaa, + 0x4a, 0xae, 0xf8, 0x1f, 0x4b, 0x59, 0x70, 0xee, 0xcb, 0x0c, 0x91, 0x35, 0xc9, 0x4a, 0xe2, 0x85, + 0xf4, 0xfc, 0x21, 0x18, 0x3e, 0xa6, 0xed, 0xa6, 0x71, 0xdb, 0xfe, 0x2b, 0x95, 0x67, 0x45, 0xb7, +}; + +TEST_CASE("ds decrypt test pkcs1_v15", "[ds_rsa]") +{ + mbedtls_rsa_context rsa_ctx; + rsa_ctx.MBEDTLS_PRIVATE(padding) = MBEDTLS_RSA_PKCS_V15; + // Initialize the esp_ds context + esp_ds_data_ctx_t ctx; + esp_ds_data_t ds_data; + ds_data.rsa_length = ESP_DS_RSA_2048; // Example length + ctx.esp_ds_data = &ds_data; + ctx.efuse_key_id = 1; // Example efuse key ID + ctx.rsa_length_bits = 2048; // Example RSA length in bits + + int err = esp_ds_init_data_ctx(&ctx); + TEST_ASSERT_EQUAL(ESP_OK, err); + + unsigned char decrypted[256] = {0}; + size_t decrypted_len = 0; + err = esp_ds_rsa_decrypt(&rsa_ctx, &decrypted_len, v15_padded, decrypted, sizeof(decrypted)); + TEST_ASSERT_EQUAL(0, err); + TEST_ASSERT_NOT_NULL(decrypted); + + err = esp_ds_deinit_data_ctx(); + TEST_ASSERT_EQUAL(ESP_OK, err); + + TEST_ASSERT_EQUAL(decrypted_len, message_len); + TEST_ASSERT_EQUAL_MEMORY(decrypted, message, message_len); +} + +int __wrap_esp_ds_start_sign(const void *message, const esp_ds_data_t *data, hmac_key_id_t key_id, esp_ds_context_t **esp_ds_ctx) +{ + // This function will be called instead of the original esp_ds_start_sign + if (message == NULL || data == NULL || esp_ds_ctx == NULL) { + return ESP_ERR_INVALID_ARG; + } + + *esp_ds_ctx = malloc(sizeof(void *)); + if (*esp_ds_ctx == NULL) { + return ESP_ERR_NO_MEM; + } + + // Simulate successful start sign + return ESP_OK; +} + +// Test implementation using linker wrap +int __wrap_esp_ds_finish_sign(void *sig, esp_ds_context_t *ctx) +{ + // This function will be called instead of the original esp_ds_finish_sign + free(ctx); + return 0; + + // Or we can call the real implementation if needed: + // return __real_esp_ds_finish_sign(sig, ctx); +} +#endif /* SOC_DIG_SIGN_SUPPORTED */ diff --git a/components/mbedtls/test_apps/main/test_mbedtls_ecdsa.c b/components/mbedtls/test_apps/main/test_mbedtls_ecdsa.c index 768516d35ca..2a4366b7208 100644 --- a/components/mbedtls/test_apps/main/test_mbedtls_ecdsa.c +++ b/components/mbedtls/test_apps/main/test_mbedtls_ecdsa.c @@ -26,6 +26,11 @@ #if SOC_KEY_MANAGER_SUPPORTED #include "esp_key_mgr.h" #endif + +#if SOC_ECDSA_SUPPORTED +#include "hal/ecdsa_ll.h" +#endif + #define TEST_ASSERT_MBEDTLS_OK(X) TEST_ASSERT_EQUAL_HEX32(0, -(X)) #if CONFIG_NEWLIB_NANO_FORMAT @@ -36,6 +41,8 @@ #define NEWLIB_NANO_COMPAT_CAST(int64_t_var) int64_t_var #endif +__attribute__((unused)) static const char * TAG = "mbedtls_test"; + /* * All the following values are in big endian format, as required by the mbedTLS APIs */ @@ -267,12 +274,20 @@ TEST_CASE("mbedtls ECDSA signature generation on SECP256R1", "[mbedtls][efuse_ke TEST_CASE("mbedtls ECDSA deterministic signature generation on SECP192R1", "[mbedtls][efuse_key]") { - test_ecdsa_sign(MBEDTLS_ECP_DP_SECP192R1, sha, ecdsa192_sign_pub_x, ecdsa192_sign_pub_y, true, SECP192R1_EFUSE_BLOCK); + if (!ecdsa_ll_is_deterministic_mode_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA deterministic mode is not supported."); + } else { + test_ecdsa_sign(MBEDTLS_ECP_DP_SECP192R1, sha, ecdsa192_sign_pub_x, ecdsa192_sign_pub_y, true, SECP192R1_EFUSE_BLOCK); + } } TEST_CASE("mbedtls ECDSA deterministic signature generation on SECP256R1", "[mbedtls][efuse_key]") { - test_ecdsa_sign(MBEDTLS_ECP_DP_SECP256R1, sha, ecdsa256_sign_pub_x, ecdsa256_sign_pub_y, true, SECP256R1_EFUSE_BLOCK); + if (!ecdsa_ll_is_deterministic_mode_supported()) { + ESP_LOGI(TAG, "Skipping test because ECDSA deterministic mode is not supported."); + } else { + test_ecdsa_sign(MBEDTLS_ECP_DP_SECP256R1, sha, ecdsa256_sign_pub_x, ecdsa256_sign_pub_y, true, SECP256R1_EFUSE_BLOCK); + } } #endif /* SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE */ diff --git a/components/mbedtls/test_apps/pytest_mbedtls_ut.py b/components/mbedtls/test_apps/pytest_mbedtls_ut.py index 3614c8dcaa2..2cfeef9c976 100644 --- a/components/mbedtls/test_apps/pytest_mbedtls_ut.py +++ b/components/mbedtls/test_apps/pytest_mbedtls_ut.py @@ -90,3 +90,16 @@ def test_mbedtls_ecdsa_sign(dut: Dut) -> None: ) def test_mbedtls_rom_impl_esp32c2(dut: Dut) -> None: dut.run_all_single_board_cases() + + +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'ds_rsa', + ], + indirect=True, +) +def test_mbedtls_ds_rsa(dut: Dut) -> None: + dut.run_all_single_board_cases(group='ds_rsa') diff --git a/components/mbedtls/test_apps/sdkconfig.ci.ds_rsa b/components/mbedtls/test_apps/sdkconfig.ci.ds_rsa new file mode 100644 index 00000000000..48159ab38dc --- /dev/null +++ b/components/mbedtls/test_apps/sdkconfig.ci.ds_rsa @@ -0,0 +1 @@ +CONFIG_MBEDTLS_SSL_PROTO_TLS1_3=y diff --git a/components/mqtt/test_apps/test_mqtt/sdkconfig.ci.default b/components/mqtt/test_apps/test_mqtt/sdkconfig.ci.default new file mode 100644 index 00000000000..1d40815a9d8 --- /dev/null +++ b/components/mqtt/test_apps/test_mqtt/sdkconfig.ci.default @@ -0,0 +1,4 @@ +CONFIG_MQTT_TEST_BROKER_URI="mqtt://${EXAMPLE_MQTT_BROKER_TCP}" +CONFIG_MQTT5_TEST_BROKER_URI="mqtt://${EXAMPLE_MQTT_BROKER_TCP}" +CONFIG_ESP_TASK_WDT_EN=n +CONFIG_UNITY_ENABLE_FIXTURE=y diff --git a/components/mqtt/test_apps/test_mqtt5/sdkconfig.ci.default b/components/mqtt/test_apps/test_mqtt5/sdkconfig.ci.default new file mode 100644 index 00000000000..1d40815a9d8 --- /dev/null +++ b/components/mqtt/test_apps/test_mqtt5/sdkconfig.ci.default @@ -0,0 +1,4 @@ +CONFIG_MQTT_TEST_BROKER_URI="mqtt://${EXAMPLE_MQTT_BROKER_TCP}" +CONFIG_MQTT5_TEST_BROKER_URI="mqtt://${EXAMPLE_MQTT_BROKER_TCP}" +CONFIG_ESP_TASK_WDT_EN=n +CONFIG_UNITY_ENABLE_FIXTURE=y diff --git a/components/nvs_flash/nvs_partition_tool/pytest.ini b/components/nvs_flash/nvs_partition_tool/pytest.ini index d95e773e5cd..8cb59810c32 100644 --- a/components/nvs_flash/nvs_partition_tool/pytest.ini +++ b/components/nvs_flash/nvs_partition_tool/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = -s -p no:pytest_embedded +addopts = -s -p no:pytest_embedded -p no:idf-ci # log related log_cli = True diff --git a/components/openthread/CMakeLists.txt b/components/openthread/CMakeLists.txt index 49f91d3be7f..dc3938e76f1 100644 --- a/components/openthread/CMakeLists.txt +++ b/components/openthread/CMakeLists.txt @@ -171,7 +171,7 @@ if(CONFIG_OPENTHREAD_ENABLED) if(CONFIG_OPENTHREAD_NCP_VENDOR_HOOK) list(APPEND src_dirs "src/ncp") - if(CONFIG_OPENTHREAD_RCP_UART) + if(CONFIG_OPENTHREAD_RCP_UART OR CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG) list(APPEND exclude_srcs "src/ncp/esp_openthread_ncp_spi.cpp") elseif(CONFIG_OPENTHREAD_RCP_SPI) diff --git a/components/openthread/Kconfig b/components/openthread/Kconfig index bca02ec1fb2..fa1cf9a918d 100644 --- a/components/openthread/Kconfig +++ b/components/openthread/Kconfig @@ -44,6 +44,13 @@ menu "OpenThread" default y help Select this option to enable Command-Line Interface in OpenThread. + + config OPENTHREAD_CONSOLE_COMMAND_PREFIX + string "The prefix of the openthread CLI command registered on the esp console" + default "ot" + help + A prefix string used before a Thread CLI command, allowing the ESP console to identify + it and delegate the remaining command to the OpenThread callback for processing. endmenu menu "Thread Core Features" @@ -130,6 +137,14 @@ menu "OpenThread" default 12390 help Configure the port number of TREL service. + + config OPENTHREAD_TREL_BUFFER_SIZE + int "The receive buffer size of openthread trel" + depends on OPENTHREAD_RADIO_TREL + range 10 255 + default 50 + help + Configure the receive buffer size of TREL service. endmenu menu "Thread 15.4 Radio Link" @@ -181,6 +196,12 @@ menu "OpenThread" select GPIO_CTRL_FUNC_IN_IRAM help Select this to enable SPI connection to host. + + config OPENTHREAD_RCP_USB_SERIAL_JTAG + depends on ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG && !OPENTHREAD_CONSOLE_TYPE_USB_SERIAL_JTAG + bool "USB RCP" + help + Select this to enable connection to host over USB JTAG serial. endchoice config OPENTHREAD_NCP_VENDOR_HOOK @@ -320,8 +341,8 @@ menu "OpenThread" config OPENTHREAD_RX_ON_WHEN_IDLE bool "Enable OpenThread radio capability rx on when idle" - default y if !ESP_COEX_SW_COEXIST_ENABLE - default n if ESP_COEX_SW_COEXIST_ENABLE + default y if !ESP_COEX_SW_COEXIST_ENABLE && !ESP_COEX_EXTERNAL_COEXIST_ENABLE + default n if ESP_COEX_SW_COEXIST_ENABLE || ESP_COEX_EXTERNAL_COEXIST_ENABLE help Select this option to enable OpenThread radio capability rx on when idle. Do not support this feature when SW coexistence is enabled. @@ -343,7 +364,7 @@ menu "OpenThread" RSS to its current parent every periodically and starts a parent search process if the average RSS is below OPENTHREAD_PARENT_SEARCH_RSS_THRESHOLD. This feature is always enabled for FTDs. menu "Parent Search Configurations" - depends on OPENTHREAD_PARENT_SEARCH_MTD + depends on OPENTHREAD_PARENT_SEARCH_MTD || OPENTHREAD_FTD config OPENTHREAD_PARENT_SEARCH_CHECK_INTERVAL_MINS int "The interval in minutes for a child to check the trigger condition to perform a parent search" default 9 @@ -353,6 +374,12 @@ menu "OpenThread" config OPENTHREAD_PARENT_SEARCH_RSS_THRESHOLD int "The RSS threshold used to trigger a parent search" default -65 + config OPENTHREAD_PARENT_SEARCH_RESELECT_TIMEOUT_MINS + int "The parent reselect timeout duration in minutes used on FTD child devices" + default 90 + config OPENTHREAD_PARENT_SEARCH_RSS_MARGIN + int "The RSS margin over the current parent RSS used on FTD child devices" + default 7 endmenu menu "Thread Memory Allocation" diff --git a/components/openthread/include/esp_openthread.h b/components/openthread/include/esp_openthread.h index 9e5f39a59bf..a3f0528f935 100644 --- a/components/openthread/include/esp_openthread.h +++ b/components/openthread/include/esp_openthread.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -79,6 +79,15 @@ esp_err_t esp_openthread_deinit(void); */ otInstance *esp_openthread_get_instance(void); +/** + * @brief Signals the OpenThread main loop to exit. + * + * @return + * - ESP_OK on success + * - ESP_FAIL on failures + * + */ +esp_err_t esp_openthread_mainloop_exit(void); #ifdef __cplusplus } // end of extern "C" diff --git a/components/openthread/include/esp_openthread_border_router.h b/components/openthread/include/esp_openthread_border_router.h index 6fe915bc537..e78c28bddd1 100644 --- a/components/openthread/include/esp_openthread_border_router.h +++ b/components/openthread/include/esp_openthread_border_router.h @@ -76,6 +76,14 @@ esp_netif_t *esp_openthread_get_backbone_netif(void); */ esp_err_t esp_openthread_set_meshcop_instance_name(const char *instance_name); +/** + * @brief Gets the meshcop(e) instance name. + * + * @return The instance name. + * + */ +const char* esp_openthread_get_meshcop_instance_name(void); + #ifdef __cplusplus } #endif diff --git a/components/openthread/include/esp_openthread_cli.h b/components/openthread/include/esp_openthread_cli.h index 554d0c755cc..0bc7741a9c5 100644 --- a/components/openthread/include/esp_openthread_cli.h +++ b/components/openthread/include/esp_openthread_cli.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,14 @@ extern "C" { /** * @brief This function initializes the OpenThread command line interface(CLI). * + * @note There are two ways to initialize the OpenThread CLI: + * 1. By creating a dedicated task via `esp_openthread_cli_create_task` + * + * 2. By registering a console command with the ESP console via + * `esp_openthread_cli_console_command_register` + * If using this approach, the user must initialize the interface used + * by the console and also initialize esp_console manually. Additionally, + * the `host_connection_mode` should be set to `HOST_CONNECTION_MODE_NONE`. */ void esp_openthread_cli_init(void); @@ -34,11 +42,27 @@ esp_err_t esp_openthread_cli_input(const char *line); /** * @brief This function launches an exclusive loop for the OpenThread CLI. * - * @param[in] priority The priority of the created task. - * */ void esp_openthread_cli_create_task(void); +/** + * @brief This function registers an ESP Console command for the OpenThread CLI. + * + * @return + * - ESP_OK on success + * - ESP_ERR_NO_MEM if allocation has failed + */ +esp_err_t esp_openthread_cli_console_command_register(void); + +/** + * @brief This function deregisters the ESP Console command for the OpenThread CLI. + * + * @return + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if command is not registered + */ +esp_err_t esp_openthread_cli_console_command_unregister(void); + #ifdef __cplusplus } #endif diff --git a/components/openthread/include/esp_openthread_meshcop_mdns.h b/components/openthread/include/esp_openthread_meshcop_mdns.h new file mode 100644 index 00000000000..4e2c5926fab --- /dev/null +++ b/components/openthread/include/esp_openthread_meshcop_mdns.h @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "esp_openthread.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Publishes the OpenThread meshcop service in mDNS + * + * @param[in] instance_name Instance name of meshcop mDNS service + * + * @return + * - ESP_OK success + * - ESP_ERR_NO_MEM memory error + * - ESP_FAIL failed to add service + * + */ +esp_err_t esp_openthread_publish_meshcop_mdns(const char *instance_name); + +/** + * @brief Removes the OpenThread meshcop service in mDNS + * + * @return + * - ESP_OK success + * - ESP_ERR_NO_MEM memory error + * - ESP_FAIL failed to remove service + * + */ +esp_err_t esp_openthread_remove_meshcop_mdns(void); + +#ifdef __cplusplus +} +#endif diff --git a/components/openthread/include/esp_openthread_netif_glue.h b/components/openthread/include/esp_openthread_netif_glue.h index 3d70c8a7f74..31197195f45 100644 --- a/components/openthread/include/esp_openthread_netif_glue.h +++ b/components/openthread/include/esp_openthread_netif_glue.h @@ -76,6 +76,17 @@ esp_netif_t *esp_openthread_get_netif(void); */ void esp_openthread_register_meshcop_e_handler(esp_event_handler_t handler, bool for_publish); +/** + * @brief This function judges the target address is openthread mesh local or not. + * + * @param[in] address The address. + * + * @return + * - True if the address is openthread mesh local, otherwise false + * + */ +bool is_openthread_internal_mesh_local_addr(const otIp6Address *address); + #ifdef __cplusplus } #endif diff --git a/components/openthread/include/esp_openthread_types.h b/components/openthread/include/esp_openthread_types.h index 364d596100b..c5f4f4cba67 100644 --- a/components/openthread/include/esp_openthread_types.h +++ b/components/openthread/include/esp_openthread_types.h @@ -150,6 +150,7 @@ typedef enum { HOST_CONNECTION_MODE_CLI_USB, /*!< CLI USB connection to the host */ HOST_CONNECTION_MODE_RCP_UART, /*!< RCP UART connection to the host */ HOST_CONNECTION_MODE_RCP_SPI, /*!< RCP SPI connection to the host */ + HOST_CONNECTION_MODE_RCP_USB, /*!< RCP USB Serial JTAG connection to the host */ HOST_CONNECTION_MODE_MAX, /*!< Using for parameter check */ } esp_openthread_host_connection_mode_t; diff --git a/components/openthread/lib b/components/openthread/lib index d4d4738d0d7..d42fd889dd9 160000 --- a/components/openthread/lib +++ b/components/openthread/lib @@ -1 +1 @@ -Subproject commit d4d4738d0d757dbcead167179ecf829a8c1d477b +Subproject commit d42fd889dd9a0a5c0e016ee1bd24750df54cb0c2 diff --git a/components/openthread/openthread b/components/openthread/openthread index ec2b0d48735..b945928d722 160000 --- a/components/openthread/openthread +++ b/components/openthread/openthread @@ -1 +1 @@ -Subproject commit ec2b0d487356d2955346457a6515201039140037 +Subproject commit b945928d722177cd9caeab2e1025499628c101ef diff --git a/components/openthread/private_include/esp_openthread_common.h b/components/openthread/private_include/esp_openthread_common.h new file mode 100644 index 00000000000..321b3c8e07e --- /dev/null +++ b/components/openthread/private_include/esp_openthread_common.h @@ -0,0 +1,15 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include + +typedef struct { + uint8_t head; + uint8_t tail; + atomic_uint_fast8_t used; +} esp_openthread_circular_queue_info_t; diff --git a/components/openthread/private_include/esp_openthread_netif_glue_priv.h b/components/openthread/private_include/esp_openthread_netif_glue_priv.h index d5a9d1c0729..ceebe3db4d9 100644 --- a/components/openthread/private_include/esp_openthread_netif_glue_priv.h +++ b/components/openthread/private_include/esp_openthread_netif_glue_priv.h @@ -36,17 +36,6 @@ void esp_openthread_netif_glue_update(esp_openthread_mainloop_context_t *mainloo */ esp_err_t esp_openthread_netif_glue_process(otInstance *instance, const esp_openthread_mainloop_context_t *mainloop); -/** - * @brief This function judges the target address is openthread mesh local or not. - * - * @param[in] address The address. - * - * @return - * - True if the address is openthread mesh local, otherwise false - * - */ -bool is_openthread_internal_mesh_local_addr(const otIp6Address *address); - #ifdef __cplusplus } #endif diff --git a/components/openthread/private_include/esp_openthread_radio.h b/components/openthread/private_include/esp_openthread_radio.h index 4b9aa4555f6..ae7550471b1 100644 --- a/components/openthread/private_include/esp_openthread_radio.h +++ b/components/openthread/private_include/esp_openthread_radio.h @@ -84,6 +84,27 @@ void esp_openthread_set_coex_config(esp_ieee802154_coex_config_t config); * */ esp_ieee802154_coex_config_t esp_openthread_get_coex_config(void); + +/** + * @brief This function updates the TREL fds and timeouts to the main loop. + * + * @param[inout] mainloop The main loop context. + * + */ +void esp_openthread_trel_update(esp_openthread_mainloop_context_t *mainloop); + +/** + * @brief This function performs the OpenThread TREL process. + * + * @param[in] instance The OpenThread instance. + * @param[in] mainloop The main loop context. + * + * @return + * - ESP_OK on success + * - ESP_FAIL on failure + * + */ +esp_err_t esp_openthread_trel_process(otInstance *aInstance, const esp_openthread_mainloop_context_t *mainloop); #endif #ifdef __cplusplus diff --git a/components/openthread/private_include/esp_openthread_state.h b/components/openthread/private_include/esp_openthread_state.h index e2ee3508059..91d69c4283c 100644 --- a/components/openthread/private_include/esp_openthread_state.h +++ b/components/openthread/private_include/esp_openthread_state.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -10,6 +10,11 @@ #include #include +#define ESP_OPENTHREAD_BORDER_ROUTER_FLAG_OF_INTEREST \ + (OT_CHANGED_THREAD_ROLE | OT_CHANGED_THREAD_EXT_PANID | OT_CHANGED_THREAD_NETWORK_NAME | \ + OT_CHANGED_ACTIVE_DATASET | OT_CHANGED_THREAD_PARTITION_ID | OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE | \ + OT_CHANGED_PSKC) + #ifdef __cplusplus extern "C" { #endif diff --git a/components/openthread/private_include/esp_openthread_uart.h b/components/openthread/private_include/esp_openthread_uart.h index 50b5f447060..8a01690646d 100644 --- a/components/openthread/private_include/esp_openthread_uart.h +++ b/components/openthread/private_include/esp_openthread_uart.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -64,6 +64,18 @@ esp_err_t esp_openthread_host_cli_usb_init(const esp_openthread_platform_config_ */ esp_err_t esp_openthread_host_rcp_uart_init(const esp_openthread_platform_config_t *config); +/** + * @brief Initializes the RCP USB for OpenThread host connection. + * + * @param[in] config The platform configuration. + * + * @return + * - ESP_OK on success + * - ESP_ERROR on failure + * + */ +esp_err_t esp_openthread_host_rcp_usb_init(const esp_openthread_platform_config_t *config); + /** * @brief Deintializes the uart for OpenThread host connection. * diff --git a/components/openthread/private_include/openthread-core-esp32x-ftd-config.h b/components/openthread/private_include/openthread-core-esp32x-ftd-config.h index 57e19977d0c..6e62ee5f390 100644 --- a/components/openthread/private_include/openthread-core-esp32x-ftd-config.h +++ b/components/openthread/private_include/openthread-core-esp32x-ftd-config.h @@ -382,6 +382,68 @@ #define OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE 0 #endif +/** + * @def OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL + * + * Specifies the interval in seconds for a child to check the trigger condition to perform a parent search. + * + * Applicable only if periodic parent search feature is enabled (see `OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE`). + */ +#ifdef OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL +#error `OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL` is redefined. +#endif +#define OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL CONFIG_OPENTHREAD_PARENT_SEARCH_CHECK_INTERVAL_MINS * 60 + +/** + * @def OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL + * + * Specifies the backoff interval in seconds for a child to not perform a parent search after triggering one. This is + * used when device is an MTD child. + * + * Applicable only if periodic parent search feature is enabled (see `OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE`). + */ +#ifdef OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL +#error `OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL` is redefined. +#endif +#define OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL CONFIG_OPENTHREAD_PARENT_SEARCH_BACKOFF_INTERVAL_MINS * 60 + +/** + * @def OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD + * + * Specifies the RSS threshold used to trigger a parent search. + * + * Applicable only if periodic parent search feature is enabled (see `OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE`). + */ +#ifdef OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD +#error `OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD` is redefined. +#endif +#define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD CONFIG_OPENTHREAD_PARENT_SEARCH_RSS_THRESHOLD + +/** + * @def OPENTHREAD_CONFIG_PARENT_SEARCH_RESELECT_TIMEOUT + * + * Specifies parent reselect timeout duration in seconds used on FTD child devices. When an attach attempt to a + * neighboring router selected as a potential new parent fails, the same router cannot be selected again until this + * timeout expires. + * + * Applicable only if periodic parent search feature is enabled (see `OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE`). + */ +#ifdef OPENTHREAD_CONFIG_PARENT_SEARCH_RESELECT_TIMEOUT +#error `OPENTHREAD_CONFIG_PARENT_SEARCH_RESELECT_TIMEOUT` is redefined. +#endif +#define OPENTHREAD_CONFIG_PARENT_SEARCH_RESELECT_TIMEOUT CONFIG_OPENTHREAD_PARENT_SEARCH_RESELECT_TIMEOUT_MINS * 60 + +/** + * @def OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_MARGIN + * + * Specifies the RSS margin over the current parent RSS for allowing selection of a neighboring router as a potential + * new parent to attach to. Used on FTD child devices. + */ +#ifdef OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_MARGIN +#error `OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_MARGIN` is redefined. +#endif +#define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_MARGIN CONFIG_OPENTHREAD_PARENT_SEARCH_RSS_MARGIN + /*----The following options set fixed default values but can be overridden by the user header file.----*/ #if CONFIG_OPENTHREAD_BORDER_ROUTER diff --git a/components/openthread/private_include/openthread-core-esp32x-radio-config.h b/components/openthread/private_include/openthread-core-esp32x-radio-config.h index 009635bac75..8be7e0de72b 100644 --- a/components/openthread/private_include/openthread-core-esp32x-radio-config.h +++ b/components/openthread/private_include/openthread-core-esp32x-radio-config.h @@ -91,7 +91,7 @@ #ifdef OPENTHREAD_CONFIG_NCP_HDLC_ENABLE #error `OPENTHREAD_CONFIG_NCP_HDLC_ENABLE` is redefined. #endif -#define OPENTHREAD_CONFIG_NCP_HDLC_ENABLE CONFIG_OPENTHREAD_RCP_UART +#define OPENTHREAD_CONFIG_NCP_HDLC_ENABLE (CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG) /** * @def OPENTHREAD_LIB_SPINEL_RX_FRAME_BUFFER_SIZE diff --git a/components/openthread/sbom_openthread.yml b/components/openthread/sbom_openthread.yml index 789349f8276..51447eac610 100644 --- a/components/openthread/sbom_openthread.yml +++ b/components/openthread/sbom_openthread.yml @@ -5,4 +5,4 @@ supplier: 'Organization: Espressif Systems (Shanghai) CO LTD' originator: 'Organization: Google LLC' description: OpenThread released by Google is an open-source implementation of the Thread networking url: https://github.com/espressif/openthread -hash: ec2b0d487356d2955346457a6515201039140037 +hash: b945928d722177cd9caeab2e1025499628c101ef diff --git a/components/openthread/src/esp_openthread.cpp b/components/openthread/src/esp_openthread.cpp index 73018e2d3f4..d816cd121d5 100644 --- a/components/openthread/src/esp_openthread.cpp +++ b/components/openthread/src/esp_openthread.cpp @@ -26,6 +26,8 @@ #include "openthread/dataset_ftd.h" #endif +static bool s_ot_mainloop_running = false; + static int hex_digit_to_int(char hex) { if ('A' <= hex && hex <= 'F') { @@ -158,13 +160,24 @@ esp_err_t esp_openthread_auto_start(otOperationalDatasetTlvs *datasetTlvs) return ESP_OK; } +static void mainloop_safe_exit(void *ctx) +{ + s_ot_mainloop_running = false; +} + +esp_err_t esp_openthread_mainloop_exit(void) +{ + return esp_openthread_task_queue_post(mainloop_safe_exit, NULL); +} + esp_err_t esp_openthread_launch_mainloop(void) { esp_openthread_mainloop_context_t mainloop; otInstance *instance = esp_openthread_get_instance(); esp_err_t error = ESP_OK; + s_ot_mainloop_running = true; - while (true) { + while (s_ot_mainloop_running) { FD_ZERO(&mainloop.read_fds); FD_ZERO(&mainloop.write_fds); FD_ZERO(&mainloop.error_fds); diff --git a/components/openthread/src/esp_openthread_cli.c b/components/openthread/src/esp_openthread_cli.c index b2a76a4df0c..b7e1b933f90 100644 --- a/components/openthread/src/esp_openthread_cli.c +++ b/components/openthread/src/esp_openthread_cli.c @@ -1,14 +1,13 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ -#include "esp_openthread_cli.h" #include #include - +#include "sdkconfig.h" #include "openthread/cli.h" #include "esp_check.h" @@ -16,6 +15,7 @@ #include "esp_log.h" #include "esp_openthread.h" #include "esp_openthread_common_macro.h" +#include "esp_openthread_cli.h" #include "esp_openthread_task_queue.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" @@ -63,6 +63,40 @@ esp_err_t esp_openthread_cli_input(const char *line) return esp_openthread_task_queue_post(line_handle_task, line_copy); } +static int ot_cli_console_callback(int argc, char **argv) +{ + char cli_cmd[OT_CLI_MAX_LINE_LENGTH] = {0}; + strncpy(cli_cmd, argv[1], sizeof(cli_cmd) - strlen(cli_cmd) - 1); + for (int i = 2; i < argc; i++) { + strncat(cli_cmd, " ", sizeof(cli_cmd) - strlen(cli_cmd) - 1); + strncat(cli_cmd, argv[i], sizeof(cli_cmd) - strlen(cli_cmd) - 1); + } + s_cli_task = xTaskGetCurrentTaskHandle(); + if (esp_openthread_cli_input(cli_cmd) == ESP_OK) { + xTaskNotifyWait(0, 0, NULL, portMAX_DELAY); + } else { + printf("Openthread task is busy, failed to run command: %s\n", cli_cmd); + } + s_cli_task = NULL; + return 0; +} + +esp_err_t esp_openthread_cli_console_command_register(void) +{ + esp_console_cmd_t cmd = { + .command = CONFIG_OPENTHREAD_CONSOLE_COMMAND_PREFIX, + .help = "Execute `"CONFIG_OPENTHREAD_CONSOLE_COMMAND_PREFIX" ...` to run openthread cli", + .hint = NULL, + .func = ot_cli_console_callback, + }; + return esp_console_cmd_register(&cmd); +} + +esp_err_t esp_openthread_cli_console_command_unregister(void) +{ + return esp_console_cmd_deregister(CONFIG_OPENTHREAD_CONSOLE_COMMAND_PREFIX); +} + static void ot_cli_loop(void *context) { int ret = 0; diff --git a/components/openthread/src/esp_openthread_platform.cpp b/components/openthread/src/esp_openthread_platform.cpp index 51bfd779042..f16891d69c2 100644 --- a/components/openthread/src/esp_openthread_platform.cpp +++ b/components/openthread/src/esp_openthread_platform.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -106,6 +106,12 @@ static esp_err_t esp_openthread_host_interface_init(const esp_openthread_platfor "esp_openthread_host_rcp_uart_init failed"); break; #endif +#if CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG + case HOST_CONNECTION_MODE_RCP_USB: + ESP_RETURN_ON_ERROR(esp_openthread_host_rcp_usb_init(config), OT_PLAT_LOG_TAG, + "esp_openthread_host_rcp_usb_init failed"); + break; +#endif #if CONFIG_OPENTHREAD_CONSOLE_TYPE_UART case HOST_CONNECTION_MODE_CLI_UART: ESP_RETURN_ON_ERROR(esp_openthread_host_cli_uart_init(config), OT_PLAT_LOG_TAG, diff --git a/components/openthread/src/ncp/esp_openthread_ncp.cpp b/components/openthread/src/ncp/esp_openthread_ncp.cpp index c9ddd03e3ea..94c31113dec 100644 --- a/components/openthread/src/ncp/esp_openthread_ncp.cpp +++ b/components/openthread/src/ncp/esp_openthread_ncp.cpp @@ -13,11 +13,11 @@ #include "esp_coex_i154.h" #endif -#if CONFIG_OPENTHREAD_RCP_UART +#if (CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG) #include "utils/uart.h" #endif -#if CONFIG_OPENTHREAD_RCP_UART +#if (CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG) extern "C" { static int NcpSend(const uint8_t *aBuf, uint16_t aBufLength) { diff --git a/components/openthread/src/port/esp_openthread_radio.c b/components/openthread/src/port/esp_openthread_radio.c index 28062b4afd5..cc9a4a280b8 100644 --- a/components/openthread/src/port/esp_openthread_radio.c +++ b/components/openthread/src/port/esp_openthread_radio.c @@ -4,7 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ -#include #include "esp_openthread_radio.h" #include "esp_err.h" @@ -13,6 +12,7 @@ #include "esp_ieee802154.h" #include "esp_ieee802154_types.h" #include "esp_mac.h" +#include "esp_openthread_common.h" #include "esp_openthread_common_macro.h" #include "esp_openthread_platform.h" #include "esp_openthread_types.h" @@ -52,12 +52,6 @@ typedef struct { uint8_t psdu[OT_RADIO_FRAME_MAX_SIZE]; } esp_openthread_radio_tx_psdu; -typedef struct { - uint8_t head; - uint8_t tail; - atomic_uint_fast8_t used; -} esp_openthread_circular_queue_info_t; - static otRadioFrame s_transmit_frame; static esp_openthread_radio_tx_psdu s_transmit_psdu; diff --git a/components/openthread/src/port/esp_openthread_sleep.c b/components/openthread/src/port/esp_openthread_sleep.c index a5381625ca1..8ca7504a6f6 100644 --- a/components/openthread/src/port/esp_openthread_sleep.c +++ b/components/openthread/src/port/esp_openthread_sleep.c @@ -19,10 +19,12 @@ esp_err_t esp_openthread_sleep_init(void) { esp_err_t err = ESP_OK; - err = esp_pm_lock_create(ESP_PM_CPU_FREQ_MAX, 0, "ieee802154", &s_pm_lock); + // Here we use APB_MAX because modem requires MODEM_REQUIRED_MIN_APB_CLK_FREQ. + // No need for CPU_MAX to reduce current consumption during Rx window. + err = esp_pm_lock_create(ESP_PM_APB_FREQ_MAX, 0, "ot_sleep", &s_pm_lock); if (err == ESP_OK) { esp_pm_lock_acquire(s_pm_lock); - ESP_LOGI(TAG, "Enable ieee802154 light sleep, the wake up source is ESP timer"); + ESP_LOGI(TAG, "Enable OpenThread light sleep, the wake up source is ESP timer"); } else { if (s_pm_lock != NULL) { esp_pm_lock_delete(s_pm_lock); diff --git a/components/openthread/src/port/esp_openthread_state.c b/components/openthread/src/port/esp_openthread_state.c index 153d343ea1e..bc2641d9053 100644 --- a/components/openthread/src/port/esp_openthread_state.c +++ b/components/openthread/src/port/esp_openthread_state.c @@ -10,7 +10,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -19,6 +21,19 @@ #define TAG "OT_STATE" +#if CONFIG_OPENTHREAD_BORDER_ROUTER +static void handle_ot_border_router_state_changed(otInstance* instance) +{ + otDeviceRole role = otThreadGetDeviceRole(esp_openthread_get_instance()); + + if (role == OT_DEVICE_ROLE_CHILD || role == OT_DEVICE_ROLE_ROUTER || role == OT_DEVICE_ROLE_LEADER) { + esp_openthread_publish_meshcop_mdns(esp_openthread_get_meshcop_instance_name()); + } else { + esp_openthread_remove_meshcop_mdns(); + } +} +#endif + static void handle_ot_netif_state_change(otInstance* instance) { if (otIp6IsEnabled(instance)) { @@ -123,6 +138,12 @@ static void ot_state_change_callback(otChangedFlags changed_flags, void* ctx) return; } +#if CONFIG_OPENTHREAD_BORDER_ROUTER + if (changed_flags & ESP_OPENTHREAD_BORDER_ROUTER_FLAG_OF_INTEREST) { + handle_ot_border_router_state_changed(instance); + } +#endif + if (changed_flags & OT_CHANGED_THREAD_ROLE) { handle_ot_role_change(instance); } diff --git a/components/openthread/src/port/esp_openthread_trel.c b/components/openthread/src/port/esp_openthread_trel.c index 3c56e7a1c17..eae1c04219f 100644 --- a/components/openthread/src/port/esp_openthread_trel.c +++ b/components/openthread/src/port/esp_openthread_trel.c @@ -18,10 +18,12 @@ #include "esp_netif_ip_addr.h" #include "esp_openthread.h" #include "esp_openthread_border_router.h" +#include "esp_openthread_common.h" #include "esp_openthread_common_macro.h" #include "esp_openthread_lock.h" +#include "esp_openthread_platform.h" #include "esp_openthread_radio.h" -#include "esp_openthread_task_queue.h" +#include "esp_vfs_eventfd.h" #include "lwip/pbuf.h" #include "lwip/tcpip.h" #include "lwip/udp.h" @@ -54,6 +56,10 @@ typedef struct { static ot_trel_t s_ot_trel = {CONFIG_OPENTHREAD_TREL_PORT, NULL}; static bool s_is_service_registered = false; +static ot_trel_recv_task_t s_trel_receive_buffer[CONFIG_OPENTHREAD_TREL_BUFFER_SIZE]; +static esp_openthread_circular_queue_info_t s_recv_queue = {.head = 0, .tail = 0, .used = 0}; +static const char *s_trel_workflow = "trel"; +static int s_trel_event_fd = -1; static void trel_browse_notifier(mdns_result_t *result) { @@ -89,55 +95,27 @@ static void trel_browse_notifier(mdns_result_t *result) } } -static void trel_recv_task(void *ctx) -{ - esp_err_t ret = ESP_OK; - OT_UNUSED_VARIABLE(ret); - ot_trel_recv_task_t *task_ctx = (ot_trel_recv_task_t *)ctx; - struct pbuf *recv_buf = task_ctx->p; - uint8_t *data_buf = (uint8_t *)recv_buf->payload; - uint8_t *data_buf_to_free = NULL; - uint16_t length = recv_buf->len; - - if (recv_buf->next != NULL) { - data_buf = (uint8_t *)malloc(recv_buf->tot_len); - ESP_GOTO_ON_FALSE(data_buf, ESP_ERR_NO_MEM, exit, OT_PLAT_LOG_TAG, "Failed to allocate data buf when receiving Thread TREL message"); - length = recv_buf->tot_len; - data_buf_to_free = data_buf; - pbuf_copy_partial(recv_buf, data_buf, recv_buf->tot_len, 0); - } - otPlatTrelHandleReceived(esp_openthread_get_instance(), data_buf, length, task_ctx->source_addr); - -exit: - if (recv_buf) { - pbuf_free(recv_buf); - } - free(data_buf_to_free); - free(task_ctx->source_addr); - free(task_ctx); -} - -// TZ-1704 static void handle_trel_udp_recv(void *ctx, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, uint16_t port) { esp_err_t ret = ESP_OK; + otSockAddr *source_addr = NULL; + uint64_t event_trel_rx = 1; ESP_LOGD(OT_PLAT_LOG_TAG, "Receive from %s:%d", ip6addr_ntoa(&(addr->u_addr.ip6)), port); + ESP_GOTO_ON_FALSE(atomic_load(&s_recv_queue.used) < CONFIG_OPENTHREAD_TREL_BUFFER_SIZE, ESP_ERR_NO_MEM, exit, OT_PLAT_LOG_TAG, "trel receive buffer full!"); + source_addr = (otSockAddr *)malloc(sizeof(otSockAddr)); + ESP_GOTO_ON_FALSE(source_addr, ESP_ERR_NO_MEM, exit, OT_PLAT_LOG_TAG, "Failed to allocate buf for Thread TREL"); - ot_trel_recv_task_t *task_ctx = (ot_trel_recv_task_t *)malloc(sizeof(ot_trel_recv_task_t)); - ESP_GOTO_ON_FALSE(task_ctx, ESP_ERR_NO_MEM, exit, OT_PLAT_LOG_TAG, "Failed to allocate buf for Thread TREL"); - task_ctx->p = p; - task_ctx->source_addr = (otSockAddr *)malloc(sizeof(otSockAddr)); - ESP_GOTO_ON_FALSE(task_ctx->source_addr, ESP_ERR_NO_MEM, exit, OT_PLAT_LOG_TAG, "Failed to allocate buf for Thread TREL"); - memset(task_ctx->source_addr, 0, sizeof(otSockAddr)); - task_ctx->source_addr->mPort = port; - memcpy(&task_ctx->source_addr->mAddress.mFields.m32, addr->u_addr.ip6.addr, sizeof(addr->u_addr.ip6.addr)); - - ESP_GOTO_ON_ERROR(esp_openthread_task_queue_post(trel_recv_task, task_ctx), exit, OT_PLAT_LOG_TAG, "Failed to receive OpenThread TREL message"); + memset(source_addr, 0, sizeof(otSockAddr)); + source_addr->mPort = port; + memcpy(&source_addr->mAddress.mFields.m32, addr->u_addr.ip6.addr, sizeof(addr->u_addr.ip6.addr)); + s_trel_receive_buffer[s_recv_queue.tail].source_addr = source_addr; + s_trel_receive_buffer[s_recv_queue.tail].p = p; + s_recv_queue.tail = (s_recv_queue.tail + 1) % CONFIG_OPENTHREAD_TREL_BUFFER_SIZE; + atomic_fetch_add(&s_recv_queue.used, 1); + assert(write(s_trel_event_fd, &event_trel_rx, sizeof(event_trel_rx)) == sizeof(event_trel_rx)); exit: if (ret != ESP_OK) { - free(task_ctx->source_addr); - free(task_ctx); if (p) { pbuf_free(p); } @@ -146,25 +124,76 @@ exit: static esp_err_t ot_new_trel(void *ctx) { - ot_trel_t *task = (ot_trel_t *)ctx; + s_ot_trel.trel_pcb = udp_new(); + ESP_RETURN_ON_FALSE(s_ot_trel.trel_pcb != NULL, ESP_ERR_NO_MEM, OT_PLAT_LOG_TAG, "Failed to create a new UDP pcb"); + udp_bind(s_ot_trel.trel_pcb, IP6_ADDR_ANY, s_ot_trel.port); + udp_recv(s_ot_trel.trel_pcb, handle_trel_udp_recv, NULL); + return ESP_OK; +} + +void esp_openthread_trel_update(esp_openthread_mainloop_context_t *mainloop) +{ + FD_SET(s_trel_event_fd, &mainloop->read_fds); + if (s_trel_event_fd > mainloop->max_fd) { + mainloop->max_fd = s_trel_event_fd; + } +} + +esp_err_t esp_openthread_trel_process(otInstance *aInstance, const esp_openthread_mainloop_context_t *mainloop) +{ + uint64_t event_read = 0; + assert(read(s_trel_event_fd, &event_read, sizeof(event_read)) == sizeof(event_read)); + struct pbuf *recv_buf = NULL; + uint8_t *data_buf = NULL; + uint16_t length = 0; + otSockAddr *source_addr = NULL; + + while (atomic_load(&s_recv_queue.used)) { + if (s_trel_receive_buffer[s_recv_queue.head].p != NULL) { + + uint8_t *data_buf_to_free = NULL; + bool should_handle = true; + recv_buf = s_trel_receive_buffer[s_recv_queue.head].p; + data_buf = (uint8_t *)recv_buf->payload; + length = recv_buf->len; + source_addr = s_trel_receive_buffer[s_recv_queue.head].source_addr; + + if (recv_buf->next != NULL) { + data_buf = (uint8_t *)malloc(recv_buf->tot_len); + if (data_buf) { + pbuf_copy_partial(recv_buf, data_buf, recv_buf->tot_len, 0); + } else { + should_handle = false; + } + length = recv_buf->tot_len; + data_buf_to_free = data_buf; + } + if (should_handle) { + otPlatTrelHandleReceived(aInstance, data_buf, length, source_addr); + } + pbuf_free(recv_buf); + free(data_buf_to_free); + free(source_addr); + + s_recv_queue.head = (s_recv_queue.head + 1) % CONFIG_OPENTHREAD_TREL_BUFFER_SIZE; + atomic_fetch_sub(&s_recv_queue.used, 1); + } + } - task->trel_pcb = udp_new(); - ESP_RETURN_ON_FALSE(task->trel_pcb != NULL, ESP_ERR_NO_MEM, OT_PLAT_LOG_TAG, "Failed to create a new UDP pcb"); - udp_bind(task->trel_pcb, IP6_ADDR_ANY, task->port); - udp_recv(task->trel_pcb, handle_trel_udp_recv, NULL); return ESP_OK; } void otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort) { + ESP_RETURN_ON_FALSE(s_trel_event_fd == -1, , OT_PLAT_LOG_TAG, "ot trel has been initialized."); + s_trel_event_fd = eventfd(0, 0); + assert(s_trel_event_fd >= 0); *aUdpPort = s_ot_trel.port; esp_openthread_task_switching_lock_release(); - esp_err_t err = esp_netif_tcpip_exec(ot_new_trel, &s_ot_trel); - if (err != ESP_OK) { - ESP_LOGE(OT_PLAT_LOG_TAG, "Fail to create trel udp"); - } + ESP_ERROR_CHECK(esp_netif_tcpip_exec(ot_new_trel, NULL)); mdns_browse_new(TREL_MDNS_TYPE, TREL_MDNS_PROTO, trel_browse_notifier); esp_openthread_task_switching_lock_acquire(portMAX_DELAY); + ESP_ERROR_CHECK(esp_openthread_platform_workflow_register(&esp_openthread_trel_update, &esp_openthread_trel_process, s_trel_workflow)); } static esp_err_t trel_send_task(void *ctx) @@ -263,23 +292,41 @@ void otPlatTrelResetCounters(otInstance *aInstance) memset(&s_trel_counters, 0, sizeof(otPlatTrelCounters)); } -static void trel_disable_task(void *ctx) +static esp_err_t trel_disable_task(void *ctx) { - struct udp_pcb *pcb = (struct udp_pcb *)ctx; - udp_remove(pcb); + if (ctx) { + struct udp_pcb *pcb = (struct udp_pcb *)ctx; + udp_remove(pcb); + } + return ESP_OK; +} + +static void free_all_buffer(void) +{ + while (atomic_load(&s_recv_queue.used)) { + if (s_trel_receive_buffer[s_recv_queue.head].p != NULL) { + pbuf_free(s_trel_receive_buffer[s_recv_queue.head].p); + free(s_trel_receive_buffer[s_recv_queue.head].source_addr); + s_recv_queue.head = (s_recv_queue.head + 1) % CONFIG_OPENTHREAD_TREL_BUFFER_SIZE; + atomic_fetch_sub(&s_recv_queue.used, 1); + } + } } void otPlatTrelDisable(otInstance *aInstance) { + ESP_RETURN_ON_FALSE(s_trel_event_fd >= 0, , OT_PLAT_LOG_TAG, "ot trel is not initialized."); esp_openthread_task_switching_lock_release(); - if (s_ot_trel.trel_pcb) { - tcpip_callback(trel_disable_task, s_ot_trel.trel_pcb); - } + esp_netif_tcpip_exec(trel_disable_task, s_ot_trel.trel_pcb); + s_ot_trel.trel_pcb = NULL; mdns_service_remove(TREL_MDNS_TYPE, TREL_MDNS_PROTO); s_is_service_registered = false; mdns_browse_delete(TREL_MDNS_TYPE, TREL_MDNS_PROTO); esp_openthread_task_switching_lock_acquire(portMAX_DELAY); - s_ot_trel.trel_pcb = NULL; + esp_openthread_platform_workflow_unregister(s_trel_workflow); + free_all_buffer(); + close(s_trel_event_fd); + s_trel_event_fd = -1; } const otPlatTrelCounters *otPlatTrelGetCounters(otInstance *aInstance) diff --git a/components/openthread/src/port/esp_openthread_uart.c b/components/openthread/src/port/esp_openthread_uart.c index 4d2f0313594..6893d0400e3 100644 --- a/components/openthread/src/port/esp_openthread_uart.c +++ b/components/openthread/src/port/esp_openthread_uart.c @@ -31,7 +31,7 @@ static int s_uart_fd; static uint8_t s_uart_buffer[ESP_OPENTHREAD_UART_BUFFER_SIZE]; static const char *uart_workflow = "uart"; -#if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && CONFIG_OPENTHREAD_RCP_UART)) +#if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && (CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG))) otError otPlatUartEnable(void) { return OT_ERROR_NONE; @@ -116,6 +116,7 @@ esp_err_t esp_openthread_host_cli_uart_init(const esp_openthread_platform_config } #endif +#if CONFIG_OPENTHREAD_RCP_UART esp_err_t esp_openthread_host_rcp_uart_init(const esp_openthread_platform_config_t *config) { esp_err_t ret = ESP_OK; @@ -135,6 +136,28 @@ esp_err_t esp_openthread_host_rcp_uart_init(const esp_openthread_platform_config return ret; } +#endif + +#if CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG +esp_err_t esp_openthread_host_rcp_usb_init(const esp_openthread_platform_config_t *config) +{ + esp_err_t ret = ESP_OK; + + usb_serial_jtag_vfs_set_rx_line_endings(ESP_LINE_ENDINGS_LF); + usb_serial_jtag_vfs_set_tx_line_endings(ESP_LINE_ENDINGS_LF); + + ESP_ERROR_CHECK(usb_serial_jtag_driver_install((usb_serial_jtag_driver_config_t *)&config->host_config.host_usb_config)); + ESP_ERROR_CHECK(usb_serial_jtag_vfs_register()); + usb_serial_jtag_vfs_use_driver(); + + s_uart_fd = open("/dev/usbserjtag", O_RDWR | O_NONBLOCK); + ESP_RETURN_ON_FALSE(s_uart_fd >= 0, ESP_FAIL, OT_PLAT_LOG_TAG, "open usbserjtag failed"); + ret = esp_openthread_platform_workflow_register(&esp_openthread_uart_update, &esp_openthread_uart_process, + uart_workflow); + + return ret; +} +#endif void esp_openthread_uart_deinit() { @@ -159,7 +182,7 @@ esp_err_t esp_openthread_uart_process(otInstance *instance, const esp_openthread int rval = read(s_uart_fd, s_uart_buffer, sizeof(s_uart_buffer)); if (rval > 0) { -#if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && CONFIG_OPENTHREAD_RCP_UART)) +#if (CONFIG_OPENTHREAD_CLI || (CONFIG_OPENTHREAD_RADIO && (CONFIG_OPENTHREAD_RCP_UART || CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG))) otPlatUartReceived(s_uart_buffer, (uint16_t)rval); #endif } else if (rval < 0) { diff --git a/components/sdmmc/sdmmc_io.c b/components/sdmmc/sdmmc_io.c index 64492f2da3f..4c42ab96386 100644 --- a/components/sdmmc/sdmmc_io.c +++ b/components/sdmmc/sdmmc_io.c @@ -66,9 +66,12 @@ esp_err_t sdmmc_io_reset(sdmmc_card_t* card) { uint8_t sdio_reset = CCCR_CTL_RES; esp_err_t err = sdmmc_io_rw_direct(card, 0, SD_IO_CCCR_CTL, SD_ARG_CMD52_WRITE, &sdio_reset); - if (err == ESP_ERR_TIMEOUT || (host_is_spi(card) && err == ESP_ERR_NOT_SUPPORTED)) { + if (err == ESP_ERR_TIMEOUT || (host_is_spi(card) && err == ESP_ERR_NOT_SUPPORTED) || err == ESP_ERR_INVALID_CRC) { /* Non-IO cards are allowed to time out (in SD mode) or * return "invalid command" error (in SPI mode). + * CRC errors are also allowed as the card may be in a state where + * CRC is enabled from a previous session, especially after ESP32 restart + * without power cycling the SD card. */ } else if (err == ESP_ERR_NOT_FOUND) { ESP_LOGD(TAG, "%s: card not present", __func__); diff --git a/components/soc/esp32/include/soc/Kconfig.soc_caps.in b/components/soc/esp32/include/soc/Kconfig.soc_caps.in index b95b24029e4..3cc86094ff8 100644 --- a/components/soc/esp32/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32/include/soc/Kconfig.soc_caps.in @@ -3,18 +3,6 @@ # using gen_soc_caps_kconfig.py, do not edit manually ##################################################### -config SOC_BROWNOUT_RESET_SUPPORTED - string - default "Not determined" - -config SOC_TWAI_BRP_DIV_SUPPORTED - string - default "Not determined" - -config SOC_DPORT_WORKAROUND - string - default "Not determined" - config SOC_CAPS_ECO_VER_MAX int default 301 @@ -279,6 +267,10 @@ config SOC_ADC_SHARED_POWER bool default y +config SOC_BROWNOUT_RESET_SUPPORTED + bool + default y + config SOC_SHARED_IDCACHE_SUPPORTED bool default y @@ -312,8 +304,8 @@ config SOC_CPU_WATCHPOINTS_NUM default 2 config SOC_CPU_WATCHPOINT_MAX_REGION_SIZE - int - default 64 + hex + default 0x40 config SOC_DAC_CHAN_NUM int @@ -808,8 +800,8 @@ config SOC_MPI_MEM_BLOCKS_NUM default 4 config SOC_MPI_OPERATIONS_NUM - bool - default y + int + default 1 config SOC_RSA_MAX_BIT_LEN int @@ -832,8 +824,8 @@ config SOC_SECURE_BOOT_V1 default y config SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS - bool - default y + int + default 1 config SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX int diff --git a/components/soc/esp32/include/soc/soc_caps.h b/components/soc/esp32/include/soc/soc_caps.h index 5a39b7655f5..c26ad0b8008 100644 --- a/components/soc/esp32/include/soc/soc_caps.h +++ b/components/soc/esp32/include/soc/soc_caps.h @@ -1,6 +1,6 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -54,9 +54,9 @@ // Define warning strings here for ECO-ed features to show error when they are used without being // defined correctly -#define SOC_BROWNOUT_RESET_SUPPORTED "Not determined" -#define SOC_TWAI_BRP_DIV_SUPPORTED "Not determined" -#define SOC_DPORT_WORKAROUND "Not determined" +#define SOC_BROWNOUT_RESET_SUPPORTED "Not determined" // [gen_soc_caps:ignore] +#define SOC_TWAI_BRP_DIV_SUPPORTED "Not determined" // [gen_soc_caps:ignore] +#define SOC_DPORT_WORKAROUND "Not determined" // [gen_soc_caps:ignore] #endif /*-------------------------- COMMON CAPS ---------------------------------------*/ @@ -107,7 +107,7 @@ #define SOC_PM_SUPPORTED 1 #if SOC_CAPS_ECO_VER < 200 -#define SOC_DPORT_WORKAROUND 1 +#define SOC_DPORT_WORKAROUND 1 // [gen_soc_caps:ignore] #endif // SOC_CAPS_ECO_VER < 200 #define SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL (5U) @@ -162,7 +162,7 @@ #define SOC_CPU_BREAKPOINTS_NUM 2 #define SOC_CPU_WATCHPOINTS_NUM 2 -#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 64 // bytes +#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 0x40 // bytes /*-------------------------- DAC CAPS ----------------------------------------*/ #define SOC_DAC_CHAN_NUM 2 @@ -381,7 +381,7 @@ /*--------------------------- MPI CAPS ---------------------------------------*/ #define SOC_MPI_MEM_BLOCKS_NUM (4) -#define SOC_MPI_OPERATIONS_NUM (1) +#define SOC_MPI_OPERATIONS_NUM (1U) /*--------------------------- RSA CAPS ---------------------------------------*/ #define SOC_RSA_MAX_BIT_LEN (4096) @@ -399,7 +399,7 @@ * Hence, for now we are handling this special capability in bootloader "security" configuration itself. */ #define SOC_SECURE_BOOT_V1 1 -#define SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS 1 +#define SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS (1U) /*-------------------------- Flash Encryption CAPS----------------------------*/ #define SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX (32) diff --git a/components/soc/esp32/include/soc/touch_sensor_channel.h b/components/soc/esp32/include/soc/touch_sensor_channel.h index 02b712ae4a5..fb538423708 100644 --- a/components/soc/esp32/include/soc/touch_sensor_channel.h +++ b/components/soc/esp32/include/soc/touch_sensor_channel.h @@ -1,49 +1,41 @@ -// Copyright 2019 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #ifndef _SOC_TOUCH_CHANNEL_H #define _SOC_TOUCH_CHANNEL_H //Touch channels -#define TOUCH_PAD_GPIO4_CHANNEL TOUCH_PAD_NUM0 +#define TOUCH_PAD_GPIO4_CHANNEL 0 #define TOUCH_PAD_NUM0_GPIO_NUM 4 -#define TOUCH_PAD_GPIO0_CHANNEL TOUCH_PAD_NUM1 +#define TOUCH_PAD_GPIO0_CHANNEL 1 #define TOUCH_PAD_NUM1_GPIO_NUM 0 -#define TOUCH_PAD_GPIO2_CHANNEL TOUCH_PAD_NUM2 +#define TOUCH_PAD_GPIO2_CHANNEL 2 #define TOUCH_PAD_NUM2_GPIO_NUM 2 -#define TOUCH_PAD_GPIO15_CHANNEL TOUCH_PAD_NUM3 +#define TOUCH_PAD_GPIO15_CHANNEL 3 #define TOUCH_PAD_NUM3_GPIO_NUM 15 -#define TOUCH_PAD_GPIO13_CHANNEL TOUCH_PAD_NUM4 +#define TOUCH_PAD_GPIO13_CHANNEL 4 #define TOUCH_PAD_NUM4_GPIO_NUM 13 -#define TOUCH_PAD_GPIO12_CHANNEL TOUCH_PAD_NUM5 +#define TOUCH_PAD_GPIO12_CHANNEL 5 #define TOUCH_PAD_NUM5_GPIO_NUM 12 -#define TOUCH_PAD_GPIO14_CHANNEL TOUCH_PAD_NUM6 +#define TOUCH_PAD_GPIO14_CHANNEL 6 #define TOUCH_PAD_NUM6_GPIO_NUM 14 -#define TOUCH_PAD_GPIO27_CHANNEL TOUCH_PAD_NUM7 +#define TOUCH_PAD_GPIO27_CHANNEL 7 #define TOUCH_PAD_NUM7_GPIO_NUM 27 -#define TOUCH_PAD_GPIO33_CHANNEL TOUCH_PAD_NUM8 +#define TOUCH_PAD_GPIO33_CHANNEL 8 #define TOUCH_PAD_NUM8_GPIO_NUM 33 -#define TOUCH_PAD_GPIO32_CHANNEL TOUCH_PAD_NUM9 +#define TOUCH_PAD_GPIO32_CHANNEL 9 #define TOUCH_PAD_NUM9_GPIO_NUM 32 #endif diff --git a/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in index fc3ef4e665d..a86595bde12 100644 --- a/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in @@ -227,6 +227,10 @@ config SOC_SHARED_IDCACHE_SUPPORTED bool default y +config SOC_CACHE_FREEZE_SUPPORTED + bool + default y + config SOC_CPU_CORES_NUM int default 1 diff --git a/components/soc/esp32c2/include/soc/soc_caps.h b/components/soc/esp32c2/include/soc/soc_caps.h index fed786801dd..cab674000bf 100644 --- a/components/soc/esp32c2/include/soc/soc_caps.h +++ b/components/soc/esp32c2/include/soc/soc_caps.h @@ -93,6 +93,7 @@ /*-------------------------- CACHE CAPS --------------------------------------*/ #define SOC_SHARED_IDCACHE_SUPPORTED 1 //Shared Cache for both instructions and data +#define SOC_CACHE_FREEZE_SUPPORTED 1 /*-------------------------- CPU CAPS ----------------------------------------*/ #define SOC_CPU_CORES_NUM (1U) diff --git a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in index fd137202d86..abf437ea8c5 100644 --- a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in @@ -311,6 +311,10 @@ config SOC_SHARED_IDCACHE_SUPPORTED bool default y +config SOC_CACHE_FREEZE_SUPPORTED + bool + default y + config SOC_CACHE_MEMORY_IBANK_SIZE hex default 0x4000 diff --git a/components/soc/esp32c3/include/soc/soc_caps.h b/components/soc/esp32c3/include/soc/soc_caps.h index bd0c08cb28a..772507205d5 100644 --- a/components/soc/esp32c3/include/soc/soc_caps.h +++ b/components/soc/esp32c3/include/soc/soc_caps.h @@ -124,6 +124,7 @@ /*-------------------------- CACHE CAPS --------------------------------------*/ #define SOC_SHARED_IDCACHE_SUPPORTED 1 //Shared Cache for both instructions and data +#define SOC_CACHE_FREEZE_SUPPORTED 1 #define SOC_CACHE_MEMORY_IBANK_SIZE 0x4000 // has to be same as the definition in ROM component /*-------------------------- CPU CAPS ----------------------------------------*/ diff --git a/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in index 76acf2f0bda..5e8cb0e51f7 100644 --- a/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32h2/include/soc/Kconfig.soc_caps.in @@ -1303,6 +1303,18 @@ config SOC_ECDSA_USES_MPI bool default y +config SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE + bool + default y + +config SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP + bool + default y + +config SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + bool + default y + config SOC_UART_NUM int default 2 diff --git a/components/soc/esp32h2/include/soc/soc_caps.h b/components/soc/esp32h2/include/soc/soc_caps.h index 4da526658fc..8148712fc29 100644 --- a/components/soc/esp32h2/include/soc/soc_caps.h +++ b/components/soc/esp32h2/include/soc/soc_caps.h @@ -523,6 +523,10 @@ /*------------------------- ECDSA CAPS -------------------------*/ #define SOC_ECDSA_USES_MPI (1) +#define SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE (1) +#define SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP (1) +#define SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED (1) + /*-------------------------- UART CAPS ---------------------------------------*/ // ESP32-H2 has 2 UARTs #define SOC_UART_NUM (2) diff --git a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in index 260501d23bd..7d7e81d6d2f 100644 --- a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in @@ -227,6 +227,10 @@ config SOC_PMU_SUPPORTED bool default y +config SOC_PMU_PVT_SUPPORTED + bool + default y + config SOC_DCDC_SUPPORTED bool default y @@ -1699,6 +1703,14 @@ config SOC_TOUCH_SENSOR_NUM int default 14 +config SOC_TOUCH_MIN_CHAN_ID + int + default 1 + +config SOC_TOUCH_MAX_CHAN_ID + int + default 14 + config SOC_TOUCH_SUPPORT_SLEEP_WAKEUP bool default y diff --git a/components/soc/esp32p4/include/soc/soc_caps.h b/components/soc/esp32p4/include/soc/soc_caps.h index 4fff6c8f432..13262136c5e 100644 --- a/components/soc/esp32p4/include/soc/soc_caps.h +++ b/components/soc/esp32p4/include/soc/soc_caps.h @@ -73,6 +73,7 @@ #define SOC_BOD_SUPPORTED 1 #define SOC_APM_SUPPORTED 1 #define SOC_PMU_SUPPORTED 1 +#define SOC_PMU_PVT_SUPPORTED 1 #define SOC_DCDC_SUPPORTED 1 #define SOC_PAU_SUPPORTED 1 //TODO: IDF-7531 #define SOC_LP_TIMER_SUPPORTED 1 @@ -629,6 +630,8 @@ /*-------------------------- TOUCH SENSOR CAPS -------------------------------*/ #define SOC_TOUCH_SENSOR_VERSION (3) /*!< Hardware version of touch sensor */ #define SOC_TOUCH_SENSOR_NUM (14) /*!< Touch available channel number. Actually there are 15 Touch channels, but channel 14 is not pinned out, limit to 14 channels */ +#define SOC_TOUCH_MIN_CHAN_ID (1U) /*!< Touch minimum channel number */ +#define SOC_TOUCH_MAX_CHAN_ID (14) /*!< Touch maximum channel number */ /* Touch Sensor Features */ #define SOC_TOUCH_SUPPORT_SLEEP_WAKEUP (1) /*!< Touch sensor supports sleep awake */ diff --git a/components/soc/esp32p4/include/soc/system_periph_retention.h b/components/soc/esp32p4/include/soc/system_periph_retention.h index 56b867e487d..f8bf6ac45c7 100644 --- a/components/soc/esp32p4/include/soc/system_periph_retention.h +++ b/components/soc/esp32p4/include/soc/system_periph_retention.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -95,6 +95,16 @@ extern const regdma_entries_config_t systimer_regs_retention[SYSTIMER_RETENTION_ #define PAU_RETENTION_LINK_LEN 1 extern const regdma_entries_config_t pau_regs_retention[PAU_RETENTION_LINK_LEN]; +/** + * @brief Provide access to pvt configuration registers retention + * context definition. + * + * This is an internal function of the sleep retention driver, and is not + * useful for external use. + */ +#define PVT_RETENTION_LINK_LEN 1 +extern const regdma_entries_config_t pvt_regs_retention[PVT_RETENTION_LINK_LEN]; + #ifdef __cplusplus } #endif diff --git a/components/soc/esp32p4/include/soc/touch_sensor_channel.h b/components/soc/esp32p4/include/soc/touch_sensor_channel.h index 77643a5742b..ff009b31ed8 100644 --- a/components/soc/esp32p4/include/soc/touch_sensor_channel.h +++ b/components/soc/esp32p4/include/soc/touch_sensor_channel.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -10,44 +10,44 @@ /* Note: T14 is an internal channel that does not have a corresponding external GPIO. */ -#define TOUCH_PAD_GPIO2_CHANNEL TOUCH_PAD_NUM0 -#define TOUCH_PAD_NUM0_GPIO_NUM 2 +#define TOUCH_PAD_GPIO2_CHANNEL 1 +#define TOUCH_PAD_NUM1_GPIO_NUM 2 -#define TOUCH_PAD_GPIO3_CHANNEL TOUCH_PAD_NUM1 -#define TOUCH_PAD_NUM1_GPIO_NUM 3 +#define TOUCH_PAD_GPIO3_CHANNEL 2 +#define TOUCH_PAD_NUM2_GPIO_NUM 3 -#define TOUCH_PAD_GPIO4_CHANNEL TOUCH_PAD_NUM2 -#define TOUCH_PAD_NUM2_GPIO_NUM 4 +#define TOUCH_PAD_GPIO4_CHANNEL 3 +#define TOUCH_PAD_NUM3_GPIO_NUM 4 -#define TOUCH_PAD_GPIO5_CHANNEL TOUCH_PAD_NUM3 -#define TOUCH_PAD_NUM3_GPIO_NUM 5 +#define TOUCH_PAD_GPIO5_CHANNEL 4 +#define TOUCH_PAD_NUM4_GPIO_NUM 5 -#define TOUCH_PAD_GPIO6_CHANNEL TOUCH_PAD_NUM4 -#define TOUCH_PAD_NUM4_GPIO_NUM 6 +#define TOUCH_PAD_GPIO6_CHANNEL 5 +#define TOUCH_PAD_NUM5_GPIO_NUM 6 -#define TOUCH_PAD_GPIO7_CHANNEL TOUCH_PAD_NUM5 -#define TOUCH_PAD_NUM5_GPIO_NUM 7 +#define TOUCH_PAD_GPIO7_CHANNEL 6 +#define TOUCH_PAD_NUM6_GPIO_NUM 7 -#define TOUCH_PAD_GPIO8_CHANNEL TOUCH_PAD_NUM6 -#define TOUCH_PAD_NUM6_GPIO_NUM 8 +#define TOUCH_PAD_GPIO8_CHANNEL 7 +#define TOUCH_PAD_NUM7_GPIO_NUM 8 -#define TOUCH_PAD_GPIO9_CHANNEL TOUCH_PAD_NUM7 -#define TOUCH_PAD_NUM7_GPIO_NUM 9 +#define TOUCH_PAD_GPIO9_CHANNEL 8 +#define TOUCH_PAD_NUM8_GPIO_NUM 9 -#define TOUCH_PAD_GPIO10_CHANNEL TOUCH_PAD_NUM8 -#define TOUCH_PAD_NUM8_GPIO_NUM 10 +#define TOUCH_PAD_GPIO10_CHANNEL 9 +#define TOUCH_PAD_NUM9_GPIO_NUM 10 -#define TOUCH_PAD_GPIO11_CHANNEL TOUCH_PAD_NUM9 -#define TOUCH_PAD_NUM9_GPIO_NUM 11 +#define TOUCH_PAD_GPIO11_CHANNEL 10 +#define TOUCH_PAD_NUM10_GPIO_NUM 11 -#define TOUCH_PAD_GPIO12_CHANNEL TOUCH_PAD_NUM10 -#define TOUCH_PAD_NUM10_GPIO_NUM 12 +#define TOUCH_PAD_GPIO12_CHANNEL 11 +#define TOUCH_PAD_NUM11_GPIO_NUM 12 -#define TOUCH_PAD_GPIO13_CHANNEL TOUCH_PAD_NUM11 -#define TOUCH_PAD_NUM11_GPIO_NUM 13 +#define TOUCH_PAD_GPIO13_CHANNEL 12 +#define TOUCH_PAD_NUM12_GPIO_NUM 13 -#define TOUCH_PAD_GPIO14_CHANNEL TOUCH_PAD_NUM12 -#define TOUCH_PAD_NUM12_GPIO_NUM 14 +#define TOUCH_PAD_GPIO14_CHANNEL 13 +#define TOUCH_PAD_NUM13_GPIO_NUM 14 -#define TOUCH_PAD_GPIO15_CHANNEL TOUCH_PAD_NUM13 -#define TOUCH_PAD_NUM13_GPIO_NUM 15 +#define TOUCH_PAD_GPIO15_CHANNEL 14 +#define TOUCH_PAD_NUM14_GPIO_NUM 15 diff --git a/components/soc/esp32p4/register/soc/pvt_reg.h b/components/soc/esp32p4/register/soc/pvt_reg.h index 1e3e333dc14..71a97569f1a 100644 --- a/components/soc/esp32p4/register/soc/pvt_reg.h +++ b/components/soc/esp32p4/register/soc/pvt_reg.h @@ -1,5 +1,5 @@ /** - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -363,10 +363,12 @@ extern "C" { /** PVT_DBIAS_CMD0 : R/W; bitpos: [16:0]; default: 0; * needs field desc */ -#define PVT_DBIAS_CMD0 0x0001FFFFU -#define PVT_DBIAS_CMD0_M (PVT_DBIAS_CMD0_V << PVT_DBIAS_CMD0_S) -#define PVT_DBIAS_CMD0_V 0x0001FFFFU -#define PVT_DBIAS_CMD0_S 0 +#define PVT_DBIAS_CMD0_OFFSET_FLAG 1 +#define PVT_DBIAS_CMD0_OFFSET_FLAG_S 16 +#define PVT_DBIAS_CMD0_OFFSET_VALUE 0x1F +#define PVT_DBIAS_CMD0_OFFSET_VALUE_S 11 +#define PVT_DBIAS_CMD0_PVT 0x7FF +#define PVT_DBIAS_CMD0_PVT_S 0 /** PVT_DBIAS_CMD1_REG register * needs desc @@ -375,10 +377,12 @@ extern "C" { /** PVT_DBIAS_CMD1 : R/W; bitpos: [16:0]; default: 0; * needs field desc */ -#define PVT_DBIAS_CMD1 0x0001FFFFU -#define PVT_DBIAS_CMD1_M (PVT_DBIAS_CMD1_V << PVT_DBIAS_CMD1_S) -#define PVT_DBIAS_CMD1_V 0x0001FFFFU -#define PVT_DBIAS_CMD1_S 0 +#define PVT_DBIAS_CMD1_OFFSET_FLAG 1 +#define PVT_DBIAS_CMD1_OFFSET_FLAG_S 16 +#define PVT_DBIAS_CMD1_OFFSET_VALUE 0x1F +#define PVT_DBIAS_CMD1_OFFSET_VALUE_S 11 +#define PVT_DBIAS_CMD1_PVT 0x7FF +#define PVT_DBIAS_CMD1_PVT_S 0 /** PVT_DBIAS_CMD2_REG register * needs desc @@ -387,10 +391,12 @@ extern "C" { /** PVT_DBIAS_CMD2 : R/W; bitpos: [16:0]; default: 0; * needs field desc */ -#define PVT_DBIAS_CMD2 0x0001FFFFU -#define PVT_DBIAS_CMD2_M (PVT_DBIAS_CMD2_V << PVT_DBIAS_CMD2_S) -#define PVT_DBIAS_CMD2_V 0x0001FFFFU -#define PVT_DBIAS_CMD2_S 0 +#define PVT_DBIAS_CMD2_OFFSET_FLAG 1 +#define PVT_DBIAS_CMD2_OFFSET_FLAG_S 16 +#define PVT_DBIAS_CMD2_OFFSET_VALUE 0x1F +#define PVT_DBIAS_CMD2_OFFSET_VALUE_S 11 +#define PVT_DBIAS_CMD2_PVT 0x7FF +#define PVT_DBIAS_CMD2_PVT_S 0 /** PVT_DBIAS_CMD3_REG register * needs desc diff --git a/components/soc/esp32p4/register/soc/pvt_struct.h b/components/soc/esp32p4/register/soc/pvt_struct.h index ebde6a6427a..c02f5d5ca1f 100644 --- a/components/soc/esp32p4/register/soc/pvt_struct.h +++ b/components/soc/esp32p4/register/soc/pvt_struct.h @@ -1,5 +1,5 @@ /** - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -347,10 +347,18 @@ typedef union { */ typedef union { struct { - /** dbias_cmd0 : R/W; bitpos: [16:0]; default: 0; + /** dbias_cmd0 : R/W; bitpos: [10:0]; default: 0; * needs field desc */ - uint32_t dbias_cmd0:17; + uint32_t dbias_cmd0_pvt:11; + /** dbias_cmd0_offset_value : R/W; bitpos: [15:11]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd0_offset_value:5; + /** dbias_cmd0_offset_flag : R/W; bitpos: [16]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd0_offset_flag:1; uint32_t reserved_17:15; }; uint32_t val; @@ -361,10 +369,18 @@ typedef union { */ typedef union { struct { - /** dbias_cmd1 : R/W; bitpos: [16:0]; default: 0; + /** dbias_cmd1 : R/W; bitpos: [10:0]; default: 0; * needs field desc */ - uint32_t dbias_cmd1:17; + uint32_t dbias_cmd1_pvt:11; + /** dbias_cmd1_offset_value : R/W; bitpos: [15:11]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd1_offset_value:5; + /** dbias_cmd1_offset_flag : R/W; bitpos: [16]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd1_offset_flag:1; uint32_t reserved_17:15; }; uint32_t val; @@ -375,10 +391,18 @@ typedef union { */ typedef union { struct { - /** dbias_cmd2 : R/W; bitpos: [16:0]; default: 0; + /** dbias_cmd2 : R/W; bitpos: [10:0]; default: 0; * needs field desc */ - uint32_t dbias_cmd2:17; + uint32_t dbias_cmd2_pvt:11; + /** dbias_cmd2_offset_value : R/W; bitpos: [15:11]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd2_offset_value:5; + /** dbias_cmd2_offset_flag : R/W; bitpos: [16]; default: 0; + * needs field desc + */ + uint32_t dbias_cmd2_offset_flag:1; uint32_t reserved_17:15; }; uint32_t val; diff --git a/components/soc/esp32p4/system_retention_periph.c b/components/soc/esp32p4/system_retention_periph.c index aba798db31a..bdb57a92d41 100644 --- a/components/soc/esp32p4/system_retention_periph.c +++ b/components/soc/esp32p4/system_retention_periph.c @@ -23,6 +23,7 @@ #include "soc/timer_periph.h" #include "soc/uart_reg.h" #include "esp32p4/rom/cache.h" +#include "soc/pvt_reg.h" /* Interrupt Matrix Registers Context */ #define N_REGS_INTR_CORE0() (((INTERRUPT_CORE0_CLOCK_GATE_REG - DR_REG_INTERRUPT_CORE0_BASE) / 4) + 1) @@ -202,3 +203,10 @@ const regdma_entries_config_t pau_regs_retention[] = { [0] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_PAU_LINK(0x0), DR_REG_PAU_BASE, DR_REG_PAU_BASE, N_REGS_PAU(), 0, 0), .owner = ENTRY(0) }, /* pau */ }; _Static_assert(ARRAY_SIZE(pau_regs_retention) == HP_SYSTEM_RETENTION_LINK_LEN, "Inconsistent PAU retention link length definitions"); + +/* PVT Registers Context */ +#define N_REGS_PVT (((PVT_COMB_PD_SITE3_UNIT0_VT1_CONF2_REG - DR_REG_PVT_MONITOR_BASE) / 4) + 1) +const regdma_entries_config_t pvt_regs_retention[] = { + [0] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_PVT_LINK(0x00), DR_REG_PVT_MONITOR_BASE, DR_REG_PVT_MONITOR_BASE, N_REGS_PVT, 0, 0), .owner = ENTRY(0) | ENTRY(2) }, +}; +_Static_assert(ARRAY_SIZE(pvt_regs_retention) == PVT_RETENTION_LINK_LEN, "Inconsistent PVT retention link length definitions"); diff --git a/components/soc/esp32p4/touch_sensor_periph.c b/components/soc/esp32p4/touch_sensor_periph.c index 0cd872effe1..1cba03337b1 100644 --- a/components/soc/esp32p4/touch_sensor_periph.c +++ b/components/soc/esp32p4/touch_sensor_periph.c @@ -7,9 +7,9 @@ #include "soc/touch_sensor_channel.h" /* Store IO number corresponding to the Touch Sensor channel number. */ -/* Note: T14 is an internal channel that does not have a corresponding external GPIO. */ +/* Note: T0 is an internal channel that does not have a corresponding external GPIO. */ const int touch_sensor_channel_io_map[] = { - TOUCH_PAD_NUM0_GPIO_NUM, + -1, TOUCH_PAD_NUM1_GPIO_NUM, TOUCH_PAD_NUM2_GPIO_NUM, TOUCH_PAD_NUM3_GPIO_NUM, @@ -23,5 +23,5 @@ const int touch_sensor_channel_io_map[] = { TOUCH_PAD_NUM11_GPIO_NUM, TOUCH_PAD_NUM12_GPIO_NUM, TOUCH_PAD_NUM13_GPIO_NUM, - -1, + TOUCH_PAD_NUM14_GPIO_NUM, }; diff --git a/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in index 8110c9b64ab..a1cfe60af74 100644 --- a/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in @@ -348,8 +348,8 @@ config SOC_CPU_WATCHPOINTS_NUM default 2 config SOC_CPU_WATCHPOINT_MAX_REGION_SIZE - int - default 64 + hex + default 0x40 config SOC_DAC_CHAN_NUM int @@ -776,8 +776,8 @@ config SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED default y config SOC_SYSTIMER_COUNTER_NUM - bool - default y + int + default 1 config SOC_SYSTIMER_ALARM_NUM int diff --git a/components/soc/esp32s2/include/soc/soc_caps.h b/components/soc/esp32s2/include/soc/soc_caps.h index 377a1720efb..862157aabbb 100644 --- a/components/soc/esp32s2/include/soc/soc_caps.h +++ b/components/soc/esp32s2/include/soc/soc_caps.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -22,8 +22,8 @@ * x 0`, it's still a risk.) * * ECO & exceptions: - * For ECO-ed booleans, `#define x "Not determined"` for them. This will cause error when used by - * `#if x` and `#if !x`, making these missing definitions more obvious. + * For ECO-ed booleans, `#define x "Not determined" // [gen_soc_caps:ignore]` for them. This will cause error when used by + * `#if x` and `#if !x`, making these missing definitions more obvious. Ignore pragma ensures those values are not converted into config options. * * These defines are parsed and imported as kconfig variables via the script * `tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py` @@ -148,7 +148,7 @@ #define SOC_CPU_BREAKPOINTS_NUM 2 #define SOC_CPU_WATCHPOINTS_NUM 2 -#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 64 // bytes +#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 0x40 // bytes /*-------------------------- DAC CAPS ----------------------------------------*/ #define SOC_DAC_CHAN_NUM 2 @@ -329,7 +329,7 @@ #define SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED 1 /*-------------------------- SYSTIMER CAPS ----------------------------------*/ -#define SOC_SYSTIMER_COUNTER_NUM 1 // Number of counter units +#define SOC_SYSTIMER_COUNTER_NUM (1U) // Number of counter units #define SOC_SYSTIMER_ALARM_NUM 3 // Number of alarm units #define SOC_SYSTIMER_BIT_WIDTH_LO 32 // Bit width of systimer low part #define SOC_SYSTIMER_BIT_WIDTH_HI 32 // Bit width of systimer high part diff --git a/components/soc/esp32s2/include/soc/touch_sensor_channel.h b/components/soc/esp32s2/include/soc/touch_sensor_channel.h index a405a6bd1cf..61197c92c42 100644 --- a/components/soc/esp32s2/include/soc/touch_sensor_channel.h +++ b/components/soc/esp32s2/include/soc/touch_sensor_channel.h @@ -1,16 +1,8 @@ -// Copyright 2010-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: 2010-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #ifndef _SOC_TOUCH_CHANNEL_H #define _SOC_TOUCH_CHANNEL_H @@ -19,46 +11,46 @@ /* Note: T0 is an internal channel that does not have a corresponding external GPIO. */ -#define TOUCH_PAD_GPIO1_CHANNEL TOUCH_PAD_NUM1 +#define TOUCH_PAD_GPIO1_CHANNEL 1 #define TOUCH_PAD_NUM1_GPIO_NUM 1 -#define TOUCH_PAD_GPIO2_CHANNEL TOUCH_PAD_NUM2 +#define TOUCH_PAD_GPIO2_CHANNEL 2 #define TOUCH_PAD_NUM2_GPIO_NUM 2 -#define TOUCH_PAD_GPIO3_CHANNEL TOUCH_PAD_NUM3 +#define TOUCH_PAD_GPIO3_CHANNEL 3 #define TOUCH_PAD_NUM3_GPIO_NUM 3 -#define TOUCH_PAD_GPIO4_CHANNEL TOUCH_PAD_NUM4 +#define TOUCH_PAD_GPIO4_CHANNEL 4 #define TOUCH_PAD_NUM4_GPIO_NUM 4 -#define TOUCH_PAD_GPIO5_CHANNEL TOUCH_PAD_NUM5 +#define TOUCH_PAD_GPIO5_CHANNEL 5 #define TOUCH_PAD_NUM5_GPIO_NUM 5 -#define TOUCH_PAD_GPIO6_CHANNEL TOUCH_PAD_NUM6 +#define TOUCH_PAD_GPIO6_CHANNEL 6 #define TOUCH_PAD_NUM6_GPIO_NUM 6 -#define TOUCH_PAD_GPIO7_CHANNEL TOUCH_PAD_NUM7 +#define TOUCH_PAD_GPIO7_CHANNEL 7 #define TOUCH_PAD_NUM7_GPIO_NUM 7 -#define TOUCH_PAD_GPIO8_CHANNEL TOUCH_PAD_NUM8 +#define TOUCH_PAD_GPIO8_CHANNEL 8 #define TOUCH_PAD_NUM8_GPIO_NUM 8 -#define TOUCH_PAD_GPIO9_CHANNEL TOUCH_PAD_NUM9 +#define TOUCH_PAD_GPIO9_CHANNEL 9 #define TOUCH_PAD_NUM9_GPIO_NUM 9 -#define TOUCH_PAD_GPIO10_CHANNEL TOUCH_PAD_NUM10 -#define TOUCH_PAD_NUM10_GPIO_NUM 10 +#define TOUCH_PAD_GPIO10_CHANNEL 10 +#define TOUCH_PAD_NUM10_GPIO_NUM 10 -#define TOUCH_PAD_GPIO11_CHANNEL TOUCH_PAD_NUM11 -#define TOUCH_PAD_NUM11_GPIO_NUM 11 +#define TOUCH_PAD_GPIO11_CHANNEL 11 +#define TOUCH_PAD_NUM11_GPIO_NUM 11 -#define TOUCH_PAD_GPIO12_CHANNEL TOUCH_PAD_NUM12 -#define TOUCH_PAD_NUM12_GPIO_NUM 12 +#define TOUCH_PAD_GPIO12_CHANNEL 12 +#define TOUCH_PAD_NUM12_GPIO_NUM 12 -#define TOUCH_PAD_GPIO13_CHANNEL TOUCH_PAD_NUM13 -#define TOUCH_PAD_NUM13_GPIO_NUM 13 +#define TOUCH_PAD_GPIO13_CHANNEL 13 +#define TOUCH_PAD_NUM13_GPIO_NUM 13 -#define TOUCH_PAD_GPIO14_CHANNEL TOUCH_PAD_NUM14 -#define TOUCH_PAD_NUM14_GPIO_NUM 14 +#define TOUCH_PAD_GPIO14_CHANNEL 14 +#define TOUCH_PAD_NUM14_GPIO_NUM 14 #endif diff --git a/components/soc/esp32s3/cam_periph.c b/components/soc/esp32s3/cam_periph.c new file mode 100644 index 00000000000..36799a40754 --- /dev/null +++ b/components/soc/esp32s3/cam_periph.c @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "soc/gpio_sig_map.h" +#include "soc/cam_periph.h" + +const cam_signal_conn_t cam_periph_signals = { + .buses = { + [0] = { + .module = PERIPH_LCD_CAM_MODULE, + .irq_id = ETS_LCD_CAM_INTR_SOURCE, + .data_sigs = { + CAM_DATA_IN0_IDX, + CAM_DATA_IN1_IDX, + CAM_DATA_IN2_IDX, + CAM_DATA_IN3_IDX, + CAM_DATA_IN4_IDX, + CAM_DATA_IN5_IDX, + CAM_DATA_IN6_IDX, + CAM_DATA_IN7_IDX, + CAM_DATA_IN8_IDX, + CAM_DATA_IN9_IDX, + CAM_DATA_IN10_IDX, + CAM_DATA_IN11_IDX, + CAM_DATA_IN12_IDX, + CAM_DATA_IN13_IDX, + CAM_DATA_IN14_IDX, + CAM_DATA_IN15_IDX + }, + .hsync_sig = CAM_H_SYNC_IDX, + .vsync_sig = CAM_V_SYNC_IDX, + .pclk_sig = CAM_PCLK_IDX, + .de_sig = CAM_H_ENABLE_IDX, + .clk_sig = CAM_CLK_IDX + } + } +}; diff --git a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in index de84378125b..88f3c3217c5 100644 --- a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in @@ -63,6 +63,10 @@ config SOC_LCDCAM_SUPPORTED bool default y +config SOC_LCDCAM_CAM_SUPPORTED + bool + default y + config SOC_LCDCAM_I80_LCD_SUPPORTED bool default y @@ -412,8 +416,8 @@ config SOC_CPU_WATCHPOINTS_NUM default 2 config SOC_CPU_WATCHPOINT_MAX_REGION_SIZE - int - default 64 + hex + default 0x40 config SOC_SIMD_PREFERRED_DATA_ALIGNMENT int @@ -840,8 +844,8 @@ config SOC_LP_IO_CLOCK_IS_INDEPENDENT default y config SOC_SDM_GROUPS - bool - default y + int + default 1 config SOC_SDM_CHANNELS_PER_GROUP int @@ -1486,3 +1490,15 @@ config SOC_ULP_HAS_ADC config SOC_PHY_COMBO_MODULE bool default y + +config SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV + bool + default y + +config SOC_LCDCAM_CAM_PERIPH_NUM + int + default 1 + +config SOC_LCDCAM_CAM_DATA_WIDTH_MAX + int + default 16 diff --git a/components/soc/esp32s3/include/soc/clk_tree_defs.h b/components/soc/esp32s3/include/soc/clk_tree_defs.h index dc74e9ad564..bce2cc7191c 100644 --- a/components/soc/esp32s3/include/soc/clk_tree_defs.h +++ b/components/soc/esp32s3/include/soc/clk_tree_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -21,7 +21,7 @@ extern "C" { * * 2) External 40MHz Crystal Clock: XTAL * - * 3) Internal 136kHz RC Oscillator: RC_SLOW (usually referrred as RTC in TRM or reg. description) + * 3) Internal 136kHz RC Oscillator: RC_SLOW (usually referred as RTC in TRM or reg. description) * * This RC oscillator generates a ~136kHz clock signal output as the RC_SLOW_CLK. The exact frequency of this clock * can be computed in runtime through calibration. @@ -187,6 +187,23 @@ typedef enum { LCD_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default choice */ } soc_periph_lcd_clk_src_t; +//////////////////////////////////////////////////LCD/////////////////////////////////////////////////////////////////// + +/** + * @brief Array initializer for all supported clock sources of CAM + */ +#define SOC_CAM_CLKS {SOC_MOD_CLK_PLL_F160M, SOC_MOD_CLK_PLL_D2, SOC_MOD_CLK_XTAL} + +/** + * @brief Type of CAM clock source + */ +typedef enum { + CAM_CLK_SRC_PLL160M = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the source clock */ + CAM_CLK_SRC_PLL240M = SOC_MOD_CLK_PLL_D2, /*!< Select PLL_D2 as the source clock */ + CAM_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */ + CAM_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_D2, /*!< Select PLL_D2 as the default choice */ +} soc_periph_cam_clk_src_t; + //////////////////////////////////////////////////RMT/////////////////////////////////////////////////////////////////// /** diff --git a/components/soc/esp32s3/include/soc/soc_caps.h b/components/soc/esp32s3/include/soc/soc_caps.h index 84d6683cdc3..1490160f220 100644 --- a/components/soc/esp32s3/include/soc/soc_caps.h +++ b/components/soc/esp32s3/include/soc/soc_caps.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -32,6 +32,7 @@ #define SOC_AHB_GDMA_SUPPORTED 1 #define SOC_GPTIMER_SUPPORTED 1 #define SOC_LCDCAM_SUPPORTED 1 +#define SOC_LCDCAM_CAM_SUPPORTED 1 // support the camera driver based on the LCD_CAM peripheral #define SOC_LCDCAM_I80_LCD_SUPPORTED 1 #define SOC_LCDCAM_RGB_LCD_SUPPORTED 1 #define SOC_MCPWM_SUPPORTED 1 @@ -146,7 +147,7 @@ #define SOC_CPU_BREAKPOINTS_NUM 2 #define SOC_CPU_WATCHPOINTS_NUM 2 -#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 64 // bytes +#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 0x40 // bytes #define SOC_SIMD_PREFERRED_DATA_ALIGNMENT 16 // The preferred data alignment accepted by the SIMD instructions, in bytes @@ -327,7 +328,7 @@ #define SOC_LP_IO_CLOCK_IS_INDEPENDENT 1 /*-------------------------- Sigma Delta Modulator CAPS -----------------*/ -#define SOC_SDM_GROUPS 1 +#define SOC_SDM_GROUPS (1U) #define SOC_SDM_CHANNELS_PER_GROUP 8 #define SOC_SDM_CLK_SUPPORT_APB 1 @@ -584,3 +585,8 @@ /*------------------------------------- PHY CAPS -------------------------------------*/ #define SOC_PHY_COMBO_MODULE (1) /*!< Support Wi-Fi and BLE*/ + +/*--------------------------- CAM ---------------------------------*/ +#define SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV (1) +#define SOC_LCDCAM_CAM_PERIPH_NUM (1U) +#define SOC_LCDCAM_CAM_DATA_WIDTH_MAX (16U) diff --git a/components/soc/esp32s3/include/soc/touch_channel.h b/components/soc/esp32s3/include/soc/touch_channel.h deleted file mode 100644 index d0921c59ae1..00000000000 --- a/components/soc/esp32s3/include/soc/touch_channel.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2010-2020 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -//Touch channels -#define TOUCH_PAD_GPIO4_CHANNEL TOUCH_PAD_NUM0 -#define TOUCH_PAD_NUM0_GPIO_NUM 4 - -#define TOUCH_PAD_GPIO0_CHANNEL TOUCH_PAD_NUM1 -#define TOUCH_PAD_NUM1_GPIO_NUM 0 - -#define TOUCH_PAD_GPIO2_CHANNEL TOUCH_PAD_NUM2 -#define TOUCH_PAD_NUM2_GPIO_NUM 2 - -#define TOUCH_PAD_GPIO15_CHANNEL TOUCH_PAD_NUM3 -#define TOUCH_PAD_NUM3_GPIO_NUM 15 - -#define TOUCH_PAD_GPIO13_CHANNEL TOUCH_PAD_NUM4 -#define TOUCH_PAD_NUM4_GPIO_NUM 13 - -#define TOUCH_PAD_GPIO12_CHANNEL TOUCH_PAD_NUM5 -#define TOUCH_PAD_NUM5_GPIO_NUM 12 - -#define TOUCH_PAD_GPIO14_CHANNEL TOUCH_PAD_NUM6 -#define TOUCH_PAD_NUM6_GPIO_NUM 14 - -#define TOUCH_PAD_GPIO27_CHANNEL TOUCH_PAD_NUM7 -#define TOUCH_PAD_NUM7_GPIO_NUM 27 - -#define TOUCH_PAD_GPIO33_CHANNEL TOUCH_PAD_NUM8 -#define TOUCH_PAD_NUM8_GPIO_NUM 33 - -#define TOUCH_PAD_GPIO32_CHANNEL TOUCH_PAD_NUM9 -#define TOUCH_PAD_NUM9_GPIO_NUM 32 diff --git a/components/soc/esp32s3/include/soc/touch_sensor_channel.h b/components/soc/esp32s3/include/soc/touch_sensor_channel.h index d5065eac4f3..88d58d66b98 100644 --- a/components/soc/esp32s3/include/soc/touch_sensor_channel.h +++ b/components/soc/esp32s3/include/soc/touch_sensor_channel.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -10,44 +10,44 @@ /* Note: T0 is an internal channel that does not have a corresponding external GPIO. */ -#define TOUCH_PAD_GPIO1_CHANNEL TOUCH_PAD_NUM1 +#define TOUCH_PAD_GPIO1_CHANNEL 1 #define TOUCH_PAD_NUM1_GPIO_NUM 1 -#define TOUCH_PAD_GPIO2_CHANNEL TOUCH_PAD_NUM2 +#define TOUCH_PAD_GPIO2_CHANNEL 2 #define TOUCH_PAD_NUM2_GPIO_NUM 2 -#define TOUCH_PAD_GPIO3_CHANNEL TOUCH_PAD_NUM3 +#define TOUCH_PAD_GPIO3_CHANNEL 3 #define TOUCH_PAD_NUM3_GPIO_NUM 3 -#define TOUCH_PAD_GPIO4_CHANNEL TOUCH_PAD_NUM4 +#define TOUCH_PAD_GPIO4_CHANNEL 4 #define TOUCH_PAD_NUM4_GPIO_NUM 4 -#define TOUCH_PAD_GPIO5_CHANNEL TOUCH_PAD_NUM5 +#define TOUCH_PAD_GPIO5_CHANNEL 5 #define TOUCH_PAD_NUM5_GPIO_NUM 5 -#define TOUCH_PAD_GPIO6_CHANNEL TOUCH_PAD_NUM6 +#define TOUCH_PAD_GPIO6_CHANNEL 6 #define TOUCH_PAD_NUM6_GPIO_NUM 6 -#define TOUCH_PAD_GPIO7_CHANNEL TOUCH_PAD_NUM7 +#define TOUCH_PAD_GPIO7_CHANNEL 7 #define TOUCH_PAD_NUM7_GPIO_NUM 7 -#define TOUCH_PAD_GPIO8_CHANNEL TOUCH_PAD_NUM8 +#define TOUCH_PAD_GPIO8_CHANNEL 8 #define TOUCH_PAD_NUM8_GPIO_NUM 8 -#define TOUCH_PAD_GPIO9_CHANNEL TOUCH_PAD_NUM9 +#define TOUCH_PAD_GPIO9_CHANNEL 9 #define TOUCH_PAD_NUM9_GPIO_NUM 9 -#define TOUCH_PAD_GPIO10_CHANNEL TOUCH_PAD_NUM10 -#define TOUCH_PAD_NUM10_GPIO_NUM 10 +#define TOUCH_PAD_GPIO10_CHANNEL 10 +#define TOUCH_PAD_NUM10_GPIO_NUM 10 -#define TOUCH_PAD_GPIO11_CHANNEL TOUCH_PAD_NUM11 -#define TOUCH_PAD_NUM11_GPIO_NUM 11 +#define TOUCH_PAD_GPIO11_CHANNEL 11 +#define TOUCH_PAD_NUM11_GPIO_NUM 11 -#define TOUCH_PAD_GPIO12_CHANNEL TOUCH_PAD_NUM12 -#define TOUCH_PAD_NUM12_GPIO_NUM 12 +#define TOUCH_PAD_GPIO12_CHANNEL 12 +#define TOUCH_PAD_NUM12_GPIO_NUM 12 -#define TOUCH_PAD_GPIO13_CHANNEL TOUCH_PAD_NUM13 -#define TOUCH_PAD_NUM13_GPIO_NUM 13 +#define TOUCH_PAD_GPIO13_CHANNEL 13 +#define TOUCH_PAD_NUM13_GPIO_NUM 13 -#define TOUCH_PAD_GPIO14_CHANNEL TOUCH_PAD_NUM14 -#define TOUCH_PAD_NUM14_GPIO_NUM 14 +#define TOUCH_PAD_GPIO14_CHANNEL 14 +#define TOUCH_PAD_NUM14_GPIO_NUM 14 diff --git a/components/soc/include/soc/regdma.h b/components/soc/include/soc/regdma.h index 618ed9ea13e..60c94b65df5 100644 --- a/components/soc/include/soc/regdma.h +++ b/components/soc/include/soc/regdma.h @@ -34,6 +34,7 @@ extern "C" { #define REGDMA_MODEMSYSCON_LINK(_pri) ((0x02 << 8) | _pri) #define REGDMA_MODEMLPCON_LINK(_pri) ((0x03 << 8) | _pri) #define REGDMA_PAU_LINK(_pri) ((0x04 << 8) | _pri) +#define REGDMA_PVT_LINK(_pri) ((0x05 << 8) | _pri) #define REGDMA_CACHE_LINK(_pri) ((0x0c << 8) | _pri) #define REGDMA_INTMTX_LINK(_pri) ((0x0d << 8) | _pri) @@ -63,6 +64,7 @@ extern "C" { #define REGDMA_LEDC_LINK(_pri) ((0x24 << 8) | _pri) #define REGDMA_PCNT_LINK(_pri) ((0x25 << 8) | _pri) #define REGDMA_MCPWM_LINK(_pri) ((0x26 << 8) | _pri) + #define REGDMA_MODEM_FE_LINK(_pri) ((0xFF << 8) | _pri) #define REGDMA_LINK_PRI_SYS_CLK REGDMA_LINK_PRI_0 diff --git a/components/soc/include/soc/usb_dwc_periph.h b/components/soc/include/soc/usb_dwc_periph.h index 185a6bdb376..f35664d0c95 100644 --- a/components/soc/include/soc/usb_dwc_periph.h +++ b/components/soc/include/soc/usb_dwc_periph.h @@ -106,9 +106,9 @@ extern const usb_dwc_info_t usb_dwc_info; /* ------------------------------- Deprecated ------------------------------- */ /* Todo: Remove in ESP-IDF v6.0 (IDF-9052) */ #include -#include "soc/periph_defs.h" #if SOC_USB_OTG_SUPPORTED +#include "soc/periph_defs.h" /* Stores a bunch of USB-peripheral data. diff --git a/components/tcp_transport/include/esp_transport_ssl.h b/components/tcp_transport/include/esp_transport_ssl.h index ad339396ffc..32020d5ce20 100644 --- a/components/tcp_transport/include/esp_transport_ssl.h +++ b/components/tcp_transport/include/esp_transport_ssl.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -61,6 +61,15 @@ void esp_transport_ssl_crt_bundle_attach(esp_transport_handle_t t, esp_err_t ((* */ void esp_transport_ssl_enable_global_ca_store(esp_transport_handle_t t); +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER +/** + * @brief Set ESP-TLS dynamic buffer strategy for ESP-TLS connection + * + * @param t ssl transport + * @param[in] strategy ESP-TLS dynamic buffer strategy + */ +void esp_transport_ssl_set_esp_tls_dyn_buf_strategy(esp_transport_handle_t t, esp_tls_dyn_buf_strategy_t strategy); +#endif /** * @brief Set TLS protocol version for ESP-TLS connection * diff --git a/components/tcp_transport/transport_ssl.c b/components/tcp_transport/transport_ssl.c index 00bd8d2fffc..7ee9bc52831 100644 --- a/components/tcp_transport/transport_ssl.c +++ b/components/tcp_transport/transport_ssl.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -362,6 +362,14 @@ void esp_transport_ssl_enable_global_ca_store(esp_transport_handle_t t) ssl->cfg.use_global_ca_store = true; } +#if CONFIG_MBEDTLS_DYNAMIC_BUFFER +void esp_transport_ssl_set_esp_tls_dyn_buf_strategy(esp_transport_handle_t t, esp_tls_dyn_buf_strategy_t strategy) +{ + GET_SSL_FROM_TRANSPORT_OR_RETURN(ssl, t); + ssl->cfg.esp_tls_dyn_buf_strategy = strategy; +} +#endif + void esp_transport_ssl_set_tls_version(esp_transport_handle_t t, esp_tls_proto_ver_t tls_version) { GET_SSL_FROM_TRANSPORT_OR_RETURN(ssl, t); diff --git a/components/usb/ext_hub.c b/components/usb/ext_hub.c index dbfdd43df21..44b81eb380e 100644 --- a/components/usb/ext_hub.c +++ b/components/usb/ext_hub.c @@ -312,13 +312,32 @@ static bool _device_set_actions(ext_hub_dev_t *ext_hub_dev, uint32_t action_flag static esp_err_t device_enable_int_ep(ext_hub_dev_t *ext_hub_dev) { - ESP_LOGD(EXT_HUB_TAG, "[%d] Enable EP IN", ext_hub_dev->constant.dev_addr); - esp_err_t ret = usbh_ep_enqueue_urb(ext_hub_dev->constant.ep_in_hdl, ext_hub_dev->constant.in_urb); - if (ret != ESP_OK) { - ESP_LOGE(EXT_HUB_TAG, "[%d] Failed to submit in urb: %s", ext_hub_dev->constant.dev_addr, esp_err_to_name(ret)); - device_error(ext_hub_dev); + bool call_proc_req_cb = false; + bool is_active = true; + ESP_LOGD(EXT_HUB_TAG, "[%d] Device ports handle complete", ext_hub_dev->constant.dev_addr); + + // Check if the device should be released + EXT_HUB_ENTER_CRITICAL(); + if (ext_hub_dev->dynamic.flags.waiting_release) { + is_active = false; + call_proc_req_cb = _device_set_actions(ext_hub_dev, DEV_ACTION_RELEASE); } - return ret; + EXT_HUB_EXIT_CRITICAL(); + + if (is_active) { + ESP_LOGD(EXT_HUB_TAG, "[%d] Enable IN EP", ext_hub_dev->constant.dev_addr); + esp_err_t ret = usbh_ep_enqueue_urb(ext_hub_dev->constant.ep_in_hdl, ext_hub_dev->constant.in_urb); + if (ret != ESP_OK) { + ESP_LOGE(EXT_HUB_TAG, "[%d] Failed to submit in urb: %s", ext_hub_dev->constant.dev_addr, esp_err_to_name(ret)); + device_error(ext_hub_dev); + } + return ret; + } + + if (call_proc_req_cb) { + p_ext_hub_driver->constant.proc_req_cb(false, p_ext_hub_driver->constant.proc_req_cb_arg); + } + return ESP_OK; } static void device_has_changed(ext_hub_dev_t *ext_hub_dev) @@ -420,7 +439,6 @@ static esp_err_t device_port_free(ext_hub_dev_t *ext_hub_dev, uint8_t port_idx) EXT_HUB_CHECK(ext_hub_dev->constant.ports[port_idx] != NULL, ESP_ERR_INVALID_STATE); bool call_proc_req_cb = false; - bool all_ports_freed = false; assert(ext_hub_dev->single_thread.maxchild != 0); assert(p_ext_hub_driver->constant.port_driver); @@ -435,25 +453,11 @@ static esp_err_t device_port_free(ext_hub_dev_t *ext_hub_dev, uint8_t port_idx) ext_hub_dev->single_thread.maxchild--; EXT_HUB_ENTER_CRITICAL(); - if (ext_hub_dev->dynamic.flags.is_gone) { - all_ports_freed = (ext_hub_dev->single_thread.maxchild == 0); - - if (all_ports_freed) { - ext_hub_dev->dynamic.flags.waiting_children = 0; - ext_hub_dev->dynamic.flags.waiting_free = 1; - call_proc_req_cb = _device_set_actions(ext_hub_dev, DEV_ACTION_FREE); - } else { - ext_hub_dev->dynamic.flags.waiting_children = 1; - } + if (ext_hub_dev->dynamic.flags.waiting_free && ext_hub_dev->single_thread.maxchild == 0) { + call_proc_req_cb = _device_set_actions(ext_hub_dev, DEV_ACTION_FREE); } EXT_HUB_EXIT_CRITICAL(); - // Close the device if all children were freed - if (all_ports_freed) { - ESP_LOGD(EXT_HUB_TAG, "[%d] Release USBH device object", ext_hub_dev->constant.dev_addr); - ESP_ERROR_CHECK(usbh_dev_close(ext_hub_dev->constant.dev_hdl)); - } - if (call_proc_req_cb) { p_ext_hub_driver->constant.proc_req_cb(false, p_ext_hub_driver->constant.proc_req_cb_arg); } @@ -463,71 +467,60 @@ exit: return ret; } -static esp_err_t device_release_ports(ext_hub_dev_t *ext_hub_dev) +static esp_err_t device_release_port(ext_hub_dev_t *ext_hub_dev, uint8_t port_idx) { - esp_err_t ret = ESP_OK; - // Mark all ports as gone - for (uint8_t i = 0; i < ext_hub_dev->constant.hub_desc->bNbrPorts; i++) { - // Only for ports, that were created - if (ext_hub_dev->constant.ports[i] != NULL) { - // Mark port as gone - ret = p_ext_hub_driver->constant.port_driver->gone(ext_hub_dev->constant.ports[i]); - if (ret == ESP_OK) { - // Port doesn't have a device and can be recycled right now - ESP_ERROR_CHECK(device_port_free(ext_hub_dev, i)); - } else if (ret == ESP_ERR_NOT_FINISHED) { - // Port has a device and will be recycled after USBH device will be released by all clients and freed - ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Port is gone", ext_hub_dev->constant.dev_addr, i + 1); - // Not an error case, but it's good to notify this with the error message - // TODO: IDF-12173 remove the error, instead set up the flag and verify the flag while recycle - ret = ESP_OK; - } else { - ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Unable to mark port as gone: %s", - ext_hub_dev->constant.dev_addr, i + 1, esp_err_to_name(ret)); - return ret; - } - } else { - ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Port was not created", ext_hub_dev->constant.dev_addr, i + 1); - } + assert(ext_hub_dev->constant.ports[port_idx] != NULL); + assert(ext_hub_dev->single_thread.maxchild != 0); + assert(p_ext_hub_driver->constant.port_driver); + + // Mark port as gone + esp_err_t ret = p_ext_hub_driver->constant.port_driver->gone(ext_hub_dev->constant.ports[port_idx]); + if (ret == ESP_OK) { + // Port doesn't have a device and can be freed right now + ESP_ERROR_CHECK(device_port_free(ext_hub_dev, port_idx)); + } else if (ret == ESP_ERR_NOT_FINISHED) { + // Port has a device and will be freed on recycle + EXT_HUB_ENTER_CRITICAL(); + ext_hub_dev->dynamic.flags.waiting_children = 1; + EXT_HUB_EXIT_CRITICAL(); + ret = ESP_OK; + } else { + ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Unable to mark port as gone: %s", + ext_hub_dev->constant.dev_addr, port_idx + 1, esp_err_to_name(ret)); + return ret; } + return ret; } +static void device_release_ports(ext_hub_dev_t *ext_hub_dev) +{ + assert(ext_hub_dev->constant.hub_desc->bNbrPorts); // Sanity check + for (uint8_t i = 0; i < ext_hub_dev->constant.hub_desc->bNbrPorts; i++) { + ESP_ERROR_CHECK(device_release_port(ext_hub_dev, i)); + } +} + static void device_release(ext_hub_dev_t *ext_hub_dev) { ESP_LOGD(EXT_HUB_TAG, "[%d] Device release", ext_hub_dev->constant.dev_addr); EXT_HUB_ENTER_CRITICAL(); - assert(ext_hub_dev->dynamic.flags.waiting_release); // Device should waiting the release - ext_hub_dev->dynamic.flags.is_gone = 1; + assert(ext_hub_dev->dynamic.flags.waiting_release); // Sanity check ext_hub_dev->dynamic.flags.waiting_release = 0; + ext_hub_dev->dynamic.flags.waiting_free = 1; EXT_HUB_EXIT_CRITICAL(); - // Release IN EP - ESP_ERROR_CHECK(usbh_ep_command(ext_hub_dev->constant.ep_in_hdl, USBH_EP_CMD_HALT)); - switch (ext_hub_dev->single_thread.state) { - case EXT_HUB_STATE_ATTACHED: - // Device has no configured ports, release the USBH device object - ESP_LOGD(EXT_HUB_TAG, "[%d] Release USBH device object", ext_hub_dev->constant.dev_addr); - ESP_ERROR_CHECK(usbh_dev_close(ext_hub_dev->constant.dev_hdl)); - break; case EXT_HUB_STATE_CONFIGURED: case EXT_HUB_STATE_SUSPENDED: assert(ext_hub_dev->constant.hub_desc != NULL); // Device should have a Hub descriptor assert(p_ext_hub_driver->constant.port_driver); // Port driver should be available - - // Release ports if device has them - if (ext_hub_dev->constant.hub_desc->bNbrPorts) { - ESP_ERROR_CHECK(device_release_ports(ext_hub_dev)); - } + device_release_ports(ext_hub_dev); break; default: - // Should never occur - abort(); break; } - ext_hub_dev->single_thread.state = EXT_HUB_STATE_RELEASED; } @@ -771,6 +764,9 @@ static void device_free(ext_hub_dev_t *ext_hub_dev) TAILQ_REMOVE(&p_ext_hub_driver->dynamic.ext_hubs_tailq, ext_hub_dev, dynamic.tailq_entry); EXT_HUB_EXIT_CRITICAL(); + ESP_ERROR_CHECK(usbh_ep_free(ext_hub_dev->constant.ep_in_hdl)); + ESP_ERROR_CHECK(usbh_dev_close(ext_hub_dev->constant.dev_hdl)); + if (ext_hub_dev->constant.hub_desc) { heap_caps_free(ext_hub_dev->constant.hub_desc); } @@ -778,10 +774,8 @@ static void device_free(ext_hub_dev_t *ext_hub_dev) heap_caps_free(ext_hub_dev->constant.ports); } - ESP_ERROR_CHECK(usbh_ep_free(ext_hub_dev->constant.ep_in_hdl)); urb_free(ext_hub_dev->constant.ctrl_urb); urb_free(ext_hub_dev->constant.in_urb); - heap_caps_free(ext_hub_dev); } @@ -1070,6 +1064,11 @@ static bool device_set_next_stage(ext_hub_dev_t *ext_hub_dev, bool last_stage_pa } else { // Terminal stages, move to IDLE next_stage = EXT_HUB_STAGE_IDLE; + EXT_HUB_ENTER_CRITICAL(); + if (ext_hub_dev->dynamic.flags.waiting_release) { + call_proc_req_cb = _device_set_actions(ext_hub_dev, DEV_ACTION_RELEASE); + } + EXT_HUB_EXIT_CRITICAL(); } ext_hub_dev->single_thread.stage = next_stage; call_proc_req_cb = stage_need_process(next_stage); @@ -1387,6 +1386,7 @@ esp_err_t ext_hub_dev_gone(uint8_t dev_addr) ESP_LOGD(EXT_HUB_TAG, "[%d] Device gone", ext_hub_dev->constant.dev_addr); EXT_HUB_ENTER_CRITICAL(); + ext_hub_dev->dynamic.flags.is_gone = 1; if (ext_hub_dev->dynamic.flags.waiting_release || ext_hub_dev->dynamic.flags.waiting_children) { EXT_HUB_EXIT_CRITICAL(); @@ -1396,7 +1396,7 @@ esp_err_t ext_hub_dev_gone(uint8_t dev_addr) } if ((ext_hub_dev->single_thread.maxchild == 0) && !ext_hub_dev->dynamic.flags.in_pending_list) { - // Not in pending list and doesn't have any children + // Not in pending list and doesn't have any children release and free right away ext_hub_dev->dynamic.flags.waiting_free = 1; ext_hub_dev->dynamic.flags.waiting_release = 1; call_proc_req_cb = _device_set_actions(ext_hub_dev, DEV_ACTION_RELEASE | @@ -1420,10 +1420,9 @@ exit: return ret; } -esp_err_t ext_hub_all_free(void) +void ext_hub_mark_all_free(void) { bool call_proc_req_cb = false; - bool wait_for_free = false; EXT_HUB_ENTER_CRITICAL(); for (int i = 0; i < 2; i++) { @@ -1438,9 +1437,13 @@ esp_err_t ext_hub_all_free(void) while (hub_curr != NULL) { hub_next = TAILQ_NEXT(hub_curr, dynamic.tailq_entry); hub_curr->dynamic.flags.waiting_release = 1; - call_proc_req_cb = _device_set_actions(hub_curr, DEV_ACTION_RELEASE); - // At least one hub should be released - wait_for_free = true; + uint32_t action_flags = DEV_ACTION_EP1_FLUSH | DEV_ACTION_EP1_DEQUEUE; + // If device in the IDLE stage, add the release action + // otherwise, device will be released when the stage changed to IDLE + if (hub_curr->single_thread.stage == EXT_HUB_STAGE_IDLE) { + action_flags |= DEV_ACTION_RELEASE; + } + call_proc_req_cb = _device_set_actions(hub_curr, action_flags); hub_curr = hub_next; } } @@ -1449,8 +1452,6 @@ esp_err_t ext_hub_all_free(void) if (call_proc_req_cb) { p_ext_hub_driver->constant.proc_req_cb(false, p_ext_hub_driver->constant.proc_req_cb_arg); } - - return (wait_for_free) ? ESP_ERR_NOT_FINISHED : ESP_OK; } esp_err_t ext_hub_status_handle_complete(ext_hub_handle_t ext_hub_hdl) @@ -1575,66 +1576,30 @@ esp_err_t ext_hub_port_recycle(ext_hub_handle_t ext_hub_hdl, uint8_t port_num) EXT_HUB_CHECK(ext_hub_hdl != NULL, ESP_ERR_INVALID_ARG); ext_hub_dev_t *ext_hub_dev = (ext_hub_dev_t *)ext_hub_hdl; - esp_err_t ret; uint8_t port_idx = port_num - 1; - bool free_port = false; bool release_port = false; - EXT_HUB_CHECK(port_idx < ext_hub_dev->constant.hub_desc->bNbrPorts, ESP_ERR_INVALID_SIZE); EXT_HUB_CHECK(p_ext_hub_driver->constant.port_driver != NULL, ESP_ERR_NOT_SUPPORTED); EXT_HUB_CHECK(ext_hub_dev->single_thread.state == EXT_HUB_STATE_CONFIGURED || ext_hub_dev->single_thread.state == EXT_HUB_STATE_RELEASED, ESP_ERR_INVALID_STATE); EXT_HUB_ENTER_CRITICAL(); - if (ext_hub_dev->dynamic.flags.waiting_release) { + if (ext_hub_dev->dynamic.flags.waiting_release || + ext_hub_dev->dynamic.flags.waiting_children) { release_port = true; - } else if (ext_hub_dev->dynamic.flags.waiting_children) { - assert(ext_hub_dev->dynamic.flags.waiting_release == 0); // Device should be already released - assert(ext_hub_dev->dynamic.flags.is_gone == 1); // Device should be gone by now - free_port = true; } EXT_HUB_EXIT_CRITICAL(); - if (!release_port && !free_port) { + esp_err_t ret; + if (release_port) { + ret = device_release_port(ext_hub_dev, port_idx); + } else { // Parent still present, recycle the port ret = p_ext_hub_driver->constant.port_driver->recycle(ext_hub_dev->constant.ports[port_idx]); if (ret != ESP_OK) { ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Unable to recycle the port: %s", ext_hub_dev->constant.dev_addr, port_num, esp_err_to_name(ret)); - goto exit; - } - } else { - if (release_port) { - // Notify the port that parent is not available anymore and port should be recycled then freed - ret = p_ext_hub_driver->constant.port_driver->gone(ext_hub_dev->constant.ports[port_idx]); - if (ret == ESP_OK) { - ESP_LOGD(EXT_HUB_TAG, "[%d:%d] Port doesn't have a device and can be freed right now", - ext_hub_dev->constant.dev_addr, - port_num); - assert(free_port == false); - free_port = true; - } else if (ret == ESP_ERR_NOT_FINISHED) { - // Port has a device and will be recycled after USBH device will be released by all clients and freed - ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Port is gone", - ext_hub_dev->constant.dev_addr, - port_num); - // Logically, recycling logic are finished for the Hub Driver, return ESP_OK to free the node - assert(free_port == false); - } else { - ESP_LOGE(EXT_HUB_TAG, "[%d:%d] Unable to mark port as gone: %s", - ext_hub_dev->constant.dev_addr, port_num, esp_err_to_name(ret)); - } - } - - if (free_port) { - ret = device_port_free(ext_hub_dev, port_idx); - if (ret != ESP_OK) { - goto exit; - } } } - - ret = ESP_OK; -exit: return ret; } diff --git a/components/usb/ext_port.c b/components/usb/ext_port.c index 5fedc49ae38..eb5f40d3ea9 100644 --- a/components/usb/ext_port.c +++ b/components/usb/ext_port.c @@ -717,7 +717,7 @@ static void handle_port_state(ext_port_t *ext_port) switch (curr_state) { case USB_PORT_STATE_NOT_CONFIGURED: new_state = USB_PORT_STATE_POWERED_OFF; - ESP_ERROR_CHECK(port_request_status(ext_port)); + port_request_status(ext_port); need_handling = true; break; case USB_PORT_STATE_POWERED_OFF: diff --git a/components/usb/hcd_dwc.c b/components/usb/hcd_dwc.c index 36cc3a3f224..e051e282df8 100644 --- a/components/usb/hcd_dwc.c +++ b/components/usb/hcd_dwc.c @@ -43,7 +43,7 @@ #define CTRL_EP_MAX_MPS_LS 8 // Largest Maximum Packet Size for Low Speed control endpoints #define CTRL_EP_MAX_MPS_HSFS 64 // Largest Maximum Packet Size for High & Full Speed control endpoints -#define NUM_PORTS 1 // The controller only has one port. +#define NUM_PORTS SOC_USB_OTG_PERIPH_NUM // Each peripheral is a root port // ----------------------- Configs ------------------------- @@ -108,7 +108,6 @@ DEFINE_CRIT_SECTION_LOCK_STATIC(hcd_lock); * For other SOCs this is no-operation */ #if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE -#define ALIGN_UP_BY(num, align) (((num) + ((align) - 1)) & ~((align) - 1)) #define CACHE_SYNC_FRAME_LIST(frame_list) cache_sync_frame_list(frame_list) #define CACHE_SYNC_XFER_DESCRIPTOR_LIST_M2C(buffer) cache_sync_xfer_descriptor_list(buffer, true) #define CACHE_SYNC_XFER_DESCRIPTOR_LIST_C2M(buffer) cache_sync_xfer_descriptor_list(buffer, false) @@ -250,22 +249,22 @@ struct port_obj { uint32_t val; } flags; bool initialized; - // FIFO biasing related - usb_hal_fifo_bias_t fifo_bias; // Bias is saved so it can be reconfigured upon reset + // FIFO related + usb_dwc_hal_fifo_config_t fifo_config; // FIFO config to be applied at HAL level // Port callback and context hcd_port_callback_t callback; void *callback_arg; SemaphoreHandle_t port_mux; void *context; + intr_handle_t isr_hdl; // Interrupt handle for this root port (USB-OTG peripheral) }; /** * @brief Object representing the HCD */ typedef struct { - // Ports (Hardware only has one) - port_t *port_obj; - intr_handle_t isr_hdl; + // Ports: Each peripheral is a root port + port_t *port_obj[NUM_PORTS]; } hcd_obj_t; static hcd_obj_t *s_hcd_obj = NULL; // Note: "s_" is for the static pointer @@ -552,6 +551,23 @@ static bool _port_check_all_pipes_halted(port_t *port); */ static bool _port_debounce(port_t *port); +/** + * @brief Convert user-provided FIFO configuration to HAL format + * + * This function validates and converts a user-defined FIFO configuration + * (provided via `hcd_config_t.fifo_config`) into the format expected by the HAL. + * It ensures that both RX FIFO and Non-Periodic TX FIFO sizes are non-zero. + * + * @param[in] src Pointer to user-defined FIFO settings (HCD format) + * @param[out] dst Pointer to HAL-compatible FIFO configuration structure + * + * @return + * - ESP_OK: Conversion successful and values copied + * - ESP_ERR_INVALID_SIZE: Either RX FIFO or Non-Periodic TX FIFO is zero + */ + +static esp_err_t convert_fifo_config_to_hal_config(const hcd_fifo_settings_t *src, usb_dwc_hal_fifo_config_t *dst); + /** * @brief Power ON the port * @@ -742,16 +758,6 @@ static usb_speed_t get_usb_port_speed(usb_dwc_speed_t priv) } } -static usb_hal_fifo_bias_t get_hal_fifo_bias(hcd_port_fifo_bias_t public) -{ - switch (public) { - case HCD_PORT_FIFO_BIAS_BALANCED: return USB_HAL_FIFO_BIAS_DEFAULT; - case HCD_PORT_FIFO_BIAS_RX: return USB_HAL_FIFO_BIAS_RX; - case HCD_PORT_FIFO_BIAS_PTX: return USB_HAL_FIFO_BIAS_PTX; - default: abort(); - } -} - // ----------------- Interrupt Handlers -------------------- /** @@ -952,6 +958,46 @@ static void intr_hdlr_main(void *arg) } } +// ----------------------- FIFO Config ------------------------- + +/** + * @brief Calculate default FIFO configuration based on bias preference + * + * This function calculates the FIFO configuration (RX, non-periodic TX, and periodic TX) + * according to the selected bias mode from Kconfig: + * + * - CONFIG_USB_HOST_HW_BUFFER_BIAS_IN: Prioritize RX FIFO space, useful for IN-heavy traffic. + * - CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT: Prioritize periodic TX FIFO, suitable for periodic OUT transfers. + * - USB_HOST_HW_BUFFER_BIAS_BALANCED: Balanced configuration between RX and both TX FIFOs. + * + * @param[inout] port Pointer to the port object whose fifo_config will be filled + * @param[in] hal Pointer to an initialized HAL context providing hardware FIFO limits + */ +static void _calculate_fifo_from_bias(port_t *port, const usb_dwc_hal_context_t *hal) +{ + const int otg_dfifo_depth = hal->constant_config.hsphy_type ? 1024 : 256; + const uint16_t fifo_size_lines = hal->constant_config.fifo_size; + +#if CONFIG_USB_HOST_HW_BUFFER_BIAS_IN + // Prioritize RX FIFO (best for IN-heavy workloads) + port->fifo_config.nptx_fifo_lines = otg_dfifo_depth / 16; + port->fifo_config.ptx_fifo_lines = otg_dfifo_depth / 8; + port->fifo_config.rx_fifo_lines = fifo_size_lines - port->fifo_config.ptx_fifo_lines - port->fifo_config.nptx_fifo_lines; + +#elif CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT + // Prioritize periodic TX FIFO (useful for high throughput periodic endpoints) + port->fifo_config.rx_fifo_lines = otg_dfifo_depth / 8 + 2; // 2 extra lines are allocated for status information. See USB-OTG Programming Guide, chapter 2.1.2.1 + port->fifo_config.nptx_fifo_lines = otg_dfifo_depth / 16; + port->fifo_config.ptx_fifo_lines = fifo_size_lines - port->fifo_config.nptx_fifo_lines - port->fifo_config.rx_fifo_lines; + +#else // USB_HOST_HW_BUFFER_BIAS_BALANCED + // Balanced configuration (default) + port->fifo_config.nptx_fifo_lines = otg_dfifo_depth / 4; + port->fifo_config.ptx_fifo_lines = otg_dfifo_depth / 8; + port->fifo_config.rx_fifo_lines = fifo_size_lines - port->fifo_config.ptx_fifo_lines - port->fifo_config.nptx_fifo_lines; +#endif +} + // --------------------------------------------- Host Controller Driver ------------------------------------------------ static port_t *port_obj_alloc(void) @@ -994,43 +1040,66 @@ esp_err_t hcd_install(const hcd_config_t *config) HCD_CHECK_FROM_CRIT(s_hcd_obj == NULL, ESP_ERR_INVALID_STATE); HCD_EXIT_CRITICAL(); + // Check if peripheral_map does not have bits set outside of valid range. Valid bits are BIT0 - BIT(NUM_PORTS - 1) + HCD_CHECK((config->peripheral_map != 0) && (config->peripheral_map < BIT(NUM_PORTS)), ESP_ERR_INVALID_ARG); + esp_err_t err_ret; + // Allocate memory for the driver object hcd_obj_t *p_hcd_obj_dmy = calloc(1, sizeof(hcd_obj_t)); if (p_hcd_obj_dmy == NULL) { return ESP_ERR_NO_MEM; } - // Allocate each port object (the hardware currently only has one port) - p_hcd_obj_dmy->port_obj = port_obj_alloc(); - if (p_hcd_obj_dmy->port_obj == NULL) { - err_ret = ESP_ERR_NO_MEM; - goto port_alloc_err; - } - // Allocate interrupt - err_ret = esp_intr_alloc(usb_dwc_info.controllers[0].irq, - config->intr_flags | ESP_INTR_FLAG_INTRDISABLED, // The interrupt must be disabled until the port is initialized - intr_hdlr_main, - (void *)p_hcd_obj_dmy->port_obj, - &p_hcd_obj_dmy->isr_hdl); - if (err_ret != ESP_OK) { - ESP_LOGE(HCD_DWC_TAG, "Interrupt alloc error: %s", esp_err_to_name(err_ret)); - goto intr_alloc_err; + + // Allocate each port object + for (int i = 0; i < NUM_PORTS; i++) { + if (BIT(i) & config->peripheral_map) { + p_hcd_obj_dmy->port_obj[i] = port_obj_alloc(); + if (p_hcd_obj_dmy->port_obj[i] == NULL) { + err_ret = ESP_ERR_NO_MEM; + goto clean_up; + } + // Allocate interrupt + const int irq_index = usb_dwc_info.controllers[i].irq; + err_ret = esp_intr_alloc(irq_index, + config->intr_flags | ESP_INTR_FLAG_INTRDISABLED, // The interrupt must be disabled until the port is initialized + intr_hdlr_main, + (void *)p_hcd_obj_dmy->port_obj[i], + &p_hcd_obj_dmy->port_obj[i]->isr_hdl); + if (err_ret != ESP_OK) { + ESP_LOGE(HCD_DWC_TAG, "Interrupt alloc error: %s", esp_err_to_name(err_ret)); + goto clean_up; + } + + // Apply custom FIFO config if provided + if (config->fifo_config != NULL) { + // Convert and validate user-provided config + err_ret = convert_fifo_config_to_hal_config(config->fifo_config, &p_hcd_obj_dmy->port_obj[i]->fifo_config); + if (err_ret != ESP_OK) { + goto clean_up; + } + } + } } + HCD_ENTER_CRITICAL(); if (s_hcd_obj != NULL) { HCD_EXIT_CRITICAL(); err_ret = ESP_ERR_INVALID_STATE; - goto assign_err; + goto clean_up; } s_hcd_obj = p_hcd_obj_dmy; HCD_EXIT_CRITICAL(); return ESP_OK; -assign_err: - esp_intr_free(p_hcd_obj_dmy->isr_hdl); -intr_alloc_err: - port_obj_free(p_hcd_obj_dmy->port_obj); -port_alloc_err: +clean_up: + // Free resources + for (int i = 0; i < NUM_PORTS; i++) { + if (p_hcd_obj_dmy->port_obj[i]) { + esp_intr_free(p_hcd_obj_dmy->port_obj[i]->isr_hdl); + port_obj_free(p_hcd_obj_dmy->port_obj[i]); + } + } free(p_hcd_obj_dmy); return err_ret; } @@ -1038,8 +1107,14 @@ port_alloc_err: esp_err_t hcd_uninstall(void) { HCD_ENTER_CRITICAL(); - // Check that all ports have been disabled (there's only one port) - if (s_hcd_obj == NULL || s_hcd_obj->port_obj->initialized) { + // Check that all ports have been disabled + bool all_ports_disabled = true; + for (int i = 0; i < NUM_PORTS; i++) { + if (s_hcd_obj->port_obj[i]) { + all_ports_disabled = all_ports_disabled && !(s_hcd_obj->port_obj[i]->initialized); + } + } + if (s_hcd_obj == NULL || !all_ports_disabled) { HCD_EXIT_CRITICAL(); return ESP_ERR_INVALID_STATE; } @@ -1048,8 +1123,12 @@ esp_err_t hcd_uninstall(void) HCD_EXIT_CRITICAL(); // Free resources - port_obj_free(p_hcd_obj_dmy->port_obj); - esp_intr_free(p_hcd_obj_dmy->isr_hdl); + for (int i = 0; i < NUM_PORTS; i++) { + if (p_hcd_obj_dmy->port_obj[i]) { + esp_intr_free(p_hcd_obj_dmy->port_obj[i]->isr_hdl); + port_obj_free(p_hcd_obj_dmy->port_obj[i]); + } + } free(p_hcd_obj_dmy); return ESP_OK; } @@ -1098,6 +1177,34 @@ static bool _port_debounce(port_t *port) return is_connected; } +static esp_err_t convert_fifo_config_to_hal_config(const hcd_fifo_settings_t *src, usb_dwc_hal_fifo_config_t *dst) +{ + // Check at least RX and NPTX are non-zero + if (src->rx_fifo_lines == 0 || src->nptx_fifo_lines == 0) { + ESP_LOGE(HCD_DWC_TAG, "RX and Non-Periodic TX FIFO must be > 0"); + return ESP_ERR_INVALID_SIZE; + } + // Assign valid values + dst->rx_fifo_lines = src->rx_fifo_lines; + dst->nptx_fifo_lines = src->nptx_fifo_lines; + dst->ptx_fifo_lines = src->ptx_fifo_lines; // OK even if zero + + return ESP_OK; +} + +/** + * @brief Check if the FIFO config is marked to use bias-based default values. + * + * If all FIFO line sizes are zero, the configuration is considered uninitialized, + * and default values will be calculated based on bias settings. + */ +static inline bool _is_fifo_config_by_bias(const usb_dwc_hal_fifo_config_t *cfg) +{ + return (cfg->rx_fifo_lines == 0 && + cfg->nptx_fifo_lines == 0 && + cfg->ptx_fifo_lines == 0); +} + // ---------------------- Commands ------------------------- static esp_err_t _port_cmd_power_on(port_t *port) @@ -1175,8 +1282,16 @@ static esp_err_t _port_cmd_reset(port_t *port) goto bailout; } - // Reinitialize port registers. - usb_dwc_hal_set_fifo_bias(port->hal, port->fifo_bias); // Set FIFO biases + // Reinitialize port registers + if (!usb_dwc_hal_fifo_config_is_valid(port->hal, &port->fifo_config)) { + HCD_EXIT_CRITICAL(); + ret = ESP_ERR_INVALID_SIZE; + ESP_LOGE(HCD_DWC_TAG, "Invalid FIFO config"); + HCD_ENTER_CRITICAL(); + goto bailout; + } + usb_dwc_hal_set_fifo_config(port->hal, &port->fifo_config);// Apply FIFO settings + usb_dwc_hal_port_set_frame_list(port->hal, port->frame_list, FRAME_LIST_LEN); // Set periodic frame list usb_dwc_hal_port_periodic_enable(port->hal); // Enable periodic scheduling @@ -1274,31 +1389,44 @@ exit: esp_err_t hcd_port_init(int port_number, const hcd_port_config_t *port_config, hcd_port_handle_t *port_hdl) { - HCD_CHECK(port_number > 0 && port_config != NULL && port_hdl != NULL, ESP_ERR_INVALID_ARG); - HCD_CHECK(port_number <= NUM_PORTS, ESP_ERR_NOT_FOUND); + HCD_CHECK(port_number >= 0 && port_config != NULL && port_hdl != NULL, ESP_ERR_INVALID_ARG); + HCD_CHECK(port_number < NUM_PORTS, ESP_ERR_NOT_FOUND); HCD_ENTER_CRITICAL(); - HCD_CHECK_FROM_CRIT(s_hcd_obj != NULL && !s_hcd_obj->port_obj->initialized, ESP_ERR_INVALID_STATE); + HCD_CHECK_FROM_CRIT(s_hcd_obj != NULL && !s_hcd_obj->port_obj[port_number]->initialized, ESP_ERR_INVALID_STATE); // Port object memory and resources (such as the mutex) already be allocated. Just need to initialize necessary fields only - port_t *port_obj = s_hcd_obj->port_obj; + port_t *port_obj = s_hcd_obj->port_obj[port_number]; TAILQ_INIT(&port_obj->pipes_idle_tailq); TAILQ_INIT(&port_obj->pipes_active_tailq); port_obj->state = HCD_PORT_STATE_NOT_POWERED; port_obj->last_event = HCD_PORT_EVENT_NONE; - port_obj->fifo_bias = get_hal_fifo_bias(port_config->fifo_bias); port_obj->callback = port_config->callback; port_obj->callback_arg = port_config->callback_arg; port_obj->context = port_config->context; - usb_dwc_hal_init(port_obj->hal, 0); + + // USB-HAL's size is dependent on its configuration, namely on number of channels in the configuration + // We must first initialize the HAL, to get the number of channels and then allocate memory for the channels + ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE("-Wanalyzer-malloc-leak") // False positive + usb_dwc_hal_init(port_obj->hal, port_number); port_obj->hal->channels.hdls = calloc(port_obj->hal->constant_config.chan_num_total, sizeof(usb_dwc_hal_chan_t*)); HCD_CHECK_FROM_CRIT(port_obj->hal->channels.hdls != NULL, ESP_ERR_NO_MEM); + ESP_COMPILER_DIAGNOSTIC_POP("-Wanalyzer-malloc-leak") + port_obj->initialized = true; - // Clear the frame list. We set the frame list register and enable periodic scheduling after a successful reset + // Clear the frame list. We will set the frame list register and enable periodic scheduling after a successful reset memset(port_obj->frame_list, 0, FRAME_LIST_LEN * sizeof(uint32_t)); - esp_intr_enable(s_hcd_obj->isr_hdl); + // If FIFO config is zeroed -> calculate from bias + if (_is_fifo_config_by_bias(&port_obj->fifo_config)) { + // Calculate default FIFO sizes based on Kconfig bias settings + _calculate_fifo_from_bias(port_obj, port_obj->hal); + } + esp_intr_enable(port_obj->isr_hdl); *port_hdl = (hcd_port_handle_t)port_obj; HCD_EXIT_CRITICAL(); - + ESP_LOGD(HCD_DWC_TAG, "FIFO config lines: RX=%" PRIu32 ", PTX=%" PRIu32 ", NPTX=%" PRIu32, + port_obj->fifo_config.rx_fifo_lines, + port_obj->fifo_config.ptx_fifo_lines, + port_obj->fifo_config.nptx_fifo_lines); vTaskDelay(pdMS_TO_TICKS(INIT_DELAY_MS)); // Need a short delay before host mode takes effect return ESP_OK; } @@ -1314,7 +1442,7 @@ esp_err_t hcd_port_deinit(hcd_port_handle_t port_hdl) && port->task_waiting_port_notif == NULL, ESP_ERR_INVALID_STATE); port->initialized = false; - esp_intr_disable(s_hcd_obj->isr_hdl); + esp_intr_disable(port->isr_hdl); free(port->hal->channels.hdls); usb_dwc_hal_deinit(port->hal); HCD_EXIT_CRITICAL(); @@ -1430,7 +1558,7 @@ esp_err_t hcd_port_recover(hcd_port_handle_t port_hdl) ESP_ERR_INVALID_STATE); // We are about to do a soft reset on the peripheral. Disable the peripheral throughout - esp_intr_disable(s_hcd_obj->isr_hdl); + esp_intr_disable(port->isr_hdl); usb_dwc_hal_core_soft_reset(port->hal); port->state = HCD_PORT_STATE_NOT_POWERED; port->last_event = HCD_PORT_EVENT_NONE; @@ -1438,7 +1566,7 @@ esp_err_t hcd_port_recover(hcd_port_handle_t port_hdl) // Clear the frame list. We set the frame list register and enable periodic scheduling after a successful reset memset(port->frame_list, 0, FRAME_LIST_LEN * sizeof(uint32_t)); - esp_intr_enable(s_hcd_obj->isr_hdl); + esp_intr_enable(port->isr_hdl); HCD_EXIT_CRITICAL(); return ESP_OK; } @@ -1453,28 +1581,6 @@ void *hcd_port_get_context(hcd_port_handle_t port_hdl) return ret; } -esp_err_t hcd_port_set_fifo_bias(hcd_port_handle_t port_hdl, hcd_port_fifo_bias_t bias) -{ - esp_err_t ret; - usb_hal_fifo_bias_t hal_bias = get_hal_fifo_bias(bias); - - // Configure the new FIFO sizes and store the pointers - port_t *port = (port_t *)port_hdl; - xSemaphoreTake(port->port_mux, portMAX_DELAY); - HCD_ENTER_CRITICAL(); - // Check that port is in the correct state to update FIFO sizes - if (port->initialized && !port->flags.event_pending && port->num_pipes_idle == 0 && port->num_pipes_queued == 0) { - usb_dwc_hal_set_fifo_bias(port->hal, hal_bias); - port->fifo_bias = hal_bias; - ret = ESP_OK; - } else { - ret = ESP_ERR_INVALID_STATE; - } - HCD_EXIT_CRITICAL(); - xSemaphoreGive(port->port_mux); - return ret; -} - // --------------------------------------------------- HCD Pipes ------------------------------------------------------- // ----------------------- Private ------------------------- diff --git a/components/usb/hub.c b/components/usb/hub.c index 67c9b0a53fe..dccd92ba445 100644 --- a/components/usb/hub.c +++ b/components/usb/hub.c @@ -11,6 +11,7 @@ #include #include "esp_err.h" #include "esp_heap_caps.h" +#include "esp_bit_defs.h" #include "esp_private/critical_section.h" #include "esp_log.h" #include "usb_private.h" @@ -27,8 +28,6 @@ Implementation of the HUB driver that only supports the Root Hub with a single p implement the bare minimum to control the root HCD port. */ -#define HUB_ROOT_PORT_NUM 1 // HCD only supports one port - #ifdef CONFIG_USB_HOST_HW_BUFFER_BIAS_IN #define HUB_ROOT_HCD_PORT_FIFO_BIAS HCD_PORT_FIFO_BIAS_RX #elif CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT @@ -60,7 +59,6 @@ typedef enum { ROOT_PORT_STATE_POWERED, /**< Root port is powered, device is not connected */ ROOT_PORT_STATE_DISABLED, /**< A device is connected but is disabled (i.e., not reset, no SOFs are sent) */ ROOT_PORT_STATE_ENABLED, /**< A device is connected, port has been reset, SOFs are sent */ - ROOT_PORT_STATE_RECOVERY, /**< Root port encountered an error and needs to be recovered */ } root_port_state_t; /** @@ -561,13 +559,19 @@ esp_err_t hub_install(hub_config_t *hub_config, void **client_ret) // Install HCD port hcd_port_config_t port_config = { - .fifo_bias = HUB_ROOT_HCD_PORT_FIFO_BIAS, .callback = root_port_callback, .callback_arg = NULL, .context = NULL, }; hcd_port_handle_t root_port_hdl; - ret = hcd_port_init(HUB_ROOT_PORT_NUM, &port_config, &root_port_hdl); + + // Right now we support only one root port, can be extended in future + int root_port_index = 0; + if (hub_config->port_map & BIT1) { + root_port_index = 1; + } + + ret = hcd_port_init(root_port_index, &port_config, &root_port_hdl); if (ret != ESP_OK) { ESP_LOGE(HUB_DRIVER_TAG, "HCD Port init error: %s", esp_err_to_name(ret)); goto err; @@ -767,7 +771,7 @@ esp_err_t hub_port_disable(usb_device_handle_t parent_dev_hdl, uint8_t parent_po return ret; } -esp_err_t hub_notify_new_dev(uint8_t dev_addr) +esp_err_t hub_dev_new(uint8_t dev_addr) { HUB_DRIVER_ENTER_CRITICAL(); HUB_DRIVER_CHECK_FROM_CRIT(p_hub_driver_obj != NULL, ESP_ERR_INVALID_STATE); @@ -790,15 +794,15 @@ esp_err_t hub_notify_new_dev(uint8_t dev_addr) } } // Close device - usbh_dev_close(dev_hdl); + ESP_ERROR_CHECK(usbh_dev_close(dev_hdl)); } - // Logic should not stop the flow, so no error to return - ret = ESP_OK; + // Nothing to do, while Hubs support is not enabled + ret = ESP_ERR_NOT_SUPPORTED; #endif // ENABLE_USB_HUBS return ret; } -esp_err_t hub_notify_dev_gone(uint8_t dev_addr) +esp_err_t hub_dev_gone(uint8_t dev_addr) { HUB_DRIVER_ENTER_CRITICAL(); HUB_DRIVER_CHECK_FROM_CRIT(p_hub_driver_obj != NULL, ESP_ERR_INVALID_STATE); @@ -809,7 +813,7 @@ esp_err_t hub_notify_dev_gone(uint8_t dev_addr) ret = ext_hub_dev_gone(dev_addr); #else // Nothing to do, while Hubs support is not enabled - ret = ESP_OK; + ret = ESP_ERR_NOT_SUPPORTED; #endif // ENABLE_USB_HUBS return ret; } @@ -821,7 +825,9 @@ esp_err_t hub_notify_all_free(void) HUB_DRIVER_CHECK_FROM_CRIT(p_hub_driver_obj != NULL, ESP_ERR_INVALID_STATE); HUB_DRIVER_EXIT_CRITICAL(); - return ext_hub_all_free(); + ext_hub_mark_all_free(); + + return ESP_OK; } #endif // ENABLE_USB_HUBS diff --git a/components/usb/include/usb/usb_host.h b/components/usb/include/usb/usb_host.h index eee26145a02..992d783deab 100644 --- a/components/usb/include/usb/usb_host.h +++ b/components/usb/include/usb/usb_host.h @@ -111,6 +111,23 @@ typedef struct { int intr_flags; /**< Interrupt flags for the underlying ISR used by the USB Host stack */ usb_host_enum_filter_cb_t enum_filter_cb; /**< Enumeration filter callback. Enable CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK to use this feature. Set to NULL otherwise. */ + struct { + uint32_t nptx_fifo_lines; /**< Required: Number of non-periodic TX FIFO lines. + Must be > 0 to enable custom configuration. */ + uint32_t ptx_fifo_lines; /**< Optional: Number of periodic TX FIFO lines. + Can be 0 if periodic TX endpoints are not used. */ + uint32_t rx_fifo_lines; /**< Required: Number of RX FIFO lines. + Must be > 0 to enable custom configuration. */ + } fifo_settings_custom; /**< Optional custom FIFO configuration (advanced use). + RX and NPTX must be > 0. If all fields are zero, + a default configuration will be selected based on Kconfig bias. */ + unsigned peripheral_map; /**< Selects the USB peripheral(s) to use. + - On targets with multiple USB peripherals, this field can be used to specify which ones to enable. + - Set to 0 to use the default peripheral. + - On High-Speed capable targets, the default is the High-Speed peripheral. + - On Full-Speed only targets, the default is the Full-Speed peripheral. + - Example: peripheral_map = BIT1; installs USB host on peripheral 1. + - The mapping of bits to specific peripherals is defined in the USB_DWC_LL_GET_HW() macro. */ } usb_host_config_t; /** diff --git a/components/usb/maintainers.md b/components/usb/maintainers.md index 8a0da5d23fd..56f8c9383a1 100644 --- a/components/usb/maintainers.md +++ b/components/usb/maintainers.md @@ -94,9 +94,11 @@ The HCD currently has the following limitations: - `HCD_PORT_EVENT_DISCONNECTION` - `HCD_PORT_EVENT_ERROR` - `HCD_PORT_EVENT_OVERCURRENT` -- The port's internal FIFOs (RX, Periodic TX, Non-periodic TX) must be after each port reset (a port reset seems to clear the FIFO sizing registers). The sizing of these FIFOs will affect the largest supported MPS of endpoints using that FIFO. For convenience, the HCD provides the `hcd_port_fifo_bias_t` enum that will set the FIFO sizes for you but biased towards a particular use case. For example, if the connected device has an IN endpoint with large MPS (e.g., 512 bytes), the FIFO should be biased as `HCD_PORT_FIFO_BIAS_RX`. - - The FIFO sizes will be set on port initialization (supplied in `hcd_port_config_t`) - - FIFOs can be resized after port reset using `hcd_port_set_fifo_bias()` but some restrictions apply (see API description). +- The port's internal FIFOs (RX, Periodic TX, Non-periodic TX) must be configured during port initialization. The sizing of these FIFOs affects the maximum supported MPS (Maximum Packet Size) of endpoints using that FIFO. + - FIFO sizes can be explicitly configured by the user via the `usb_host_config_t::fifo_settings_custom` structure during `usb_host_install()`. + - If no custom FIFO configuration is provided (i.e., all fields are set to zero), the driver will automatically select FIFO sizes based on Kconfig bias settings (`USB_HOST_HW_BUFFER_BIAS_BALANCED`, `CONFIG_USB_HOST_HW_BUFFER_BIAS_IN`, or `CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT`). + - After each USB port reset, the FIFO configuration is re-applied to the hardware registers based on the stored settings. + - Manual FIFO reconfiguration after initialization is not supported. FIFO sizes must be set before any pipes are created or transfers occur. ## HCD Pipes @@ -140,4 +142,4 @@ The HCD API is thread safe however the following limitations should be noted: - Likewise, it is the client's responsibility to ensure that events and pipes are cleared before calling `hcd_port_deinit()`. - `hcd_port_command()` is thread safe, but only one port command can be executed at any one time. Therefore HCD internally used a mutex to protect against concurrent commands. - If multiple threads attempt to execute a command on the sample one, all but one of those threads will return with an invalid state error. -- Blocking HCD functions should not be called from critical sections and interrupts (e.g., `hcd_port_command()` and `hcd_pipe_command()`). \ No newline at end of file +- Blocking HCD functions should not be called from critical sections and interrupts (e.g., `hcd_port_command()` and `hcd_pipe_command()`). diff --git a/components/usb/private_include/ext_hub.h b/components/usb/private_include/ext_hub.h index be95dbefe3c..f58b9a3383c 100644 --- a/components/usb/private_include/ext_hub.h +++ b/components/usb/private_include/ext_hub.h @@ -131,11 +131,8 @@ esp_err_t ext_hub_dev_gone(uint8_t dev_addr); * Entry: * - should be called within Hub Driver when USB Host library need to be uninstalled * - * @return - * - ESP_OK: All devices freed - * - ESP_ERR_NOT_FINISHED: Operation not finished: devices waiting children to be freed. */ -esp_err_t ext_hub_all_free(void); +void ext_hub_mark_all_free(void); /** * @brief The External Hub or Ports statuses change completed diff --git a/components/usb/private_include/hcd.h b/components/usb/private_include/hcd.h index 8d24e316837..eeb1f22709f 100644 --- a/components/usb/private_include/hcd.h +++ b/components/usb/private_include/hcd.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -137,27 +137,37 @@ typedef bool (*hcd_port_callback_t)(hcd_port_handle_t port_hdl, hcd_port_event_t */ typedef bool (*hcd_pipe_callback_t)(hcd_pipe_handle_t pipe_hdl, hcd_pipe_event_t pipe_event, void *user_arg, bool in_isr); -typedef enum { - HCD_PORT_FIFO_BIAS_BALANCED, /**< Balanced FIFO sizing for RX, Non-periodic TX, and periodic TX */ - HCD_PORT_FIFO_BIAS_RX, /**< Bias towards a large RX FIFO */ - HCD_PORT_FIFO_BIAS_PTX, /**< Bias towards periodic TX FIFO */ -} hcd_port_fifo_bias_t; - +/** + * @brief Optional user-defined FIFO configuration (used internally by HCD) + * + * This structure is filled by the USB Host layer if the user provides + * custom FIFO values. All values must be greater than zero to activate + * the configuration. If NULL is passed, HCD will use the default + * configuration based on the Kconfig bias. + */ +typedef struct { + uint32_t nptx_fifo_lines; /**< Number of non-periodic TX FIFO lines */ + uint32_t ptx_fifo_lines; /**< Number of periodic TX FIFO lines */ + uint32_t rx_fifo_lines; /**< Number of RX FIFO lines */ +} hcd_fifo_settings_t; /** * @brief HCD configuration structure */ typedef struct { int intr_flags; /**< Interrupt flags for HCD interrupt */ + const hcd_fifo_settings_t *fifo_config; /**< Optional pointer to custom FIFO config. + If NULL, default configuration is used. */ + unsigned peripheral_map; /**< Bit map of USB-OTG peripherals that belong to HCD. Set to zero to use default */ } hcd_config_t; /** * @brief Port configuration structure */ typedef struct { - hcd_port_fifo_bias_t fifo_bias; /**< HCD port internal FIFO biasing */ hcd_port_callback_t callback; /**< HCD port event callback */ void *callback_arg; /**< User argument for HCD port callback */ void *context; /**< Context variable used to associate the port with upper layer object */ + unsigned peripheral_idx; /**< Index of USB peripheral this port belongs to. Index numbers are defined in USB_DWC_LL_GET_HW */ } hcd_port_config_t; /** @@ -217,8 +227,6 @@ esp_err_t hcd_uninstall(void); * * After a port is initialized, it will be put into the HCD_PORT_STATE_NOT_POWERED state. * - * @note The host controller only has one port, thus the only valid port_number is 1 - * * @param[in] port_number Port number * @param[in] port_config Port configuration * @param[out] port_hdl Port handle @@ -340,23 +348,6 @@ esp_err_t hcd_port_recover(hcd_port_handle_t port_hdl); */ void *hcd_port_get_context(hcd_port_handle_t port_hdl); -/** - * @brief Set the bias of the HCD port's internal FIFO - * - * @note This function can only be called when the following conditions are met: - * - Port is initialized - * - Port does not have any pending events - * - Port does not have any allocated pipes - * - * @param[in] port_hdl Port handle - * @param[in] bias Fifo bias - * - * @return - * - ESP_OK FIFO sizing successfully set - * - ESP_ERR_INVALID_STATE Incorrect state for FIFO sizes to be set - */ -esp_err_t hcd_port_set_fifo_bias(hcd_port_handle_t port_hdl, hcd_port_fifo_bias_t bias); - // --------------------------------------------------- HCD Pipes ------------------------------------------------------- /** diff --git a/components/usb/private_include/hub.h b/components/usb/private_include/hub.h index f563a56f283..e47e11c1891 100644 --- a/components/usb/private_include/hub.h +++ b/components/usb/private_include/hub.h @@ -60,6 +60,7 @@ typedef void (*hub_event_cb_t)(hub_event_data_t *event_data, void *arg); * @brief Hub driver configuration */ typedef struct { + unsigned port_map; /**< Bitmap of root ports to enable */ usb_proc_req_cb_t proc_req_cb; /**< Processing request callback */ void *proc_req_cb_arg; /**< Processing request callback argument */ hub_event_cb_t event_cb; /**< Hub event callback */ @@ -205,7 +206,7 @@ esp_err_t hub_port_disable(usb_device_handle_t parent_dev_hdl, uint8_t parent_po * - ESP_OK: New device added successfully * - ESP_ERR_INVALID_STATE: Hub driver is not in a correct state */ -esp_err_t hub_notify_new_dev(uint8_t dev_addr); +esp_err_t hub_dev_new(uint8_t dev_addr); /** * @brief Notify Hub driver that device has been removed @@ -221,7 +222,7 @@ esp_err_t hub_notify_new_dev(uint8_t dev_addr); * - ESP_OK: A device removed successfully * - ESP_ERR_INVALID_STATE: Hub driver is not in a correct state */ -esp_err_t hub_notify_dev_gone(uint8_t dev_addr); +esp_err_t hub_dev_gone(uint8_t dev_addr); #if ENABLE_USB_HUBS /** diff --git a/components/usb/test_apps/common/dev_isoc.c b/components/usb/test_apps/common/dev_isoc.c index 6cf1eb52f6d..c1390a108dc 100644 --- a/components/usb/test_apps/common/dev_isoc.c +++ b/components/usb/test_apps/common/dev_isoc.c @@ -15,7 +15,7 @@ static const usb_ep_desc_t isoc_out_ep_desc = { .bDescriptorType = USB_B_DESCRIPTOR_TYPE_ENDPOINT, .bEndpointAddress = 0x02, // EP 2 OUT .bmAttributes = USB_BM_ATTRIBUTES_XFER_ISOC, - .wMaxPacketSize = 512, + .wMaxPacketSize = 128, .bInterval = 1, // Isoc interval is (2 ^ (bInterval - 1)) which means an interval of 1ms }; diff --git a/components/usb/test_apps/hcd/main/test_hcd_common.c b/components/usb/test_apps/hcd/main/test_hcd_common.c index 9c78d10788d..bf7839f5849 100644 --- a/components/usb/test_apps/hcd/main/test_hcd_common.c +++ b/components/usb/test_apps/hcd/main/test_hcd_common.c @@ -178,7 +178,6 @@ hcd_port_handle_t test_hcd_setup(void) TEST_ASSERT_EQUAL(ESP_OK, hcd_install(&hcd_config)); // Initialize a port hcd_port_config_t port_config = { - .fifo_bias = HCD_PORT_FIFO_BIAS_BALANCED, .callback = port_callback, .callback_arg = (void *)port_evt_queue, .context = (void *)port_evt_queue, diff --git a/components/usb/test_apps/hcd/main/test_hcd_isoc.c b/components/usb/test_apps/hcd/main/test_hcd_isoc.c index 2f5f837af42..2add1d1c08b 100644 --- a/components/usb/test_apps/hcd/main/test_hcd_isoc.c +++ b/components/usb/test_apps/hcd/main/test_hcd_isoc.c @@ -43,7 +43,6 @@ TEST_CASE("Test HCD isochronous pipe URBs", "[isoc][full_speed][high_speed]") { usb_speed_t port_speed = test_hcd_wait_for_conn(port_hdl); // Trigger a connection // The MPS of the ISOC OUT pipe is quite large, so we need to bias the FIFO sizing - TEST_ASSERT_EQUAL(ESP_OK, hcd_port_set_fifo_bias(port_hdl, HCD_PORT_FIFO_BIAS_PTX)); vTaskDelay(pdMS_TO_TICKS(100)); // Short delay send of SOF (for FS) or EOPs (for LS) // Enumerate and reset device @@ -118,7 +117,6 @@ TEST_CASE("Test HCD isochronous pipe URBs all", "[isoc][full_speed][high_speed]" { usb_speed_t port_speed = test_hcd_wait_for_conn(port_hdl); // Trigger a connection // The MPS of the ISOC OUT pipe is quite large, so we need to bias the FIFO sizing - TEST_ASSERT_EQUAL(ESP_OK, hcd_port_set_fifo_bias(port_hdl, HCD_PORT_FIFO_BIAS_PTX)); vTaskDelay(pdMS_TO_TICKS(100)); // Short delay send of SOF (for FS) or EOPs (for LS) // Enumerate and reset device @@ -230,7 +228,6 @@ TEST_CASE("Test HCD isochronous pipe sudden disconnect", "[isoc][full_speed][hig { usb_speed_t port_speed = test_hcd_wait_for_conn(port_hdl); // Trigger a connection // The MPS of the ISOC OUT pipe is quite large, so we need to bias the FIFO sizing - TEST_ASSERT_EQUAL(ESP_OK, hcd_port_set_fifo_bias(port_hdl, HCD_PORT_FIFO_BIAS_PTX)); vTaskDelay(pdMS_TO_TICKS(100)); // Short delay send of SOF (for FS) or EOPs (for LS) // Enumerate and reset device diff --git a/components/usb/test_apps/usb_host/main/test_usb_host_async.c b/components/usb/test_apps/usb_host/main/test_usb_host_async.c index e6917086708..3d68b06495f 100644 --- a/components/usb/test_apps/usb_host/main/test_usb_host_async.c +++ b/components/usb/test_apps/usb_host/main/test_usb_host_async.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -297,6 +297,7 @@ Procedure: */ static void host_lib_task(void *arg) { + TaskHandle_t pending_task = (TaskHandle_t)arg; while (1) { // Start handling system events uint32_t event_flags; @@ -306,10 +307,12 @@ static void host_lib_task(void *arg) TEST_ASSERT_EQUAL(ESP_ERR_NOT_FINISHED, usb_host_device_free_all()); } if (event_flags & USB_HOST_LIB_EVENT_FLAGS_ALL_FREE) { + printf("All devices freed\n"); break; } } - + // Notify the main task that the host library task is done + xTaskNotifyGive(pending_task); printf("Deleting host_lib_task\n"); vTaskDelete(NULL); } @@ -330,13 +333,16 @@ TEST_CASE("Test USB Host multiconfig client (single client)", "[usb_host][full_s xTaskNotifyGive(client_task); TaskHandle_t host_lib_task_hdl; - xTaskCreatePinnedToCore(host_lib_task, "host lib", 4096, NULL, 2, &host_lib_task_hdl, 0); + // Get Current task handle + TaskHandle_t pending_task = xTaskGetCurrentTaskHandle(); + xTaskCreatePinnedToCore(host_lib_task, "host lib", 4096, (void*)pending_task, 2, &host_lib_task_hdl, 0); TEST_ASSERT_NOT_NULL_MESSAGE(host_lib_task_hdl, "Failed to create host lib task"); // Wait for the device to be open xSemaphoreTake(dev_open_smp, portMAX_DELAY); multiconf_client_get_conf_desc(); - + // Wait for the host library task to finish + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); // Cleanup vSemaphoreDelete(dev_open_smp); } diff --git a/components/usb/usb_host.c b/components/usb/usb_host.c index a402d740a46..98c04c4433c 100644 --- a/components/usb/usb_host.c +++ b/components/usb/usb_host.c @@ -17,9 +17,11 @@ Warning: The USB Host Library API is still a beta version and may be subject to #include "freertos/queue.h" #include "freertos/semphr.h" #include "esp_private/critical_section.h" +#include "soc/usb_dwc_periph.h" #include "esp_err.h" #include "esp_log.h" #include "esp_heap_caps.h" +#include "esp_bit_defs.h" #include "hub.h" #include "enum.h" #include "usbh.h" @@ -221,7 +223,7 @@ static bool _unblock_lib(bool in_isr) return yield; } -static inline bool _is_internal_client(void *client) +static inline bool is_internal_client(void *client) { if (p_host_lib_obj->constant.enum_client && (client == p_host_lib_obj->constant.enum_client)) { return true; @@ -295,7 +297,7 @@ static void usbh_event_callback(usbh_event_data_t *event_data, void *arg) assert(event_data->ctrl_xfer_data.urb != NULL); assert(event_data->ctrl_xfer_data.urb->usb_host_client != NULL); // Redistribute completed control transfers to the clients that submitted them - if (_is_internal_client(event_data->ctrl_xfer_data.urb->usb_host_client)) { + if (is_internal_client(event_data->ctrl_xfer_data.urb->usb_host_client)) { // Simply call the transfer callback event_data->ctrl_xfer_data.urb->transfer.callback(&event_data->ctrl_xfer_data.urb->transfer); } else { @@ -309,10 +311,11 @@ static void usbh_event_callback(usbh_event_data_t *event_data, void *arg) break; } case USBH_EVENT_NEW_DEV: { - // Internal client - hub_notify_new_dev(event_data->new_dev_data.dev_addr); - // External clients - // Prepare a NEW_DEV client event message, the send it to all clients + if (hub_dev_new(event_data->new_dev_data.dev_addr) == ESP_OK) { + // Device is a hub, we do not need to propagate the event to the clients + break; + } + // Prepare a NEW_DEV client event message, and send it to all clients usb_host_client_event_msg_t event_msg = { .event = USB_HOST_CLIENT_EVENT_NEW_DEV, .new_dev.address = event_data->new_dev_data.dev_addr, @@ -321,10 +324,11 @@ static void usbh_event_callback(usbh_event_data_t *event_data, void *arg) break; } case USBH_EVENT_DEV_GONE: { - // Internal client - hub_notify_dev_gone(event_data->new_dev_data.dev_addr); - // External clients - // Prepare event msg, send only to clients that have opened the device + if (hub_dev_gone(event_data->new_dev_data.dev_addr) == ESP_OK) { + // Device is a hub, we do not need to propagate the event to the clients + break; + } + // Prepare a DEV GONE event, send only to clients that have opened the device usb_host_client_event_msg_t event_msg = { .event = USB_HOST_CLIENT_EVENT_DEV_GONE, .dev_gone.dev_hdl = event_data->dev_gone_data.dev_hdl, @@ -464,16 +468,26 @@ esp_err_t usb_host_install(const usb_host_config_t *config) - Hub */ + // For backward compatibility accept 0 too + const unsigned peripheral_map = config->peripheral_map == 0 ? BIT0 : config->peripheral_map; + // Install USB PHY (if necessary). USB PHY driver will also enable the underlying Host Controller if (!config->skip_phy_setup) { + bool init_utmi_phy = false; // Default value for Linux simulation + +#if SOC_USB_OTG_SUPPORTED // In case we run on a real target, select the PHY from usb_dwc_info description structure + // Right now we support only one peripheral, can be extended in future + int peripheral_index = 0; + if (peripheral_map & BIT1) { + peripheral_index = 1; + } + init_utmi_phy = (usb_dwc_info.controllers[peripheral_index].supported_phys == USB_PHY_INST_UTMI_0); +#endif // SOC_USB_OTG_SUPPORTED + // Host Library defaults to internal PHY usb_phy_config_t phy_config = { .controller = USB_PHY_CTRL_OTG, -#if CONFIG_IDF_TARGET_ESP32P4 // ESP32-P4 has 2 USB-DWC peripherals, each with its dedicated PHY. We support HS+UTMI only ATM. - .target = USB_PHY_TARGET_UTMI, -#else - .target = USB_PHY_TARGET_INT, -#endif + .target = init_utmi_phy ? USB_PHY_TARGET_UTMI : USB_PHY_TARGET_INT, .otg_mode = USB_OTG_MODE_HOST, .otg_speed = USB_PHY_SPEED_UNDEFINED, // In Host mode, the speed is determined by the connected device .ext_io_conf = NULL, @@ -487,9 +501,27 @@ esp_err_t usb_host_install(const usb_host_config_t *config) } // Install HCD + // Prepare HCD configuration + hcd_fifo_settings_t user_fifo_config; hcd_config_t hcd_config = { - .intr_flags = config->intr_flags + .intr_flags = config->intr_flags, + .peripheral_map = peripheral_map, + .fifo_config = NULL, // Default: use bias strategy from Kconfig }; + + // Check if user has provided a custom FIFO configuration + if (config->fifo_settings_custom.rx_fifo_lines != 0 || + config->fifo_settings_custom.nptx_fifo_lines != 0 || + config->fifo_settings_custom.ptx_fifo_lines != 0) { + + // Populate user FIFO configuration with provided values + user_fifo_config.rx_fifo_lines = config->fifo_settings_custom.rx_fifo_lines; + user_fifo_config.nptx_fifo_lines = config->fifo_settings_custom.nptx_fifo_lines; + user_fifo_config.ptx_fifo_lines = config->fifo_settings_custom.ptx_fifo_lines; + + // Pass custom configuration to HCD + hcd_config.fifo_config = &user_fifo_config; + } ret = hcd_install(&hcd_config); if (ret != ESP_OK) { ESP_LOGE(USB_HOST_TAG, "HCD install error: %s", esp_err_to_name(ret)); @@ -528,6 +560,7 @@ esp_err_t usb_host_install(const usb_host_config_t *config) // Install Hub hub_config_t hub_config = { + .port_map = peripheral_map, // Each USB-OTG peripheral maps to a root port .proc_req_cb = proc_req_callback, .proc_req_cb_arg = NULL, .event_cb = hub_event_callback, diff --git a/components/wpa_supplicant/src/rsn_supp/wpa.c b/components/wpa_supplicant/src/rsn_supp/wpa.c index 020e555cb1a..788b05e42b6 100644 --- a/components/wpa_supplicant/src/rsn_supp/wpa.c +++ b/components/wpa_supplicant/src/rsn_supp/wpa.c @@ -2261,7 +2261,7 @@ void wpa_set_profile(u32 wpa_proto, u8 auth_mode) struct wpa_sm *sm = &gWpaSm; sm->proto = wpa_proto; - if (auth_mode == WPA2_AUTH_ENT) { + if (auth_mode == WPA2_AUTH_ENT || (auth_mode == WPA_AUTH_UNSPEC)) { sm->key_mgmt = WPA_KEY_MGMT_IEEE8021X; /* for wpa2 enterprise */ } else if (auth_mode == WPA2_AUTH_ENT_SHA256) { sm->key_mgmt = WPA_KEY_MGMT_IEEE8021X_SHA256; /* for wpa2 enterprise sha256 */ diff --git a/docs/en/COPYRIGHT.rst b/docs/en/COPYRIGHT.rst index e708d26ac82..484eb59f2a2 100644 --- a/docs/en/COPYRIGHT.rst +++ b/docs/en/COPYRIGHT.rst @@ -67,7 +67,7 @@ These third party libraries can be included into the application (firmware) prod * :component:`HTTP Parser ` is based on src/http/ngx_http_parse.c from NGINX copyright Igor Sysoev. Additional changes are licensed under the same terms as NGINX and Joyent, Inc. and other Node contributors. For details please check :component_file:`LICENSE file `. -* `SEGGER SystemView`_ target-side library, Copyright (C) 1995-2021 SEGGER Microcontroller GmbH, is licensed under BSD 1-clause license. +* `SEGGER SystemView`_ target-side library, Copyright (C) 1995-2024 SEGGER Microcontroller GmbH, is licensed under BSD 1-clause license. * `protobuf-c`_ is Protocol Buffers implementation in C, Copyright (C) 2008-2022 Dave Benson and the protobuf-c authors. For details please check :component_file:`LICENSE file `. diff --git a/docs/en/api-guides/jtag-debugging/esp32.inc b/docs/en/api-guides/jtag-debugging/esp32.inc index c83adba3b48..529584fa909 100644 --- a/docs/en/api-guides/jtag-debugging/esp32.inc +++ b/docs/en/api-guides/jtag-debugging/esp32.inc @@ -97,7 +97,7 @@ - ESP32 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``target/esp32-solo-1.cfg`` - Target configuration file for ESP32-SOLO-1 module. Different from ``esp32.cfg`` in that it only configures one CPU. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-WROVER-KIT and ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32c2.inc b/docs/en/api-guides/jtag-debugging/esp32c2.inc index 7d642aabe9e..9495de33d6b 100644 --- a/docs/en/api-guides/jtag-debugging/esp32c2.inc +++ b/docs/en/api-guides/jtag-debugging/esp32c2.inc @@ -94,7 +94,7 @@ - Board configuration file for ESP32-C2 debug through an ESP-Prog compatible FTDI, includes target and adapter configuration. * - ``target/esp32c2.cfg`` - ESP32-C2 target configuration file. Can be used together with one of the ``interface/`` configuration files. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32c3.inc b/docs/en/api-guides/jtag-debugging/esp32c3.inc index fc92a1dcf0d..d89566817a5 100644 --- a/docs/en/api-guides/jtag-debugging/esp32c3.inc +++ b/docs/en/api-guides/jtag-debugging/esp32c3.inc @@ -97,7 +97,7 @@ - ESP32-C3 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C3. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32c5.inc b/docs/en/api-guides/jtag-debugging/esp32c5.inc index d4f87e35b61..bc492498f3b 100644 --- a/docs/en/api-guides/jtag-debugging/esp32c5.inc +++ b/docs/en/api-guides/jtag-debugging/esp32c5.inc @@ -103,7 +103,7 @@ - ESP32-C5 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C5. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32c6.inc b/docs/en/api-guides/jtag-debugging/esp32c6.inc index 3f7ae0920ad..a4447969f8e 100644 --- a/docs/en/api-guides/jtag-debugging/esp32c6.inc +++ b/docs/en/api-guides/jtag-debugging/esp32c6.inc @@ -102,7 +102,7 @@ - ESP32-C6 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C6. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32c61.inc b/docs/en/api-guides/jtag-debugging/esp32c61.inc index 1b14ac2b50a..2229137d4f5 100644 --- a/docs/en/api-guides/jtag-debugging/esp32c61.inc +++ b/docs/en/api-guides/jtag-debugging/esp32c61.inc @@ -103,7 +103,7 @@ - ESP32-C61 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C61. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32h2.inc b/docs/en/api-guides/jtag-debugging/esp32h2.inc index 77e1ecddef4..ccf972497e9 100644 --- a/docs/en/api-guides/jtag-debugging/esp32h2.inc +++ b/docs/en/api-guides/jtag-debugging/esp32h2.inc @@ -100,7 +100,7 @@ - ESP32-H2 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-H2. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32p4.inc b/docs/en/api-guides/jtag-debugging/esp32p4.inc index ea9b7d8140d..8dbfe31932a 100644 --- a/docs/en/api-guides/jtag-debugging/esp32p4.inc +++ b/docs/en/api-guides/jtag-debugging/esp32p4.inc @@ -107,7 +107,7 @@ - ESP32-P4 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-P4. - * - ``interface/ftdi/esp32p4_ftdi.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32s2.inc b/docs/en/api-guides/jtag-debugging/esp32s2.inc index 3e01100c926..f125e14db5e 100644 --- a/docs/en/api-guides/jtag-debugging/esp32s2.inc +++ b/docs/en/api-guides/jtag-debugging/esp32s2.inc @@ -92,7 +92,7 @@ - ESP32-S2 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/ftdi/esp32s2_kaluga_v1.cfg`` - JTAG adapter configuration file for ESP32-S2-Kaluga-1 board. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/en/api-guides/jtag-debugging/esp32s3.inc b/docs/en/api-guides/jtag-debugging/esp32s3.inc index ce17ae7363c..49e3cdc6653 100644 --- a/docs/en/api-guides/jtag-debugging/esp32s3.inc +++ b/docs/en/api-guides/jtag-debugging/esp32s3.inc @@ -101,7 +101,7 @@ - ESP32-S3 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/ftdi/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-S3 builtin USB JTAG. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog debug adapter board. --- diff --git a/docs/en/api-reference/peripherals/camera_driver.rst b/docs/en/api-reference/peripherals/camera_driver.rst index 501aae81ce1..dee4dddc76d 100644 --- a/docs/en/api-reference/peripherals/camera_driver.rst +++ b/docs/en/api-reference/peripherals/camera_driver.rst @@ -10,8 +10,9 @@ Introduction .. list:: - : SOC_MIPI_CSI_SUPPORTED : - MIPI Camera Serial Interface (CSI) - : SOC_ISP_DVP_SUPPORTED : - ISP Digital Video Port (ISP DVP) + : SOC_MIPI_CSI_SUPPORTED : - MIPI Camera Serial Interface (MIPI CSI) + : SOC_ISP_DVP_SUPPORTED : - Digital Video Port through ISP module (ISP DVP) + : SOC_LCDCAM_CAM_SUPPORTED : - Digital Video Port through LCD_CAM module(LCD_CAM DVP) The camera controller driver is designed for this hardware peripheral. @@ -38,6 +39,14 @@ Resource Allocation Install Camera Controller Driver ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Camera controller driver can be implemented in one of following ways: + +.. list:: + + : SOC_MIPI_CSI_SUPPORTED : - :cpp:func:`esp_cam_new_csi_ctlr` + : SOC_ISP_DVP_SUPPORTED : - :cpp:func:`esp_cam_new_isp_dvp_ctlr` + : SOC_LCDCAM_CAM_SUPPORTED : - :cpp:func:`esp_cam_new_lcd_cam_ctlr` + .. only:: SOC_MIPI_CSI_SUPPORTED A camera controller driver can be implemented by the CSI peripheral, which requires the configuration that specified by :cpp:type:`esp_cam_ctlr_csi_config_t`. @@ -95,6 +104,50 @@ Install Camera Controller Driver }; ESP_ERROR_CHECK(esp_cam_new_isp_dvp_ctlr(isp_proc, &dvp_ctlr_config, &cam_handle)); +.. only:: SOC_LCDCAM_CAM_SUPPORTED + + A camera controller driver can be implemented by the DVP port of LCD_CAM, which requires the configuration that specified by :cpp:type:`esp_cam_ctlr_dvp_config_t`. + + :cpp:member:`esp_cam_ctlr_dvp_config_t::exexternal_xtal`: set this to use externally generated xclk, otherwise the camera driver will generate it internally. + + If :cpp:type:`esp_cam_ctlr_lcd_cam_cfg_t` is specified, users can call :cpp:func:`esp_cam_new_lcd_cam_ctlr` to allocate and initialize a DVP camera controller handle. This function will return an DVP camera controller handle if it runs correctly. You can take following code as reference. + + After calling :cpp:func:`esp_cam_new_dvp_ctlr`, you should allocate a camera buffer that meets the alignment constraints, or call :cpp:func:`esp_cam_ctlr_alloc_buffer` to automatically allocate. + + .. code:: c + + esp_cam_ctlr_handle_t cam_handle = NULL; + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = EXAMPLE_DVP_CAM_DATA_WIDTH, + .data_io = { + EXAMPLE_DVP_CAM_D0_IO, + EXAMPLE_DVP_CAM_D1_IO, + EXAMPLE_DVP_CAM_D2_IO, + EXAMPLE_DVP_CAM_D3_IO, + EXAMPLE_DVP_CAM_D4_IO, + EXAMPLE_DVP_CAM_D5_IO, + EXAMPLE_DVP_CAM_D6_IO, + EXAMPLE_DVP_CAM_D7_IO, + }, + .vsync_io = EXAMPLE_DVP_CAM_VSYNC_IO, + .de_io = EXAMPLE_DVP_CAM_DE_IO, + .pclk_io = EXAMPLE_DVP_CAM_PCLK_IO, + .xclk_io = EXAMPLE_DVP_CAM_XCLK_IO, // Set XCLK pin to generate XCLK signal + }; + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = CONFIG_EXAMPLE_CAM_HRES, + .v_res = CONFIG_EXAMPLE_CAM_VRES, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 128, + .pin = &pin_cfg, + .bk_buffer_dis = 1, + .xclk_freq = EXAMPLE_DVP_CAM_XCLK_FREQ_HZ, + }; + + ESP_ERROR_CHECK(esp_cam_new_dvp_ctlr(&dvp_config, &cam_handle)); + Uninstall Camera Controller Driver ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/en/api-reference/peripherals/ecdsa.rst b/docs/en/api-reference/peripherals/ecdsa.rst index 06f8a8a5051..74444ade75e 100644 --- a/docs/en/api-reference/peripherals/ecdsa.rst +++ b/docs/en/api-reference/peripherals/ecdsa.rst @@ -61,6 +61,18 @@ Following code snippet uses :cpp:func:`esp_efuse_write_key` to set physical key // writing key failed, maybe written already } + +.. only:: SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + + ECDSA Curve Configuration + ------------------------- + + The ECDSA peripheral of the {IDF_TARGET_NAME} supports both ECDSA-P192 and ECDSA-P256 operations. However, starting with {IDF_TARGET_NAME} revision 1.2, only ECDSA-P256 operations are enabled by default. You can enable ECDSA-P192 operations using the following configuration options: + + - :ref:`CONFIG_ESP_ECDSA_ENABLE_P192_CURVE` enables support for ECDSA-P192 curve operations, allowing the device to perform ECDSA operations with both 192-bit and 256-bit curves. However, if ECDSA-P192 operations have already been permanently disabled during eFuse write protection, enabling this option can not re-enable ECDSA-P192 curve operations. + + - :cpp:func:`esp_efuse_enable_ecdsa_p192_curve_mode()` enables ECDSA-P192 curve operations programmatically by writing the appropriate value to the eFuse, allowing both P-192 and P-256 curve operations. Note that this API will fail if the eFuse is already write-protected. + .. only:: SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE Deterministic Signature Generation diff --git a/docs/en/api-reference/peripherals/pcnt.rst b/docs/en/api-reference/peripherals/pcnt.rst index 315de62501a..5eff1bcd6a7 100644 --- a/docs/en/api-reference/peripherals/pcnt.rst +++ b/docs/en/api-reference/peripherals/pcnt.rst @@ -326,6 +326,10 @@ The internal hardware counter will be cleared to zero automatically when it reac :cpp:func:`pcnt_unit_clear_count` resets the accumulated count value as well. +.. note:: + + When enabling the count overflow compensation, it is recommended to use as large a high/low count limit as possible, as it can avoid frequent interrupt triggering, improve system performance, and avoid compensation failure due to multiple overflows. + .. _pcnt-power-management: Power Management diff --git a/docs/en/api-reference/peripherals/sdmmc_host.rst b/docs/en/api-reference/peripherals/sdmmc_host.rst index c37f1800524..8970bc6503b 100644 --- a/docs/en/api-reference/peripherals/sdmmc_host.rst +++ b/docs/en/api-reference/peripherals/sdmmc_host.rst @@ -67,7 +67,7 @@ Overview Pins used by Slot 0 (``HS1_*``) are also used to connect the SPI flash chip in ESP32-WROOM and ESP32-WROVER modules. These pins cannot be concurrently shared between an SD card and an SPI flash. If you need to use Slot 0, establish an alternative connection for the SPI flash using different pins and configure the necessary eFuses accordingly. -.. only:: SOC_SDMMC_USE_GPIO_MATRIX +.. only:: esp32s3 Both slots :c:macro:`SDMMC_HOST_SLOT_0` and :c:macro:`SDMMC_HOST_SLOT_1` support 1-, 4- and 8-line SD interfaces. The slots are connected to {IDF_TARGET_NAME} GPIOs using the GPIO matrix. This means that any GPIO may be used for each of the SD card signals. diff --git a/docs/en/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst b/docs/en/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst index 8b99de0c0ab..b455d241e26 100644 --- a/docs/en/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst +++ b/docs/en/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst @@ -163,17 +163,23 @@ Restrictions .. important:: - Over 16 MB space on flash mentioned above can be only used for ``data saving``, like file system. + The part of flash above 16 MB can be used for data storage, for example using a file system. Mapping data/instructions to 32-bit physical address space (so as to be accessed by the CPU) needs the support of MMU. However {IDF_TARGET_NAME} doesn't support this feature. Only ESP32-S3 and ESP32-P4 supports this up to now. .. only:: SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP - By default, space over 16 MB on flash mentioned above can be used for ``data saving``, like file system. + For Quad flash chips, by default, the part of flash above 16 MB can be used for data storage, for example using a file system. - Furthermore, to map data/instructions to 32-bit physical address space (so as to be accessed by the CPU), please enable the config ``IDF_EXPERIMENTAL_FEATURES`` and ``BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH``. + *Experimental Feature*: To enable full support for Quad flash addresses above 16MB (for both code execution and data access), enable this experimental feature by setting below options to ``y``: + - :ref:`CONFIG_IDF_EXPERIMENTAL_FEATURES` + - :ref:`CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH` - Please note that, this option is experimental, which means that it can not be used on all flash chips stably. For more information, please contact `Espressif's business team `_. + Please note that, this option is experimental, which means that it can not be used on all Quad flash chips stably. For more information, please contact `Espressif's business team `_. + + .. only:: SOC_SPI_MEM_SUPPORT_OPI_MODE + + For Octal flash chips, this feature is enabled by default if :ref:`CONFIG_ESPTOOLPY_OCT_FLASH` is enabled. .. _oct-flash-doc: diff --git a/docs/en/api-reference/peripherals/usb_host.rst b/docs/en/api-reference/peripherals/usb_host.rst index d90b6dc8197..b81613bcc04 100644 --- a/docs/en/api-reference/peripherals/usb_host.rst +++ b/docs/en/api-reference/peripherals/usb_host.rst @@ -33,6 +33,7 @@ The Host Library has the following features: :esp32p4: - Supports High Speed (HS), Full Speed (FS) and Low Speed (LS) Devices. - Supports all four transfer types: Control, Bulk, Interrupt, and Isochronous. :esp32p4: - Supports High-Bandwidth Isochronous endpoints. + :esp32p4: - {IDF_TARGET_NAME} includes two USB 2.0 OTG peripherals: one High-Speed and one Full-Speed. Both support USB Host functionality. However, due to a current software limitation, only one can operate as a USB Host at a time. Support for dual USB Host operation is planned for a future update. - Allows multiple class drivers to run simultaneously, i.e., multiple clients of the Host Library. - A single device can be used by multiple clients simultaneously, e.g., composite devices. - The Host Library itself and the underlying Host Stack does not internally instantiate any OS tasks. The number of tasks is entirely controlled by how the Host Library interface is used. However, a general rule of thumb regarding the number of tasks is ``(the number of host class drivers running + 1)``. @@ -46,7 +47,6 @@ Currently, the Host Library and the underlying Host Stack has the following limi - Only supports Asynchronous transfers. - Only supports using one configuration. Changing to other configurations after enumeration is not supported yet. - Transfer timeouts are not supported yet. - :esp32p4: - {IDF_TARGET_NAME} contains two USB-OTG peripherals USB 2.0 OTG High-Speed and USB 2.0 OTG Full-Speed. Only the High-Speed instance is supported now. - The External Hub Driver: Remote Wakeup feature is not supported (External Hubs are active, even if there are no devices inserted). - The External Hub Driver: Doesn't handle error cases (overcurrent handling, errors during initialization etc. are not implemented yet). - The External Hub Driver: No Interface selection. The Driver uses the first available Interface with Hub Class code (09h). diff --git a/docs/en/api-reference/protocols/mbedtls.rst b/docs/en/api-reference/protocols/mbedtls.rst index eded7b3053e..7179397414d 100644 --- a/docs/en/api-reference/protocols/mbedtls.rst +++ b/docs/en/api-reference/protocols/mbedtls.rst @@ -118,5 +118,5 @@ Reducing Binary Size Under ``Component Config -> mbedTLS``, there are multiple Mbed TLS features which are enabled by default but can be disabled if not needed to save code size. More information can be about this can be found in :ref:`Minimizing Binary Size ` docs. -.. _`API Reference`: https://mbed-tls.readthedocs.io/projects/api/en/v3.6.3/ +.. _`API Reference`: https://mbed-tls.readthedocs.io/projects/api/en/v3.6.4/ .. _`Knowledge Base`: https://mbed-tls.readthedocs.io/en/latest/kb/ diff --git a/docs/en/api-reference/system/esp_https_ota.rst b/docs/en/api-reference/system/esp_https_ota.rst index 623959968dd..21e8e0d0268 100644 --- a/docs/en/api-reference/system/esp_https_ota.rst +++ b/docs/en/api-reference/system/esp_https_ota.rst @@ -71,16 +71,17 @@ Pre-encrypted firmware distribution ensures that the firmware image stays encryp Design ^^^^^^ -* This scheme requires a unique RSA-3072 public-private key pair to be generated first. The public key stays on the OTA update server for encryption purpose and the private key is part of the device (e.g., embedded in firmware) for decryption purpose. -* Pre-encrypted firmware is encrypted using AES-GCM key which is then appended to the image as header (along with config parameters). -* Further the AES-GCM key gets encrypted using RSA public key and the resultant image gets hosted on the OTA update server. -* On the device side, first the AES-GCM key is retrieved by decrypting the image header using RSA private key available to the device. -* Finally, the contents of the image are decrypted using AES-GCM key (and config parameters) and written to the flash storage. +Pre-encrypted firmware is a **transport security scheme** that ensures firmware images remain encrypted **in transit** from the OTA server to the device (irrespective of the underlying transport security). This approach differs from :doc:`../../security/flash-encryption` in several key ways: -This whole workflow is managed by an external component `esp_encrypted_image `_ and it gets plugged into the OTA update framework through decryption callback (:cpp:member:`esp_https_ota_config_t::decrypt_cb`) mechanism. +* **Key Management**: Uses externally managed encryption keys rather than per-device unique keys generated internally +* **Flash Offset Independence**: Generates consistent ciphertext regardless of flash partition location (``ota_0``, ``ota_1``, etc.) +* **Transport Protection**: Provides encryption protection during firmware distribution, not device-level storage security -.. note:: - The supported scheme is based on RSA-3072 and the private key on device side must be protected using platform security features. +**Important Security Note**: Pre-encrypted firmware does not provide device-level security on its own. Once received, the firmware is decrypted on the device and stored according to the device's flash encryption configuration. For device-level security, flash encryption must be separately enabled. + +This process is managed by the `esp_encrypted_img `_ component, which integrates with the OTA update framework via the decryption callback (:cpp:member:`esp_https_ota_config_t::decrypt_cb`). + +For detailed information on the image format, key generation, and implementation details, refer to the `esp_encrypted_img component documentation `_. OTA System Events ----------------- diff --git a/docs/en/contribute/creating-examples.rst b/docs/en/contribute/creating-examples.rst index 61600ebce2f..6c23ba426ce 100644 --- a/docs/en/contribute/creating-examples.rst +++ b/docs/en/contribute/creating-examples.rst @@ -30,6 +30,6 @@ Checklist before submitting a new example: * All code in the example is well structured and commented. * Any unnecessary code (old debugging logs, commented-out code, etc.) is removed from the example. * Options in the example (like network names, addresses, etc) are not hard-coded. Use configuration items if possible, or otherwise declare macros or constants. -* Configuration items are provided in a ``KConfig.projbuild`` file with a menu named "Example Configuration". See existing example projects to see how this is done. +* Configuration items are provided in a ``Kconfig.projbuild`` file with a menu named "Example Configuration". See existing example projects to see how this is done. * All original example code has a license header saying it is "in the public domain / CC0", and a warranty disclaimer clause. Alternatively, the example is licensed under Apache License 2.0. See existing examples for headers to adapt from. * Any adapted or third party example code has the original license header on it. This code must be licensed compatible with Apache License 2.0. diff --git a/docs/en/hw-reference/index.rst b/docs/en/hw-reference/index.rst index d19e0edc3ee..b9eca1c0eeb 100644 --- a/docs/en/hw-reference/index.rst +++ b/docs/en/hw-reference/index.rst @@ -7,7 +7,7 @@ Hardware Reference .. toctree:: :maxdepth: 1 - :not esp32p4: Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}> + Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}> :esp32: Chip Datasheet (PDF) :esp32s2: Chip Datasheet (PDF) :esp32s3: Chip Datasheet (PDF) @@ -15,20 +15,24 @@ Hardware Reference :esp32c3: Chip Datasheet (PDF) :esp32c6: Chip Datasheet (PDF) :esp32h2: Chip Datasheet (PDF) - :esp32: Hardware Design Guidelines (PDF) - :esp32s2: Hardware Design Guidelines (PDF) - :esp32s3: Hardware Design Guidelines (PDF) - :esp32c2: Hardware Design Guidelines (PDF) - :esp32c3: Hardware Design Guidelines (PDF) - :esp32c6: Hardware Design Guidelines (PDF) - :esp32h2: Hardware Design Guidelines (PDF) - :esp32: Silicon Errata (PDF) - :esp32s2: Silicon Errata (PDF) - :esp32s3: Silicon Errata (PDF) - :esp32c3: Silicon Errata (PDF) - :esp32c2: Silicon Errata (PDF) - :esp32c6: Silicon Errata (PDF) - :esp32h2: Silicon Errata (PDF) + :esp32c5: Chip Datasheet (PDF) + :esp32p4: Chip Datasheet (PDF) + :esp32: Hardware Design Guidelines + :esp32s2: Hardware Design Guidelines + :esp32s3: Hardware Design Guidelines + :esp32c2: Hardware Design Guidelines + :esp32c3: Hardware Design Guidelines + :esp32c6: Hardware Design Guidelines + :esp32h2: Hardware Design Guidelines + :esp32p4: Hardware Design Guidelines + :esp32c5: Hardware Design Guidelines + :esp32: SoC Errata + :esp32s2: SoC Errata + :esp32s3: SoC Errata + :esp32c3: SoC Errata + :esp32c2: SoC Errata + :esp32c6: SoC Errata + :esp32h2: SoC Errata Chip Variants :not esp32p4: Modules Development Boards diff --git a/docs/en/security/vulnerabilities.rst b/docs/en/security/vulnerabilities.rst index 00d87aad5ff..4522645d23e 100644 --- a/docs/en/security/vulnerabilities.rst +++ b/docs/en/security/vulnerabilities.rst @@ -7,9 +7,34 @@ This page briefly lists all of the vulnerabilities that are discovered and fixed .. note:: Please refer to ``latest`` version of this documentation guide for up-to-date information. +CVE-2025 +-------- + +CVE-2025-52471 +~~~~~~~~~~~~~~ + +ESP-NOW Integer Underflow Vulnerability Advisory + +* Espressif Advisory: NA (Published on GitHub) +* Impact: Applicable for ESP-IDF +* Resolution: Please see advisory for details +* Advisory pointer: `GHSA-hqhh-cp47-fv5g`_ + + CVE-2024 -------- +CVE-2024-53845 +~~~~~~~~~~~~~~ + +AES/CBC Constant IV Vulnerability in ESPTouch v2 + +* Espressif Advisory: NA (Published on GitHub) +* Impact: Applicable for ESP-IDF +* Resolution: Please see advisory for details +* Advisory pointer: `GHSA-wm57-466g-mhrr`_ + + CVE-2024-30949 ~~~~~~~~~~~~~~ @@ -183,3 +208,5 @@ Security Advisory Concerning Wi-Fi Authentication Bypass .. _`AR2024-003`: https://www.espressif.com/sites/default/files/advisory_downloads/AR2024-003%20Security%20Advisory%20for%20PEAP%20Phase-2%20authentication%20EN.pdf .. _`GHSA-22x6-3756-pfp8` : https://github.com/espressif/esp-idf/security/advisories/GHSA-22x6-3756-pfp8 .. _`GHSA-7f7f-jj2q-28wm` : https://github.com/espressif/esp-idf/security/advisories/GHSA-7f7f-jj2q-28wm +.. _`GHSA-wm57-466g-mhrr` : https://github.com/espressif/esp-idf/security/advisories/GHSA-wm57-466g-mhrr +.. _`GHSA-hqhh-cp47-fv5g` : https://github.com/espressif/esp-idf/security/advisories/GHSA-hqhh-cp47-fv5g diff --git a/docs/zh_CN/COPYRIGHT.rst b/docs/zh_CN/COPYRIGHT.rst index 527b3ce000c..de29353097b 100644 --- a/docs/zh_CN/COPYRIGHT.rst +++ b/docs/zh_CN/COPYRIGHT.rst @@ -67,7 +67,7 @@ * :component:`HTTP 解析器 ` 基于 NGINX 中的 src/http/ngx_http_parse.c 文件,版权归 Igor Sysoev 所有。任何对源代码的额外修改经过与 NGINX、Joyent 公司及其他 Node 贡献者相同条款的许可。详情请参阅 :component_file:`LICENSE 文件 `。 -* `SEGGER SystemView`_ 目标端库,版权归 1995-2021 赛格集团所有,并根据一条款 BSD 许可证进行许可。 +* `SEGGER SystemView`_ 目标端库,版权归 1995-2024 赛格集团所有,并根据一条款 BSD 许可证进行许可。 * `protobuf-c`_ 是 C 语言的 Protocol Buffers 实现,版权归 2008-2022 Dave Benson 及 protobuf-c 作者所有。详情请参阅 :component_file:`LICENSE 文件 `。 diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32.inc index 44ed9376650..572499a6b62 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32.inc @@ -97,7 +97,7 @@ - ESP32 的目标配置文件,可以和某个 ``interface/`` 下的配置文件一同使用 * - ``target/esp32-solo-1.cfg`` - ESP32-SOLO-1 模组的目标配置文件,和 ``esp32.cfg`` 的差别在于它仅配置一个 CPU - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - 适用于 ESP-WROVER-KIT 和 ESP-Prog 的 JTAG 适配器配置文件 --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32c2.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32c2.inc index 7d642aabe9e..9495de33d6b 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32c2.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32c2.inc @@ -94,7 +94,7 @@ - Board configuration file for ESP32-C2 debug through an ESP-Prog compatible FTDI, includes target and adapter configuration. * - ``target/esp32c2.cfg`` - ESP32-C2 target configuration file. Can be used together with one of the ``interface/`` configuration files. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32c3.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32c3.inc index bdc0945c1b3..73927ed97c3 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32c3.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32c3.inc @@ -97,7 +97,7 @@ - ESP32-C3 目标配置文件。可以和某个 ``interface/`` 下的配置文件一同使用。 * - ``interface/esp_usb_jtag.cfg`` - 适用于 ESP32-C3 的 JTAG 适配器配置文件。 - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - 适用于 ESP-Prog 的 JTAG 适配器配置文件。 --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32c5.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32c5.inc index d4f87e35b61..bc492498f3b 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32c5.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32c5.inc @@ -103,7 +103,7 @@ - ESP32-C5 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C5. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32c6.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32c6.inc index 3f7ae0920ad..a4447969f8e 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32c6.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32c6.inc @@ -102,7 +102,7 @@ - ESP32-C6 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C6. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32c61.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32c61.inc index e56c4885985..c5fd821a77f 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32c61.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32c61.inc @@ -103,7 +103,7 @@ - ESP32-C61 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-C61. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32h2.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32h2.inc index 77e1ecddef4..ccf972497e9 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32h2.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32h2.inc @@ -100,7 +100,7 @@ - ESP32-H2 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-H2. - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32p4.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32p4.inc index ea9b7d8140d..8dbfe31932a 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32p4.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32p4.inc @@ -107,7 +107,7 @@ - ESP32-P4 target configuration file. Can be used together with one of the ``interface/`` configuration files. * - ``interface/esp_usb_jtag.cfg`` - JTAG adapter configuration file for ESP32-P4. - * - ``interface/ftdi/esp32p4_ftdi.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - JTAG adapter configuration file for ESP-Prog boards. --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32s2.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32s2.inc index bc134d694f8..90f90a335fe 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32s2.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32s2.inc @@ -92,7 +92,7 @@ - ESP32-S2 目标配置文件,可以和某个 ``interface/`` 下的配置文件一同使用 * - ``interface/ftdi/esp32s2_kaluga_v1.cfg`` - 适用于 ESP32-S2-Kaluga-1 开发板的 JTAG 适配器配置文件 - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - 适用于 ESP-Prog 板的 JTAG 适配器配置文件 --- diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp32s3.inc b/docs/zh_CN/api-guides/jtag-debugging/esp32s3.inc index 9a4f4034270..79d3f2dac88 100644 --- a/docs/zh_CN/api-guides/jtag-debugging/esp32s3.inc +++ b/docs/zh_CN/api-guides/jtag-debugging/esp32s3.inc @@ -101,7 +101,7 @@ - ESP32-S3 目标配置文件,可以和某个 ``interface/`` 下的配置文件一同使用 * - ``interface/ftdi/esp_usb_jtag.cfg`` - 适用于 ESP32-S3 的 JTAG 适配器配置文件。 - * - ``interface/ftdi/esp32_devkitj_v1.cfg`` + * - ``interface/ftdi/esp_ftdi.cfg`` - 适用于 ESP-Prog 的 JTAG 适配器配置文件。 --- diff --git a/docs/zh_CN/api-reference/peripherals/camera_driver.rst b/docs/zh_CN/api-reference/peripherals/camera_driver.rst index b518772f154..e49af5b44e8 100644 --- a/docs/zh_CN/api-reference/peripherals/camera_driver.rst +++ b/docs/zh_CN/api-reference/peripherals/camera_driver.rst @@ -10,8 +10,9 @@ .. list:: - : SOC_MIPI_CSI_SUPPORTED : - MIPI 摄像头串行接口 (CSI) - : SOC_ISP_DVP_SUPPORTED : - ISP 数字视频端口 (ISP DVP) + : SOC_MIPI_CSI_SUPPORTED : - MIPI 摄像头串行接口 (MIPI CSI) + : SOC_ISP_DVP_SUPPORTED : - ISP的DVP端口 (ISP DVP) + : SOC_LCDCAM_CAM_SUPPORTED : - LCD_CAM的DVP端口 (LCD_CAM DVP) 摄像头控制器驱动程序是为上述硬件外设而设计的。 @@ -38,6 +39,14 @@ 安装摄像头控制器驱动程序 ~~~~~~~~~~~~~~~~~~~~~~~~ +摄像头控制器驱动程序可以通过以下方式之一安装: + +.. list:: + + : SOC_MIPI_CSI_SUPPORTED : - :cpp:func:`esp_cam_new_csi_ctlr` + : SOC_ISP_DVP_SUPPORTED : - :cpp:func:`esp_cam_new_isp_dvp_ctlr` + : SOC_LCDCAM_CAM_SUPPORTED : - :cpp:func:`esp_cam_new_lcd_cam_ctlr` + .. only:: SOC_MIPI_CSI_SUPPORTED 摄像头控制器驱动程序可以通过 CSI 外设实现,需要应用 :cpp:type:`esp_cam_ctlr_csi_config_t` 指定的配置。 @@ -95,6 +104,50 @@ }; ESP_ERROR_CHECK(esp_cam_new_isp_dvp_ctlr(isp_proc, &dvp_ctlr_config, &cam_handle)); +.. only:: SOC_LCDCAM_CAM_SUPPORTED + + 摄像头控制器驱动程序可以通过 LCD_CAM外设实现,需要应用 :cpp:type:`esp_cam_ctlr_dvp_config_t` 和 :cpp:type:`esp_cam_ctlr_dvp_pin_config_t` 指定的配置。 + + :cpp:member:`esp_cam_ctlr_dvp_config_t::exexternal_xtal`:使用外部生成的 xclk,或者使用驱动内部内部生成的 xclk。 + + 如果指定了 :cpp:type:`esp_cam_ctlr_dvp_config_t` 中的配置,就可以调用 :cpp:func:`esp_cam_new_dvp_ctlr` 来分配和初始化 DVP 摄像头控制器句柄。如果函数运行正确,将返回一个 DVP 摄像头控制器句柄。请参考以下代码。 + + 在调用 :cpp:func:`esp_cam_new_dvp_ctlr` 之后,需要分配符合对齐约束的摄像头缓冲区,或调用 :cpp:func:`esp_cam_ctlr_alloc_buffer` 来自动分配。 + + .. code:: c + + esp_cam_ctlr_handle_t cam_handle = NULL; + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = EXAMPLE_DVP_CAM_DATA_WIDTH, + .data_io = { + EXAMPLE_DVP_CAM_D0_IO, + EXAMPLE_DVP_CAM_D1_IO, + EXAMPLE_DVP_CAM_D2_IO, + EXAMPLE_DVP_CAM_D3_IO, + EXAMPLE_DVP_CAM_D4_IO, + EXAMPLE_DVP_CAM_D5_IO, + EXAMPLE_DVP_CAM_D6_IO, + EXAMPLE_DVP_CAM_D7_IO, + }, + .vsync_io = EXAMPLE_DVP_CAM_VSYNC_IO, + .de_io = EXAMPLE_DVP_CAM_DE_IO, + .pclk_io = EXAMPLE_DVP_CAM_PCLK_IO, + .xclk_io = EXAMPLE_DVP_CAM_XCLK_IO, // Set XCLK pin to generate XCLK signal + }; + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = CONFIG_EXAMPLE_CAM_HRES, + .v_res = CONFIG_EXAMPLE_CAM_VRES, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 128, + .pin = &pin_cfg, + .bk_buffer_dis = 1, + .xclk_freq = EXAMPLE_DVP_CAM_XCLK_FREQ_HZ, + }; + + ESP_ERROR_CHECK(esp_cam_new_dvp_ctlr(&dvp_config, &cam_handle)); + 卸载摄像头控制器驱动程序 ~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/zh_CN/api-reference/peripherals/ecdsa.rst b/docs/zh_CN/api-reference/peripherals/ecdsa.rst index c9e444bd24d..8267c9dfa2a 100644 --- a/docs/zh_CN/api-reference/peripherals/ecdsa.rst +++ b/docs/zh_CN/api-reference/peripherals/ecdsa.rst @@ -61,6 +61,18 @@ ECDSA 密钥可以通过 ``idf.py`` 脚本在外部编程。以下是关于编 // writing key failed, maybe written already } + +.. only:: SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED + + ECDSA 曲线配置 + ----------------- + + {IDF_TARGET_NAME} 的 ECDSA 外设支持 ECDSA-P192 和 ECDSA-P256 两种曲线操作。但从 {IDF_TARGET_NAME} 版本 1.2 开始,默认仅启用 ECDSA-P256 操作。可以通过以下配置项启用 ECDSA-P192 操作: + + - :ref:`CONFIG_ESP_ECDSA_ENABLE_P192_CURVE` 启用对 ECDSA-P192 曲线操作的支持,使设备可以同时执行 192 位和 256 位的 ECDSA 曲线操作。但请注意,如果 eFuse 写保护期间已永久禁用 ECDSA-P192 操作,则启用该配置项也无法重新启用该功能。 + + - :cpp:func:`esp_efuse_enable_ecdsa_p192_curve_mode()` 可用于以编程方式启用 ECDSA-P192 曲线操作。它会向 eFuse 写入相应值,从而使设备支持 P-192 和 P-256 曲线操作。但请注意,若对应的 eFuse 区域已被写保护,则此 API 将调用失败。 + .. only:: SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE 生成确定性签名 diff --git a/docs/zh_CN/api-reference/peripherals/pcnt.rst b/docs/zh_CN/api-reference/peripherals/pcnt.rst index 8f67a551cc1..713293a9962 100644 --- a/docs/zh_CN/api-reference/peripherals/pcnt.rst +++ b/docs/zh_CN/api-reference/peripherals/pcnt.rst @@ -326,6 +326,10 @@ PCNT 内部的硬件计数器会在计数达到高/低门限的时候自动清 :cpp:func:`pcnt_unit_clear_count` 会复位该软件累加器。 +.. note:: + + 启用计数溢出补偿时,建议使用尽可能大的高/低计数门限,因为它可以避免中断被频繁触发,提高系统性能,并且避免由于多次溢出而导致的补偿失败。 + .. _pcnt-power-management: 电源管理 diff --git a/docs/zh_CN/api-reference/peripherals/sdmmc_host.rst b/docs/zh_CN/api-reference/peripherals/sdmmc_host.rst index 2f8061065ec..53e81d8ab72 100644 --- a/docs/zh_CN/api-reference/peripherals/sdmmc_host.rst +++ b/docs/zh_CN/api-reference/peripherals/sdmmc_host.rst @@ -67,7 +67,7 @@ SDMMC 主机驱动 卡槽 0 使用的管脚 (``HS1_*``) 既用于连接主机上的 SD 卡插槽,也用于连接 ESP32-WROOM 和 ESP32-WROVER 模组中的 SPI flash 芯片,但这些管脚不能同时用于 SD 卡与 SPI flash。如需使用卡槽 0,请将 SPI flash 连接到其他管脚,并根据需要配置 eFuse。 -.. only:: SOC_SDMMC_USE_GPIO_MATRIX +.. only:: esp32s3 卡槽 :c:macro:`SDMMC_HOST_SLOT_0` 和 :c:macro:`SDMMC_HOST_SLOT_1` 都支持 1、4、8 线的 SD 接口,这些卡槽通过 GPIO 交换矩阵连接到 {IDF_TARGET_NAME} 的 GPIO,即每个 SD 卡信号都可以使用任意 GPIO 连接。 diff --git a/docs/zh_CN/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst b/docs/zh_CN/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst index 4123c8ea887..dab23edc7f4 100644 --- a/docs/zh_CN/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst +++ b/docs/zh_CN/api-reference/peripherals/spi_flash/spi_flash_optional_feature.rst @@ -163,17 +163,23 @@ QSPI flash 芯片的 32 位地址支持 .. important:: - 上述超过 16 MB 内存的 flash 区域只能用于 ``数据保存``,如文件系统。 + 上述超过 16 MB 内存的 flash 区域可用于数据存储,例如使用文件系统。 将数据或指令映射到 32 位物理地址空间(以便由 CPU 访问)需要 MMU 的支持。但 {IDF_TARGET_NAME} 并不支持此功能。目前只有 ESP32-S3 和 ESP32-P4 支持此功能。 .. only:: SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP - 默认情况下,上述超过 16 MB 内存的 flash 区域可用于 ``数据保存``,如文件系统。 + 默认情况下,上述超过 16 MB 内存的 flash 区域可用于数据存储,例如使用文件系统。 - 此外,要将数据或指令映射到 32 位物理地址空间(以便由 CPU 访问),请启用配置 ``IDF_EXPERIMENTAL_FEATURES`` 和 ``BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH``。 + *实验性功能*:如需在超过 16 MB 的四线 flash 区域实现完整支持(包括代码执行和数据访问),请启用以下实验性配置选项: + - :ref:`CONFIG_IDF_EXPERIMENTAL_FEATURES` + - :ref:`CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH` - 请注意,此选项为实验性选项,无法在所有 flash 芯片上稳定使用,详情请咨询 `乐鑫商务部 `_。 + 请注意,此选项为实验性功能,无法在所有四线 flash 芯片上稳定使用。详情请咨询 `乐鑫商务部 `_。 + + .. only:: SOC_SPI_MEM_SUPPORT_OPI_MODE + + 对于八线 flash 芯片,如果启用了 :ref:`CONFIG_ESPTOOLPY_OCT_FLASH`,则该功能默认启用。 .. _oct-flash-doc: diff --git a/docs/zh_CN/api-reference/peripherals/usb_host.rst b/docs/zh_CN/api-reference/peripherals/usb_host.rst index 61350c9c5d4..871203d9fae 100644 --- a/docs/zh_CN/api-reference/peripherals/usb_host.rst +++ b/docs/zh_CN/api-reference/peripherals/usb_host.rst @@ -33,6 +33,7 @@ USB 主机库(以下简称主机库)是 USB 主机栈的最底层,提供 :esp32p4: - 支持高速 (HS)、全速 (FS) 和低速 (LS) 设备。 - 支持四种传输类型,即控制传输、块传输、中断传输和同步传输。 :esp32p4: - 支持高带宽等时性端点。 + :esp32p4: - {IDF_TARGET_NAME} 包含两个 USB 2.0 OTG 外设:USB 2.0 OTG 高速和 USB 2.0 OTG 全速,二者均支持 USB 主机功能。但由于当前软件的限制,同一时间仅能有一个作为 USB 主机工作。未来版本计划支持两个 USB 主机同时运行。 - 支持多个 Class 驱动程序同时运行,即主机的多个客户端同时运行。 - 单个设备可以由多个客户端同时使用,如复合设备。 - 主机库及其底层主机栈不会在内部自动创建操作系统任务,任务数量完全由主机库接口的使用方式决定。一般来说,任务数量为 ``(运行中的主机 Class 驱动程序数量 + 1)``。 @@ -46,7 +47,6 @@ USB 主机库(以下简称主机库)是 USB 主机栈的最底层,提供 - 仅支持异步传输。 - 仅支持使用发现的首个配置,尚不支持变更为其他配置。 - 尚不支持传输超时。 - :esp32p4: - {IDF_TARGET_NAME} 包含两个 USB-OTG 外设:USB 2.0 OTG 高速和 USB 2.0 OTG 全速。目前仅支持高速实例。 - 外部 Hub 驱动:不支持远程唤醒功能(即使没有设备插入,外部 Hub 也处于工作状态)。 - 外部 Hub 驱动:不处理错误用例(尚未实现过流处理、初始化错误等功能)。 - 外部 Hub 驱动:不支持接口选择。驱动程序使用具有 Hub 类代码 (09h) 的第一个可用接口。 diff --git a/docs/zh_CN/api-reference/protocols/mbedtls.rst b/docs/zh_CN/api-reference/protocols/mbedtls.rst index 88a7a87fb5d..42a1622143c 100644 --- a/docs/zh_CN/api-reference/protocols/mbedtls.rst +++ b/docs/zh_CN/api-reference/protocols/mbedtls.rst @@ -118,5 +118,5 @@ ESP-IDF 中的示例使用 :doc:`/api-reference/protocols/esp_tls`,为访问 在 ``Component Config -> mbedTLS`` 中,有多个 Mbed TLS 功能默认为启用状态。如果不需要这些功能,可将其禁用以减小固件大小。要了解更多信息,请参考 :ref:`Minimizing Binary Size ` 文档。 -.. _`API Reference`: https://mbed-tls.readthedocs.io/projects/api/en/v3.6.3/ +.. _`API Reference`: https://mbed-tls.readthedocs.io/projects/api/en/v3.6.4/ .. _`Knowledge Base`: https://mbed-tls.readthedocs.io/en/latest/kb/ diff --git a/docs/zh_CN/api-reference/system/esp_https_ota.rst b/docs/zh_CN/api-reference/system/esp_https_ota.rst index 9e8dd4d77d1..8896d9e6601 100644 --- a/docs/zh_CN/api-reference/system/esp_https_ota.rst +++ b/docs/zh_CN/api-reference/system/esp_https_ota.rst @@ -71,16 +71,17 @@ mbedTLS Rx buffer 的默认大小为 16 KB,但如果将 ``partial_http_downloa 设计 ^^^^ -* 该方案需首先生成一个唯一的 RSA-3072 公钥—私钥对。公钥保留在 OTA 更新服务器上,用于加密,而私钥作为设备的一部分,例如内嵌于固件中,用于解密。 -* 预加密固件使用 AES-GCM 密钥进行加密,并将该密钥(及其配置参数)作为标头附加到镜像中。 -* 此外,AES-GCM 密钥使用 RSA 公钥进行加密,生成的镜像会托管到 OTA 更新服务器上。 -* 在设备端,首先使用可用的 RSA 私钥解密镜像标头,从而获取 AES-GCM 密钥。 -* 最后,使用 AES-GCM 密钥(和配置参数)解密镜像内容,并将其写入 flash。 +预加密固件是一种 **传输安全方案**,用于确保固件镜像在从 OTA 服务器传输到设备的过程中始终处于加密状态(与底层传输安全无关)。这种方案与 :doc:`../../security/flash-encryption` 在多个关键方面有所不同: -整个工作流程由外部组件 `esp_encrypted_image `_ 管理,并通过解密回调 (:cpp:member:`esp_https_ota_config_t::decrypt_cb`) 机制插入到 OTA 更新框架中。 +* **密钥管理**:使用外部管理的加密密钥,而不是每个设备内部生成的唯一密钥 +* **独立于 flash 偏移**:无论固件烧录在哪个 flash 分区(``ota_0``、``ota_1`` 等),生成的密文内容一致 +* **传输保护**:在固件传输过程中提供加密保护,不涉及设备本地存储安全 -.. note:: - 该支持方案基于 RSA-3072,必须使用平台安全功能保护设备端的私钥。 +**重要安全提示**:预加密固件本身不提供设备级安全保护。固件被接收后在设备上解密,并按设备的 flash 加密配置存储。如需设备级安全措施,需另外启用 flash 加密功能。 + +该功能由 `esp_encrypted_img `_ 组件实现,该组件通过解密回调 (:cpp:member:`esp_https_ota_config_t::decrypt_cb`) 机制集成在 OTA 更新框架中。 + +有关镜像格式、密钥生成及实现细节的详细信息,请参阅 `esp_encrypted_img 组件文档 `_。 OTA 系统事件 ----------------- diff --git a/docs/zh_CN/contribute/creating-examples.rst b/docs/zh_CN/contribute/creating-examples.rst index a2624564b94..a7d3820bad8 100644 --- a/docs/zh_CN/contribute/creating-examples.rst +++ b/docs/zh_CN/contribute/creating-examples.rst @@ -30,6 +30,6 @@ - 示例项目中的所有代码结构良好,关键代码要有详细注释。 - 示例项目中所有不必要的代码(旧的调试日志,注释掉的代码等)都必须清除掉。 - 示例项目中使用的选项(比如网络名称,地址等)不得直接硬编码,应尽可能地使用配置项,或者定义为宏或常量。 -- 配置项可见 ``KConfig.projbuild`` 文件,该文件中包含一个名为 “Example Configuration” 的菜单。具体情况,请查看现有示例项目。 +- 配置项可见 ``Kconfig.projbuild`` 文件,该文件中包含一个名为 “Example Configuration” 的菜单。具体情况,请查看现有示例项目。 - 所有的源代码都需要在文件开头指定许可信息(表示该代码是 ``in the public domain CC0``)和免责声明。或者,源代码也可以应用 ``Apache License 2.0`` 许可条款。请查看现有示例项目的许可信息和免责声明,并根据实际情况进行修改。 - 任何第三方代码(无论是直接使用,还是进行了一些改进)均应保留原始代码中的许可信息,且这些代码的许可必须兼容 ``Apache License 2.0`` 协议。 diff --git a/docs/zh_CN/hw-reference/index.rst b/docs/zh_CN/hw-reference/index.rst index 86cee7cc349..b78c0afbef0 100644 --- a/docs/zh_CN/hw-reference/index.rst +++ b/docs/zh_CN/hw-reference/index.rst @@ -7,7 +7,7 @@ H/W 硬件参考 .. toctree:: :maxdepth: 1 - :not esp32p4: 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}> + 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}> :esp32: 技术规格书 (PDF) :esp32s2: 技术规格书 (PDF) :esp32s3: 技术规格书 (PDF) @@ -15,20 +15,24 @@ H/W 硬件参考 :esp32c3: 技术规格书 (PDF) :esp32c6: 技术规格书 (PDF) :esp32h2: 技术规格书 (PDF) - :esp32: 硬件设计指南 (PDF) - :esp32s2: 硬件设计指南 (PDF) - :esp32s3: 硬件设计指南 (PDF) - :esp32c2: 硬件设计指南 (PDF) - :esp32c3: 硬件设计指南 (PDF) - :esp32c6: 硬件设计指南 (PDF) - :esp32h2: 硬件设计指南 (PDF) - :esp32: 勘误表及解决方法 (PDF) - :esp32s2: 勘误表及解决方法 (PDF) - :esp32s3: 勘误表及解决方法 (PDF) - :esp32c3: 勘误表及解决方法 (PDF) - :esp32c2: 勘误表及解决方法 (PDF) - :esp32c6: 勘误表及解决方法 (PDF) - :esp32h2: 勘误表及解决方法 (PDF) + :esp32c5: 技术规格书 (PDF) + :esp32p4: 技术规格书 (PDF) + :esp32: 硬件设计指南 + :esp32s2: 硬件设计指南 + :esp32s3: 硬件设计指南 + :esp32c2: 硬件设计指南 + :esp32c3: 硬件设计指南 + :esp32c6: 硬件设计指南 + :esp32h2: 硬件设计指南 + :esp32p4: 硬件设计指南 + :esp32c5: 硬件设计指南 + :esp32: 芯片勘误表 + :esp32s2: 芯片勘误表 + :esp32s3: 芯片勘误表 + :esp32c3: 芯片勘误表 + :esp32c2: 芯片勘误表 + :esp32c6: 芯片勘误表 + :esp32h2: 芯片勘误表 芯片变型 :not esp32p4: 模组 开发板 diff --git a/examples/bluetooth/.build-test-rules.yml b/examples/bluetooth/.build-test-rules.yml index 0d6f5a88c94..f30e7b52066 100644 --- a/examples/bluetooth/.build-test-rules.yml +++ b/examples/bluetooth/.build-test-rules.yml @@ -178,8 +178,16 @@ examples/bluetooth/hci/controller_vhci_ble_adv: depends_filepatterns: - examples/bluetooth/hci/hci_common_component/**/* - # config BT_NIMBLE_ENABLED does not depends on any soc cap +examples/bluetooth/nimble/ble_ancs: + <<: *bt_default_depends + enable: + - if: SOC_BLE_SUPPORTED == 1 + temporary: true + reason: the other targets are not tested yet + depends_filepatterns: + - examples/bluetooth/nimble/common/**/* + examples/bluetooth/nimble/ble_cte: <<: *bt_default_depends enable: diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_av.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_av.c index 47c76babf2d..f009fcca3f5 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_av.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/bt_app_av.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -518,6 +518,17 @@ static void bt_av_hdl_avrc_ct_evt(uint16_t event, void *p_param) #endif break; } + /* when avrcp controller init or deinit completed, this event comes */ + case ESP_AVRC_CT_PROF_STATE_EVT: { + if (ESP_AVRC_INIT_SUCCESS == rc->avrc_ct_init_stat.state) { + ESP_LOGI(BT_RC_CT_TAG, "AVRCP CT STATE: Init Complete"); + } else if (ESP_AVRC_DEINIT_SUCCESS == rc->avrc_ct_init_stat.state) { + ESP_LOGI(BT_RC_CT_TAG, "AVRCP CT STATE: Deinit Complete"); + } else { + ESP_LOGE(BT_RC_CT_TAG, "AVRCP CT STATE error: %d", rc->avrc_ct_init_stat.state); + } + break; + } /* others */ default: ESP_LOGE(BT_RC_CT_TAG, "%s unhandled event: %d", __func__, event); @@ -573,6 +584,17 @@ static void bt_av_hdl_avrc_tg_evt(uint16_t event, void *p_param) ESP_LOGI(BT_RC_TG_TAG, "AVRC remote features: %"PRIx32", CT features: %x", rc->rmt_feats.feat_mask, rc->rmt_feats.ct_feat_flag); break; } + /* when avrcp target init or deinit completed, this event comes */ + case ESP_AVRC_TG_PROF_STATE_EVT: { + if (ESP_AVRC_INIT_SUCCESS == rc->avrc_tg_init_stat.state) { + ESP_LOGI(BT_RC_CT_TAG, "AVRCP TG STATE: Init Complete"); + } else if (ESP_AVRC_DEINIT_SUCCESS == rc->avrc_tg_init_stat.state) { + ESP_LOGI(BT_RC_CT_TAG, "AVRCP TG STATE: Deinit Complete"); + } else { + ESP_LOGE(BT_RC_CT_TAG, "AVRCP TG STATE error: %d", rc->avrc_tg_init_stat.state); + } + break; + } /* others */ default: ESP_LOGE(BT_RC_TG_TAG, "%s unhandled event: %d", __func__, event); @@ -633,7 +655,8 @@ void bt_app_rc_ct_cb(esp_avrc_ct_cb_event_t event, esp_avrc_ct_cb_param_t *param case ESP_AVRC_CT_REMOTE_FEATURES_EVT: case ESP_AVRC_CT_GET_RN_CAPABILITIES_RSP_EVT: case ESP_AVRC_CT_COVER_ART_STATE_EVT: - case ESP_AVRC_CT_COVER_ART_DATA_EVT: { + case ESP_AVRC_CT_COVER_ART_DATA_EVT: + case ESP_AVRC_CT_PROF_STATE_EVT: { bt_app_work_dispatch(bt_av_hdl_avrc_ct_evt, event, param, sizeof(esp_avrc_ct_cb_param_t), NULL); break; } @@ -652,6 +675,7 @@ void bt_app_rc_tg_cb(esp_avrc_tg_cb_event_t event, esp_avrc_tg_cb_param_t *param case ESP_AVRC_TG_SET_ABSOLUTE_VOLUME_CMD_EVT: case ESP_AVRC_TG_REGISTER_NOTIFICATION_EVT: case ESP_AVRC_TG_SET_PLAYER_APP_VALUE_EVT: + case ESP_AVRC_TG_PROF_STATE_EVT: bt_app_work_dispatch(bt_av_hdl_avrc_tg_evt, event, param, sizeof(esp_avrc_tg_cb_param_t), NULL); break; default: diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c index ea9f4abf142..198f1d1df08 100644 --- a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/main/main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -153,17 +153,17 @@ static void bt_av_hdl_stack_evt(uint16_t event, void *p_param) esp_bt_dev_register_callback(bt_app_dev_cb); esp_bt_gap_register_callback(bt_app_gap_cb); - assert(esp_avrc_ct_init() == ESP_OK); esp_avrc_ct_register_callback(bt_app_rc_ct_cb); - assert(esp_avrc_tg_init() == ESP_OK); + assert(esp_avrc_ct_init() == ESP_OK); esp_avrc_tg_register_callback(bt_app_rc_tg_cb); + assert(esp_avrc_tg_init() == ESP_OK); esp_avrc_rn_evt_cap_mask_t evt_set = {0}; esp_avrc_rn_evt_bit_mask_operation(ESP_AVRC_BIT_MASK_OP_SET, &evt_set, ESP_AVRC_RN_VOLUME_CHANGE); assert(esp_avrc_tg_set_rn_evt_cap(&evt_set) == ESP_OK); - assert(esp_a2d_sink_init() == ESP_OK); esp_a2d_register_callback(&bt_app_a2d_cb); + assert(esp_a2d_sink_init() == ESP_OK); esp_a2d_sink_register_data_callback(bt_app_a2d_data_cb); /* Get the default value of the delay value */ diff --git a/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.ca_dis b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.ca_dis new file mode 100644 index 00000000000..1c6372a1b37 --- /dev/null +++ b/examples/bluetooth/bluedroid/classic_bt/a2dp_sink/sdkconfig.ci.ca_dis @@ -0,0 +1,12 @@ +# Override some defaults so BT stack is enabled and +# Classic BT is enabled and BT_DRAM_RELEASE is disabled +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=n +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=y +CONFIG_BT_CLASSIC_ENABLED=y +CONFIG_BT_A2DP_ENABLE=y +CONFIG_BT_AVRCP_CT_COVER_ART_ENABLED=n +CONFIG_EXAMPLE_AVRCP_CT_COVER_ART_ENABLE=n +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=n diff --git a/examples/bluetooth/nimble/ble_ancs/CMakeLists.txt b/examples/bluetooth/nimble/ble_ancs/CMakeLists.txt new file mode 100644 index 00000000000..98f604ab170 --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(ble_ancs) diff --git a/examples/bluetooth/nimble/ble_ancs/README.md b/examples/bluetooth/nimble/ble_ancs/README.md new file mode 100644 index 00000000000..7180d04accd --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/README.md @@ -0,0 +1,65 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | + +# ESP-IDF NimBLE ANCS Example + +The purpose of the Apple Notification Center Service (ANCS) is to give Bluetooth accessories (that connect to iOS devices through a Bluetooth low-energy link) a simple and convenient way to access many kinds of notifications that are generated on iOS devices. + +## How to Use Example + +Before project configuration and build, be sure to set the correct chip target using: + +```bash +idf.py set-target +``` + +The Apple Notification Center Service is a primary service whose service UUID is: + +`7905F431-B5CE-4E99-A40F-4B1E122D00D0` + +Only one instance of the ANCS may be present on an NP. Due to the nature of iOS, the ANCS is not guaranteed to always be present. As a result, the NC should look for and subscribe to the Service Changed characteristic of the GATT service in order to monitor for the potential publishing and unpublishing of the ANCS at any time. + +In its basic form, the ANCS exposes three characteristics: +Notification Source: UUID `9FBF120D-6301-42D9-8C58-25E699A21DBD` (notifiable) +Control Point: UUID `69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9` (writeable with response) +Data Source: UUID `22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB` (notifiable) + +All these characteristics require authorization for access. + +### Hardware Required + +* A development board with ESP32/ESP32-C3/ESP32-H2/ESP32-C2/ESP32-S3 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.) +* A USB cable for power supply and programming + +See [Development Boards](https://www.espressif.com/en/products/devkits) for more information about it. + +### Build and Flash + +Run `idf.py -p PORT flash monitor` to build, flash and monitor the project. + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the [Getting Started Guide](https://idf.espressif.com/) for full steps to configure and use ESP-IDF to build projects. + +## Example Output + +``` +I (466) NimBLE ANCS: BLE Host Task Started +I (466) NimBLE: GAP procedure initiated: stop advertising. + +I (476) NimBLE: Device Address: +I (476) NimBLE: 48:27:e2:e9:0e:a6 +I (476) NimBLE: + +I (476) NimBLE: GAP procedure initiated: advertise; +I (476) NimBLE: disc_mode=2 +I (476) NimBLE: adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0 +I (486) NimBLE: + +I (496) uart: queue free spaces: 8 +I (496) main_task: Returned from app_main() +``` + +## Troubleshooting + +For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon. diff --git a/examples/bluetooth/nimble/ble_ancs/main/CMakeLists.txt b/examples/bluetooth/nimble/ble_ancs/main/CMakeLists.txt new file mode 100644 index 00000000000..1873a0ceb3c --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/CMakeLists.txt @@ -0,0 +1,5 @@ +set(srcs "main.c" + "ble_ancs.c") + +idf_component_register(SRCS "${srcs}" + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/nimble/ble_ancs/main/Kconfig.projbuild b/examples/bluetooth/nimble/ble_ancs/main/Kconfig.projbuild new file mode 100644 index 00000000000..8e5ab9f250a --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/Kconfig.projbuild @@ -0,0 +1,14 @@ +menu "Example Configuration" + + config EXAMPLE_EXTENDED_ADV + bool + depends on SOC_BLE_50_SUPPORTED && BT_NIMBLE_50_FEATURE_SUPPORT + default y if SOC_ESP_NIMBLE_CONTROLLER + select BT_NIMBLE_EXT_ADV + prompt "Enable Extended Adv" + help + Use this option to enable extended advertising in the example. + If this option is disabled, ensure config BT_NIMBLE_EXT_ADV is + also disabled from Nimble stack menuconfig + +endmenu diff --git a/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.c b/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.c new file mode 100644 index 00000000000..19262c5ea15 --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.c @@ -0,0 +1,212 @@ +/* + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + +#include +#include +#include +#include "esp_log.h" +#include "ble_ancs.h" + +#define NimBLE_ANCS_TAG "NimBLE_ANCS" + +/* +| EventID(1 Byte) | EventFlags(1 Byte) | CategoryID(1 Byte) | CategoryCount(1 Byte) | NotificationUID(4 Bytes) | + +A GATT notification delivered through the Notification Source characteristic contains the following information: +* EventID: This field informs the accessory whether the given iOS notification was added, modified, or removed. The enumerated values for this field are defined + in EventID Values. +* EventFlags: A bitmask whose set bits inform an NC of specificities with the iOS notification. For example, if an iOS notification is considered “important”, + the NC may want to display a more aggressive user interface (UI) to make sure the user is properly alerted. The enumerated bits for this field + are defined in EventFlags. +* CategoryID: A numerical value providing a category in which the iOS notification can be classified. The NP will make a best effort to provide an accurate category + for each iOS notification. The enumerated values for this field are defined in CategoryID Values. +* CategoryCount: The current number of active iOS notifications in the given category. For example, if two unread emails are sitting in a user’s email inbox, and a new + email is pushed to the user’s iOS device, the value of CategoryCount is 3. +* NotificationUID: A 32-bit numerical value that is the unique identifier (UID) for the iOS notification. This value can be used as a handle in commands sent to the + Control Point characteristic to interact with the iOS notification. +*/ + +char *EventID_to_String(uint8_t EventID) +{ + char *str = NULL; + switch (EventID) + { + case EventIDNotificationAdded: + str = "New message"; + break; + case EventIDNotificationModified: + str = "Modified message"; + break; + case EventIDNotificationRemoved: + str = "Removed message"; + break; + default: + str = "unknown EventID"; + break; + } + return str; +} + +char *CategoryID_to_String(uint8_t CategoryID) +{ + char *Cidstr = NULL; + switch(CategoryID) { + case CategoryIDOther: + Cidstr = "Other"; + break; + case CategoryIDIncomingCall: + Cidstr = "IncomingCall"; + break; + case CategoryIDMissedCall: + Cidstr = "MissedCall"; + break; + case CategoryIDVoicemail: + Cidstr = "Voicemail"; + break; + case CategoryIDSocial: + Cidstr = "Social"; + break; + case CategoryIDSchedule: + Cidstr = "Schedule"; + break; + case CategoryIDEmail: + Cidstr = "Email"; + break; + case CategoryIDNews: + Cidstr = "News"; + break; + case CategoryIDHealthAndFitness: + Cidstr = "HealthAndFitness"; + break; + case CategoryIDBusinessAndFinance: + Cidstr = "BusinessAndFinance"; + break; + case CategoryIDLocation: + Cidstr = "Location"; + break; + case CategoryIDEntertainment: + Cidstr = "Entertainment"; + break; + default: + Cidstr = "Unknown CategoryID"; + break; + } + return Cidstr; +} + +/* +| EventID(1 Byte) | EventFlags(1 Byte) | CategoryID(1 Byte) | CategoryCount(1 Byte) | NotificationUID(4 Bytes) | +*/ + +void ble_receive_apple_notification_source(uint8_t *message, uint16_t message_len) +{ + if (!message || message_len < 5) { + return; + } + + uint8_t EventID = message[0]; + char *EventIDS = EventID_to_String(EventID); + uint8_t EventFlags = message[1]; + uint8_t CategoryID = message[2]; + char *Cidstr = CategoryID_to_String(CategoryID); + uint8_t CategoryCount = message[3]; + uint32_t NotificationUID = (message[4]) | (message[5]<< 8) | (message[6]<< 16) | (message[7] << 24); + ESP_LOGI(NimBLE_ANCS_TAG, "EventID:%s EventFlags:0x%x CategoryID:%s CategoryCount:%d NotificationUID:%" PRIu32, EventIDS, EventFlags, Cidstr, CategoryCount, NotificationUID); +} + +void ble_receive_apple_data_source(uint8_t *message, uint16_t message_len) +{ + if (!message || message_len == 0) { + return; + } + uint8_t Command_id = message[0]; + switch (Command_id) + { + case CommandIDGetNotificationAttributes: { + uint32_t NotificationUID = (message[1]) | (message[2]<< 8) | (message[3]<< 16) | (message[4] << 24); + uint32_t remian_attr_len = message_len - 5; + uint8_t *attrs = &message[5]; + ESP_LOGI(NimBLE_ANCS_TAG, "recevice Notification Attributes response Command_id %d NotificationUID %" PRIu32, Command_id, NotificationUID); + while(remian_attr_len > 0) { + uint8_t AttributeID = attrs[0]; + uint16_t len = attrs[1] | (attrs[2] << 8); + if(len > (remian_attr_len -3)) { + ESP_LOGE(NimBLE_ANCS_TAG, "data error"); + break; + } + switch (AttributeID) + { + case NotificationAttributeIDAppIdentifier: + ESP_LOG_BUFFER_CHAR("Identifier", &attrs[3], len); + break; + case NotificationAttributeIDTitle: + ESP_LOG_BUFFER_CHAR("Title", &attrs[3], len); + break; + case NotificationAttributeIDSubtitle: + ESP_LOG_BUFFER_CHAR("Subtitle", &attrs[3], len); + break; + case NotificationAttributeIDMessage: + ESP_LOG_BUFFER_CHAR("Message", &attrs[3], len); + break; + case NotificationAttributeIDMessageSize: + ESP_LOG_BUFFER_CHAR("MessageSize", &attrs[3], len); + break; + case NotificationAttributeIDDate: + //yyyyMMdd'T'HHmmSS + ESP_LOG_BUFFER_CHAR("Date", &attrs[3], len); + break; + case NotificationAttributeIDPositiveActionLabel: + ESP_LOG_BUFFER_HEX("PActionLabel", &attrs[3], len); + break; + case NotificationAttributeIDNegativeActionLabel: + ESP_LOG_BUFFER_HEX("NActionLabel", &attrs[3], len); + break; + default: + ESP_LOG_BUFFER_HEX("unknownAttributeID", &attrs[3], len); + break; + } + + attrs += (1 + 2 + len); + remian_attr_len -= (1 + 2 + len); + } + + break; + } + case CommandIDGetAppAttributes: + ESP_LOGI(NimBLE_ANCS_TAG, "recevice APP Attributes response"); + break; + case CommandIDPerformNotificationAction: + ESP_LOGI(NimBLE_ANCS_TAG, "recevice Perform Notification Action"); + break; + default: + ESP_LOGI(NimBLE_ANCS_TAG, "unknown Command ID"); + break; + } +} + +char *Errcode_to_String(uint16_t status) +{ + char *Errstr = NULL; + switch (status) { + case Unknown_command: + Errstr = "Unknown_command"; + break; + case Invalid_command: + Errstr = "Invalid_command"; + break; + case Invalid_parameter: + Errstr = "Invalid_parameter"; + break; + case Action_failed: + Errstr = "Action_failed"; + break; + default: + Errstr = "unknown_failed"; + break; + } + return Errstr; + +} diff --git a/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.h b/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.h new file mode 100644 index 00000000000..83bb1e9be21 --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/ble_ancs.h @@ -0,0 +1,118 @@ +/* + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + + +#include +#include +#include + +//EventID values +typedef enum { + EventIDNotificationAdded = 0, + EventIDNotificationModified = 1, + EventIDNotificationRemoved = 2, + //Reserved EventID values = 3–255 +} ble_ancs_EventID; + +//EventFlags +typedef enum { + EventFlagSilent = (1 << 0), + EventFlagImportant = (1 << 1), + EventFlagPreExisting = (1 << 2), + EventFlagPositiveAction = (1 << 3), + EventFlagNegativeAction = (1 << 4), + //Reserved EventFlags = (1 << 5)–(1 << 7 +}ble_ancs_EventFlags; + +// CategoryID values +typedef enum { + CategoryIDOther = 0, + CategoryIDIncomingCall = 1, + CategoryIDMissedCall = 2, + CategoryIDVoicemail = 3, + CategoryIDSocial = 4, + CategoryIDSchedule = 5, + CategoryIDEmail = 6, + CategoryIDNews = 7, + CategoryIDHealthAndFitness = 8, + CategoryIDBusinessAndFinance = 9, + CategoryIDLocation = 10, + CategoryIDEntertainment = 11, + //Reserved CategoryID values = 12–255 +} ble_ancs_CategoryID; + +//CommandID values +typedef enum { + CommandIDGetNotificationAttributes = 0, + CommandIDGetAppAttributes = 1, + CommandIDPerformNotificationAction = 2, + //Reserved CommandID values = 3–255 +} ble_ancs_CommandID; + +//NotificationAttributeID +typedef enum { + NotificationAttributeIDAppIdentifier = 0, + NotificationAttributeIDTitle = 1, //(Needs to be followed by a 2-bytes max length parameter) + NotificationAttributeIDSubtitle = 2, //(Needs to be followed by a 2-bytes max length parameter) + NotificationAttributeIDMessage = 3, //(Needs to be followed by a 2-bytes max length parameter) + NotificationAttributeIDMessageSize = 4, + NotificationAttributeIDDate = 5, + NotificationAttributeIDPositiveActionLabel = 6, + NotificationAttributeIDNegativeActionLabel = 7, + //Reserved NotificationAttributeID values = 8–255 +} ble_ancs_NotificationAttributeID; + +/* +Note: The format of the NotificationAttributeIDMessageSize constant is a string that represents the integral value +of the message size. The format of the NotificationAttributeIDDate constant is a string that uses the Unicode Technical +Standard (UTS) #35 date format pattern yyyyMMdd'T'HHmmSS. The format of all the other constants in Table 3-5 are UTF-8 +strings. +*/ + +//ActionID values +typedef enum { + ActionIDPositive = 0, + ActionIDNegative = 1, + //Reserved ActionID values = 2–255 +} ble_ActionID; + +//AppAttributeID Values +typedef enum { + AppAttributeIDDisplayName = 0, + //Reserved AppAttributeID values = 1–255 +} ble_AppAttributeID; + +typedef struct { + uint8_t noti_attribute_id; + uint16_t attribute_len; +} ble_noti_attr_list_t; + +typedef enum { + Unknown_command = (0xA0), //The commandID was not recognized by the NP. + Invalid_command = (0xA1), //The command was improperly formatted. + Invalid_parameter = (0xA2), // One of the parameters (for example, the NotificationUID) does not refer to an existing object on the NP. + Action_failed = (0xA3), //The action was not performed +} ble_ancs_error_code; + +typedef enum { + attr_appidentifier_index = 0, //The commandID was not recognized by the NP. + attr_title_index, + attr_subtitle_index, + attr_message_index, + attr_messagesize_index, + attr_date_index, + attr_positiveactionlabel_index, + attr_negativeactionlabel_index, +} ble_ancs_attr_index; + +#define ESP_NOTIFICATIONUID_LEN 4 + + +char *EventID_to_String(uint8_t EventID); +char *CategoryID_to_String(uint8_t CategoryID); +void ble_receive_apple_notification_source(uint8_t *message, uint16_t message_len); +void ble_receive_apple_data_source(uint8_t *message, uint16_t message_len); +char *Errcode_to_String(uint16_t status); diff --git a/examples/bluetooth/nimble/ble_ancs/main/idf_component.yml b/examples/bluetooth/nimble/ble_ancs/main/idf_component.yml new file mode 100644 index 00000000000..d6e735fe770 --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/idf_component.yml @@ -0,0 +1,3 @@ +dependencies: + nimble_peripheral_utils: + path: ${IDF_PATH}/examples/bluetooth/nimble/common/nimble_peripheral_utils diff --git a/examples/bluetooth/nimble/ble_ancs/main/main.c b/examples/bluetooth/nimble/ble_ancs/main/main.c new file mode 100644 index 00000000000..8fbb3268f6b --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/main/main.c @@ -0,0 +1,771 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#include "esp_log.h" +#include "nvs_flash.h" +/* BLE */ +#include "nimble/nimble_port.h" +#include "nimble/nimble_port_freertos.h" +#include "host/ble_hs.h" +#include "host/util/util.h" +#include "console/console.h" +#include "services/gap/ble_svc_gap.h" +#include "nimble/ble.h" +#include "esp_peripheral.h" +#include "ble_ancs.h" +#include "esp_timer.h" + +uint16_t notification_source_handle; +uint16_t data_source_handle; +uint16_t control_point_handle; +uint16_t svc_e_handle; + +static void periodic_timer_callback(void* arg); +esp_timer_handle_t periodic_timer; + +const esp_timer_create_args_t periodic_timer_args = { + .callback = &periodic_timer_callback, + /* name is optional, but may help identify the timer when debugging */ + .name = "periodic" +}; + +struct data_source_buffer { + uint8_t buffer[1024]; + uint16_t len; +}; + +static struct data_source_buffer data_buffer = {0}; +static uint16_t MTU_size = 23; +//In its basic form, the ANCS exposes three characteristics: +// service UUID: 7905F431-B5CE-4E99-A40F-4B1E122D00D0 +static ble_uuid128_t APPLE_NC_UUID = BLE_UUID128_INIT( + 0xD0, 0x00, 0x2D, 0x12, 0x1E, 0x4B, 0x0F, 0xA4, 0x99, 0x4E, 0xCE, 0xB5, 0x31, 0xF4, 0x05, 0x79); + +// Notification Source UUID: 9FBF120D-6301-42D9-8C58-25E699A21DBD(notifiable) +static ble_uuid128_t notification_source = BLE_UUID128_INIT( + 0xbd, 0x1d, 0xa2, 0x99, 0xe6, 0x25, 0x58, 0x8c, 0xd9, 0x42, 0x01, 0x63, 0x0d, 0x12, 0xbf, 0x9f); +// Control Point UUID:69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9(writeable with response) +static ble_uuid128_t control_point = BLE_UUID128_INIT( + 0xd9, 0xd9, 0xaa, 0xfd, 0xbd, 0x9b, 0x21, 0x98, 0xa8, 0x49, 0xe1, 0x45, 0xf3, 0xd8, 0xd1, 0x69); +// Data Source UUID:22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB(notifiable) +static ble_uuid128_t data_source = BLE_UUID128_INIT( + 0xfb, 0x7b, 0x7c, 0xce, 0x6a, 0xb3, 0x44, 0xbe, 0xb5, 0x4b, 0xd6, 0x24, 0xe9, 0xc6, 0xea, 0x22); + +#if CONFIG_EXAMPLE_EXTENDED_ADV +static uint8_t ext_adv_pattern_1[] = { + 0x02, 0x01, 0x06, + 0x03, 0x03, 0xab, 0xcd, + 0x03, 0x03, 0x18, 0x11, + 0x0e, 0X09, 'n', 'i', 'm', 'b', 'l', 'e', '-', 'a', 'n', 'c', 's', '-', 'e', +}; +#endif + +static const char *tag = "NimBLE_ANCS"; +static int ble_ancs_gap_event(struct ble_gap_event *event, void *arg); +static uint8_t own_addr_type; + +void ble_store_config_init(void); + +static ble_noti_attr_list_t p_attr[8] = { + [attr_appidentifier_index] = { + .noti_attribute_id = NotificationAttributeIDAppIdentifier, + .attribute_len = 0, + }, + [attr_title_index] = { + .noti_attribute_id = NotificationAttributeIDTitle, + .attribute_len = 0xFFFF, + }, + [attr_subtitle_index] = { + .noti_attribute_id = NotificationAttributeIDSubtitle, + .attribute_len = 0xFFFF, + }, + [attr_message_index] = { + .noti_attribute_id = NotificationAttributeIDMessage, + .attribute_len = 0xFFFF, + }, + [attr_messagesize_index] = { + .noti_attribute_id = NotificationAttributeIDMessageSize, + .attribute_len = 0, + }, + [attr_date_index] = { + .noti_attribute_id = NotificationAttributeIDDate, + .attribute_len = 0, + }, + [attr_positiveactionlabel_index] = { + .noti_attribute_id = NotificationAttributeIDPositiveActionLabel, + .attribute_len = 0, + }, + [attr_negativeactionlabel_index] = { + .noti_attribute_id = NotificationAttributeIDNegativeActionLabel, + .attribute_len = 0, + }, +}; + + +void ble_get_notification_attributes(uint16_t conn_handle, + uint16_t control_point_handle, + uint8_t *notificationUID, + uint8_t num_attr, + ble_noti_attr_list_t *p_attr) +{ + uint8_t cmd[600] = {0}; + + uint32_t index = 0; + cmd[index++] = CommandIDGetNotificationAttributes; + + memcpy(&cmd[index], notificationUID, ESP_NOTIFICATIONUID_LEN); + index += ESP_NOTIFICATIONUID_LEN; + + while (num_attr > 0) { + cmd[index++] = p_attr->noti_attribute_id; + + if (p_attr->attribute_len > 0) { + cmd[index++] = (uint8_t)(p_attr->attribute_len & 0xFF); + cmd[index++] = (uint8_t)((p_attr->attribute_len >> 8) & 0xFF); + } + + p_attr++; + num_attr--; + } + + int rc = ble_gattc_write_flat(conn_handle, + control_point_handle, + cmd, + index, + NULL, // no callback + NULL); // no argument + + if (rc != 0) { + MODLOG_DFLT(WARN, "Failed to write notification attribute request: rc=%d\n", rc); + + } +} +void ble_perform_notification_action(uint8_t *notificationUID, + uint8_t ActionID, + uint16_t conn_handle, + uint16_t control_point_handle) +{ + uint8_t buffer[600] = {0}; + + uint16_t index = 0; + buffer[index++] = CommandIDPerformNotificationAction; // define this as needed + + memcpy(&buffer[index], notificationUID, ESP_NOTIFICATIONUID_LEN); + index += ESP_NOTIFICATIONUID_LEN; + + buffer[index++] = ActionID; + + int rc = ble_gattc_write_flat(conn_handle, + control_point_handle, + buffer, + index, + NULL, // no callback + NULL); // no callback argument + + if (rc != 0) { + MODLOG_DFLT(WARN, "Failed to write perform action command: rc=%d\n", rc); + } +} + +static void periodic_timer_callback(void* arg) +{ + esp_timer_stop(periodic_timer); + if (data_buffer.len > 0) { + ble_receive_apple_data_source(data_buffer.buffer, data_buffer.len); + memset(data_buffer.buffer, 0, data_buffer.len); + data_buffer.len = 0; + } +} + +static int +ancs_on_custom_subscribe(uint16_t conn_handle, + const struct ble_gatt_error *error, + struct ble_gatt_attr *attr, + void *arg) +{ + + MODLOG_DFLT(INFO, + "Subscribe to the custom subscribable characteristic complete; " + "status=%d conn_handle=%d", + error->status, conn_handle); + + return 0; +} +int ancs_dsc_discovered_cb(uint16_t conn_handle, const struct ble_gatt_error *error, + uint16_t chr_val_handle, const struct ble_gatt_dsc *dsc, + void *arg) +{ + int rc = 0; + uint8_t cccd_val[2] = {0x01, 0x00}; // Enable notification + if (error->status == 0) { + if (ble_uuid_cmp(&dsc->uuid.u, BLE_UUID16_DECLARE(BLE_GATT_DSC_CLT_CFG_UUID16)) == 0) { + rc = ble_gattc_write_flat(conn_handle, + dsc->handle, + cccd_val, sizeof(cccd_val), + ancs_on_custom_subscribe, NULL); + + if (rc != 0) { + MODLOG_DFLT(WARN, "Failed to subscribe to (rc=%d)", rc); + return rc; + } + } + } else { + rc = error->status; + } + + return rc; +} + +static int +ancs_chr_discovered_cb(uint16_t conn_handle, const struct ble_gatt_error *error, + const struct ble_gatt_chr *chr, void *arg) +{ + int rc = 0; + if (error->status == 0) { + /* Notification Source */ + if ((chr->properties & BLE_GATT_CHR_PROP_NOTIFY) && + ble_uuid_cmp(&chr->uuid.u, ¬ification_source.u) == 0) { + + notification_source_handle = chr->val_handle; + rc = ble_gattc_disc_all_dscs(conn_handle, chr->val_handle, svc_e_handle, ancs_dsc_discovered_cb, NULL); + MODLOG_DFLT(INFO, "Found Notification Source characnteristic"); + + } + /* Data Source */ + else if ((chr->properties & BLE_GATT_CHR_PROP_NOTIFY) && + ble_uuid_cmp(&chr->uuid.u, &data_source.u) == 0) { + + data_source_handle = chr->val_handle; + rc = ble_gattc_disc_all_dscs(conn_handle, chr->val_handle, svc_e_handle, ancs_dsc_discovered_cb, NULL); + MODLOG_DFLT(INFO, "Found Data Source characteristic"); + + } + /* Control Point */ + else if ((chr->properties & BLE_GATT_CHR_PROP_WRITE) && + ble_uuid_cmp(&chr->uuid.u, &control_point.u) == 0) { + + control_point_handle = chr->val_handle; + MODLOG_DFLT(INFO, "Found Control Point characteristic"); + } + } else{ + rc = error->status; + } + + return rc; +} + +static int ancs_service_discovered_cb(uint16_t conn_handle, const struct ble_gatt_error *error, + const struct ble_gatt_svc *svc, void *arg) +{ + int rc ; + if (error->status == 0) { + if (svc == NULL) { + MODLOG_DFLT(WARN, "ANCS service not found"); + return -1; + } + + svc_e_handle = svc->end_handle; + /* discover characteristics within this service range */ + rc = ble_gattc_disc_all_chrs(conn_handle, svc->start_handle, svc->end_handle, ancs_chr_discovered_cb, NULL); + } else { + rc = error->status; + } + return rc; +} + +#if NIMBLE_BLE_CONNECT +/** + * Logs information about a connection to the console. + */ +static void +ble_ancs_print_conn_desc(struct ble_gap_conn_desc *desc) +{ + MODLOG_DFLT(INFO, "handle=%d our_ota_addr_type=%d our_ota_addr=", + desc->conn_handle, desc->our_ota_addr.type); + print_addr(desc->our_ota_addr.val); + MODLOG_DFLT(INFO, " our_id_addr_type=%d our_id_addr=", + desc->our_id_addr.type); + print_addr(desc->our_id_addr.val); + MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", + desc->peer_ota_addr.type); + print_addr(desc->peer_ota_addr.val); + MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", + desc->peer_id_addr.type); + print_addr(desc->peer_id_addr.val); + MODLOG_DFLT(INFO, " conn_itvl=%d conn_latency=%d supervision_timeout=%d " + "encrypted=%d authenticated=%d bonded=%d\n", + desc->conn_itvl, desc->conn_latency, + desc->supervision_timeout, + desc->sec_state.encrypted, + desc->sec_state.authenticated, + desc->sec_state.bonded); +} +#endif + +#if CONFIG_EXAMPLE_EXTENDED_ADV +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +ext_ble_ancs_advertise(void) +{ + struct ble_gap_ext_adv_params params; + struct os_mbuf *data; + uint8_t instance = 0; + int rc; + + /* First check if any instance is already active */ + if(ble_gap_ext_adv_active(instance)) { + return; + } + + /* use defaults for non-set params */ + memset (¶ms, 0, sizeof(params)); + + /* enable connectable advertising */ + params.connectable = 1; + + /* advertise using random addr */ + params.own_addr_type = BLE_OWN_ADDR_PUBLIC; + + params.primary_phy = BLE_HCI_LE_PHY_1M; + params.secondary_phy = BLE_HCI_LE_PHY_2M; + //params.tx_power = 127; + params.sid = 1; + + params.itvl_min = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + params.itvl_max = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + + /* configure instance 0 */ + rc = ble_gap_ext_adv_configure(instance, ¶ms, NULL, + ble_ancs_gap_event, NULL); + assert (rc == 0); + + /* in this case only scan response is allowed */ + + /* get mbuf for scan rsp data */ + data = os_msys_get_pkthdr(sizeof(ext_adv_pattern_1), 0); + assert(data); + + /* fill mbuf with scan rsp data */ + rc = os_mbuf_append(data, ext_adv_pattern_1, sizeof(ext_adv_pattern_1)); + assert(rc == 0); + + rc = ble_gap_ext_adv_set_data(instance, data); + assert (rc == 0); + + /* start advertising */ + rc = ble_gap_ext_adv_start(instance, 0, 0); + assert (rc == 0); +} +#else +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +ble_ancs_advertise(void) +{ + struct ble_gap_adv_params adv_params; + struct ble_hs_adv_fields fields; +#if CONFIG_BT_NIMBLE_GAP_SERVICE + const char *name; +#endif + int rc; + + /** + * Set the advertisement data included in our advertisements: + * o Flags (indicates advertisement type and other general info). + * o Advertising tx power. + * o Device name. + * o 16-bit service UUIDs (alert notifications). + */ + + memset(&fields, 0, sizeof fields); + + /* Advertise two flags: + * o Discoverability in forthcoming advertisement (general) + * o BLE-only (BR/EDR unsupported). + */ + fields.flags = BLE_HS_ADV_F_DISC_GEN | + BLE_HS_ADV_F_BREDR_UNSUP; + + /* Indicate that the TX power level field should be included; have the + * stack fill this value automatically. This is done by assigning the + * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. + */ + fields.tx_pwr_lvl_is_present = 1; + fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; + + name = ble_svc_gap_device_name(); + fields.name = (uint8_t *)name; + fields.name_len = strlen(name); + fields.name_is_complete = 1; + + fields.num_uuids16 = 1; + fields.uuids16_is_complete = 1; + + rc = ble_gap_adv_set_fields(&fields); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); + return; + } + + /* Begin advertising. */ + memset(&adv_params, 0, sizeof adv_params); + adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; + adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; + rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, + &adv_params, ble_ancs_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); + return; + } +} +#endif + +/** + * The nimble host executes this callback when a GAP event occurs. The + * application associates a GAP event callback with each connection that forms. + * ble_ancs uses the same callback for all connections. + * + * @param event The type of event being signalled. + * @param ctxt Various information pertaining to the event. + * @param arg Application-specified argument; unused by + * ble_ancs. + * + * @return 0 if the application successfully handled the + * event; nonzero on failure. The semantics + * of the return code is specific to the + * particular GAP event being signalled. + */ +static int +ble_ancs_gap_event(struct ble_gap_event *event, void *arg) +{ +#if NIMBLE_BLE_CONNECT + struct ble_gap_conn_desc desc; + int rc; +#endif + + switch (event->type) { + +#if NIMBLE_BLE_CONNECT + case BLE_GAP_EVENT_CONNECT: + /* A new connection was established or a connection attempt failed. */ + MODLOG_DFLT(INFO, "connection %s; status=%d ", + event->connect.status == 0 ? "established" : "failed", + event->connect.status); + if (event->connect.status == 0) { + rc = ble_gap_conn_find(event->connect.conn_handle, &desc); + assert(rc == 0); + ble_ancs_print_conn_desc(&desc); + } + MODLOG_DFLT(INFO, "\n"); + + if (event->connect.status != 0) { + /* Connection failed; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_ble_ancs_advertise(); +#else + ble_ancs_advertise(); +#endif + } + + /** Initiate security - It will perform + * Pairing (Exchange keys) + * Bonding (Store keys) + * Encryption (Enable encryption) + * Will invoke event BLE_GAP_EVENT_ENC_CHANGE + **/ + rc = ble_gap_security_initiate(event->connect.conn_handle); + if (rc != 0) { + MODLOG_DFLT(INFO, "Security could not be initiated, rc = %d\n", rc); + return ble_gap_terminate(event->connect.conn_handle, + BLE_ERR_REM_USER_CONN_TERM); + } else { + MODLOG_DFLT(INFO, "Connection secured\n"); + } + return 0; + + case BLE_GAP_EVENT_DISCONNECT: + MODLOG_DFLT(INFO, "disconnect; reason=%d ", event->disconnect.reason); + ble_ancs_print_conn_desc(&event->disconnect.conn); + MODLOG_DFLT(INFO, "\n"); + + /* Connection terminated; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_ble_ancs_advertise(); +#else + ble_ancs_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_CONN_UPDATE: + /* The central has updated the connection parameters. */ + MODLOG_DFLT(INFO, "connection updated; status=%d ", + event->conn_update.status); + rc = ble_gap_conn_find(event->conn_update.conn_handle, &desc); + assert(rc == 0); + ble_ancs_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + return 0; + + case BLE_GAP_EVENT_ADV_COMPLETE: + MODLOG_DFLT(INFO, "advertise complete; reason=%d", + event->adv_complete.reason); +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_ble_ancs_advertise(); +#else + ble_ancs_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_ENC_CHANGE: + /* Encryption has been enabled or disabled for this connection. */ + MODLOG_DFLT(INFO, "encryption change event; status=%d ", + event->enc_change.status); + rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc); + assert(rc == 0); + ble_ancs_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + rc = ble_gattc_disc_svc_by_uuid(event->connect.conn_handle, &APPLE_NC_UUID.u, + ancs_service_discovered_cb, NULL); + if (rc != 0) { + return rc; + } + return 0; + + case BLE_GAP_EVENT_NOTIFY_TX: + MODLOG_DFLT(INFO, "notify_tx event; conn_handle=%d attr_handle=%d " + "status=%d is_indication=%d", + event->notify_tx.conn_handle, + event->notify_tx.attr_handle, + event->notify_tx.status, + event->notify_tx.indication); + return 0; + + case BLE_GAP_EVENT_NOTIFY_RX: + /* Peer sent us a notification or indication. */ + if (event->notify_rx.attr_handle == notification_source_handle) { + ble_receive_apple_notification_source(event->notify_rx.om->om_data, event->notify_rx.om->om_len); + uint8_t *notificationUID = &event->notify_rx.om->om_data[4]; + if (event->notify_rx.om->om_data[0] == EventIDNotificationAdded && + event->notify_rx.om->om_data[2] == CategoryIDIncomingCall) { + MODLOG_DFLT(INFO, "IncomingCall, reject"); + ble_perform_notification_action(notificationUID, ActionIDNegative, event->notify_rx.conn_handle, control_point_handle); + } else if (event->notify_rx.om->om_data[0] == EventIDNotificationAdded) { + MODLOG_DFLT(INFO, "Get detailed information"); + ble_get_notification_attributes(event->notify_rx.conn_handle, control_point_handle, + notificationUID, sizeof(p_attr)/sizeof(ble_noti_attr_list_t), p_attr); + } + } else if (event->notify_rx.attr_handle == data_source_handle) { + memcpy(&data_buffer.buffer[data_buffer.len], + event->notify_rx.om->om_data, + event->notify_rx.om->om_len); + data_buffer.len += event->notify_rx.om->om_len; + + if (event->notify_rx.om->om_len == (MTU_size - 3)) { + esp_timer_start_periodic(periodic_timer, 500000); + } else { + esp_timer_stop(periodic_timer); + ble_receive_apple_data_source(data_buffer.buffer, data_buffer.len); + memset(data_buffer.buffer, 0, data_buffer.len); + data_buffer.len = 0; + } + + } else { + MODLOG_DFLT(INFO, "unknown handle, receive notify value:" ); + } + return 0; + + case BLE_GAP_EVENT_SUBSCRIBE: + MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " + "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", + event->subscribe.conn_handle, + event->subscribe.attr_handle, + event->subscribe.reason, + event->subscribe.prev_notify, + event->subscribe.cur_notify, + event->subscribe.prev_indicate, + event->subscribe.cur_indicate); + return 0; + + case BLE_GAP_EVENT_MTU: + MTU_size = event->mtu.value; + MODLOG_DFLT(INFO, "mtu update event; conn_handle=%d cid=%d mtu=%d\n", + event->mtu.conn_handle, + event->mtu.channel_id, + event->mtu.value); + return 0; + + case BLE_GAP_EVENT_REPEAT_PAIRING: + /* We already have a bond with the peer, but it is attempting to + * establish a new secure link. This app sacrifices security for + * convenience: just throw away the old bond and accept the new link. + */ + + /* Delete the old bond. */ + rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc); + assert(rc == 0); + ble_store_util_delete_peer(&desc.peer_id_addr); + + /* Return BLE_GAP_REPEAT_PAIRING_RETRY to indicate that the host should + * continue with the pairing operation. + */ + return BLE_GAP_REPEAT_PAIRING_RETRY; + + case BLE_GAP_EVENT_PASSKEY_ACTION: + ESP_LOGI(tag, "PASSKEY_ACTION_EVENT started"); + struct ble_sm_io pkey = {0}; + int key = 0; + + if (event->passkey.params.action == BLE_SM_IOACT_DISP) { + pkey.action = event->passkey.params.action; + pkey.passkey = 123456; // This is the passkey to be entered on peer + ESP_LOGI(tag, "Enter passkey %" PRIu32 "on the peer side", pkey.passkey); + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_NUMCMP) { + ESP_LOGI(tag, "Passkey on device's display: %" PRIu32 , event->passkey.params.numcmp); + ESP_LOGI(tag, "Accept or reject the passkey through console in this format -> key Y or key N"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.numcmp_accept = key; + } else { + pkey.numcmp_accept = 0; + ESP_LOGE(tag, "Timeout! Rejecting the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_OOB) { + static uint8_t tem_oob[16] = {0}; + pkey.action = event->passkey.params.action; + for (int i = 0; i < 16; i++) { + pkey.oob[i] = tem_oob[i]; + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_INPUT) { + ESP_LOGI(tag, "Enter the passkey through console in this format-> key 123456"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.passkey = key; + } else { + pkey.passkey = 0; + ESP_LOGE(tag, "Timeout! Passing 0 as the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } + return 0; + +#endif + } + return 0; +} + +static void +ble_ancs_on_reset(int reason) +{ + MODLOG_DFLT(ERROR, "Resetting state; reason=%d\n", reason); +} + +static void +ble_ancs_on_sync(void) +{ + int rc; + + rc = ble_hs_util_ensure_addr(0); + assert(rc == 0); + + /* Figure out address to use while advertising (no privacy for now) */ + rc = ble_hs_id_infer_auto(0, &own_addr_type); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); + return; + } + + /* Printing ADDR */ + uint8_t addr_val[6] = {0}; + rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL); + + MODLOG_DFLT(INFO, "Device Address: "); + print_addr(addr_val); + MODLOG_DFLT(INFO, "\n"); + /* Begin advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_ble_ancs_advertise(); +#else + ble_ancs_advertise(); +#endif +} + +void ble_ancs_host_task(void *param) +{ + ESP_LOGI(tag, "BLE Host Task Started"); + /* This function will return only when nimble_port_stop() is executed */ + nimble_port_run(); + + nimble_port_freertos_deinit(); +} + +void +app_main(void) +{ + int rc; + + /* Initialize NVS — it is used to store PHY calibration data */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + ret = nimble_port_init(); + if (ret != ESP_OK) { + ESP_LOGE(tag, "Failed to init nimble %d ", ret); + return; + } + /* Initialize the NimBLE host configuration. */ + ble_hs_cfg.reset_cb = ble_ancs_on_reset; + ble_hs_cfg.sync_cb = ble_ancs_on_sync; + ble_hs_cfg.store_status_cb = ble_store_util_status_rr; + + ble_hs_cfg.sm_bonding = 1; + /* Enable the appropriate bit masks to make sure the keys + * that are needed are exchanged + */ + ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; + ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; + ble_hs_cfg.sm_sc = 0; + + /* Set the default device name. */ + rc = ble_svc_gap_device_name_set("nimble-ancs"); + assert(rc == 0); + + /* XXX Need to have template for store */ + ble_store_config_init(); + + nimble_port_freertos_init(ble_ancs_host_task); + +} diff --git a/examples/bluetooth/nimble/ble_ancs/sdkconfig.defaults b/examples/bluetooth/nimble/ble_ancs/sdkconfig.defaults new file mode 100644 index 00000000000..5969b0a1ccb --- /dev/null +++ b/examples/bluetooth/nimble/ble_ancs/sdkconfig.defaults @@ -0,0 +1,13 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_NVS_PERSIST=y diff --git a/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c b/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c index cc500176113..efe14e368e6 100644 --- a/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c @@ -568,8 +568,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ diff --git a/examples/bluetooth/nimble/ble_cts/cts_cent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_cts/cts_cent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..7bcce855af5 --- /dev/null +++ b/examples/bluetooth/nimble/ble_cts/cts_cent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_cts/cts_prph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_cts/cts_prph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..4b4d5ca9522 --- /dev/null +++ b/examples/bluetooth/nimble/ble_cts/cts_prph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,45 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_dynamic_service/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_dynamic_service/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..93de6ec8b58 --- /dev/null +++ b/examples/bluetooth/nimble/ble_dynamic_service/sdkconfig.defaults.dram_optimised @@ -0,0 +1,48 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_DYNAMIC_SERVICE=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c index 441b2a9eed2..1b3e77574d6 100644 --- a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/main/main.c @@ -622,8 +622,13 @@ app_main(void) ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_KEYBOARD_ONLY; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ diff --git a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..8f0e93a7b3c --- /dev/null +++ b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_cent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,49 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_prph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_prph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..44f19abbcb7 --- /dev/null +++ b/examples/bluetooth/nimble/ble_enc_adv_data/enc_adv_data_prph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_EVT_SIZE=70 +CONFIG_BT_NIMBLE_EXT_ADV=n + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_gattc_gatts_coex/main/main.c b/examples/bluetooth/nimble/ble_gattc_gatts_coex/main/main.c new file mode 100644 index 00000000000..a3b60e33630 --- /dev/null +++ b/examples/bluetooth/nimble/ble_gattc_gatts_coex/main/main.c @@ -0,0 +1,565 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ +#include "host/ble_hs.h" +#include "host/util/util.h" +#include "services/gap/ble_svc_gap.h" +#include "services/gatt/ble_svc_gatt.h" +#include "nimble/nimble_port.h" +#include "nimble/nimble_port_freertos.h" +#include "nvs_flash.h" +#include "blecoex.h" +#include "services/ans/ble_svc_ans.h" + +static uint8_t own_addr_type; +static int blecoex_gap_event(struct ble_gap_event *event, void *arg); +void ble_coex_advertise(void); +void ble_coex_scan(void); +static bool client_connect = 0; + +static int gatt_svr_access_cb(uint16_t conn_handle, uint16_t attr_handle, + struct ble_gatt_access_ctxt *ctxt, void *arg) { + if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) { + static uint8_t data[1] = {42}; // Example value + os_mbuf_append(ctxt->om, data, sizeof(data)); + } + return 0; +} + +static const ble_uuid128_t gatt_svr_svc_uuid = + BLE_UUID128_INIT(0x2d, 0x71, 0xa2, 0x59, 0xb4, 0x58, 0xc8, 0x12, + 0x99, 0x99, 0x43, 0x95, 0x12, 0x2f, 0x46, 0x59); + +/* A characteristic that can be subscribed to */ +static uint16_t gatt_svr_chr_val_handle; +static const ble_uuid128_t gatt_svr_chr_uuid = + BLE_UUID128_INIT(0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, + 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33); + +/* A custom descriptor */ +static const ble_uuid128_t gatt_svr_dsc_uuid = + BLE_UUID128_INIT(0x01, 0x01, 0x01, 0x01, 0x12, 0x12, 0x12, 0x12, + 0x23, 0x23, 0x23, 0x23, 0x34, 0x34, 0x34, 0x34); + +static const struct ble_gatt_svc_def gatt_svr_svcs[] = { + { + /*** Service ***/ + .type = BLE_GATT_SVC_TYPE_PRIMARY, + .uuid = &gatt_svr_svc_uuid.u, + .characteristics = (struct ble_gatt_chr_def[]) + { { + /*** This characteristic can be subscribed to by writing 0x00 and 0x01 to the CCCD ***/ + .uuid = &gatt_svr_chr_uuid.u, + .access_cb = gatt_svr_access_cb, + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, + .val_handle = &gatt_svr_chr_val_handle, + .descriptors = (struct ble_gatt_dsc_def[]) + { { + .uuid = &gatt_svr_dsc_uuid.u, + .att_flags = BLE_ATT_F_READ, + .access_cb = gatt_svr_access_cb, + }, { + 0, /* No more descriptors in this characteristic */ + } + }, + }, { + 0, /* No more characteristics in this service. */ + } + }, + }, + + { + 0, /* No more services. */ + }, +}; + +static int +blecoex_should_connect(const struct ble_gap_disc_desc *disc) +{ + struct ble_hs_adv_fields fields; + int rc; + int i; + + /* The device has to be advertising connectability. */ + if (disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_ADV_IND && + disc->event_type != BLE_HCI_ADV_RPT_EVTYPE_DIR_IND) { + + return 0; + } + + rc = ble_hs_adv_parse_fields(&fields, disc->data, disc->length_data); + if (rc != 0) { + return 0; + } + + /* The device has to advertise support for the Alert Notification + * service (0x1811). + */ + for (i = 0; i < fields.num_uuids16; i++) { + if (ble_uuid_u16(&fields.uuids16[i].u) == BLECOEX_SVC_ALERT_UUID) { + return 1; + } + } + + return 0; +} + +static void +connect_if_interesting(void *disc) +{ + uint8_t own_addr_type; + int rc; + ble_addr_t *addr; + + /* Don't do anything if we don't care about this advertiser. */ + if (!blecoex_should_connect((struct ble_gap_disc_desc *)disc)) { + return; + } + + /* Scanning must be stopped before a connection can be initiated. */ + rc = ble_gap_disc_cancel(); + if (rc != 0) { + MODLOG_DFLT(DEBUG, "Failed to cancel scan; rc=%d\n", rc); + return; + } + + /* Figure out address to use for connect (no privacy for now) */ + rc = ble_hs_id_infer_auto(0, &own_addr_type); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); + return; + } + + /* Try to connect the the advertiser. Allow 30 seconds (30000 ms) for + * timeout. + */ + addr = &((struct ble_gap_disc_desc *)disc)->addr; + + rc = ble_gap_connect(own_addr_type, addr, 30000, NULL, + blecoex_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Failed to connect to device \n"); + return; + } + + client_connect = 1; +} + +static int +blecent_on_subscribe(uint16_t conn_handle, + const struct ble_gatt_error *error, + struct ble_gatt_attr *attr, + void *arg) +{ + MODLOG_DFLT(INFO, "Subscribe complete; status=%d conn_handle=%d " + "attr_handle=%d\n", + error->status, conn_handle, attr->handle); + + /* Terminate connection */ + ble_gap_terminate(conn_handle, BLE_ERR_REM_USER_CONN_TERM); + + return 0; +} + +static int +blecent_on_write(uint16_t conn_handle, + const struct ble_gatt_error *error, + struct ble_gatt_attr *attr, + void *arg) +{ + MODLOG_DFLT(INFO, + "Write complete; status=%d conn_handle=%d attr_handle=%d\n", + error->status, conn_handle, attr->handle); + + /* Subscribe to notifications for the Unread Alert Status characteristic. + * A central enables notifications by writing two bytes (1, 0) to the + * characteristic's client-characteristic-configuration-descriptor (CCCD). + */ + const struct peer_dsc *dsc; + uint8_t value[2]; + int rc; + const struct peer *peer = peer_find(conn_handle); + + dsc = peer_dsc_find_uuid(peer, + BLE_UUID16_DECLARE(BLECOEX_SVC_ALERT_UUID), + BLE_UUID16_DECLARE(BLECOEX_CHR_UNR_ALERT_STAT_UUID), + BLE_UUID16_DECLARE(BLE_GATT_DSC_CLT_CFG_UUID16)); + if (dsc == NULL) { + MODLOG_DFLT(ERROR, "Error: Peer lacks a CCCD for the Unread Alert " + "Status characteristic\n"); + goto err; + } + + value[0] = 1; + value[1] = 0; + rc = ble_gattc_write_flat(conn_handle, dsc->dsc.handle, + value, sizeof value, blecent_on_subscribe, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Error: Failed to subscribe to characteristic; " + "rc=%d\n", rc); + goto err; + } + + return 0; +err: + /* Terminate the connection. */ + return ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM); +} + + +static int +blecent_on_read(uint16_t conn_handle, + const struct ble_gatt_error *error, + struct ble_gatt_attr *attr, + void *arg) +{ + MODLOG_DFLT(INFO, "Read complete; status=%d conn_handle=%d", error->status, + conn_handle); + if (error->status == 0) { + MODLOG_DFLT(INFO, " attr_handle=%d value=", attr->handle); + print_mbuf(attr->om); + } + MODLOG_DFLT(INFO, "\n"); + + /* Write two bytes (99, 100) to the alert-notification-control-point + * characteristic. + */ + const struct peer_chr *chr; + uint8_t value[2]; + int rc; + const struct peer *peer = peer_find(conn_handle); + + chr = peer_chr_find_uuid(peer, + BLE_UUID16_DECLARE(BLECOEX_SVC_ALERT_UUID), + BLE_UUID16_DECLARE(BLECOEX_CHR_ALERT_NOT_CTRL_PT)); + if (chr == NULL) { + MODLOG_DFLT(ERROR, "Error: Peer doesn't support the Alert " + "Notification Control Point characteristic\n"); + goto err; + } + value[0] = 99; + value[1] = 100; + rc = ble_gattc_write_flat(conn_handle, chr->chr.val_handle, + value, sizeof value, blecent_on_write, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Error: Failed to write characteristic; rc=%d\n", + rc); + goto err; + } + + return 0; +err: + /* Terminate the connection. */ + return ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM); +} + + +static void +blecent_read_write_subscribe(const struct peer *peer) +{ + const struct peer_chr *chr; + int rc; + + /* Read the supported-new-alert-category characteristic. */ + chr = peer_chr_find_uuid(peer, + BLE_UUID16_DECLARE(BLECOEX_SVC_ALERT_UUID), + BLE_UUID16_DECLARE(BLECOEX_CHR_SUP_NEW_ALERT_CAT_UUID)); + if (chr == NULL) { + MODLOG_DFLT(ERROR, "Error: Peer doesn't support the Supported New " + "Alert Category characteristic\n"); + goto err; + } + + rc = ble_gattc_read(peer->conn_handle, chr->chr.val_handle, + blecent_on_read, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Error: Failed to read characteristic; rc=%d\n", + rc); + goto err; + } + + return; +err: + /* Terminate the connection. */ + ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM); +} + + +static void +blecent_on_disc_complete(const struct peer *peer, int status, void *arg) +{ + + if (status != 0) { + /* Service discovery failed. Terminate the connection. */ + MODLOG_DFLT(ERROR, "Error: Service discovery failed; status=%d " + "conn_handle=%d\n", status, peer->conn_handle); + ble_gap_terminate(peer->conn_handle, BLE_ERR_REM_USER_CONN_TERM); + return; + } + + /* Service discovery has completed successfully. Now we have a complete + * list of services, characteristics, and descriptors that the peer + * supports. + */ + MODLOG_DFLT(INFO, "Service discovery complete; status=%d " + "conn_handle=%d\n", status, peer->conn_handle); + + /* Now perform three GATT procedures against the peer: read, + * write, and subscribe to notifications for the ANS service. + */ + blecent_read_write_subscribe(peer); +} + +static void restart_coex(void) +{ + client_connect = 0; + ble_gap_adv_stop(); + ble_coex_advertise(); +//TODO: Current example only restarts advertising. +#if 0 + ble_gap_disc_cancel(); + ble_coex_scan(); +#endif +} + +static int +blecoex_gap_event(struct ble_gap_event *event, void *arg) +{ + struct ble_gap_conn_desc desc; + int rc; + + switch (event->type) { + case BLE_GAP_EVENT_DISC: + connect_if_interesting(&event->disc); + return 0; + + case BLE_GAP_EVENT_CONNECT: + MODLOG_DFLT(INFO, "%s connection %s; status=%d ", + client_connect == 1 ? "Client" : "Server", + event->connect.status == 0 ? "established" : "failed", + event->connect.status); + + if (event->connect.status == 0 ) { + rc = ble_gap_conn_find(event->connect.conn_handle, &desc); + assert(rc == 0); + MODLOG_DFLT(INFO, "\n"); + + const uint8_t *u8p; + MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", + desc.peer_ota_addr.type); + u8p = desc.peer_ota_addr.val; + MODLOG_DFLT(INFO, "%02x:%02x:%02x:%02x:%02x:%02x", + u8p[5], u8p[4], u8p[3], u8p[2], u8p[1], u8p[0]); + MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", + desc.peer_id_addr.type); + u8p = desc.peer_id_addr.val; + MODLOG_DFLT(INFO, "%02x:%02x:%02x:%02x:%02x:%02x", + u8p[5], u8p[4], u8p[3], u8p[2], u8p[1], u8p[0]); + + } + + if (client_connect == 1 ) { + client_connect = 2; + + /* Remember peer. */ + rc = peer_add(event->connect.conn_handle); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Failed to add peer; rc=%d\n", rc); + restart_coex(); + } + + /* Perform service discovery */ + rc = peer_disc_all(event->connect.conn_handle, + blecent_on_disc_complete, NULL); + if(rc != 0) { + MODLOG_DFLT(ERROR, "Failed to discover services; rc=%d\n", rc); + restart_coex(); + } + } + return 0; + + case BLE_GAP_EVENT_DISCONNECT: + MODLOG_DFLT(INFO, "Disconnect \n"); + restart_coex(); + return 0; + + case BLE_GAP_EVENT_DISC_COMPLETE: + MODLOG_DFLT(INFO, "Discovery completed \n"); + return 0; + + case BLE_GAP_EVENT_SUBSCRIBE: + MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " + "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", + event->subscribe.conn_handle, + event->subscribe.attr_handle, + event->subscribe.reason, + event->subscribe.prev_notify, + event->subscribe.cur_notify, + event->subscribe.prev_indicate, + event->subscribe.cur_indicate); + return 0; + + + default: + return 0; + } +} + +void +ble_coex_scan(void) +{ + uint8_t own_addr_type; + struct ble_gap_disc_params disc_params = {0}; + int rc; + + /* Figure out address to use while advertising (no privacy for now) */ + rc = ble_hs_id_infer_auto(0, &own_addr_type); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); + return; + } + + /* Tell the controller to filter duplicates; we don't want to process + * repeated advertisements from the same device. + */ + disc_params.filter_duplicates = 1; + + /** + * Perform a passive scan. I.e., don't send follow-up scan requests to + * each advertiser. + */ + disc_params.passive = 1; + + /* Use defaults for the rest of the parameters. */ + disc_params.itvl = 0; + disc_params.window = 0; + disc_params.filter_policy = 0; + disc_params.limited = 0; + + /* Start discovery for 120 seconds */ + rc = ble_gap_disc(own_addr_type, (120*1000) , &disc_params, + blecoex_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "Error initiating GAP discovery procedure; rc=%d\n", + rc); + } +} + +void +ble_coex_advertise(void) +{ + struct ble_gap_adv_params adv_params; + struct ble_hs_adv_fields fields; + const char *name; + int rc; + + /** + * Set the advertisement data included in our advertisements: + * o Flags (indicates advertisement type and other general info). + * o Advertising tx power. + * o Device name. + * o 16-bit service UUIDs (alert notifications). + */ + + memset(&fields, 0, sizeof fields); + + /* Advertise two flags: + * o Discoverability in forthcoming advertisement (general) + * o BLE-only (BR/EDR unsupported). + */ + fields.flags = BLE_HS_ADV_F_DISC_GEN | + BLE_HS_ADV_F_BREDR_UNSUP; + + /* Indicate that the TX power level field should be included; have the + * stack fill this value automatically. This is done by assigning the + * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. + */ + fields.tx_pwr_lvl_is_present = 1; + fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; + + name = ble_svc_gap_device_name(); + fields.name = (uint8_t *)name; + fields.name_len = strlen(name); + fields.name_is_complete = 1; + + fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(BLECOEX_SVC_ALERT_UUID) + }; + fields.num_uuids16 = 1; + fields.uuids16_is_complete = 1; + + rc = ble_gap_adv_set_fields(&fields); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); + return; + } + + /* Begin advertising. */ + memset(&adv_params, 0, sizeof adv_params); + adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; + adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; + rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, + &adv_params, blecoex_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); + return; + } +} + +static void on_sync(void) +{ + int rc; + + ble_hs_util_ensure_addr(0); + + ble_hs_id_infer_auto(0, &own_addr_type); + ble_svc_gap_device_name_set("NimBLE Coex"); + ble_coex_advertise(); + + // Start scanning as a client + rc = ble_hs_util_ensure_addr(0); + assert(rc == 0); + + ble_coex_scan(); +} + +void ble_hs_task(void *param) +{ + MODLOG_DFLT(INFO, "BLE Host Task Started"); + /* This function will return only when nimble_port_stop() is executed */ + nimble_port_run(); + + nimble_port_freertos_deinit(); +} + + +void app_main(void) +{ + /* Initialize NVS — it is used to store PHY calibration data */ + esp_err_t ret = nvs_flash_init(); + + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + nimble_port_init(); + + ble_hs_cfg.sync_cb = on_sync; +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); +#else + peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); +#endif + ble_svc_gap_init(); + ble_svc_gatt_init(); + ble_svc_ans_init(); + + ble_gatts_count_cfg(gatt_svr_svcs); + ble_gatts_add_svcs(gatt_svr_svcs); + + nimble_port_freertos_init(ble_hs_task); +} diff --git a/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c b/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c index 0ac1b7d6019..510139146eb 100644 --- a/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_htp/htp_cent/main/main.c @@ -698,9 +698,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("nimble-htp-cent"); diff --git a/examples/bluetooth/nimble/ble_htp/htp_cent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_htp/htp_cent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..7bcce855af5 --- /dev/null +++ b/examples/bluetooth/nimble/ble_htp/htp_cent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_htp/htp_prph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_htp/htp_prph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..9fcb3a5cdeb --- /dev/null +++ b/examples/bluetooth/nimble/ble_htp/htp_prph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,46 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4000 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c index 644e19476dc..209d5e2e841 100644 --- a/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c +++ b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/main/main.c @@ -572,9 +572,13 @@ app_main(void) #endif /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("blecent-l2coc"); diff --git a/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..f2e5d8cb145 --- /dev/null +++ b/examples/bluetooth/nimble/ble_l2cap_coc/coc_blecent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,50 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM=1 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=30 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=512 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_l2cap_coc/coc_bleprph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_l2cap_coc/coc_bleprph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..f2e5d8cb145 --- /dev/null +++ b/examples/bluetooth/nimble/ble_l2cap_coc/coc_bleprph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,50 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM=1 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=30 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=512 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_multi_adv/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_multi_adv/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..d465b30d89e --- /dev/null +++ b/examples/bluetooth/nimble/ble_multi_adv/sdkconfig.defaults.dram_optimised @@ -0,0 +1,49 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=y +CONFIG_BT_NIMBLE_MAX_EXT_ADV_INSTANCES=4 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_multi_conn/ble_multi_conn_cent/main/main.c b/examples/bluetooth/nimble/ble_multi_conn/ble_multi_conn_cent/main/main.c index 4b5c47f1bc5..6acd00750c5 100644 --- a/examples/bluetooth/nimble/ble_multi_conn/ble_multi_conn_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_multi_conn/ble_multi_conn_cent/main/main.c @@ -454,9 +454,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM); + assert(rc == 0); +#else rc = peer_init(BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM, BLE_PEER_MAX_NUM); assert(rc == 0); - +#endif /* Set the default device name. We will act as both central and peripheral. */ rc = ble_svc_gap_device_name_set("esp-ble-role-coex"); assert(rc == 0); diff --git a/examples/bluetooth/nimble/ble_pawr_adv/ble_pawr_sync/main/main.c b/examples/bluetooth/nimble/ble_pawr_adv/ble_pawr_sync/main/main.c index c0a8ef0b60d..dc9d1b83e2f 100644 --- a/examples/bluetooth/nimble/ble_pawr_adv/ble_pawr_sync/main/main.c +++ b/examples/bluetooth/nimble/ble_pawr_adv/ble_pawr_sync/main/main.c @@ -22,7 +22,6 @@ static void start_scan(void); static struct ble_hs_adv_fields fields; static bool synced = false; -uint8_t rsp_slot_idx = 0; static int gap_event_cb(struct ble_gap_event *event, void *arg) { @@ -57,12 +56,11 @@ gap_event_cb(struct ble_gap_event *event, void *arg) event->periodic_report.event_counter, event->periodic_report.subevent); - rsp_slot_idx += 1; struct ble_gap_periodic_adv_response_params param = { .request_event = event->periodic_report.event_counter, .request_subevent = event->periodic_report.subevent, .response_subevent = event->periodic_report.subevent, - .response_slot = rsp_slot_idx, + .response_slot = 2, }; struct os_mbuf *data = os_msys_get_pkthdr(BLE_PAWR_RSP_DATA_LEN, 0); @@ -129,8 +127,9 @@ static int create_periodic_sync(struct ble_gap_ext_disc_desc *disc) { int rc; - struct ble_gap_periodic_sync_params params; + struct ble_gap_periodic_sync_params params = {0}; + memset(¶ms, 0, sizeof(params)); params.skip = 0; params.sync_timeout = 4000; params.reports_disabled = 0; @@ -159,9 +158,11 @@ start_scan(void) int rc; struct ble_gap_ext_disc_params disc_params; + /* Perform a passive scan. I.e., don't send follow-up scan requests to * each advertiser. */ + memset(&disc_params, 0, sizeof(disc_params)); disc_params.itvl = BLE_GAP_SCAN_ITVL_MS(600); disc_params.window = BLE_GAP_SCAN_ITVL_MS(300); disc_params.passive = 1; @@ -182,23 +183,6 @@ on_reset(int reason) ESP_LOGE(TAG, "Resetting state; reason=%d\n", reason); } -/* Cnnot find `ble_single_xxxx()`, workaround */ -// static void -// on_sync(void) -// { -// int ble_single_env_init(void); -// int ble_single_init(void); - -// int rc; - -// rc = ble_single_env_init(); -// assert(!rc); -// rc = ble_single_init(); -// assert(!rc); - -// start_scan(); -// } - static void on_sync(void) { diff --git a/examples/bluetooth/nimble/ble_pawr_adv_conn/ble_pawr_sync_conn/main/main.c b/examples/bluetooth/nimble/ble_pawr_adv_conn/ble_pawr_sync_conn/main/main.c index 967d7c9e3f4..e43a975ce43 100644 --- a/examples/bluetooth/nimble/ble_pawr_adv_conn/ble_pawr_sync_conn/main/main.c +++ b/examples/bluetooth/nimble/ble_pawr_adv_conn/ble_pawr_sync_conn/main/main.c @@ -185,8 +185,8 @@ static int create_periodic_sync(struct ble_gap_ext_disc_desc *disc) { int rc; - struct ble_gap_periodic_sync_params params; - + struct ble_gap_periodic_sync_params params = {0}; + memset(¶ms, 0, sizeof(params)); params.skip = 0; params.sync_timeout = 4000; params.reports_disabled = 0; @@ -218,6 +218,7 @@ start_scan(void) /* Perform a passive scan. I.e., don't send follow-up scan requests to * each advertiser. */ + memset(&disc_params, 0, sizeof(disc_params)); disc_params.itvl = BLE_GAP_SCAN_ITVL_MS(600); disc_params.window = BLE_GAP_SCAN_ITVL_MS(300); disc_params.passive = 1; @@ -238,23 +239,6 @@ on_reset(int reason) ESP_LOGE(TAG, "Resetting state; reason=%d\n", reason); } -/* Cnnot find `ble_single_xxxx()`, workaround */ -// static void -// on_sync(void) -// { -// int ble_single_env_init(void); -// int ble_single_init(void); - -// int rc; - -// rc = ble_single_env_init(); -// assert(!rc); -// rc = ble_single_init(); -// assert(!rc); - -// start_scan(); -// } - static void on_sync(void) { diff --git a/examples/bluetooth/nimble/ble_periodic_adv/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_periodic_adv/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..b42d28d3786 --- /dev/null +++ b/examples/bluetooth/nimble/ble_periodic_adv/sdkconfig.defaults.dram_optimised @@ -0,0 +1,50 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_EXAMPLE_EXTENDED_ADV=y +CONFIG_BT_NIMBLE_EXT_ADV=y +CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=1 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_periodic_sync/main/main.c b/examples/bluetooth/nimble/ble_periodic_sync/main/main.c index 869a4d32bc3..567338d5d25 100644 --- a/examples/bluetooth/nimble/ble_periodic_sync/main/main.c +++ b/examples/bluetooth/nimble/ble_periodic_sync/main/main.c @@ -203,9 +203,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("nimble_periodic_sync"); diff --git a/examples/bluetooth/nimble/ble_periodic_sync/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_periodic_sync/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..b42d28d3786 --- /dev/null +++ b/examples/bluetooth/nimble/ble_periodic_sync/sdkconfig.defaults.dram_optimised @@ -0,0 +1,50 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_EXAMPLE_EXTENDED_ADV=y +CONFIG_BT_NIMBLE_EXT_ADV=y +CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=1 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c b/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c index c6520f98fce..09eb5f6cc61 100644 --- a/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_phy/phy_cent/main/main.c @@ -553,9 +553,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("blecent-phy"); diff --git a/examples/bluetooth/nimble/ble_phy/phy_cent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_phy/phy_cent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..0749ca371a2 --- /dev/null +++ b/examples/bluetooth/nimble/ble_phy/phy_cent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,49 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=y +CONFIG_BT_NIMBLE_BLE_GATT_BLOB_TRANSFER=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_phy/phy_prph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_phy/phy_prph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..61ac1083d4f --- /dev/null +++ b/examples/bluetooth/nimble/ble_phy/phy_prph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=y +CONFIG_BT_NIMBLE_BLE_GATT_BLOB_TRANSFER=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c index 452c881554f..4c73890b93b 100644 --- a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c +++ b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/main/main.c @@ -722,9 +722,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("nimble-prox-cent"); diff --git a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..7bcce855af5 --- /dev/null +++ b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_cent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_prph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_prph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..4b4d5ca9522 --- /dev/null +++ b/examples/bluetooth/nimble/ble_proximity_sensor/proximity_sensor_prph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,45 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_spp/spp_client/main/main.c b/examples/bluetooth/nimble/ble_spp/spp_client/main/main.c index 8e9136de969..4b479214c39 100644 --- a/examples/bluetooth/nimble/ble_spp/spp_client/main/main.c +++ b/examples/bluetooth/nimble/ble_spp/spp_client/main/main.c @@ -488,9 +488,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("nimble-ble-spp-client"); diff --git a/examples/bluetooth/nimble/ble_spp/spp_client/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_spp/spp_client/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..10c7480beec --- /dev/null +++ b/examples/bluetooth/nimble/ble_spp/spp_client/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=3 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/ble_spp/spp_server/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/ble_spp/spp_server/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..e8446703e99 --- /dev/null +++ b/examples/bluetooth/nimble/ble_spp/spp_server/sdkconfig.defaults.dram_optimised @@ -0,0 +1,45 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=3 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/blecent/README.md b/examples/bluetooth/nimble/blecent/README.md index 0ef30585b2a..91da092ad60 100644 --- a/examples/bluetooth/nimble/blecent/README.md +++ b/examples/bluetooth/nimble/blecent/README.md @@ -131,6 +131,35 @@ GAP procedure initiated: terminate connection; conn_handle=0 hci_reason=19 disconnect; reason=534 ``` +The following configuration flags can be adjusted to significantly reduce RAM usage in your ESP-IDF project while retaining basic BLE functionality. +---------------------------------------------------------------------------------------------- +| Config Option || Old → New Value || RAM Saved (Bytes) | +|--------------------------------------------------||------------------||--------------------| +| CONFIG_BT_NIMBLE_SM_SC || y → n || 2040 | +| CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION || y → n || 32 | +| CONFIG_BT_NIMBLE_GATT_MAX_PROCS || 4 → 2 || 112 | +| CONFIG_BT_NIMBLE_MAX_CONNECTIONS || 3 → 1 || 480 | +| CONFIG_BT_NIMBLE_MAX_BONDS || 3 → 1 || 448 | +| CONFIG_BT_NIMBLE_MAX_CCCDS || 8 → 1 || 112 | +| CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT || y → n || 256 | +| CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT || 30 → 15 || 240 | +| CONFIG_BT_NIMBLE_SECURITY_ENABLE || y → n || 2072 | +| CONFIG_SPI_FLASH_ROM_IMPL || n → y || 9804 | +| CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP || y → n || 0 | +| CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP || y → n || 140 | +| CONFIG_SPI_FLASH_SUPPORT_GD_CHIP || y → n || 648 | +| CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP || y → n || 8 | +| CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP || y → n || 140 | +| CONFIG_SPI_FLASH_SUPPORT_TH_CHIP || y → n || 136 | +| CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE || y → n || 704 | +| CONFIG_VFS_SUPPORT_TERMIOS || y → n || 424 | +| CONFIG_VFS_SUPPORT_IO || y → n || 2008 | +| CONFIG_COMPILER_OPTIMIZATION_SIZE || n → y || 8408 | +| CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE || n → y || 5896 | +| CONFIG_ESP_COEX_SW_COEXIST_ENABLE || y → n || 896 | +| ESP_TASK_WDT_EN || y → n || 528 | +| CONFIG_LOG_DEFAULT_LEVEL_NONE || n → y || 2592 | +---------------------------------------------------------------------------------------------- ## Troubleshooting diff --git a/examples/bluetooth/nimble/blecent/main/main.c b/examples/bluetooth/nimble/blecent/main/main.c index d2254d9239b..d0b0c65e28b 100644 --- a/examples/bluetooth/nimble/blecent/main/main.c +++ b/examples/bluetooth/nimble/blecent/main/main.c @@ -709,7 +709,9 @@ static void blecent_power_control(uint16_t conn_handle) static int blecent_gap_event(struct ble_gap_event *event, void *arg) { +#if NIMBLE_BLE_CONNECT struct ble_gap_conn_desc desc; +#endif struct ble_hs_adv_fields fields; #if MYNEWT_VAL(BLE_HCI_VS) #if MYNEWT_VAL(BLE_POWER_CONTROL) @@ -732,7 +734,7 @@ blecent_gap_event(struct ble_gap_event *event, void *arg) /* Try to connect to the advertiser if it looks interesting. */ blecent_connect_if_interesting(&event->disc); return 0; - +#if NIMBLE_BLE_CONNECT case BLE_GAP_EVENT_CONNECT: /* A new connection was established or a connection attempt failed. */ if (event->connect.status == 0) { @@ -966,6 +968,8 @@ blecent_gap_event(struct ble_gap_event *event, void *arg) #endif #endif return 0; + +#endif default: return 0; } @@ -1041,7 +1045,6 @@ static void stack_init_deinit(void) void app_main(void) { - int rc; /* Initialize NVS — it is used to store PHY calibration data */ esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { @@ -1061,6 +1064,8 @@ app_main(void) ble_hs_cfg.sync_cb = blecent_on_sync; ble_hs_cfg.store_status_cb = ble_store_util_status_rr; +#if NIMBLE_BLE_CONNECT + int rc; /* Initialize data structures to track connected peers. */ #if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); @@ -1069,11 +1074,13 @@ app_main(void) rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); #endif +#endif #if CONFIG_BT_NIMBLE_GAP_SERVICE + int m; /* Set the default device name. */ - rc = ble_svc_gap_device_name_set("nimble-blecent"); - assert(rc == 0); + m = ble_svc_gap_device_name_set("nimble-blecent"); + assert(m == 0); #endif /* XXX Need to have template for store */ diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.central b/examples/bluetooth/nimble/blecent/sdkconfig.ci.central new file mode 100644 index 00000000000..ed14605bc25 --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.central @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n +CONFIG_BT_NIMBLE_ROLE_OBSERVER=n +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_broadcaster b/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_broadcaster new file mode 100644 index 00000000000..f78a87edcf7 --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_broadcaster @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_peripheral b/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_peripheral new file mode 100644 index 00000000000..6fb03c183cc --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.no_peripheral @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.observer b/examples/bluetooth/nimble/blecent/sdkconfig.ci.observer new file mode 100644 index 00000000000..618e1ece537 --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.observer @@ -0,0 +1,11 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=n +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n +CONFIG_BT_NIMBLE_SECURITY_ENABLE=n diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/blecent/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..7bcce855af5 --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/blecsc/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/blecsc/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..7bcce855af5 --- /dev/null +++ b/examples/bluetooth/nimble/blecsc/sdkconfig.defaults.dram_optimised @@ -0,0 +1,47 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/blehr/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/blehr/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..856479767db --- /dev/null +++ b/examples/bluetooth/nimble/blehr/sdkconfig.defaults.dram_optimised @@ -0,0 +1,48 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4000 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/bleprph/README.md b/examples/bluetooth/nimble/bleprph/README.md index 6f259edc5d3..ebb43f11a54 100644 --- a/examples/bluetooth/nimble/bleprph/README.md +++ b/examples/bluetooth/nimble/bleprph/README.md @@ -92,6 +92,35 @@ Notification sent successfully ## Note * NVS support is not yet integrated to bonding. So, for now, bonding is not persistent across reboot. +The following configuration flags can be adjusted to significantly reduce RAM usage in your ESP-IDF project while retaining basic BLE functionality. +---------------------------------------------------------------------------------------------- +| Config Option || Old → New Value || RAM Saved (Bytes) | +|--------------------------------------------------||------------------||--------------------| +| CONFIG_BT_NIMBLE_SM_SC || y → n || 2016 | +| CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION || y → n || 32 | +| CONFIG_BT_NIMBLE_GATT_MAX_PROCS || 4 → 2 || 112 | +| CONFIG_BT_NIMBLE_MAX_CONNECTIONS || 3 → 1 || 480 | +| CONFIG_BT_NIMBLE_MAX_BONDS || 3 → 1 || 448 | +| CONFIG_BT_NIMBLE_MAX_CCCDS || 8 → 1 || 112 | +| CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT || y → n || 256 | +| CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT || 30 → 15 || 240 | +| CONFIG_BT_NIMBLE_SECURITY_ENABLE || y → n || 2048 | +| CONFIG_SPI_FLASH_ROM_IMPL || n → y || 9804 | +| CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP || y → n || 8 | +| CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP || y → n || 132 | +| CONFIG_SPI_FLASH_SUPPORT_GD_CHIP || y → n || 640 | +| CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP || y → n || 0 | +| CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP || y → n || 132 | +| CONFIG_SPI_FLASH_SUPPORT_TH_CHIP || y → n || 128 | +| CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE || y → n || 696 | +| CONFIG_VFS_SUPPORT_TERMIOS || y → n || 424 | +| CONFIG_VFS_SUPPORT_IO || y → n || 3000 | +| CONFIG_COMPILER_OPTIMIZATION_SIZE || n → y || 8912 | +| CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE || n → y || 8456 | +| CONFIG_ESP_COEX_SW_COEXIST_ENABLE || y → n || 896 | +| CONFIG_LOG_DEFAULT_LEVEL_NONE || n → y || 2568 | +---------------------------------------------------------------------------------------------- + ## Troubleshooting For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon. diff --git a/examples/bluetooth/nimble/bleprph/main/main.c b/examples/bluetooth/nimble/bleprph/main/main.c index 5d01fe9604f..522d7fdac2b 100644 --- a/examples/bluetooth/nimble/bleprph/main/main.c +++ b/examples/bluetooth/nimble/bleprph/main/main.c @@ -52,6 +52,7 @@ static uint16_t bearers; void ble_store_config_init(void); +#if NIMBLE_BLE_CONNECT /** * Logs information about a connection to the console. */ @@ -78,6 +79,7 @@ bleprph_print_conn_desc(struct ble_gap_conn_desc *desc) desc->sec_state.authenticated, desc->sec_state.bonded); } +#endif #if CONFIG_EXAMPLE_EXTENDED_ADV /** @@ -148,7 +150,9 @@ bleprph_advertise(void) { struct ble_gap_adv_params adv_params; struct ble_hs_adv_fields fields; +#if CONFIG_BT_NIMBLE_GAP_SERVICE const char *name; +#endif int rc; /** @@ -175,10 +179,12 @@ bleprph_advertise(void) fields.tx_pwr_lvl_is_present = 1; fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; +#if CONFIG_BT_NIMBLE_GAP_SERVICE name = ble_svc_gap_device_name(); fields.name = (uint8_t *)name; fields.name_len = strlen(name); fields.name_is_complete = 1; +#endif fields.uuids16 = (ble_uuid16_t[]) { BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) @@ -236,10 +242,14 @@ static void bleprph_power_control(uint16_t conn_handle) static int bleprph_gap_event(struct ble_gap_event *event, void *arg) { +#if NIMBLE_BLE_CONNECT struct ble_gap_conn_desc desc; int rc; +#endif switch (event->type) { + +#if NIMBLE_BLE_CONNECT case BLE_GAP_EVENT_CONNECT: /* A new connection was established or a connection attempt failed. */ MODLOG_DFLT(INFO, "connection %s; status=%d ", @@ -463,9 +473,9 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg) event->subrate_change.status, event->subrate_change.subrate_factor); return 0; +#endif #endif } - return 0; } @@ -594,9 +604,11 @@ app_main(void) assert(rc == 0); #endif +#if CONFIG_BT_NIMBLE_GAP_SERVICE /* Set the default device name. */ rc = ble_svc_gap_device_name_set("nimble-bleprph"); assert(rc == 0); +#endif /* XXX Need to have template for store */ ble_store_config_init(); diff --git a/examples/bluetooth/nimble/bleprph/sdkconfig.ci.broadcaster b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.broadcaster new file mode 100644 index 00000000000..a354bd8cbac --- /dev/null +++ b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.broadcaster @@ -0,0 +1,11 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=n +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=n +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n +CONFIG_BT_NIMBLE_SECURITY_ENABLE=n diff --git a/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_central b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_central new file mode 100644 index 00000000000..fdbdfba3d5a --- /dev/null +++ b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_central @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=n +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y diff --git a/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_observer b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_observer new file mode 100644 index 00000000000..12c1962b966 --- /dev/null +++ b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.no_observer @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=n +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y diff --git a/examples/bluetooth/nimble/bleprph/sdkconfig.ci.peripheral b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.peripheral new file mode 100644 index 00000000000..69f6c440bac --- /dev/null +++ b/examples/bluetooth/nimble/bleprph/sdkconfig.ci.peripheral @@ -0,0 +1,10 @@ +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_ROLE_CENTRAL=n +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n +CONFIG_BT_NIMBLE_ROLE_OBSERVER=n +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y diff --git a/examples/bluetooth/nimble/bleprph/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/bleprph/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..4b4d5ca9522 --- /dev/null +++ b/examples/bluetooth/nimble/bleprph/sdkconfig.defaults.dram_optimised @@ -0,0 +1,45 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_ROM_IMPL=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/common/nimble_central_utils/peer.c b/examples/bluetooth/nimble/common/nimble_central_utils/peer.c index 5635b26b4f2..e4a2070cfb5 100644 --- a/examples/bluetooth/nimble/common/nimble_central_utils/peer.c +++ b/examples/bluetooth/nimble/common/nimble_central_utils/peer.c @@ -9,6 +9,7 @@ #include "host/ble_hs.h" #include "esp_central.h" +#if NIMBLE_BLE_CONNECT static void *peer_svc_mem; static struct os_mempool peer_svc_pool; @@ -601,13 +602,16 @@ peer_disc_incs(struct peer *peer) } } } - svc = peer->cur_svc; - rc = ble_gattc_find_inc_svcs(peer->conn_handle, - svc->svc.start_handle, - svc->svc.end_handle, - peer_inc_disced, peer); - if (rc != 0) { + if (svc != NULL && !peer_svc_is_empty(svc)) { + rc = ble_gattc_find_inc_svcs(peer->conn_handle, + svc->svc.start_handle, + svc->svc.end_handle, + peer_inc_disced, peer); + if (rc != 0) { + peer_disc_chrs(peer); + } + } else { peer_disc_chrs(peer); } } @@ -1089,3 +1093,4 @@ err: peer_free_mem(); return rc; } +#endif diff --git a/examples/bluetooth/nimble/power_save/sdkconfig.defaults.dram_optimised b/examples/bluetooth/nimble/power_save/sdkconfig.defaults.dram_optimised new file mode 100644 index 00000000000..28452929c48 --- /dev/null +++ b/examples/bluetooth/nimble/power_save/sdkconfig.defaults.dram_optimised @@ -0,0 +1,56 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y + +# Enable support for power management +CONFIG_PM_ENABLE=y +# Enable tickless idle mode +CONFIG_FREERTOS_USE_TICKLESS_IDLE=y +# Set the tick rate at which FreeRTOS does pre-emptive context switching. +CONFIG_FREERTOS_HZ=1000 +# Minimum number of ticks to enter sleep mode for +CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4000 + +CONFIG_BT_NIMBLE_SM_SC=n +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=1 +CONFIG_BT_NIMBLE_MAX_CCCDS=1 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15 + +#Uncomment below, if security needs to be disabled +#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n + +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n +CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n + +CONFIG_VFS_SUPPORT_TERMIOS=n +CONFIG_VFS_SUPPORT_IO=n + +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n + +CONFIG_ESP_TASK_WDT_EN=n + +#Uncomment below, if logging needs to be disabled +#CONFIG_LOG_DEFAULT_LEVEL_NONE=y +#CONFIG_LOG_DEFAULT_LEVEL=0 diff --git a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/gattc.h b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/gattc.h index 99834981230..aea4a3762fe 100644 --- a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/gattc.h +++ b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/gattc.h @@ -50,10 +50,21 @@ struct peer_chr { }; SLIST_HEAD(peer_chr_list, peer_chr); +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) +struct peer_incl_svc { + SLIST_ENTRY(peer_incl_svc) next; + struct ble_gatt_incl_svc svc; +}; +SLIST_HEAD(peer_incl_svc_list, peer_incl_svc); +#endif + struct peer_svc { SLIST_ENTRY(peer_svc) next; struct ble_gatt_svc svc; +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + struct peer_incl_svc_list incl_svc; +#endif struct peer_chr_list chrs; }; SLIST_HEAD(peer_svc_list, peer_svc); @@ -90,7 +101,11 @@ const struct peer_svc * peer_svc_find_uuid(const struct peer *peer, const ble_uuid_t *uuid); int peer_delete(uint16_t conn_handle); int peer_add(uint16_t conn_handle); +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) +int peer_init(int max_peers, int max_svcs, int max_incl_svcs, int max_chrs, int max_dscs); +#else int peer_init(int max_peers, int max_svcs, int max_chrs, int max_dscs); +#endif struct peer * peer_find(uint16_t conn_handle); /* Console */ diff --git a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c index 2bfbf5e0401..49d1007a94a 100644 --- a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c +++ b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/main.c @@ -938,9 +938,13 @@ app_main(void) ble_hs_cfg.store_status_cb = ble_store_util_status_rr; /* Initialize data structures to track connected peers. */ +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64, 64); + assert(rc == 0); +#else rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64); assert(rc == 0); - +#endif /* Set the default device name. */ rc = ble_svc_gap_device_name_set("gattc-throughput"); assert(rc == 0); diff --git a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/peer.c b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/peer.c index e7e655cd1f7..4ef4ab09d97 100644 --- a/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/peer.c +++ b/examples/bluetooth/nimble/throughput_app/blecent_throughput/main/peer.c @@ -12,6 +12,11 @@ static void *peer_svc_mem; static struct os_mempool peer_svc_pool; +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) +static void *peer_incl_svc_mem; +static struct os_mempool peer_incl_svc_pool; +#endif + static void *peer_chr_mem; static struct os_mempool peer_chr_pool; @@ -44,7 +49,13 @@ static int peer_dsc_disced(uint16_t conn_handle, const struct ble_gatt_error *error, uint16_t chr_val_handle, const struct ble_gatt_dsc *dsc, void *arg); - +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) +static int +peer_inc_disced(uint16_t conn_handle, const struct ble_gatt_error *error, + const struct ble_gatt_incl_svc *service, void *arg); +static void +peer_disc_incs(struct peer *peer); +#endif struct peer * peer_find(uint16_t conn_handle) { @@ -420,6 +431,193 @@ peer_disc_chrs(struct peer *peer) peer_disc_dscs(peer); } +#if (MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES)) +static struct peer_incl_svc * +peer_incl_svc_find_prev(const struct peer_svc *svc, uint16_t incl_svc_handle) +{ + struct peer_incl_svc *prev; + struct peer_incl_svc *incl_svc; + + prev = NULL; + SLIST_FOREACH(incl_svc, &svc->incl_svc, next) { + if (incl_svc->svc.handle >= incl_svc_handle) { + break; + } + + prev = incl_svc; + } + + return prev; +} + +static struct peer_incl_svc * +peer_incl_svc_find(const struct peer_svc *svc, uint16_t incl_svc_handle, + struct peer_incl_svc **out_prev) +{ + struct peer_incl_svc *prev; + struct peer_incl_svc *incl_svc; + + prev = peer_incl_svc_find_prev(svc, incl_svc_handle); + if (prev == NULL) { + incl_svc = SLIST_FIRST(&svc->incl_svc); + } else { + incl_svc = SLIST_NEXT(prev, next); + } + + if (incl_svc != NULL && incl_svc->svc.handle != incl_svc_handle) { + incl_svc = NULL; + } + + if (out_prev != NULL) { + *out_prev = prev; + } + return incl_svc; +} + +static void +peer_incl_svc_delete(struct peer_incl_svc *incl_svc) +{ + os_memblock_put(&peer_incl_svc_pool, incl_svc); +} + +static int +peer_inc_add(struct peer *peer, uint16_t svc_start_handle, + const struct ble_gatt_incl_svc *gatt_incl_svc) +{ + struct peer_incl_svc *incl_svc; + struct peer_incl_svc *incl_svc_prev; + struct peer_svc *cur_svc; + struct peer_svc *svc; + struct peer_svc *prev; + + svc = peer_svc_find(peer, gatt_incl_svc->start_handle, &prev); + + if (!svc) { + /* secondary service */ + svc = os_memblock_get(&peer_svc_pool); + if (svc == NULL) { + /* out of memory */ + return BLE_HS_ENOMEM; + } + + memset(svc, 0, sizeof *svc); + svc->svc.start_handle = gatt_incl_svc->start_handle; + svc->svc.end_handle = gatt_incl_svc->end_handle; + memcpy(&svc->svc.uuid, &gatt_incl_svc->uuid, sizeof(ble_uuid_any_t)); + + SLIST_INIT(&svc->chrs); + SLIST_INIT(&svc->incl_svc); + + if (prev == NULL) { + SLIST_INSERT_HEAD(&peer->svcs, svc, next); + } else { + SLIST_INSERT_AFTER(prev, svc, next); + } + } + + /* Including the services into inlucding list */ + + cur_svc = peer_svc_find_range(peer, gatt_incl_svc->handle); + + if (cur_svc == NULL) { + /* Can't find service for discovered included service; this shouldn't + * happen. + */ + assert(0); + return BLE_HS_EUNKNOWN; + } + + incl_svc = peer_incl_svc_find(cur_svc, gatt_incl_svc->handle, &incl_svc_prev); + if (incl_svc != NULL) { + /* Already discovered */ + return 0; + } + + incl_svc = os_memblock_get(&peer_incl_svc_pool); + if (incl_svc == NULL) { + return BLE_HS_ENOMEM; + } + + incl_svc->svc = *gatt_incl_svc; + + if (incl_svc_prev == NULL) { + SLIST_INSERT_HEAD(&cur_svc->incl_svc, incl_svc, next); + } else { + SLIST_INSERT_AFTER(incl_svc_prev, incl_svc, next); + } + + BLE_HS_LOG(DEBUG, "Inc Service added with handle = %d", gatt_incl_svc->handle); + + return 0; +} + + +static int +peer_inc_disced(uint16_t conn_handle, const struct ble_gatt_error *error, + const struct ble_gatt_incl_svc *service, void *arg) +{ + struct peer *peer; + int rc; + + peer = arg; + assert(peer->conn_handle == conn_handle); + + switch (error->status) { + case 0: + rc = peer_inc_add(peer, peer->cur_svc->svc.start_handle, service); + break; + + case BLE_HS_EDONE: + peer_disc_incs(peer); + rc = 0; + break; + + default: + rc = error->status; + break; + } + + if (rc != 0) { + /* Error; abort discovery. */ + peer_disc_complete(peer, rc); + } + + return rc; +} + +static void +peer_disc_incs(struct peer *peer) +{ + struct peer_svc *svc; + int rc; + + if (peer->cur_svc == NULL) { + peer->cur_svc = SLIST_FIRST(&peer->svcs); + } else { + peer->cur_svc = SLIST_NEXT(peer->cur_svc, next); + if (peer->cur_svc == NULL) { + if (peer->disc_prev_chr_val > 0) { + peer_disc_chrs(peer); + return; + } + } + } + + svc = peer->cur_svc; + if (svc != NULL && !peer_svc_is_empty(svc)) { + rc = ble_gattc_find_inc_svcs(peer->conn_handle, + svc->svc.start_handle, + svc->svc.end_handle, + peer_inc_disced, peer); + if (rc != 0) { + peer_disc_chrs(peer); + } + } else { + peer_disc_chrs(peer); + } +} +#endif + int peer_svc_is_empty(const struct peer_svc *svc) { @@ -576,6 +774,14 @@ peer_svc_delete(struct peer_svc *svc) { struct peer_chr *chr; +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + struct peer_incl_svc *incl_svc; + + while ((incl_svc = SLIST_FIRST(&svc->incl_svc)) != NULL) { + SLIST_REMOVE_HEAD(&svc->incl_svc, next); + peer_incl_svc_delete(incl_svc); + } +#endif while ((chr = SLIST_FIRST(&svc->chrs)) != NULL) { SLIST_REMOVE_HEAD(&svc->chrs, next); peer_chr_delete(chr); @@ -600,10 +806,16 @@ peer_svc_disced(uint16_t conn_handle, const struct ble_gatt_error *error, break; case BLE_HS_EDONE: - /* All services discovered; start discovering characteristics. */ + /* All services discovered; start discovering incs.*/ +#if (MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES)) + peer->cur_svc = NULL; + peer_disc_incs(peer); +#else + /* All services discovered; start discovering characteristics. */ if (peer->disc_prev_chr_val > 0) { peer_disc_chrs(peer); } +#endif rc = 0; break; @@ -711,6 +923,11 @@ peer_free_mem(void) free(peer_svc_mem); peer_svc_mem = NULL; +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + free(peer_incl_svc_mem); + peer_incl_svc_mem = NULL; +#endif + free(peer_chr_mem); peer_chr_mem = NULL; @@ -718,8 +935,13 @@ peer_free_mem(void) peer_dsc_mem = NULL; } +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) +int +peer_init(int max_peers, int max_svcs, int max_incl_svcs, int max_chrs, int max_dscs) +#else int peer_init(int max_peers, int max_svcs, int max_chrs, int max_dscs) +#endif { int rc; @@ -756,6 +978,23 @@ peer_init(int max_peers, int max_svcs, int max_chrs, int max_dscs) goto err; } +#if MYNEWT_VAL(BLE_INCL_SVC_DISCOVERY) || MYNEWT_VAL(BLE_GATT_CACHING_INCLUDE_SERVICES) + peer_incl_svc_mem = malloc( + OS_MEMPOOL_BYTES(max_incl_svcs, sizeof(struct peer_incl_svc))); + + if (peer_incl_svc_mem == NULL) { + rc = BLE_HS_ENOMEM; + goto err; + } + + rc = os_mempool_init(&peer_incl_svc_pool, max_incl_svcs, + sizeof(struct peer_incl_svc), peer_incl_svc_mem, + "peer_incl_svc_pool"); + if (rc != 0) { + rc = BLE_HS_EOS; + goto err; + } +#endif peer_chr_mem = malloc( OS_MEMPOOL_BYTES(max_chrs, sizeof (struct peer_chr))); if (peer_chr_mem == NULL) { diff --git a/examples/network/bridge/pytest_example_bridge.py b/examples/network/bridge/pytest_example_bridge.py index 419cce09ab4..09b94ce5136 100644 --- a/examples/network/bridge/pytest_example_bridge.py +++ b/examples/network/bridge/pytest_example_bridge.py @@ -1,7 +1,10 @@ # SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 +import base64 +import io import ipaddress import logging +import os import re import socket import subprocess @@ -9,6 +12,7 @@ import time from concurrent.futures import Future from concurrent.futures import ThreadPoolExecutor from typing import List +from typing import Optional from typing import Union import netifaces @@ -18,7 +22,11 @@ from common_test_methods import get_host_ip_by_interface from netmiko import ConnectHandler from pytest_embedded import Dut + # Testbed configuration + +ETHVM_ENDNODE_USER = 'ci.ethvm' + BR_PORTS_NUM = 2 IPERF_BW_LIM = 6 MIN_UDP_THROUGHPUT = 5 @@ -26,13 +34,17 @@ MIN_TCP_THROUGHPUT = 4 class EndnodeSsh: - def __init__(self, host_ip: str, usr: str, passwd: str): + def __init__(self, host_ip: str, usr: str, passwd: Optional[str] = None): + key_string = os.getenv('CI_ETHVM_KEY') + key = None + if key_string: + decoded_key_string = base64.b64decode(key_string) + key = paramiko.Ed25519Key.from_private_key(io.StringIO(decoded_key_string.decode('utf-8'))) + self.host_ip = host_ip self.ssh_client = paramiko.SSHClient() self.ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - self.ssh_client.connect(hostname=self.host_ip, - username=usr, - password=passwd) + self.ssh_client.connect(hostname=self.host_ip, username=usr, pkey=key, password=passwd) self.executor: ThreadPoolExecutor self.async_result: Future @@ -263,18 +275,17 @@ def test_esp_eth_bridge( port_num = int(sw_info.group(2)) port_num_endnode = int(port_num) + 1 # endnode address is always + 1 to the host - endnode = EndnodeSsh(f'10.10.{sw_num}.{port_num_endnode}', - dev_user, - dev_password) - switch1 = SwitchSsh(f'10.10.{sw_num}.100', - dev_user, - dev_password, - SwitchSsh.EDGE_SWITCH_10XP) + endnode = EndnodeSsh(f'10.10.{sw_num}.{port_num_endnode}', ETHVM_ENDNODE_USER) + switch1 = SwitchSsh(f'10.10.{sw_num}.100', dev_user, dev_password, SwitchSsh.EDGE_SWITCH_10XP) # Collect all addresses in our network # ------------------------------------ # Bridge (DUT) MAC - br_mac = dut.expect(r'esp_netif_br_glue: ([0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2})') + br_mac = dut.expect( + r'esp_netif_br_glue: ' + r'([0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:' + r'[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2})' + ) br_mac = br_mac.group(1).decode('utf-8') logging.info('ESP Bridge MAC %s', br_mac) # Get unique identification of each Ethernet port @@ -369,21 +380,30 @@ def test_esp_eth_bridge( # unicast UDP bandwidth_udp = run_iperf('udp', endnode, host_ip, IPERF_BW_LIM, 5) if bandwidth_udp < MIN_UDP_THROUGHPUT: - logging.warning('Unicast UDP bandwidth was less than expected. Trying again over longer period to compensate transient drops.') + logging.warning( + 'Unicast UDP bandwidth was less than expected. ' + 'Trying again over longer period to compensate transient drops.' + ) bandwidth_udp = run_iperf('udp', endnode, host_ip, IPERF_BW_LIM, 60) logging.info('Unicast UDP average bandwidth: %s Mbits/s', bandwidth_udp) # unicast TCP bandwidth_tcp = run_iperf('tcp', endnode, host_ip, IPERF_BW_LIM, 5) if bandwidth_tcp < MIN_TCP_THROUGHPUT: - logging.warning('Unicast TCP bandwidth was less than expected. Trying again over longer period to compensate transient drops.') + logging.warning( + 'Unicast TCP bandwidth was less than expected. ' + 'Trying again over longer period to compensate transient drops.' + ) bandwidth_tcp = run_iperf('tcp', endnode, host_ip, IPERF_BW_LIM, 60) logging.info('Unicast TCP average bandwidth: %s Mbits/s', bandwidth_tcp) # multicast UDP bandwidth_mcast_udp = run_iperf('udp', endnode, '224.0.1.4', IPERF_BW_LIM, 5, host_if, endnode_if) if bandwidth_mcast_udp < MIN_UDP_THROUGHPUT: - logging.warning('Multicast UDP bandwidth was less than expected. Trying again over longer period to compensate transient drops.') + logging.warning( + 'Multicast UDP bandwidth was less than expected. ' + 'Trying again over longer period to compensate transient drops.' + ) bandwidth_mcast_udp = run_iperf('udp', endnode, '224.0.1.4', IPERF_BW_LIM, 60, host_if, endnode_if) logging.info('Multicast UDP average bandwidth: %s Mbits/s', bandwidth_mcast_udp) diff --git a/examples/openthread/ot_br/main/esp_ot_br.c b/examples/openthread/ot_br/main/esp_ot_br.c index bbd5ae3f0a3..ffcfd391579 100644 --- a/examples/openthread/ot_br/main/esp_ot_br.c +++ b/examples/openthread/ot_br/main/esp_ot_br.c @@ -199,15 +199,20 @@ void app_main(void) // * netif // * task queue // * border router - esp_vfs_eventfd_config_t eventfd_config = { + size_t max_eventfd = 3; + #if CONFIG_OPENTHREAD_RADIO_NATIVE || CONFIG_OPENTHREAD_RADIO_SPINEL_SPI - // * radio driver (A native radio device needs a eventfd for radio driver.) - // * SpiSpinelInterface (The Spi Spinel Interface needs a eventfd.) - // The above will not exist at the same time. - .max_fds = 4, -#else - .max_fds = 3, + // * radio driver (A native radio device needs a eventfd for radio driver.) + // * SpiSpinelInterface (The Spi Spinel Interface needs a eventfd.) + // The above will not exist at the same time. + max_eventfd++; #endif +#if CONFIG_OPENTHREAD_RADIO_TREL + // * TREL reception (The Thread Radio Encapsulation Link needs a eventfd for reception.) + max_eventfd++; +#endif + esp_vfs_eventfd_config_t eventfd_config = { + .max_fds = max_eventfd, }; ESP_ERROR_CHECK(esp_vfs_eventfd_register(&eventfd_config)); ESP_ERROR_CHECK(nvs_flash_init()); diff --git a/examples/openthread/ot_rcp/main/esp_ot_config.h b/examples/openthread/ot_rcp/main/esp_ot_config.h index 71c74dfcb3c..d7a11503297 100644 --- a/examples/openthread/ot_rcp/main/esp_ot_config.h +++ b/examples/openthread/ot_rcp/main/esp_ot_config.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: CC0-1.0 * @@ -52,7 +52,7 @@ .tx_pin = OPENTHREAD_RCP_UART_TX_PIN, \ }, \ } -#else // CONFIG_OPENTHREAD_RCP_SPI +#elif CONFIG_OPENTHREAD_RCP_SPI // CONFIG_OPENTHREAD_RCP_SPI #define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \ { \ .host_connection_mode = HOST_CONNECTION_MODE_RCP_SPI, \ @@ -75,6 +75,12 @@ .intr_pin = 9, \ }, \ } +#else // CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG +#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \ + { \ + .host_connection_mode = HOST_CONNECTION_MODE_RCP_USB, \ + .host_usb_config = USB_SERIAL_JTAG_DRIVER_CONFIG_DEFAULT(), \ + } #endif #define ESP_OPENTHREAD_DEFAULT_PORT_CONFIG() \ diff --git a/examples/openthread/ot_rcp/sdkconfig.ci.rcp_usb b/examples/openthread/ot_rcp/sdkconfig.ci.rcp_usb new file mode 100644 index 00000000000..7735b15871a --- /dev/null +++ b/examples/openthread/ot_rcp/sdkconfig.ci.rcp_usb @@ -0,0 +1 @@ +CONFIG_OPENTHREAD_RCP_USB_SERIAL_JTAG=y diff --git a/examples/openthread/ot_sleepy_device/light_sleep/main/esp_ot_sleepy_device.c b/examples/openthread/ot_sleepy_device/light_sleep/main/esp_ot_sleepy_device.c index a7600f9c9a8..d4e1892273d 100644 --- a/examples/openthread/ot_sleepy_device/light_sleep/main/esp_ot_sleepy_device.c +++ b/examples/openthread/ot_sleepy_device/light_sleep/main/esp_ot_sleepy_device.c @@ -25,6 +25,7 @@ #include "esp_openthread_netif_glue.h" #include "esp_ot_sleepy_device_config.h" #include "esp_vfs_eventfd.h" +#include "esp_private/esp_clk.h" #include "driver/uart.h" #include "nvs_flash.h" #include "openthread/logging.h" @@ -192,7 +193,7 @@ static esp_err_t ot_power_save_init(void) esp_pm_config_t pm_config = { .max_freq_mhz = cur_cpu_freq_mhz, - .min_freq_mhz = cur_cpu_freq_mhz, + .min_freq_mhz = esp_clk_xtal_freq() / MHZ, #if CONFIG_FREERTOS_USE_TICKLESS_IDLE .light_sleep_enable = true #endif diff --git a/examples/openthread/ot_trel/main/esp_ot_trel.c b/examples/openthread/ot_trel/main/esp_ot_trel.c index 05b7251da4f..a333eface5f 100644 --- a/examples/openthread/ot_trel/main/esp_ot_trel.c +++ b/examples/openthread/ot_trel/main/esp_ot_trel.c @@ -125,8 +125,9 @@ void app_main(void) // Used eventfds: // * netif // * ot task queue + // * ot trel esp_vfs_eventfd_config_t eventfd_config = { - .max_fds = 2, + .max_fds = 3, }; ESP_ERROR_CHECK(nvs_flash_init()); diff --git a/examples/peripherals/.build-test-rules.yml b/examples/peripherals/.build-test-rules.yml index 2a50ea7602a..fb9144b95f1 100644 --- a/examples/peripherals/.build-test-rules.yml +++ b/examples/peripherals/.build-test-rules.yml @@ -32,6 +32,13 @@ examples/peripherals/analog_comparator: - esp_driver_gpio - esp_driver_ana_cmpr +examples/peripherals/camera/dvp_dsi: + disable: + - if: SOC_LCDCAM_CAM_SUPPORTED != 1 or SOC_MIPI_DSI_SUPPORTED != 1 + depends_components: + - esp_lcd + - esp_driver_cam + examples/peripherals/camera/dvp_isp_dsi: disable: - if: SOC_ISP_DVP_SUPPORTED != 1 or SOC_MIPI_DSI_SUPPORTED != 1 @@ -39,6 +46,17 @@ examples/peripherals/camera/dvp_isp_dsi: - esp_lcd - esp_driver_cam +examples/peripherals/camera/dvp_spi_lcd: + disable: + - if: SOC_LCDCAM_CAM_SUPPORTED != 1 + disable_test: + - if: IDF_TARGET == "esp32s3" + temporary: true + reason: lack of runners + depends_components: + - esp_lcd + - esp_driver_cam + examples/peripherals/camera/mipi_isp_dsi: disable: - if: SOC_MIPI_CSI_SUPPORTED != 1 or SOC_MIPI_DSI_SUPPORTED != 1 diff --git a/examples/peripherals/camera/common_components/dsi_init/Kconfig.projbuild b/examples/peripherals/camera/common_components/dsi_init/Kconfig.projbuild index e433698706b..9397e0196f5 100644 --- a/examples/peripherals/camera/common_components/dsi_init/Kconfig.projbuild +++ b/examples/peripherals/camera/common_components/dsi_init/Kconfig.projbuild @@ -45,4 +45,11 @@ menu "Example DSI Configuration" int default 600 if EXAMPLE_MIPI_DSI_DISP_VRES_600 default 1280 if EXAMPLE_MIPI_DSI_DISP_VRES_1280 + + config EXAMPLE_MIPI_DSI_DISP_USE_DMA2D + bool "Use DMA2D to copy data to frame buffer" + default n + help + Enable this option, DMA2D will be used to copy data to the target frame buffer. + This can save some CPU time and improve the performance. endmenu diff --git a/examples/peripherals/camera/common_components/dsi_init/example_dsi_init.c b/examples/peripherals/camera/common_components/dsi_init/example_dsi_init.c index 955f45d7942..3cd506cfc0c 100644 --- a/examples/peripherals/camera/common_components/dsi_init/example_dsi_init.c +++ b/examples/peripherals/camera/common_components/dsi_init/example_dsi_init.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,7 @@ #include "esp_lcd_ek79007.h" #include "example_dsi_init.h" #include "example_dsi_init_config.h" +#include "sdkconfig.h" void example_dsi_resource_alloc(esp_lcd_dsi_bus_handle_t *mipi_dsi_bus, esp_lcd_panel_io_handle_t *mipi_dbi_io, esp_lcd_panel_handle_t *mipi_dpi_panel, void **frame_buffer) { @@ -47,6 +48,9 @@ void example_dsi_resource_alloc(esp_lcd_dsi_bus_handle_t *mipi_dsi_bus, esp_lcd_ .vsync_pulse_width = EXAMPLE_MIPI_DSI_IMAGE_VSYNC, .vsync_front_porch = EXAMPLE_MIPI_DSI_IMAGE_VFP, }, +#if CONFIG_EXAMPLE_MIPI_DSI_DISP_USE_DMA2D + .flags.use_dma2d = true, +#endif }; #if CONFIG_EXAMPLE_LCD_PATTERN_ILI9881C diff --git a/examples/peripherals/camera/common_components/sensor_init/example_sensor_init.c b/examples/peripherals/camera/common_components/sensor_init/example_sensor_init.c index 77a6f6636ce..c5a0688d656 100644 --- a/examples/peripherals/camera/common_components/sensor_init/example_sensor_init.c +++ b/examples/peripherals/camera/common_components/sensor_init/example_sensor_init.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -19,7 +19,7 @@ static const char *TAG = "sensor_init"; -void example_sensor_init(example_sensor_config_t *sensor_config, i2c_master_bus_handle_t *out_i2c_bus_handle) +void example_sensor_init(example_sensor_config_t *sensor_config, example_sensor_handle_t *out_sensor_handle) { esp_err_t ret = ESP_FAIL; @@ -81,6 +81,10 @@ void example_sensor_init(example_sensor_config_t *sensor_config, i2c_master_bus_ cam_cur_fmt = (esp_cam_sensor_format_t *) & (parray[i]); } } + if (!cam_cur_fmt) { + ESP_LOGE(TAG, "Unsupported format"); + ESP_ERROR_CHECK(ESP_ERR_INVALID_ARG); + } ret = esp_cam_sensor_set_format(cam, (const esp_cam_sensor_format_t *) cam_cur_fmt); if (ret != ESP_OK) { @@ -95,6 +99,12 @@ void example_sensor_init(example_sensor_config_t *sensor_config, i2c_master_bus_ ESP_LOGE(TAG, "Start stream fail"); } ESP_ERROR_CHECK(ret); - - *out_i2c_bus_handle = i2c_bus_handle; + out_sensor_handle->i2c_bus_handle = i2c_bus_handle; + out_sensor_handle->sccb_handle = cam_config.sccb_handle; +} + +void example_sensor_deinit(example_sensor_handle_t sensor_handle) +{ + ESP_ERROR_CHECK(esp_sccb_del_i2c_io(sensor_handle.sccb_handle)); + ESP_ERROR_CHECK(i2c_del_master_bus(sensor_handle.i2c_bus_handle)); } diff --git a/examples/peripherals/camera/common_components/sensor_init/idf_component.yml b/examples/peripherals/camera/common_components/sensor_init/idf_component.yml index 1881aa5e995..a5d6718e182 100644 --- a/examples/peripherals/camera/common_components/sensor_init/idf_component.yml +++ b/examples/peripherals/camera/common_components/sensor_init/idf_component.yml @@ -1,4 +1,4 @@ dependencies: - espressif/esp_cam_sensor: "^0.6.1" + espressif/esp_cam_sensor: "^1.1.0" idf: version: ">=5.3.0" diff --git a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init.h b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init.h index 866cb3dd95f..745a99caa39 100644 --- a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init.h +++ b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,14 @@ extern "C" { #endif +/** + * @brief Handle of SCCB interface and sensor + */ +typedef struct { + esp_sccb_io_handle_t sccb_handle; /*!< SCCB io handle that created by `sccb_new_i2c_io` */ + i2c_master_bus_handle_t i2c_bus_handle; /*!< I2C bus handle that created by `i2c_new_master_bus` */ +} example_sensor_handle_t; + /** * @brief Configuration of SCCB interface and sensor */ @@ -28,9 +36,16 @@ typedef struct { * @brief SCCB Interface and Sensor Init * * @param[in] sensor_config Camera sensor configuration - * @param[out] out_i2c_bus_handle I2C bus handle + * @param[out] out_sensor_handle Camera sensor handle */ -void example_sensor_init(example_sensor_config_t *sensor_config, i2c_master_bus_handle_t *out_i2c_bus_handle); +void example_sensor_init(example_sensor_config_t *sensor_config, example_sensor_handle_t *out_sensor_handle); + +/** + * @brief SCCB Interface and Sensor Deinit + * + * @param[in] out_sensor_handle Camera sensor handle + */ +void example_sensor_deinit(example_sensor_handle_t sensor_handle); #ifdef __cplusplus } diff --git a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h index dd3acc47201..1aa6a81dc05 100644 --- a/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h +++ b/examples/peripherals/camera/common_components/sensor_init/include/example_sensor_init_config.h @@ -10,7 +10,7 @@ extern "C" { #endif -#define EXAMPLE_CAM_SCCB_FREQ (100000) +#define EXAMPLE_CAM_SCCB_FREQ (10 * 1000) #ifdef __cplusplus } diff --git a/examples/peripherals/camera/dvp_dsi/CMakeLists.txt b/examples/peripherals/camera/dvp_dsi/CMakeLists.txt new file mode 100644 index 00000000000..df4e6c36524 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(dvp_dsi) diff --git a/examples/peripherals/camera/dvp_dsi/README.md b/examples/peripherals/camera/dvp_dsi/README.md new file mode 100644 index 00000000000..f6408ca4f26 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/README.md @@ -0,0 +1,156 @@ +| Supported Targets | ESP32-P4 | +| ----------------- | -------- | + + +# DVP Camera display via DSI example + +## Overview + +This example demonstrates how to use the esp_driver_cam component to capture DVP camera sensor signals and display it via DSI interface. This example will auto-detect camera sensors via [ESP camera sensor driver](https://components.espressif.com/components/espressif/esp_cam_sensor) and capture camera sensor signals via DVP interface and display it via DSI interface. + +## Usage + +The subsections below give only absolutely necessary information. For full steps to configure ESP-IDF and use it to build and run projects, see [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#get-started). + + +### Hardware Required + +- OV2640 camera sensor, or other camera sensors with DVP port that can output RGB565 format color data +- EK79007 LCD screen +- ESP32P4 devkit + +**Note:** For EK79007 you will need to connect following pins: +- 5V - 5V +- GND - GND +- RST_LCD - 3V3 + +You can also connect camera sensors and LCD screens from other vendors to the ESP chip, you can find corresponding camera or LCD drivers from [ESP Component Registry](https://components.espressif.com), or design your own customized drivers. + + + GND GND + ┌────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────┐ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ ┌───────────────┴─────────────┴──────────────────┐ │ + │ │ │ ┌──────────┴───────────┐ + │ │ │ DSI DATA 1P │ │ + │ │ ├───────────────────────────┤ │ + ┌───────────┴─────────┐ │ │ │ │ + │ │ │ │ DSI DATA 1N │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ XCLK │ ESP32-P4 │ │ │ + │ DVP Camera ├──────────────────────┤ │ DSI CLK N │ LCD Screen │ + │ │ │ ├───────────────────────────┤ │ + │ │ D0~7 │ │ │ │ + │ ├──────────────────────┤ │ DSI CLK P │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ PCLK │ │ │ │ + │ ├──────────────────────┤ │ DSI DATA 0P │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ VSYNC │ │ │ │ + │ ├──────────────────────┤ │ DSI DATA 0N │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ DE (HREF) │ │ │ │ + │ ├──────────────────────┤ │ └──────────────────────┘ + │ │ │ │ + └───────┬──┬──────────┘ │ │ + │ │ I2C SCL │ │ + │ └─────────────────────────────────┤ │ + │ I2C SDA │ │ + └────────────────────────────────────┤ │ + └────────────────────────────────────────────────┘ + + +### Set Chip Target + +First of all, your target must be supported by both: + +- **By your ESP-IDF version**: For the full list of supported targets, run: + ``` + idf.py --list-targets + ``` +- **By this example**: For the full list of supported targets, refer to the supported targets table at the top of this README. + +After you make sure that your target is supported, go to your example project directory and [set the chip target](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/tools/idf-py.html#select-the-target-chip-set-target): + +``` +idf.py set-target +``` + +For example, to set esp32-P4 as the chip target, run: + +``` +idf.py set-target esp32p4 +``` + + +### Configure the Project + +For information about Kconfig options, see [Project Configuration](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/kconfig.html) > _Name of relevant section(s)_. + +To conveniently check or modify Kconfig options for this example in a project configuration menu, run: + +``` +idf.py menuconfig +``` + +``` +Set CONFIG_CAMERA_OV2640 to y +``` + +Remember to select the LCD screen model and set corresponding correct horizontal/vertical resolution in ``menuconfig`` > ``Example DSI Configuration``. + +Available options for the camera sensor output horizontal/vertical resolution can be seen in ``menuconfig`` > ``Example Configuration``. + + +### Build and Flash + +Execute the following command to build the project, flash it to your development board, and run the monitor tool to view the serial output: + +``` +idf.py build flash monitor +``` + +This command can be reduced to `idf.py flash monitor`. + +If the above command fails, check the log on the serial monitor which usually provides information on the possible cause of the issue. + +To exit the serial monitor, use `Ctrl` + `]`. + + +## Example Output + +If you see the following console output, your example should be running correctly: + +``` +I (1481) main_task: Calling app_main() +I (1481) ek79007: version: 1.0.2 +I (1701) ov2640: Detected Camera sensor PID=0x26 +I (1701) sensor_init: fmt[0].name:DVP_8bit_20Minput_RGB565_640x480_6fps +I (1701) sensor_init: fmt[1].name:DVP_8bit_20Minput_YUV422_640x480_6fps +I (1711) sensor_init: fmt[2].name:DVP_8bit_20Minput_JPEG_640x480_25fps +I (1711) sensor_init: fmt[3].name:DVP_8bit_20Minput_RGB565_240x240_25fps +I (1721) sensor_init: fmt[4].name:DVP_8bit_20Minput_YUV422_240x240_25fps +I (1721) sensor_init: fmt[5].name:DVP_8bit_20Minput_JPEG_320x240_50fps +I (1731) sensor_init: fmt[6].name:DVP_8bit_20Minput_JPEG_1280x720_12fps +I (1741) sensor_init: fmt[7].name:DVP_8bit_20Minput_JPEG_1600x1200_12fps +I (1741) sensor_init: fmt[8].name:DVP_8bit_20Minput_RAW8_800x640_30fps +I (1751) sensor_init: fmt[9].name:DVP_8bit_20Minput_RAW8_800x640_15fps +I (1761) sensor_init: fmt[10].name:DVP_8bit_20Minput_RAW8_800x800_15fps +I (1761) sensor_init: fmt[11].name:DVP_8bit_20Minput_RAW8_1024x600_15fps +I (8291) sensor_init: Format in use:DVP_8bit_20Minput_RGB565_640x480_6fps + +``` + + +## Reference + +- Link to the ESP-IDF feature's API reference, for example [ESP-IDF: Camera Controller Driver](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/camera_driver.html) +- [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#get-started) +- [Project Configuration](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/kconfig.html) (Kconfig Options) diff --git a/examples/peripherals/camera/dvp_dsi/main/CMakeLists.txt b/examples/peripherals/camera/dvp_dsi/main/CMakeLists.txt new file mode 100644 index 00000000000..300b506de94 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/main/CMakeLists.txt @@ -0,0 +1,4 @@ +idf_component_register(SRCS "dvp_dsi_main.c" + INCLUDE_DIRS "." + REQUIRES esp_mm esp_driver_cam esp_driver_i2c dsi_init sensor_init + ) diff --git a/examples/peripherals/camera/dvp_dsi/main/Kconfig.projbuild b/examples/peripherals/camera/dvp_dsi/main/Kconfig.projbuild new file mode 100644 index 00000000000..c0057383a34 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/main/Kconfig.projbuild @@ -0,0 +1,45 @@ +menu "Example Configuration" + config EXAMPLE_USED_LDO_CHAN_ID + int "Occupied channel ID of the LDO to power on the MIPI DSI PHY" + default 3 + help + Example used LDO channel ID, you may check datasheet to know more details. + + config EXAMPLE_USED_LDO_VOLTAGE_MV + int "Occupied LDO voltage in mV" + default 2500 + range 0 3300 + help + Example used LDO voltage, in mV + + choice EXAMPLE_CAM_HRES + bool "Set camera horizontal resolution" + default EXAMPLE_CAM_HRES_640 + + config EXAMPLE_CAM_HRES_640 + bool "640" + config EXAMPLE_CAM_HRES_240 + bool "240" + endchoice + + config EXAMPLE_CAM_HRES + int + default 640 if EXAMPLE_CAM_HRES_640 + default 240 if EXAMPLE_CAM_HRES_240 + + choice EXAMPLE_CAM_VRES + bool "Set camera vertical resolution" + default EXAMPLE_CAM_VRES_480 if EXAMPLE_CAM_HRES_640 + default EXAMPLE_CAM_VRES_240 if EXAMPLE_CAM_HRES_240 + + config EXAMPLE_CAM_VRES_480 + bool "480" + config EXAMPLE_CAM_VRES_240 + bool "240" + endchoice + + config EXAMPLE_CAM_VRES + int + default 480 if EXAMPLE_CAM_VRES_480 + default 240 if EXAMPLE_CAM_VRES_240 +endmenu diff --git a/examples/peripherals/camera/dvp_dsi/main/dvp_dsi_main.c b/examples/peripherals/camera/dvp_dsi/main/dvp_dsi_main.c new file mode 100644 index 00000000000..a3392ca9656 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/main/dvp_dsi_main.c @@ -0,0 +1,185 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include "sdkconfig.h" +#include "esp_attr.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "esp_lcd_mipi_dsi.h" +#include "esp_lcd_panel_ops.h" +#include "esp_ldo_regulator.h" +#include "esp_cache.h" +#include "driver/i2c_master.h" +#include "esp_cam_ctlr.h" +#include "esp_cam_ctlr_dvp.h" +#include "example_dsi_init.h" +#include "example_dsi_init_config.h" +#include "example_sensor_init.h" +#include "example_config.h" + +static const char *TAG = "dvp_dsi"; + +typedef struct { + esp_lcd_panel_handle_t panel_hdl; + void *cam_buf; +} display_update_param_t; + +static bool s_camera_get_new_vb(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); +static bool s_camera_get_finished_trans(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); + +static bool example_display_update_ready(esp_lcd_panel_handle_t panel, esp_lcd_dpi_panel_event_data_t *edata, void *user_ctx) +{ + display_update_param_t *param = (display_update_param_t *)user_ctx; + esp_lcd_panel_draw_bitmap(param->panel_hdl, 0, 0, CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_CAM_VRES, param->cam_buf); + return false; +} + +void app_main(void) +{ + esp_err_t ret = ESP_FAIL; + esp_lcd_dsi_bus_handle_t mipi_dsi_bus = NULL; + esp_lcd_panel_io_handle_t mipi_dbi_io = NULL; + esp_lcd_panel_handle_t mipi_dpi_panel = NULL; + void *frame_buffer = NULL; + size_t frame_buffer_size = 0; + + //mipi ldo + esp_ldo_channel_handle_t ldo_mipi_phy = NULL; + esp_ldo_channel_config_t ldo_mipi_phy_config = { + .chan_id = CONFIG_EXAMPLE_USED_LDO_CHAN_ID, + .voltage_mv = CONFIG_EXAMPLE_USED_LDO_VOLTAGE_MV, + }; + ESP_ERROR_CHECK(esp_ldo_acquire_channel(&ldo_mipi_phy_config, &ldo_mipi_phy)); + + //---------------DSI Init------------------// + example_dsi_resource_alloc(&mipi_dsi_bus, &mipi_dbi_io, &mipi_dpi_panel, &frame_buffer); + + //---------------Necessary variable config------------------// + frame_buffer_size = CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES * CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; + + ESP_LOGD(TAG, "CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES: %d, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES: %d, bits per pixel: %d", CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES, EXAMPLE_RGB565_BITS_PER_PIXEL); + ESP_LOGD(TAG, "frame_buffer_size: %zu", frame_buffer_size); + ESP_LOGD(TAG, "frame_buffer: %p", frame_buffer); + + //----------CAM Controller Init------------// + esp_cam_ctlr_handle_t cam_handle = NULL; + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = EXAMPLE_DVP_CAM_DATA_WIDTH, + .data_io = { + EXAMPLE_DVP_CAM_D0_IO, + EXAMPLE_DVP_CAM_D1_IO, + EXAMPLE_DVP_CAM_D2_IO, + EXAMPLE_DVP_CAM_D3_IO, + EXAMPLE_DVP_CAM_D4_IO, + EXAMPLE_DVP_CAM_D5_IO, + EXAMPLE_DVP_CAM_D6_IO, + EXAMPLE_DVP_CAM_D7_IO, + }, + .vsync_io = EXAMPLE_DVP_CAM_VSYNC_IO, + .de_io = EXAMPLE_DVP_CAM_DE_IO, + .pclk_io = EXAMPLE_DVP_CAM_PCLK_IO, + .xclk_io = EXAMPLE_DVP_CAM_XCLK_IO, // Set XCLK pin to generate XCLK signal + }; + + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = CONFIG_EXAMPLE_CAM_HRES, + .v_res = CONFIG_EXAMPLE_CAM_VRES, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 128, + .pin = &pin_cfg, + .bk_buffer_dis = 1, + .xclk_freq = EXAMPLE_DVP_CAM_XCLK_FREQ_HZ, + }; + + ret = esp_cam_new_dvp_ctlr(&dvp_config, &cam_handle); + if (ret != ESP_OK) { + ESP_LOGE(TAG, "dvp init fail[%d]", ret); + return; + } + + //--------Allocate Camera Buffer----------// + size_t cam_buffer_size = CONFIG_EXAMPLE_CAM_HRES * CONFIG_EXAMPLE_CAM_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; + void *cam_buffer = esp_cam_ctlr_alloc_buffer(cam_handle, cam_buffer_size, MALLOC_CAP_DMA | MALLOC_CAP_SPIRAM); + if (!cam_buffer) { + ESP_LOGE(TAG, "no mem for cam_buffer"); + return; + } + esp_cam_ctlr_trans_t cam_trans = { + .buffer = cam_buffer, + .buflen = cam_buffer_size, + }; + + //--------Camera Sensor and SCCB Init-----------// + example_sensor_config_t cam_sensor_config = { + .i2c_port_num = I2C_NUM_0, + .i2c_sda_io_num = EXAMPLE_DVP_CAM_SCCB_SDA_IO, + .i2c_scl_io_num = EXAMPLE_DVP_CAM_SCCB_SCL_IO, + .port = ESP_CAM_SENSOR_DVP, + .format_name = EXAMPLE_CAM_FORMAT, + }; + example_sensor_handle_t sensor_handle = { + .sccb_handle = NULL, + .i2c_bus_handle = NULL, + }; + example_sensor_init(&cam_sensor_config, &sensor_handle); + + esp_cam_ctlr_evt_cbs_t cbs = { + .on_get_new_trans = s_camera_get_new_vb, + .on_trans_finished = s_camera_get_finished_trans, + }; + if (esp_cam_ctlr_register_event_callbacks(cam_handle, &cbs, &cam_trans) != ESP_OK) { + ESP_LOGE(TAG, "ops register fail"); + return; + } + + ESP_ERROR_CHECK(esp_cam_ctlr_enable(cam_handle)); + + //---------------DPI Reset------------------// + example_dpi_panel_reset(mipi_dpi_panel); + + //init to all white + memset(frame_buffer, 0xFF, frame_buffer_size); + esp_cache_msync((void *)frame_buffer, frame_buffer_size, ESP_CACHE_MSYNC_FLAG_DIR_C2M); + + example_dpi_panel_init(mipi_dpi_panel); + + if (esp_cam_ctlr_start(cam_handle) != ESP_OK) { + ESP_LOGE(TAG, "Driver start fail"); + return; + } + + // Register DPI panel event callback for display update ready notification + display_update_param_t display_update_param = { + .panel_hdl = mipi_dpi_panel, + .cam_buf = cam_buffer, + }; + esp_lcd_dpi_panel_event_callbacks_t dpi_cbs = { + .on_color_trans_done = example_display_update_ready, + }; + ESP_ERROR_CHECK(esp_lcd_dpi_panel_register_event_callbacks(mipi_dpi_panel, &dpi_cbs, &display_update_param)); + esp_lcd_panel_draw_bitmap(mipi_dpi_panel, 0, 0, CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_CAM_VRES, cam_buffer); + + while (1) { + vTaskDelay(100 / portTICK_PERIOD_MS); + } +} + +static bool s_camera_get_new_vb(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data) +{ + esp_cam_ctlr_trans_t cam_trans = *(esp_cam_ctlr_trans_t *)user_data; + trans->buffer = cam_trans.buffer; + trans->buflen = cam_trans.buflen; + return false; +} + +static bool s_camera_get_finished_trans(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data) +{ + return false; +} diff --git a/examples/peripherals/camera/dvp_dsi/main/example_config.h b/examples/peripherals/camera/dvp_dsi/main/example_config.h new file mode 100644 index 00000000000..b297650636c --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/main/example_config.h @@ -0,0 +1,57 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "sdkconfig.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define EXAMPLE_RGB565_BITS_PER_PIXEL (16) + +#define EXAMPLE_DVP_CAM_SCCB_SCL_IO (33) +#define EXAMPLE_DVP_CAM_SCCB_SDA_IO (32) + +#define EXAMPLE_DVP_CAM_XCLK_FREQ_HZ (20000000) + +#define EXAMPLE_DVP_CAM_DATA_WIDTH (8) +#define EXAMPLE_DVP_CAM_D0_IO (53) +#define EXAMPLE_DVP_CAM_D1_IO (54) +#define EXAMPLE_DVP_CAM_D2_IO (26) +#define EXAMPLE_DVP_CAM_D3_IO (1) +#define EXAMPLE_DVP_CAM_D4_IO (0) +#define EXAMPLE_DVP_CAM_D5_IO (45) +#define EXAMPLE_DVP_CAM_D6_IO (46) +#define EXAMPLE_DVP_CAM_D7_IO (47) +#define EXAMPLE_DVP_CAM_XCLK_IO (20) +#define EXAMPLE_DVP_CAM_PCLK_IO (21) +#define EXAMPLE_DVP_CAM_DE_IO (22) +#define EXAMPLE_DVP_CAM_VSYNC_IO (23) +#define EXAMPLE_DVP_CAM_HSYNC_IO (-1) + +#if CONFIG_EXAMPLE_CAM_HRES_640 + +#if CONFIG_EXAMPLE_CAM_VRES_480 +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RGB565_640x480_6fps" +#endif + +#elif CONFIG_EXAMPLE_CAM_HRES_240 + +#if CONFIG_EXAMPLE_CAM_VRES_240 +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RGB565_240x240_25fps" +#endif + +#endif + +#ifndef EXAMPLE_CAM_FORMAT +#error "Unsupported camera format! Please adjust EXAMPLE_CAM_HRES and EXAMPLE_CAM_VRES in menuconfig" +#endif + +#ifdef __cplusplus +} +#endif diff --git a/examples/peripherals/camera/dvp_dsi/main/idf_component.yml b/examples/peripherals/camera/dvp_dsi/main/idf_component.yml new file mode 100644 index 00000000000..5aeb9ac3f51 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/main/idf_component.yml @@ -0,0 +1,7 @@ +dependencies: + idf: + version: ">=5.3.0" + dsi_init: + path: ${IDF_PATH}/examples/peripherals/camera/common_components/dsi_init + sensor_init: + path: ${IDF_PATH}/examples/peripherals/camera/common_components/sensor_init diff --git a/examples/peripherals/camera/dvp_dsi/pytest_dvp_dsi.py b/examples/peripherals/camera/dvp_dsi/pytest_dvp_dsi.py new file mode 100644 index 00000000000..4a5ee1803c2 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/pytest_dvp_dsi.py @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: CC0-1.0 +import pytest +from pytest_embedded import Dut +from pytest_embedded_idf.utils import idf_parametrize + + +@pytest.mark.generic +@idf_parametrize('target', ['esp32p4'], indirect=['target']) +def test_dvp_dsi(dut: Dut) -> None: + dut.expect_exact('Calling app_main()') diff --git a/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults b/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults new file mode 100644 index 00000000000..dc0f8f7a839 --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults @@ -0,0 +1 @@ +CONFIG_CAMERA_OV2640=y diff --git a/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults.esp32p4 b/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults.esp32p4 new file mode 100644 index 00000000000..49f03baabba --- /dev/null +++ b/examples/peripherals/camera/dvp_dsi/sdkconfig.defaults.esp32p4 @@ -0,0 +1,4 @@ +CONFIG_IDF_EXPERIMENTAL_FEATURES=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_EXAMPLE_MIPI_DSI_DISP_USE_DMA2D=y diff --git a/examples/peripherals/camera/dvp_isp_dsi/README.md b/examples/peripherals/camera/dvp_isp_dsi/README.md index dda9ad49a58..ca481049f9d 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/README.md +++ b/examples/peripherals/camera/dvp_isp_dsi/README.md @@ -15,7 +15,7 @@ The subsections below give only absolutely necessary information. For full steps ### Hardware Required -- OV2640 camera sensor, or other camera sensors with DVP port that can output raw format color data +- OV2640 / SC030IOT camera sensor, or other camera sensors with DVP port that can output raw format color data - EK79007 or ILI9881C LCD screen - ESP32P4 devkit @@ -106,7 +106,7 @@ Set CONFIG_CAMERA_OV2640 to y Remember to select the LCD screen model and set corresponding correct horizontal/vertical resolution in ``menuconfig`` > ``Example DSI Configuration``. -Available options for the camera sensor output horizontal/vertical resolution can be seen in ``menuconfig`` > ``Example Configuration``. Note that the horizontal resolution for the camera should be the same as the LCD screen horizontal resolution. +Available options for the camera sensor output horizontal/vertical resolution can be seen in ``menuconfig`` > ``Example Configuration``. ### Build and Flash diff --git a/examples/peripherals/camera/dvp_isp_dsi/main/Kconfig.projbuild b/examples/peripherals/camera/dvp_isp_dsi/main/Kconfig.projbuild index 9366f21f792..dec207d165b 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/main/Kconfig.projbuild +++ b/examples/peripherals/camera/dvp_isp_dsi/main/Kconfig.projbuild @@ -18,40 +18,48 @@ menu "Example Configuration" choice EXAMPLE_CAM_HRES bool "Set camera horizontal resolution" - default EXAMPLE_CAM_HRES_1024 if EXAMPLE_MIPI_DSI_DISP_HRES_1024 - default EXAMPLE_CAM_HRES_800 if EXAMPLE_MIPI_DSI_DISP_HRES_800 + default EXAMPLE_CAM_HRES_640 config EXAMPLE_CAM_HRES_1024 - depends on EXAMPLE_MIPI_DSI_DISP_HRES_1024 + depends on EXAMPLE_MIPI_DSI_DISP_HRES >= 1024 bool "1024" config EXAMPLE_CAM_HRES_800 - depends on EXAMPLE_MIPI_DSI_DISP_HRES_800 + depends on EXAMPLE_MIPI_DSI_DISP_HRES >= 800 bool "800" + config EXAMPLE_CAM_HRES_640 + depends on EXAMPLE_MIPI_DSI_DISP_HRES >= 640 + bool "640" endchoice config EXAMPLE_CAM_HRES int default 1024 if EXAMPLE_CAM_HRES_1024 default 800 if EXAMPLE_CAM_HRES_800 + default 640 if EXAMPLE_CAM_HRES_640 choice EXAMPLE_CAM_VRES bool "Set camera vertical resolution" - default EXAMPLE_CAM_VRES_600 if EXAMPLE_MIPI_DSI_DISP_VRES_600 - default EXAMPLE_CAM_VRES_640 if EXAMPLE_MIPI_DSI_DISP_VRES_1280 + default EXAMPLE_CAM_VRES_600 if EXAMPLE_CAM_HRES_1024 + default EXAMPLE_CAM_VRES_640 if EXAMPLE_CAM_HRES_800 + default EXAMPLE_CAM_VRES_480 if EXAMPLE_CAM_HRES_640 + config EXAMPLE_CAM_VRES_480 + depends on EXAMPLE_MIPI_DSI_DISP_VRES >= 480 + bool "480" config EXAMPLE_CAM_VRES_600 - depends on EXAMPLE_MIPI_DSI_DISP_VRES_600 + depends on EXAMPLE_MIPI_DSI_DISP_VRES >= 600 bool "600" config EXAMPLE_CAM_VRES_640 - depends on EXAMPLE_MIPI_DSI_DISP_VRES_1280 + depends on EXAMPLE_MIPI_DSI_DISP_VRES >= 640 bool "640" config EXAMPLE_CAM_VRES_800 - depends on EXAMPLE_MIPI_DSI_DISP_VRES_1280 + depends on EXAMPLE_MIPI_DSI_DISP_VRES >= 800 bool "800" endchoice config EXAMPLE_CAM_VRES int + default 480 if EXAMPLE_CAM_VRES_480 default 600 if EXAMPLE_CAM_VRES_600 default 640 if EXAMPLE_CAM_VRES_640 default 800 if EXAMPLE_CAM_VRES_800 diff --git a/examples/peripherals/camera/dvp_isp_dsi/main/dvp_isp_dsi_main.c b/examples/peripherals/camera/dvp_isp_dsi/main/dvp_isp_dsi_main.c index 144be169e68..9b6c049dfba 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/main/dvp_isp_dsi_main.c +++ b/examples/peripherals/camera/dvp_isp_dsi/main/dvp_isp_dsi_main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -26,6 +26,11 @@ static const char *TAG = "dvp_isp_dsi"; +typedef struct { + esp_lcd_panel_handle_t panel_hdl; + void *cam_buf; +} display_update_param_t; + static bool s_camera_get_new_vb(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); static bool s_camera_get_finished_trans(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); @@ -54,6 +59,13 @@ static void s_ledc_generate_dvp_xclk(void) ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel)); } +static bool example_display_update_ready(esp_lcd_panel_handle_t panel, esp_lcd_dpi_panel_event_data_t *edata, void *user_ctx) +{ + display_update_param_t *param = (display_update_param_t *)user_ctx; + esp_lcd_panel_draw_bitmap(param->panel_hdl, 0, 0, CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_CAM_VRES, param->cam_buf); + return false; +} + void app_main(void) { esp_err_t ret = ESP_FAIL; @@ -80,17 +92,12 @@ void app_main(void) example_dsi_resource_alloc(&mipi_dsi_bus, &mipi_dbi_io, &mipi_dpi_panel, &frame_buffer); //---------------Necessary variable config------------------// - frame_buffer_size = CONFIG_EXAMPLE_CAM_HRES * CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; + frame_buffer_size = CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES * CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; - ESP_LOGD(TAG, "CONFIG_EXAMPLE_CAM_HRES: %d, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES: %d, bits per pixel: %d", CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES, EXAMPLE_RGB565_BITS_PER_PIXEL); + ESP_LOGD(TAG, "CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES: %d, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES: %d, bits per pixel: %d", CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES, CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES, EXAMPLE_RGB565_BITS_PER_PIXEL); ESP_LOGD(TAG, "frame_buffer_size: %zu", frame_buffer_size); ESP_LOGD(TAG, "frame_buffer: %p", frame_buffer); - esp_cam_ctlr_trans_t cam_trans = { - .buffer = frame_buffer, - .buflen = frame_buffer_size, - }; - //--------Camera Sensor and SCCB Init-----------// s_ledc_generate_dvp_xclk(); @@ -101,8 +108,11 @@ void app_main(void) .port = ESP_CAM_SENSOR_DVP, .format_name = EXAMPLE_CAM_FORMAT, }; - i2c_master_bus_handle_t i2c_bus_handle = NULL; - example_sensor_init(&cam_sensor_config, &i2c_bus_handle); + example_sensor_handle_t sensor_handle = { + .sccb_handle = NULL, + .i2c_bus_handle = NULL, + }; + example_sensor_init(&cam_sensor_config, &sensor_handle); //---------------ISP Init------------------// isp_proc_handle_t isp_proc = NULL; @@ -137,7 +147,7 @@ void app_main(void) .hsync_io = EXAMPLE_ISP_DVP_CAM_HSYNC_IO, .vsync_io = EXAMPLE_ISP_DVP_CAM_VSYNC_IO, .de_io = EXAMPLE_ISP_DVP_CAM_DE_IO, - .io_flags.vsync_invert = 1, + .io_flags.vsync_invert = 1, // active high .queue_items = 10, }; ret = esp_cam_new_isp_dvp_ctlr(isp_proc, &dvp_config, &cam_handle); @@ -146,6 +156,18 @@ void app_main(void) return; } + //--------Allocate Camera Buffer----------// + size_t cam_buffer_size = CONFIG_EXAMPLE_CAM_HRES * CONFIG_EXAMPLE_CAM_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; + void *cam_buffer = esp_cam_ctlr_alloc_buffer(cam_handle, cam_buffer_size, MALLOC_CAP_DMA | MALLOC_CAP_SPIRAM); + if (!cam_buffer) { + ESP_LOGE(TAG, "no mem for cam_buffer"); + return; + } + esp_cam_ctlr_trans_t cam_trans = { + .buffer = cam_buffer, + .buflen = cam_buffer_size, + }; + esp_cam_ctlr_evt_cbs_t cbs = { .on_get_new_trans = s_camera_get_new_vb, .on_trans_finished = s_camera_get_finished_trans, @@ -171,6 +193,17 @@ void app_main(void) return; } + // Register DPI panel event callback for display update ready notification + display_update_param_t display_update_param = { + .panel_hdl = mipi_dpi_panel, + .cam_buf = cam_buffer, + }; + esp_lcd_dpi_panel_event_callbacks_t dpi_cbs = { + .on_color_trans_done = example_display_update_ready, + }; + ESP_ERROR_CHECK(esp_lcd_dpi_panel_register_event_callbacks(mipi_dpi_panel, &dpi_cbs, &display_update_param)); + esp_lcd_panel_draw_bitmap(mipi_dpi_panel, 0, 0, CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_CAM_VRES, cam_buffer); + while (1) { ESP_ERROR_CHECK(esp_cam_ctlr_receive(cam_handle, &cam_trans, ESP_CAM_CTLR_MAX_DELAY)); } diff --git a/examples/peripherals/camera/dvp_isp_dsi/main/example_config.h b/examples/peripherals/camera/dvp_isp_dsi/main/example_config.h index 0bf8bd5941c..81b3188c62b 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/main/example_config.h +++ b/examples/peripherals/camera/dvp_isp_dsi/main/example_config.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,36 +20,46 @@ extern "C" { #define EXAMPLE_ISP_DVP_CAM_XCLK_FREQ_HZ (20000000) #define EXAMPLE_ISP_DVP_CAM_DATA_WIDTH (8) -#define EXAMPLE_ISP_DVP_CAM_D0_IO (8) -#define EXAMPLE_ISP_DVP_CAM_D1_IO (9) -#define EXAMPLE_ISP_DVP_CAM_D2_IO (10) -#define EXAMPLE_ISP_DVP_CAM_D3_IO (4) -#define EXAMPLE_ISP_DVP_CAM_D4_IO (5) +#define EXAMPLE_ISP_DVP_CAM_D0_IO (53) +#define EXAMPLE_ISP_DVP_CAM_D1_IO (54) +#define EXAMPLE_ISP_DVP_CAM_D2_IO (26) +#define EXAMPLE_ISP_DVP_CAM_D3_IO (1) +#define EXAMPLE_ISP_DVP_CAM_D4_IO (0) #define EXAMPLE_ISP_DVP_CAM_D5_IO (45) #define EXAMPLE_ISP_DVP_CAM_D6_IO (46) #define EXAMPLE_ISP_DVP_CAM_D7_IO (47) #define EXAMPLE_ISP_DVP_CAM_XCLK_IO (20) #define EXAMPLE_ISP_DVP_CAM_PCLK_IO (21) -#define EXAMPLE_ISP_DVP_CAM_DE_IO (2) +#define EXAMPLE_ISP_DVP_CAM_DE_IO (22) #define EXAMPLE_ISP_DVP_CAM_VSYNC_IO (23) #define EXAMPLE_ISP_DVP_CAM_HSYNC_IO (-1) -#if CONFIG_EXAMPLE_CAM_HRES_800 +#if CONFIG_EXAMPLE_CAM_HRES_640 + +#if CONFIG_EXAMPLE_CAM_VRES_480 +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_640x480_26fps" // sc030iot +#endif + +#elif CONFIG_EXAMPLE_CAM_HRES_800 #if CONFIG_EXAMPLE_CAM_VRES_640 -#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_800x640_15fps" +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_800x640_15fps" // ov2640 #elif CONFIG_EXAMPLE_CAM_VRES_800 -#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_800x800_15fps" +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_800x800_15fps" // ov2640 #endif #elif CONFIG_EXAMPLE_CAM_HRES_1024 #if CONFIG_EXAMPLE_CAM_VRES_600 -#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_1024x600_15fps" +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RAW8_1024x600_15fps" // ov2640 #endif #endif +#ifndef EXAMPLE_CAM_FORMAT +#error "Unsupported camera format! Please adjust EXAMPLE_CAM_HRES and EXAMPLE_CAM_VRES in menuconfig" +#endif + #ifdef __cplusplus } #endif diff --git a/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults b/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults index 3e05d2e5e64..0204a38fcf8 100644 --- a/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults +++ b/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults @@ -1,4 +1,3 @@ -CONFIG_SPIRAM=y -CONFIG_IDF_EXPERIMENTAL_FEATURES=y -CONFIG_SPIRAM_SPEED_200M=y CONFIG_CAMERA_OV2640=y +CONFIG_CAMERA_SC030IOT=y +CONFIG_EXAMPLE_MIPI_DSI_DISP_USE_DMA2D=y diff --git a/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults.esp32p4 b/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults.esp32p4 new file mode 100644 index 00000000000..2c02a3b7ee1 --- /dev/null +++ b/examples/peripherals/camera/dvp_isp_dsi/sdkconfig.defaults.esp32p4 @@ -0,0 +1,3 @@ +CONFIG_IDF_EXPERIMENTAL_FEATURES=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_SPEED_200M=y diff --git a/examples/peripherals/camera/dvp_spi_lcd/CMakeLists.txt b/examples/peripherals/camera/dvp_spi_lcd/CMakeLists.txt new file mode 100644 index 00000000000..87b02367486 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(dvp_spi_lcd) diff --git a/examples/peripherals/camera/dvp_spi_lcd/README.md b/examples/peripherals/camera/dvp_spi_lcd/README.md new file mode 100644 index 00000000000..6a69880dc21 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/README.md @@ -0,0 +1,139 @@ +| Supported Targets | ESP32-P4 | ESP32-S3 | +| ----------------- | -------- | -------- | + + +# DVP Camera display via LCD example + +## Overview + +This example demonstrates how to use the esp_driver_cam component to capture DVP camera sensor signals and display it via LCD interface. This example will auto-detect camera sensors via [ESP camera sensor driver](https://components.espressif.com/components/espressif/esp_cam_sensor) and capture camera sensor signals via DVP interface and display it via LCD interface. + +## Usage + +The subsections below give only absolutely necessary information. For full steps to configure ESP-IDF and use it to build and run projects, see [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#get-started). + + +### Hardware Required + +- ESP32S3 devkit with OV2640 camera sensor and ST7789 LCD screen +- or an ESP32S3-EYE dev-kit + +You can also connect camera sensors and LCD screens from other vendors to the ESP chip, you can find corresponding camera or LCD drivers from [ESP Component Registry](https://components.espressif.com), or design your own customized drivers. + + + GND GND + ┌────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────┐ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ ┌───────────────┴─────────────┴──────────────────┐ │ + │ │ │ ┌──────────┴───────────┐ + │ │ │ LCD MOSI │ │ + │ │ ├───────────────────────────┤ │ + ┌───────────┴─────────┐ │ │ │ │ + │ │ │ │ LCD CLK │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ XCLK │ ESP_CHIP │ │ │ + │ DVP Camera ├──────────────────────┤ │ LCD CS │ LCD Screen │ + │ │ │ ├───────────────────────────┤ │ + │ │ D0~7 │ │ │ │ + │ ├──────────────────────┤ │ LCD DC │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ PCLK │ │ │ │ + │ ├──────────────────────┤ │ LCD BACKLIGHT │ │ + │ │ │ ├───────────────────────────┤ │ + │ │ VSYNC │ │ │ │ + │ ├──────────────────────┤ │ │ │ + │ │ │ │ │ │ + │ │ DE (HREF) │ │ │ │ + │ ├──────────────────────┤ │ └──────────────────────┘ + │ │ │ │ + └───────┬──┬──────────┘ │ │ + │ │ I2C SCL │ │ + │ └─────────────────────────────────┤ │ + │ I2C SDA │ │ + └────────────────────────────────────┤ │ + └────────────────────────────────────────────────┘ + + +### Set Chip Target + +First of all, your target must be supported by both: + +- **By your ESP-IDF version**: For the full list of supported targets, run: + ``` + idf.py --list-targets + ``` +- **By this example**: For the full list of supported targets, refer to the supported targets table at the top of this README. + +After you make sure that your target is supported, go to your example project directory and [set the chip target](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/tools/idf-py.html#select-the-target-chip-set-target): + +``` +idf.py set-target +``` + +For example, to set esp32-S3 as the chip target, run: + +``` +idf.py set-target esp32s3 +``` + + +### Configure the Project + +For information about Kconfig options, see [Project Configuration](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/kconfig.html) > _Name of relevant section(s)_. + +To conveniently check or modify Kconfig options for this example in a project configuration menu, run: + +``` +idf.py menuconfig +``` + +``` +Set CONFIG_CAMERA_OV2640 to y +``` + +Available options for the camera sensor output horizontal/vertical resolution can be seen in ``menuconfig`` > ``Example Configuration``. + + +### Build and Flash + +Execute the following command to build the project, flash it to your development board, and run the monitor tool to view the serial output: + +``` +idf.py build flash monitor +``` + +This command can be reduced to `idf.py flash monitor`. + +If the above command fails, check the log on the serial monitor which usually provides information on the possible cause of the issue. + +To exit the serial monitor, use `Ctrl` + `]`. + + +## Example Output + +If you see the following console output, your example should be running correctly: + +``` +I (1481) main_task: Calling app_main() +I (278) dvp_spi_lcd: Init SPI bus +I (278) dvp_spi_lcd: New panel IO SPI +I (278) dvp_spi_lcd: New ST7789 panel +I (278) dvp_spi_lcd: Reset and init panel +I (408) dvp_spi_lcd: Turn on display +I (408) dvp_spi_lcd: Screen lit up now! + +``` + + +## Reference + +- Link to the ESP-IDF feature's API reference, for example [ESP-IDF: Camera Controller Driver](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/camera_driver.html) +- [ESP-IDF Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#get-started) +- [Project Configuration](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/kconfig.html) (Kconfig Options) diff --git a/examples/peripherals/camera/dvp_spi_lcd/main/CMakeLists.txt b/examples/peripherals/camera/dvp_spi_lcd/main/CMakeLists.txt new file mode 100644 index 00000000000..e863a9baee1 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/main/CMakeLists.txt @@ -0,0 +1,4 @@ +idf_component_register(SRCS "dvp_spi_lcd_main.c" + INCLUDE_DIRS "." + REQUIRES esp_mm esp_driver_cam esp_driver_i2c esp_lcd sensor_init + ) diff --git a/examples/peripherals/camera/dvp_spi_lcd/main/Kconfig.projbuild b/examples/peripherals/camera/dvp_spi_lcd/main/Kconfig.projbuild new file mode 100644 index 00000000000..d44ca3210ba --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/main/Kconfig.projbuild @@ -0,0 +1,33 @@ +menu "Example Configuration" + + choice EXAMPLE_CAM_HRES + bool "Set camera horizontal resolution" + default EXAMPLE_CAM_HRES_240 + + config EXAMPLE_CAM_HRES_640 + bool "640" + config EXAMPLE_CAM_HRES_240 + bool "240" + endchoice + + config EXAMPLE_CAM_HRES + int + default 640 if EXAMPLE_CAM_HRES_640 + default 240 if EXAMPLE_CAM_HRES_240 + + choice EXAMPLE_CAM_VRES + bool "Set camera vertical resolution" + default EXAMPLE_CAM_VRES_480 if EXAMPLE_CAM_HRES_640 + default EXAMPLE_CAM_VRES_240 if EXAMPLE_CAM_HRES_240 + + config EXAMPLE_CAM_VRES_480 + bool "480" + config EXAMPLE_CAM_VRES_240 + bool "240" + endchoice + + config EXAMPLE_CAM_VRES + int + default 480 if EXAMPLE_CAM_VRES_480 + default 240 if EXAMPLE_CAM_VRES_240 +endmenu diff --git a/examples/peripherals/camera/dvp_spi_lcd/main/dvp_spi_lcd_main.c b/examples/peripherals/camera/dvp_spi_lcd/main/dvp_spi_lcd_main.c new file mode 100644 index 00000000000..bd9b1855fac --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/main/dvp_spi_lcd_main.c @@ -0,0 +1,225 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include "sdkconfig.h" +#include "esp_attr.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "esp_lcd_panel_ops.h" +#include "esp_cache.h" +#include "driver/i2c_master.h" +#include "esp_cam_ctlr.h" +#include "esp_cam_ctlr_dvp.h" +#include "example_config.h" +#include "driver/ledc.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "example_sensor_init.h" + +static const char *TAG = "dvp_spi_lcd"; + +#define BUFFER_SIZE (CONFIG_EXAMPLE_CAM_HRES * CONFIG_EXAMPLE_CAM_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8) + +typedef struct { + esp_lcd_panel_handle_t panel_hdl; + esp_cam_ctlr_trans_t cam_trans; +} example_cam_context_t; + +static bool s_camera_get_new_vb(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); +static bool s_camera_get_finished_trans(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data); + +static void lcd_display_init(esp_lcd_panel_handle_t *lcd_panel_hdl, esp_lcd_panel_io_handle_t lcd_io_hdl) +{ + esp_lcd_panel_handle_t panel_handle = NULL; + //----------LEDC initialization------------// + const ledc_timer_config_t lcd_timer = { + .speed_mode = LEDC_LOW_SPEED_MODE, + .duty_resolution = LEDC_TIMER_10_BIT, + .timer_num = EXAMPLE_LEDC_LCD_BACKLIGHT, + .freq_hz = 5000, + .clk_cfg = LEDC_AUTO_CLK + }; + ESP_ERROR_CHECK(ledc_timer_config(&lcd_timer)); + const ledc_channel_config_t lcd_channel = { + .gpio_num = EXAMPLE_LCD_BACKLIGHT, + .speed_mode = LEDC_LOW_SPEED_MODE, + .channel = LEDC_CHANNEL_0, + .timer_sel = EXAMPLE_LEDC_LCD_BACKLIGHT, + .intr_type = LEDC_INTR_DISABLE, + .duty = 0, + .hpoint = 0, + .flags.output_invert = true, + }; + ESP_ERROR_CHECK(ledc_channel_config(&lcd_channel)); + + //----------SPI initialization------------// + ESP_LOGI(TAG, "Init SPI bus"); + const spi_bus_config_t bus_cfg = { + .sclk_io_num = EXAMPLE_LCD_SPI_CLK, + .mosi_io_num = EXAMPLE_LCD_SPI_MOSI, + .miso_io_num = GPIO_NUM_NC, + .quadwp_io_num = GPIO_NUM_NC, + .quadhd_io_num = GPIO_NUM_NC, + .max_transfer_sz = BUFFER_SIZE, + }; + ESP_ERROR_CHECK(spi_bus_initialize(EXAMPLE_LCD_SPI_NUM, &bus_cfg, SPI_DMA_CH_AUTO)); + + //----------Panel IO initialization------------// + ESP_LOGI(TAG, "New panel IO SPI"); + const esp_lcd_panel_io_spi_config_t io_cfg = { + .dc_gpio_num = EXAMPLE_LCD_DC, + .cs_gpio_num = EXAMPLE_LCD_SPI_CS, + .pclk_hz = EXAMPLE_LCD_PIXEL_CLOCK_HZ, + .lcd_cmd_bits = EXAMPLE_LCD_CMD_BITS, + .lcd_param_bits = EXAMPLE_LCD_PARAM_BITS, + .spi_mode = 2, + .trans_queue_depth = 10, + }; + ESP_ERROR_CHECK(esp_lcd_new_panel_io_spi( + (esp_lcd_spi_bus_handle_t)EXAMPLE_LCD_SPI_NUM, + &io_cfg, + &lcd_io_hdl + )); + + //----------ST7789 Panel initialization------------// + ESP_LOGI(TAG, "New ST7789 panel"); + const esp_lcd_panel_dev_config_t panel_dev_cfg = { + .reset_gpio_num = EXAMPLE_LCD_RST, + .color_space = ESP_LCD_COLOR_SPACE_RGB, + .bits_per_pixel = EXAMPLE_RGB565_BITS_PER_PIXEL, + }; + ESP_ERROR_CHECK(esp_lcd_new_panel_st7789(lcd_io_hdl, &panel_dev_cfg, &panel_handle)); + + ESP_LOGI(TAG, "Reset and init panel"); + esp_lcd_panel_reset(panel_handle); + esp_lcd_panel_init(panel_handle); + esp_lcd_panel_invert_color(panel_handle, true); + + ESP_LOGI(TAG, "Turn on display"); + esp_lcd_panel_disp_on_off(panel_handle, true); + + const int brightness = 100; + uint32_t duty = (1023 * brightness) / 100; + ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, duty)); + ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0)); + + *lcd_panel_hdl = panel_handle; +} + +void app_main(void) +{ + esp_err_t ret = ESP_FAIL; + + esp_lcd_panel_handle_t lcd_panel_hdl = NULL; + esp_lcd_panel_io_handle_t lcd_io_hdl = NULL; + + lcd_display_init(&lcd_panel_hdl, lcd_io_hdl); + + //----------CAM Controller Init------------// + esp_cam_ctlr_handle_t cam_handle = NULL; + esp_cam_ctlr_dvp_pin_config_t pin_cfg = { + .data_width = EXAMPLE_DVP_CAM_DATA_WIDTH, + .data_io = { + EXAMPLE_DVP_CAM_D0_IO, + EXAMPLE_DVP_CAM_D1_IO, + EXAMPLE_DVP_CAM_D2_IO, + EXAMPLE_DVP_CAM_D3_IO, + EXAMPLE_DVP_CAM_D4_IO, + EXAMPLE_DVP_CAM_D5_IO, + EXAMPLE_DVP_CAM_D6_IO, + EXAMPLE_DVP_CAM_D7_IO, + }, + .vsync_io = EXAMPLE_DVP_CAM_VSYNC_IO, + .de_io = EXAMPLE_DVP_CAM_DE_IO, + .pclk_io = EXAMPLE_DVP_CAM_PCLK_IO, + .xclk_io = EXAMPLE_DVP_CAM_XCLK_IO, + }; + + esp_cam_ctlr_dvp_config_t dvp_config = { + .ctlr_id = 0, + .clk_src = CAM_CLK_SRC_DEFAULT, + .h_res = CONFIG_EXAMPLE_CAM_HRES, + .v_res = CONFIG_EXAMPLE_CAM_VRES, + .input_data_color_type = CAM_CTLR_COLOR_RGB565, + .dma_burst_size = 64, + .pin = &pin_cfg, + .bk_buffer_dis = 1, + .xclk_freq = EXAMPLE_DVP_CAM_XCLK_FREQ_HZ, + }; + + ret = esp_cam_new_dvp_ctlr(&dvp_config, &cam_handle); + if (ret != ESP_OK) { + ESP_LOGE(TAG, "dvp init fail[%d]", ret); + return; + } + + //--------Allocate Camera Buffer----------// + size_t cam_buffer_size = CONFIG_EXAMPLE_CAM_HRES * CONFIG_EXAMPLE_CAM_VRES * EXAMPLE_RGB565_BITS_PER_PIXEL / 8; + void *cam_buffer = NULL; + + cam_buffer = esp_cam_ctlr_alloc_buffer(cam_handle, cam_buffer_size, EXAMPLE_DVP_CAM_BUF_ALLOC_CAPS); + + //--------Camera Sensor and SCCB Init-----------// + example_sensor_config_t cam_sensor_config = { + .i2c_port_num = I2C_NUM_0, + .i2c_sda_io_num = EXAMPLE_DVP_CAM_SCCB_SDA_IO, + .i2c_scl_io_num = EXAMPLE_DVP_CAM_SCCB_SCL_IO, + .port = ESP_CAM_SENSOR_DVP, + .format_name = EXAMPLE_CAM_FORMAT, + }; + example_sensor_handle_t sensor_handle = { + .sccb_handle = NULL, + .i2c_bus_handle = NULL, + }; + example_sensor_init(&cam_sensor_config, &sensor_handle); + + //--------Register Camera Callbacks----------// + example_cam_context_t cam_ctx = { + .panel_hdl = lcd_panel_hdl, + .cam_trans = { + .buffer = cam_buffer, + .buflen = cam_buffer_size, + } + }; + + esp_cam_ctlr_evt_cbs_t cbs = { + .on_get_new_trans = s_camera_get_new_vb, + .on_trans_finished = s_camera_get_finished_trans, + }; + if (esp_cam_ctlr_register_event_callbacks(cam_handle, &cbs, &cam_ctx) != ESP_OK) { + ESP_LOGE(TAG, "ops register fail"); + return; + } + + //--------Enable and start Camera Controller----------// + ESP_ERROR_CHECK(esp_cam_ctlr_enable(cam_handle)); + + if (esp_cam_ctlr_start(cam_handle) != ESP_OK) { + ESP_LOGE(TAG, "Driver start fail"); + return; + } + + while (1) { + vTaskDelay(1000 / portTICK_PERIOD_MS); + } +} + +static bool s_camera_get_new_vb(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data) +{ + example_cam_context_t *ctx = (example_cam_context_t *)user_data; + *trans = ctx->cam_trans; + return false; +} + +static bool s_camera_get_finished_trans(esp_cam_ctlr_handle_t handle, esp_cam_ctlr_trans_t *trans, void *user_data) +{ + example_cam_context_t *ctx = (example_cam_context_t *)user_data; + esp_lcd_panel_draw_bitmap(ctx->panel_hdl, 0, 0, CONFIG_EXAMPLE_CAM_HRES, CONFIG_EXAMPLE_CAM_VRES, trans->buffer); + return false; +} diff --git a/examples/peripherals/camera/dvp_spi_lcd/main/example_config.h b/examples/peripherals/camera/dvp_spi_lcd/main/example_config.h new file mode 100644 index 00000000000..2925ac9542f --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/main/example_config.h @@ -0,0 +1,71 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "sdkconfig.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//----------CAM Config------------// +#define EXAMPLE_RGB565_BITS_PER_PIXEL 16 + +#define EXAMPLE_DVP_CAM_SCCB_SCL_IO (5) +#define EXAMPLE_DVP_CAM_SCCB_SDA_IO (4) + +#define EXAMPLE_DVP_CAM_XCLK_FREQ_HZ (20000000) + +#define EXAMPLE_DVP_CAM_DATA_WIDTH (8) + +#define EXAMPLE_DVP_CAM_D0_IO (11) +#define EXAMPLE_DVP_CAM_D1_IO (9) +#define EXAMPLE_DVP_CAM_D2_IO (8) +#define EXAMPLE_DVP_CAM_D3_IO (10) +#define EXAMPLE_DVP_CAM_D4_IO (12) +#define EXAMPLE_DVP_CAM_D5_IO (18) +#define EXAMPLE_DVP_CAM_D6_IO (17) +#define EXAMPLE_DVP_CAM_D7_IO (16) + +#define EXAMPLE_DVP_CAM_XCLK_IO (15) +#define EXAMPLE_DVP_CAM_PCLK_IO (13) +#define EXAMPLE_DVP_CAM_DE_IO (7) +#define EXAMPLE_DVP_CAM_VSYNC_IO (6) +#define EXAMPLE_DVP_CAM_HSYNC_IO (-1) + +#if CONFIG_SPIRAM +#define EXAMPLE_DVP_CAM_BUF_ALLOC_CAPS (MALLOC_CAP_SPIRAM | MALLOC_CAP_DMA) +#else +#define EXAMPLE_DVP_CAM_BUF_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA) +#endif + +#define EXAMPLE_CAM_FORMAT "DVP_8bit_20Minput_RGB565_240x240_25fps" // ov2640 + +#ifndef EXAMPLE_CAM_FORMAT +#error "Unsupported camera format! Please adjust EXAMPLE_CAM_HRES and EXAMPLE_CAM_VRES in menuconfig" +#endif + +//----------LCD Config------------// +#define EXAMPLE_LEDC_DVP_XCLK (LEDC_TIMER_0) +#define EXAMPLE_LEDC_LCD_BACKLIGHT (LEDC_TIMER_1) +#define EXAMPLE_LCD_SPI_NUM (SPI3_HOST) +#define EXAMPLE_LCD_CMD_BITS (8) +#define EXAMPLE_LCD_PARAM_BITS (8) + +/* LCD Display */ +#define EXAMPLE_LCD_SPI_MOSI (GPIO_NUM_47) +#define EXAMPLE_LCD_SPI_CLK (GPIO_NUM_21) +#define EXAMPLE_LCD_SPI_CS (GPIO_NUM_44) +#define EXAMPLE_LCD_DC (GPIO_NUM_43) +#define EXAMPLE_LCD_RST (GPIO_NUM_NC) +#define EXAMPLE_LCD_BACKLIGHT (GPIO_NUM_48) + +#define EXAMPLE_LCD_PIXEL_CLOCK_HZ (80 * 1000 * 1000) + +#ifdef __cplusplus +} +#endif diff --git a/examples/peripherals/camera/dvp_spi_lcd/main/idf_component.yml b/examples/peripherals/camera/dvp_spi_lcd/main/idf_component.yml new file mode 100644 index 00000000000..4cd68977191 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/main/idf_component.yml @@ -0,0 +1,3 @@ +dependencies: + sensor_init: + path: ${IDF_PATH}/examples/peripherals/camera/common_components/sensor_init diff --git a/examples/peripherals/camera/dvp_spi_lcd/pytest_dvp_spi_lcd.py b/examples/peripherals/camera/dvp_spi_lcd/pytest_dvp_spi_lcd.py new file mode 100644 index 00000000000..7dfd614f40b --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/pytest_dvp_spi_lcd.py @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: CC0-1.0 +import pytest +from pytest_embedded import Dut +from pytest_embedded_idf.utils import idf_parametrize + + +@pytest.mark.generic +@idf_parametrize('target', ['esp32p4'], indirect=['target']) +def test_dvp_spi_lcd_p4(dut: Dut) -> None: + dut.expect_exact('Calling app_main()') diff --git a/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults new file mode 100644 index 00000000000..dc0f8f7a839 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults @@ -0,0 +1 @@ +CONFIG_CAMERA_OV2640=y diff --git a/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32p4 b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32p4 new file mode 100644 index 00000000000..c15bfde7e87 --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32p4 @@ -0,0 +1,2 @@ +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_SPIRAM=y diff --git a/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32s3 b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32s3 new file mode 100644 index 00000000000..38bbb5933ed --- /dev/null +++ b/examples/peripherals/camera/dvp_spi_lcd/sdkconfig.defaults.esp32s3 @@ -0,0 +1,2 @@ +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y diff --git a/examples/peripherals/camera/mipi_isp_dsi/main/mipi_isp_dsi_main.c b/examples/peripherals/camera/mipi_isp_dsi/main/mipi_isp_dsi_main.c index 34ef7368e0a..d7f3645da61 100644 --- a/examples/peripherals/camera/mipi_isp_dsi/main/mipi_isp_dsi_main.c +++ b/examples/peripherals/camera/mipi_isp_dsi/main/mipi_isp_dsi_main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -66,7 +66,10 @@ void app_main(void) }; //--------Camera Sensor and SCCB Init-----------// - i2c_master_bus_handle_t i2c_bus_handle = NULL; + example_sensor_handle_t sensor_handle = { + .sccb_handle = NULL, + .i2c_bus_handle = NULL, + }; example_sensor_config_t cam_sensor_config = { .i2c_port_num = I2C_NUM_0, .i2c_sda_io_num = EXAMPLE_MIPI_CSI_CAM_SCCB_SDA_IO, @@ -74,7 +77,7 @@ void app_main(void) .port = ESP_CAM_SENSOR_MIPI_CSI, .format_name = EXAMPLE_CAM_FORMAT, }; - example_sensor_init(&cam_sensor_config, &i2c_bus_handle); + example_sensor_init(&cam_sensor_config, &sensor_handle); //---------------CSI Init------------------// esp_cam_ctlr_csi_config_t csi_config = { diff --git a/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults b/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults index 6192f176b4a..2a44a906d86 100644 --- a/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults +++ b/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults @@ -1,5 +1,2 @@ -CONFIG_SPIRAM=y -CONFIG_IDF_EXPERIMENTAL_FEATURES=y -CONFIG_SPIRAM_SPEED_200M=y CONFIG_CAMERA_SC2336=y CONFIG_CAMERA_OV5647=y diff --git a/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults.esp32p4 b/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults.esp32p4 new file mode 100644 index 00000000000..2c02a3b7ee1 --- /dev/null +++ b/examples/peripherals/camera/mipi_isp_dsi/sdkconfig.defaults.esp32p4 @@ -0,0 +1,3 @@ +CONFIG_IDF_EXPERIMENTAL_FEATURES=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_SPEED_200M=y diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/README.md b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/README.md index 9c8749d6d84..bc474f2f448 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/README.md +++ b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/README.md @@ -16,6 +16,8 @@ This example demonstrates how to use I2S TDM mode to record 4 MICs connected to | ES7210_I2S_FMT_DSP_A | PCM short format | | ES7210_I2S_FMT_DSP_B | PCM long format | +In this example, we use `esp_codec_dev` dependency which contains the `es7210` driver. This driver uses `ES7210_I2S_FMT_I2S` format by default. + Recorded voice will be saved to SD card in `wav` format, and can be played or processed on PC. ## How to Use Example @@ -31,11 +33,11 @@ All the GPIO used in this example can be changed according to your board, by mac ### Dependency -This example is based on [es7210 component](https://components.espressif.com/component/espressif/es7210) +This example is based on [esp_codec_dev component](https://components.espressif.com/components/espressif/esp_codec_dev) -The component can be installed by esp component manager. Since this example already installed it, no need to re-installed it again, but if you want to install this component in your own project, you can input the following command: +The component can be installed by [IDF Component Manager](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html). This example already includes it. If you want to install [esp_codec_dev component](https://components.espressif.com/components/espressif/esp_codec_dev) separately in your project, you can input the following command: ``` -idf.py add-dependency espressif/es7210^1.0.0 +idf.py add-dependency "espressif/esp_codec_dev^1.3.4" ``` If the dependency is added, you can check `idf_component.yml` for more detail. When building this example or other projects with managed components, the component manager will search for the required components online and download them into the `managed_components` folder. @@ -46,11 +48,8 @@ If the dependency is added, you can check `idf_component.yml` for more detail. W ``` idf.py set-target TARGET ``` -* Change value of `EXAMPLE_I2S_FORMAT` to check I2S driver's functionality on different I2S formats. -* Change `EXAMPLE_ES7210_MIC_GAIN` and `EXAMPLE_ES7210_MIC_BIAS` according your MIC's specs if needed. -* Change `EXAMPLE_ES7210_ADC_VOLUME` if recorded voice is too loud or too quite. -Note: it's better to adjust `EXAMPLE_ES7210_MIC_GAIN` first. If adjusting MIC gain doesn't meet your demand, you can then adjust `EXAMPLE_ES7210_ADC_VOLUME`. That is to say, it's better to adjust analog gain than digital gain. +The configuration macros are defined at the beginning of `main/i2s_es7210_record_example.c`, you can change the configuration macros according to your needs. ### Build and Flash diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/CMakeLists.txt b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/CMakeLists.txt index c90803d430e..dfe2f114bdc 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/CMakeLists.txt +++ b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/CMakeLists.txt @@ -1,4 +1,4 @@ idf_component_register(SRCS "i2s_es7210_record_example.c" - PRIV_REQUIRES esp_driver_i2s esp_driver_gpio fatfs i2s_examples_common + PRIV_REQUIRES esp_driver_i2s esp_driver_i2c esp_driver_gpio fatfs i2s_examples_common INCLUDE_DIRS ) diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/i2s_es7210_record_example.c b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/i2s_es7210_record_example.c index 79f510e150f..5da0d9101b2 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/i2s_es7210_record_example.c +++ b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/i2s_es7210_record_example.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -8,8 +8,10 @@ #include "esp_check.h" #include "esp_vfs_fat.h" #include "driver/i2s_tdm.h" -#include "driver/i2c.h" -#include "es7210.h" +#include "driver/i2c_master.h" +#include "esp_codec_dev_defaults.h" +#include "esp_codec_dev.h" +#include "esp_codec_dev_vol.h" #include "format_wav.h" #if CONFIG_IDF_TARGET_ESP32S3 // ESP32-S3-Korvo-1 pin out @@ -67,7 +69,6 @@ #endif /* I2S configurations */ -#define EXAMPLE_I2S_TDM_FORMAT (ES7210_I2S_FMT_I2S) #define EXAMPLE_I2S_CHAN_NUM (4) #define EXAMPLE_I2S_SAMPLE_RATE (48000) #define EXAMPLE_I2S_MCLK_MULTIPLE (I2S_MCLK_MULTIPLE_256) @@ -76,10 +77,8 @@ /* ES7210 configurations */ #define EXAMPLE_ES7210_I2C_ADDR (0x40) -#define EXAMPLE_ES7210_I2C_CLK (100000) -#define EXAMPLE_ES7210_MIC_GAIN (ES7210_MIC_GAIN_30DB) -#define EXAMPLE_ES7210_MIC_BIAS (ES7210_MIC_BIAS_2V87) -#define EXAMPLE_ES7210_ADC_VOLUME (0) +#define EXAMPLE_ES7210_MIC_GAIN (30) // 30db +#define EXAMPLE_ES7210_MIC_SELECTED (ES7120_SEL_MIC1 | ES7120_SEL_MIC2 | ES7120_SEL_MIC3 | ES7120_SEL_MIC4) /* SD card & recording configurations */ #define EXAMPLE_RECORD_TIME_SEC (10) @@ -97,15 +96,11 @@ static i2s_chan_handle_t es7210_i2s_init(void) ESP_LOGI(TAG, "Configure I2S receive channel to TDM mode"); i2s_tdm_config_t i2s_tdm_rx_conf = { -#if EXAMPLE_I2S_FORMAT == ES7210_I2S_FMT_I2S - .slot_cfg = I2S_TDM_PHILIPS_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_STEREO, EXAMPLE_I2S_TDM_SLOT_MASK), -#elif EXAMPLE_I2S_FORMAT == ES7210_I2S_FMT_LJ - .slot_cfg = I2S_TDM_MSB_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_STEREO, EXAMPLE_I2S_TDM_SLOT_MASK), -#elif EXAMPLE_I2S_FORMAT == ES7210_I2S_FMT_DSP_A - .slot_cfg = I2S_TDM_PCM_SHORT_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_STEREO, EXAMPLE_I2S_TDM_SLOT_MASK), -#elif EXAMPLE_I2S_FORMAT == ES7210_I2S_FMT_DSP_B - .slot_cfg = I2S_TDM_PCM_LONG_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_STEREO, EXAMPLE_I2S_TDM_SLOT_MASK), -#endif + // es7210 driver is default to use philips format in esp_codec_dev component + .slot_cfg = I2S_TDM_PHILIPS_SLOT_DEFAULT_CONFIG( + EXAMPLE_I2S_SAMPLE_BITS, + I2S_SLOT_MODE_STEREO, + EXAMPLE_I2S_TDM_SLOT_MASK), .clk_cfg = { .clk_src = I2S_CLK_SRC_DEFAULT, .sample_rate_hz = EXAMPLE_I2S_SAMPLE_RATE, @@ -173,40 +168,81 @@ sdmmc_card_t * mount_sdcard(void) return sdmmc_card; } -static void es7210_codec_init(void) +static esp_codec_dev_handle_t es7210_codec_init(i2s_chan_handle_t i2s_rx_chan) { ESP_LOGI(TAG, "Init I2C used to configure ES7210"); - i2c_config_t i2c_conf = { + /* Initialize I2C peripheral */ + i2c_master_bus_handle_t i2c_bus_handle = NULL; + i2c_master_bus_config_t i2c_mst_cfg = { + .i2c_port = EXAMPLE_I2C_NUM, .sda_io_num = EXAMPLE_I2C_SDA_IO, .scl_io_num = EXAMPLE_I2C_SCL_IO, - .mode = I2C_MODE_MASTER, - .sda_pullup_en = GPIO_PULLUP_ENABLE, - .scl_pullup_en = GPIO_PULLUP_ENABLE, - .master.clk_speed = EXAMPLE_ES7210_I2C_CLK, + .clk_source = I2C_CLK_SRC_DEFAULT, + .glitch_ignore_cnt = 7, + /* Pull-up internally for no external pull-up case. + Suggest to use external pull-up to ensure a strong enough pull-up. */ + .flags.enable_internal_pullup = true, }; - ESP_ERROR_CHECK(i2c_param_config(EXAMPLE_I2C_NUM, &i2c_conf)); - ESP_ERROR_CHECK(i2c_driver_install(EXAMPLE_I2C_NUM, i2c_conf.mode, 0, 0, 0)); + ESP_ERROR_CHECK(i2c_new_master_bus(&i2c_mst_cfg, &i2c_bus_handle)); - /* Create ES7210 device handle */ - es7210_dev_handle_t es7210_handle = NULL; - es7210_i2c_config_t es7210_i2c_conf = { - .i2c_port = EXAMPLE_I2C_NUM, - .i2c_addr = EXAMPLE_ES7210_I2C_ADDR + /* Create control interface with I2C bus handle */ + audio_codec_i2c_cfg_t i2c_cfg = { + .port = EXAMPLE_I2C_NUM, + .addr = ES7210_CODEC_DEFAULT_ADDR, + .bus_handle = i2c_bus_handle, }; - ESP_ERROR_CHECK(es7210_new_codec(&es7210_i2c_conf, &es7210_handle)); + const audio_codec_ctrl_if_t *ctrl_if = audio_codec_new_i2c_ctrl(&i2c_cfg); + assert(ctrl_if); + /* Create data interface with I2S bus handle */ + audio_codec_i2s_cfg_t i2s_cfg = { + .port = EXAMPLE_I2S_NUM, + .rx_handle = i2s_rx_chan, + .tx_handle = NULL, + }; + const audio_codec_data_if_t *data_if = audio_codec_new_i2s_data(&i2s_cfg); + assert(data_if); + + /* Create ES7210 interface handle */ ESP_LOGI(TAG, "Configure ES7210 codec parameters"); - es7210_codec_config_t codec_conf = { - .i2s_format = EXAMPLE_I2S_TDM_FORMAT, - .mclk_ratio = EXAMPLE_I2S_MCLK_MULTIPLE, - .sample_rate_hz = EXAMPLE_I2S_SAMPLE_RATE, - .bit_width = (es7210_i2s_bits_t)EXAMPLE_I2S_SAMPLE_BITS, - .mic_bias = EXAMPLE_ES7210_MIC_BIAS, - .mic_gain = EXAMPLE_ES7210_MIC_GAIN, - .flags.tdm_enable = true + es7210_codec_cfg_t es7210_cfg = { + .ctrl_if = ctrl_if, + .master_mode = false, + .mic_selected = EXAMPLE_ES7210_MIC_SELECTED, + .mclk_src = ES7210_MCLK_FROM_PAD, + .mclk_div = EXAMPLE_I2S_MCLK_MULTIPLE, }; - ESP_ERROR_CHECK(es7210_config_codec(es7210_handle, &codec_conf)); - ESP_ERROR_CHECK(es7210_config_volume(es7210_handle, EXAMPLE_ES7210_ADC_VOLUME)); + const audio_codec_if_t *es7210_if = es7210_codec_new(&es7210_cfg); + assert(es7210_if); + + /* Create the top codec handle with ES7210 interface handle and data interface */ + esp_codec_dev_cfg_t dev_cfg = { + .dev_type = ESP_CODEC_DEV_TYPE_IN, + .codec_if = es7210_if, + .data_if = data_if, + }; + esp_codec_dev_handle_t codec_handle = esp_codec_dev_new(&dev_cfg); + assert(codec_handle); + + /* Specify the sample configurations and open the device */ + esp_codec_dev_sample_info_t sample_cfg = { + .bits_per_sample = EXAMPLE_I2S_SAMPLE_BITS, + .channel = EXAMPLE_I2S_CHAN_NUM, + .channel_mask = EXAMPLE_ES7210_MIC_SELECTED, + .sample_rate = EXAMPLE_I2S_SAMPLE_RATE, + }; + if (esp_codec_dev_open(codec_handle, &sample_cfg) != ESP_CODEC_DEV_OK) { + ESP_LOGE(TAG, "Open codec device failed"); + assert(false); + } + + /* Set the initial gain */ + if (esp_codec_dev_set_in_gain(codec_handle, EXAMPLE_ES7210_MIC_GAIN) != ESP_CODEC_DEV_OK) { + ESP_LOGE(TAG, "set input gain failed"); + assert(false); + } + + return codec_handle; } static esp_err_t record_wav(i2s_chan_handle_t i2s_rx_chan) @@ -231,7 +267,6 @@ static esp_err_t record_wav(i2s_chan_handle_t i2s_rx_chan) /* Start recording */ size_t wav_written = 0; static int16_t i2s_readraw_buff[4096]; - ESP_GOTO_ON_ERROR(i2s_channel_enable(i2s_rx_chan), err, TAG, "error while starting i2s rx channel"); while (wav_written < wav_size) { if (wav_written % byte_rate < sizeof(i2s_readraw_buff)) { ESP_LOGI(TAG, "Recording: %"PRIu32"/%ds", wav_written / byte_rate + 1, (int)EXAMPLE_RECORD_TIME_SEC); @@ -247,7 +282,6 @@ static esp_err_t record_wav(i2s_chan_handle_t i2s_rx_chan) } err: - i2s_channel_disable(i2s_rx_chan); ESP_LOGI(TAG, "Recording done! Flushing file buffer"); fclose(f); @@ -259,13 +293,15 @@ void app_main(void) /* Init I2C bus to configure ES7210 and I2S bus to receive audio data from ES7210 */ i2s_chan_handle_t i2s_rx_chan = es7210_i2s_init(); /* Create ES7210 device handle and configure codec parameters */ - es7210_codec_init(); + esp_codec_dev_handle_t codec_handle = es7210_codec_init(i2s_rx_chan); /* Mount SD card, the recorded audio file will be saved into it */ sdmmc_card_t *sdmmc_card = mount_sdcard(); /* Start to record wav audio */ esp_err_t err = record_wav(i2s_rx_chan); /* Unmount SD card */ esp_vfs_fat_sdcard_unmount(EXAMPLE_SD_MOUNT_POINT, sdmmc_card); + /* Close codec device */ + esp_codec_dev_close(codec_handle); if (err == ESP_OK) { ESP_LOGI(TAG, "Audio was successfully recorded into "EXAMPLE_RECORD_FILE_PATH ". You can now remove the SD card safely"); diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/idf_component.yml b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/idf_component.yml index 287056bd515..4f217693059 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/idf_component.yml +++ b/examples/peripherals/i2s/i2s_codec/i2s_es7210_tdm/main/idf_component.yml @@ -1,19 +1,5 @@ ## IDF Component Manager Manifest File dependencies: - espressif/es7210: "^1.0.0" - ## Required IDF version - idf: - version: ">=4.4.0" - # # Put list of dependencies here - # # For components maintained by Espressif: - # component: "~1.0.0" - # # For 3rd party components: - # username/component: ">=1.0.0,<2.0.0" - # username2/component2: - # version: "~1.0.0" - # # For transient dependencies `public` flag can be set. - # # `public` flag doesn't have an effect dependencies of the `main` component. - # # All dependencies of `main` are public by default. - # public: true + espressif/esp_codec_dev: ^1.3.4 i2s_examples_common: path: ${IDF_PATH}/examples/peripherals/i2s/i2s_examples_common diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/README.md b/examples/peripherals/i2s/i2s_codec/i2s_es8311/README.md index b79ae8b923b..e691eaf9338 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/README.md +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/README.md @@ -59,11 +59,11 @@ Note: Since ESP32-C3 & ESP32-H2 board does not have GPIO 16/17, you can use othe ### Dependency -This example is based on [es8311 component](https://components.espressif.com/component/espressif/es8311) +This example is based on [esp_codec_dev component](https://components.espressif.com/components/espressif/esp_codec_dev) -The component can be installed by [IDF Component Manager](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html). This example already includes it. If you want to install [es8311 component](https://components.espressif.com/components/espressif/es8311) separately in your project, you can input the following command: +The component can be installed by [IDF Component Manager](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-component-manager.html). This example already includes it. If you want to install [esp_codec_dev component](https://components.espressif.com/components/espressif/esp_codec_dev) separately in your project, you can input the following command: ``` -idf.py add-dependency "espressif/es8311^1.0.0" +idf.py add-dependency "espressif/esp_codec_dev^1.3.4" ``` If the dependency is added, you can check `idf_component.yml` for more detail. When building this example or other projects with managed components, the component manager will search for the required components online and download them into the `managed_components` folder. diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/CMakeLists.txt b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/CMakeLists.txt index bcedc48daa3..e757853d56b 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/CMakeLists.txt +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRCS "i2s_es8311_example.c" - PRIV_REQUIRES esp_driver_i2s esp_driver_gpio + PRIV_REQUIRES esp_driver_i2s esp_driver_i2c esp_driver_gpio EMBED_FILES "canon.pcm") diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/Kconfig.projbuild b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/Kconfig.projbuild index 72ce831be62..c6279441bab 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/Kconfig.projbuild +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/Kconfig.projbuild @@ -1,5 +1,54 @@ menu "Example Configuration" + menu "Example IO Configuration" + config EXAMPLE_PA_CTRL_IO + int "Power Amplifier control IO" + default 53 if IDF_TARGET_ESP32P4 + default -1 + help + Set GPIO number for PA control. Set -1 to disable PA control. + + config EXAMPLE_I2C_SDA_IO + int "I2C SDA IO" + default 17 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 9 if IDF_TARGET_ESP32H2 + default 7 + + config EXAMPLE_I2C_SCL_IO + int "I2C SCL IO" + default 16 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 8 if IDF_TARGET_ESP32H2 || IDF_TARGET_ESP32P4 + default 6 + + config EXAMPLE_I2S_MCLK_IO + int "I2S MCLK IO" + default 13 if IDF_TARGET_ESP32P4 + default 0 + + config EXAMPLE_I2S_BCLK_IO + int "I2S BCLK IO" + default 12 if IDF_TARGET_ESP32P4 + default 4 + + config EXAMPLE_I2S_WS_IO + int "I2S WS IO" + default 10 if IDF_TARGET_ESP32P4 + default 5 + + config EXAMPLE_I2S_DIN_IO + int "I2S DIN IO" + default 19 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 11 if IDF_TARGET_ESP32P4 + default 3 + + config EXAMPLE_I2S_DOUT_IO + int "I2S DOUT IO" + default 18 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 9 if IDF_TARGET_ESP32P4 + default 2 + + endmenu + choice EXAMPLE_MODE prompt "Example mode" default EXAMPLE_MODE_MUSIC @@ -13,59 +62,17 @@ menu "Example Configuration" bool "echo" endchoice - choice EXAMPLE_SELECT_MIC_GAIN - prompt "Set MIC gain" + config EXAMPLE_MIC_GAIN + int "Set MIC gain (unit: dB)" depends on EXAMPLE_MODE_ECHO - default MIC_GAIN_18DB + default 18 help Select mic gain for echo mode - config MIC_GAIN_0DB - bool "0dB" - config MIC_GAIN_6DB - bool "6dB" - config MIC_GAIN_12DB - bool "12dB" - config MIC_GAIN_18DB - bool "18dB" - config MIC_GAIN_24DB - bool "24dB" - config MIC_GAIN_30DB - bool "30dB" - config MIC_GAIN_36DB - bool "36dB" - config MIC_GAIN_42DB - bool "42dB" - endchoice - - config EXAMPLE_MIC_GAIN - int - default 0 if MIC_GAIN_0DB - default 1 if MIC_GAIN_6DB - default 2 if MIC_GAIN_12DB - default 3 if MIC_GAIN_18DB - default 4 if MIC_GAIN_24DB - default 5 if MIC_GAIN_30DB - default 6 if MIC_GAIN_36DB - default 7 if MIC_GAIN_42DB - config EXAMPLE_VOICE_VOLUME int "Voice volume" range 0 100 default 60 help Set voice volume - - config EXAMPLE_PA_CTRL_IO - int "Power Amplifier control IO" - default 53 if IDF_TARGET_ESP32P4 - default -1 - help - Set GPIO number for PA control. Set -1 to disable PA control. - - config EXAMPLE_BSP - bool "Enable Board Support Package (BSP) support" - default n - help - Use BSP to setup all hardware settings. Specific board must be selected in main/idf_component.yml file. endmenu diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h index 5c3181c4e2b..c56eb46b5c5 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/example_config.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: CC0-1.0 */ @@ -19,47 +19,15 @@ #define EXAMPLE_MIC_GAIN CONFIG_EXAMPLE_MIC_GAIN #endif -#if !defined(CONFIG_EXAMPLE_BSP) - /* I2C port and GPIOs */ #define I2C_NUM (0) -#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 -#define I2C_SCL_IO (GPIO_NUM_16) -#define I2C_SDA_IO (GPIO_NUM_17) -#elif CONFIG_IDF_TARGET_ESP32H2 -#define I2C_SCL_IO (GPIO_NUM_8) -#define I2C_SDA_IO (GPIO_NUM_9) -#elif CONFIG_IDF_TARGET_ESP32P4 -#define I2C_SCL_IO (GPIO_NUM_8) -#define I2C_SDA_IO (GPIO_NUM_7) -#else -#define I2C_SCL_IO (GPIO_NUM_6) -#define I2C_SDA_IO (GPIO_NUM_7) -#endif +#define I2C_SCL_IO CONFIG_EXAMPLE_I2C_SCL_IO +#define I2C_SDA_IO CONFIG_EXAMPLE_I2C_SDA_IO /* I2S port and GPIOs */ #define I2S_NUM (0) -#if CONFIG_IDF_TARGET_ESP32P4 -#define I2S_MCK_IO (GPIO_NUM_13) -#define I2S_BCK_IO (GPIO_NUM_12) -#define I2S_WS_IO (GPIO_NUM_10) -#define I2S_DO_IO (GPIO_NUM_9) -#define I2S_DI_IO (GPIO_NUM_11) -#else -#define I2S_MCK_IO (GPIO_NUM_0) -#define I2S_BCK_IO (GPIO_NUM_4) -#define I2S_WS_IO (GPIO_NUM_5) -#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 -#define I2S_DO_IO (GPIO_NUM_18) -#define I2S_DI_IO (GPIO_NUM_19) -#else -#define I2S_DO_IO (GPIO_NUM_2) -#define I2S_DI_IO (GPIO_NUM_3) -#endif -#endif - -#else // CONFIG_EXAMPLE_BSP -#include "bsp/esp-bsp.h" -#define I2C_NUM BSP_I2C_NUM - -#endif // CONFIG_EXAMPLE_BSP +#define I2S_MCK_IO CONFIG_EXAMPLE_I2S_MCLK_IO +#define I2S_BCK_IO CONFIG_EXAMPLE_I2S_BCLK_IO +#define I2S_WS_IO CONFIG_EXAMPLE_I2S_WS_IO +#define I2S_DO_IO CONFIG_EXAMPLE_I2S_DOUT_IO +#define I2S_DI_IO CONFIG_EXAMPLE_I2S_DIN_IO diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/i2s_es8311_example.c b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/i2s_es8311_example.c index 4b012088873..79d13a30cef 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/i2s_es8311_example.c +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/i2s_es8311_example.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: CC0-1.0 */ @@ -10,10 +10,13 @@ #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/i2s_std.h" +#include "driver/i2c_master.h" #include "driver/gpio.h" #include "esp_system.h" +#include "esp_codec_dev_defaults.h" +#include "esp_codec_dev.h" +#include "esp_codec_dev_vol.h" #include "esp_check.h" -#include "es8311.h" #include "example_config.h" static const char *TAG = "i2s_es8311"; @@ -32,45 +35,94 @@ extern const uint8_t music_pcm_end[] asm("_binary_canon_pcm_end"); static esp_err_t es8311_codec_init(void) { /* Initialize I2C peripheral */ -#if !defined(CONFIG_EXAMPLE_BSP) - const i2c_config_t es_i2c_cfg = { + i2c_master_bus_handle_t i2c_bus_handle = NULL; + i2c_master_bus_config_t i2c_mst_cfg = { + .i2c_port = I2C_NUM, .sda_io_num = I2C_SDA_IO, .scl_io_num = I2C_SCL_IO, - .mode = I2C_MODE_MASTER, - .sda_pullup_en = GPIO_PULLUP_ENABLE, - .scl_pullup_en = GPIO_PULLUP_ENABLE, - .master.clk_speed = 100000, + .clk_source = I2C_CLK_SRC_DEFAULT, + .glitch_ignore_cnt = 7, + /* Pull-up internally for no external pull-up case. + Suggest to use external pull-up to ensure a strong enough pull-up. */ + .flags.enable_internal_pullup = true, }; - ESP_RETURN_ON_ERROR(i2c_param_config(I2C_NUM, &es_i2c_cfg), TAG, "config i2c failed"); - ESP_RETURN_ON_ERROR(i2c_driver_install(I2C_NUM, I2C_MODE_MASTER, 0, 0, 0), TAG, "install i2c driver failed"); -#else - ESP_ERROR_CHECK(bsp_i2c_init()); -#endif + ESP_ERROR_CHECK(i2c_new_master_bus(&i2c_mst_cfg, &i2c_bus_handle)); - /* Initialize es8311 codec */ - es8311_handle_t es_handle = es8311_create(I2C_NUM, ES8311_ADDRRES_0); - ESP_RETURN_ON_FALSE(es_handle, ESP_FAIL, TAG, "es8311 create failed"); - const es8311_clock_config_t es_clk = { - .mclk_inverted = false, - .sclk_inverted = false, - .mclk_from_mclk_pin = true, - .mclk_frequency = EXAMPLE_MCLK_FREQ_HZ, - .sample_frequency = EXAMPLE_SAMPLE_RATE + /* Create control interface with I2C bus handle */ + audio_codec_i2c_cfg_t i2c_cfg = { + .port = I2C_NUM, + .addr = ES8311_CODEC_DEFAULT_ADDR, + .bus_handle = i2c_bus_handle, }; + const audio_codec_ctrl_if_t *ctrl_if = audio_codec_new_i2c_ctrl(&i2c_cfg); + assert(ctrl_if); - ESP_ERROR_CHECK(es8311_init(es_handle, &es_clk, ES8311_RESOLUTION_16, ES8311_RESOLUTION_16)); - ESP_RETURN_ON_ERROR(es8311_sample_frequency_config(es_handle, EXAMPLE_SAMPLE_RATE * EXAMPLE_MCLK_MULTIPLE, EXAMPLE_SAMPLE_RATE), TAG, "set es8311 sample frequency failed"); - ESP_RETURN_ON_ERROR(es8311_voice_volume_set(es_handle, EXAMPLE_VOICE_VOLUME, NULL), TAG, "set es8311 volume failed"); - ESP_RETURN_ON_ERROR(es8311_microphone_config(es_handle, false), TAG, "set es8311 microphone failed"); + /* Create data interface with I2S bus handle */ + audio_codec_i2s_cfg_t i2s_cfg = { + .port = I2S_NUM, + .rx_handle = rx_handle, + .tx_handle = tx_handle, + }; + const audio_codec_data_if_t *data_if = audio_codec_new_i2s_data(&i2s_cfg); + assert(data_if); + + /* Create ES8311 interface handle */ + const audio_codec_gpio_if_t *gpio_if = audio_codec_new_gpio(); + assert(gpio_if); + es8311_codec_cfg_t es8311_cfg = { + .ctrl_if = ctrl_if, + .gpio_if = gpio_if, + .codec_mode = ESP_CODEC_DEV_WORK_MODE_BOTH, + .master_mode = false, + .use_mclk = I2S_MCK_IO >= 0, + .pa_pin = EXAMPLE_PA_CTRL_IO, + .pa_reverted = false, + .hw_gain = { + .pa_voltage = 5.0, + .codec_dac_voltage = 3.3, + }, + .mclk_div = EXAMPLE_MCLK_MULTIPLE, + }; + const audio_codec_if_t *es8311_if = es8311_codec_new(&es8311_cfg); + assert(es8311_if); + + /* Create the top codec handle with ES8311 interface handle and data interface */ + esp_codec_dev_cfg_t dev_cfg = { + .dev_type = ESP_CODEC_DEV_TYPE_IN_OUT, + .codec_if = es8311_if, + .data_if = data_if, + }; + esp_codec_dev_handle_t codec_handle = esp_codec_dev_new(&dev_cfg); + assert(codec_handle); + + /* Specify the sample configurations and open the device */ + esp_codec_dev_sample_info_t sample_cfg = { + .bits_per_sample = I2S_DATA_BIT_WIDTH_16BIT, + .channel = 2, + .channel_mask = 0x03, + .sample_rate = EXAMPLE_SAMPLE_RATE, + }; + if (esp_codec_dev_open(codec_handle, &sample_cfg) != ESP_CODEC_DEV_OK) { + ESP_LOGE(TAG, "Open codec device failed"); + return ESP_FAIL; + } + + /* Set the initial volume and gain */ + if (esp_codec_dev_set_out_vol(codec_handle, EXAMPLE_VOICE_VOLUME) != ESP_CODEC_DEV_OK) { + ESP_LOGE(TAG, "set output volume failed"); + return ESP_FAIL; + } #if CONFIG_EXAMPLE_MODE_ECHO - ESP_RETURN_ON_ERROR(es8311_microphone_gain_set(es_handle, EXAMPLE_MIC_GAIN), TAG, "set es8311 microphone gain failed"); + if (esp_codec_dev_set_in_gain(codec_handle, EXAMPLE_MIC_GAIN) != ESP_CODEC_DEV_OK) { + ESP_LOGE(TAG, "set input gain failed"); + return ESP_FAIL; + } #endif return ESP_OK; } static esp_err_t i2s_driver_init(void) { -#if !defined(CONFIG_EXAMPLE_BSP) i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM, I2S_ROLE_MASTER); chan_cfg.auto_clear = true; // Auto clear the legacy data in the DMA buffer ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, &tx_handle, &rx_handle)); @@ -96,17 +148,6 @@ static esp_err_t i2s_driver_init(void) ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_handle, &std_cfg)); ESP_ERROR_CHECK(i2s_channel_enable(tx_handle)); ESP_ERROR_CHECK(i2s_channel_enable(rx_handle)); -#else - ESP_LOGI(TAG, "Using BSP for HW configuration"); - i2s_std_config_t std_cfg = { - .clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(EXAMPLE_SAMPLE_RATE), - .slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO), - .gpio_cfg = BSP_I2S_GPIO_CFG, - }; - std_cfg.clk_cfg.mclk_multiple = EXAMPLE_MCLK_MULTIPLE; - ESP_ERROR_CHECK(bsp_audio_init(&std_cfg, &tx_handle, &rx_handle)); - ESP_ERROR_CHECK(bsp_audio_poweramp_enable(true)); -#endif return ESP_OK; } @@ -200,16 +241,6 @@ void app_main(void) ESP_LOGI(TAG, "es8311 codec init success"); } -#if EXAMPLE_PA_CTRL_IO >= 0 - /* Enable PA by setting the PA_CTRL_IO to high, because the power amplifier on some dev-kits are disabled by default */ - gpio_config_t gpio_cfg = { - .pin_bit_mask = (1ULL << EXAMPLE_PA_CTRL_IO), - .mode = GPIO_MODE_OUTPUT, - }; - ESP_ERROR_CHECK(gpio_config(&gpio_cfg)); - ESP_ERROR_CHECK(gpio_set_level(EXAMPLE_PA_CTRL_IO, 1)); -#endif - #if CONFIG_EXAMPLE_MODE_MUSIC /* Play a piece of music in music mode */ xTaskCreate(i2s_music, "i2s_music", 4096, NULL, 5, NULL); diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/idf_component.yml b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/idf_component.yml index 2091fa5dddf..12d07255d58 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/idf_component.yml +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/main/idf_component.yml @@ -1,20 +1,6 @@ ## IDF Component Manager Manifest File dependencies: idf: "^5.0" - espressif/es8311: "^1.0.0" - -# After enabling Board Support Packages support in menuconfig, you can pick you specific BSP here - espressif/esp-box: - version: "^2.4.2" - rules: - - if: "target in [esp32s3]" - #espressif/esp32_s2_kaluga_kit: - # version: "^2.1.1" - # rules: - # - if: "target in [esp32s2]" - #espressif/esp32_s3_lcd_ev_board: - # version: "^1" - # rules: - # - if: "target in [esp32s3]" + espressif/esp_codec_dev: ^1.3.4 i2s_examples_common: path: ${IDF_PATH}/examples/peripherals/i2s/i2s_examples_common diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/pytest_i2s_es8311.py b/examples/peripherals/i2s/i2s_codec/i2s_es8311/pytest_i2s_es8311.py index 54404601b03..dceab569581 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/pytest_i2s_es8311.py +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/pytest_i2s_es8311.py @@ -17,20 +17,21 @@ from pytest_embedded import Dut def test_i2s_es8311_example_generic(dut: Dut) -> None: dut.expect('i2s es8311 codec example start') dut.expect('-----------------------------') - dut.expect('I \\(([0-9]+)\\) i2s_es8311: i2s driver init success') + dut.expect('i2s_es8311: i2s driver init success') @pytest.mark.esp32s3 -@pytest.mark.generic +@pytest.mark.es8311 @pytest.mark.parametrize( 'config', [ - 'bsp', + 's3_korvo2_v3', ], indirect=True, ) -def test_i2s_es8311_example_bsp(dut: Dut) -> None: - dut.expect('i2s es8311 codec example start') - dut.expect('-----------------------------') - dut.expect('Using BSP for HW configuration') - dut.expect('I \\(([0-9]+)\\) i2s_es8311: i2s driver init success') +def test_i2s_es8311_example_korvo2_v3(dut: Dut) -> None: + dut.expect(r'i2s es8311 codec example start') + dut.expect(r'-----------------------------') + dut.expect(r'i2s_es8311: i2s driver init success') + dut.expect(r'i2s_es8311: es8311 codec init success') + dut.expect(r'Returned from app_main\(\)') diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.bsp b/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.bsp deleted file mode 100644 index 298c61ec909..00000000000 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.bsp +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_IDF_TARGET="esp32s3" -CONFIG_EXAMPLE_BSP=y diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.s3_korvo2_v3 b/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.s3_korvo2_v3 new file mode 100644 index 00000000000..2a5d5607844 --- /dev/null +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.ci.s3_korvo2_v3 @@ -0,0 +1,8 @@ +CONFIG_EXAMPLE_PA_CTRL_IO=48 +CONFIG_EXAMPLE_I2C_SDA_IO=17 +CONFIG_EXAMPLE_I2C_SCL_IO=18 +CONFIG_EXAMPLE_I2S_MCLK_IO=16 +CONFIG_EXAMPLE_I2S_BCLK_IO=9 +CONFIG_EXAMPLE_I2S_WS_IO=45 +CONFIG_EXAMPLE_I2S_DIN_IO=10 +CONFIG_EXAMPLE_I2S_DOUT_IO=8 diff --git a/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.defaults b/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.defaults index e69de29bb2d..ab6f1e2f6b2 100644 --- a/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.defaults +++ b/examples/peripherals/i2s/i2s_codec/i2s_es8311/sdkconfig.defaults @@ -0,0 +1 @@ +CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n diff --git a/examples/peripherals/isp/multi_pipelines/main/isp_dsi_main.c b/examples/peripherals/isp/multi_pipelines/main/isp_dsi_main.c index 67d1a3d857c..018f522d617 100644 --- a/examples/peripherals/isp/multi_pipelines/main/isp_dsi_main.c +++ b/examples/peripherals/isp/multi_pipelines/main/isp_dsi_main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -223,7 +223,10 @@ void app_main(void) }; //--------Camera Sensor and SCCB Init-----------// - i2c_master_bus_handle_t i2c_bus_handle = NULL; + example_sensor_handle_t sensor_handle = { + .sccb_handle = NULL, + .i2c_bus_handle = NULL, + }; example_sensor_config_t cam_sensor_config = { .i2c_port_num = I2C_NUM_0, .i2c_sda_io_num = EXAMPLE_MIPI_CSI_CAM_SCCB_SDA_IO, @@ -231,7 +234,7 @@ void app_main(void) .port = ESP_CAM_SENSOR_MIPI_CSI, .format_name = EXAMPLE_CAM_FORMAT, }; - example_sensor_init(&cam_sensor_config, &i2c_bus_handle); + example_sensor_init(&cam_sensor_config, &sensor_handle); //---------------VCM SCCB Init------------------// esp_sccb_io_handle_t dw9714_io_handle = NULL; @@ -240,7 +243,7 @@ void app_main(void) .device_address = EXAMPLE_DW9714_DEV_ADDR, .dev_addr_length = I2C_ADDR_BIT_LEN_7, }; - ESP_ERROR_CHECK(sccb_new_i2c_io(i2c_bus_handle, &i2c_config, &dw9714_io_handle)); + ESP_ERROR_CHECK(sccb_new_i2c_io(sensor_handle.i2c_bus_handle, &i2c_config, &dw9714_io_handle)); //---------------CSI Init------------------// esp_cam_ctlr_csi_config_t csi_config = { diff --git a/examples/peripherals/usb/README.md b/examples/peripherals/usb/README.md index b7bbe883601..30a6320fe71 100644 --- a/examples/peripherals/usb/README.md +++ b/examples/peripherals/usb/README.md @@ -22,7 +22,7 @@ ESP BOARD USB CONNECTOR (type A) | | USB_DP | USB_DM | | ------------ | ------ | ------ | | ESP32-S2/S3 | GPIO20 | GPIO19 | -| ESP32-P4 2.0 | pin 51 | pin 50 | +| ESP32-P4 2.0 | pin 50 | pin 49 | | ESP32-P4 1.1 | GPIO27 | GPIO26 | > Note: On the ESP32-P4, the USB 2.0 PHY pins are dedicated to USB-OTG functionality and cannot be used as general-purpose GPIOs. diff --git a/examples/peripherals/usb/host/usb_host_lib/main/usb_host_lib_main.c b/examples/peripherals/usb/host/usb_host_lib/main/usb_host_lib_main.c index f1a2dc348a5..a7da50caacc 100644 --- a/examples/peripherals/usb/host/usb_host_lib/main/usb_host_lib_main.c +++ b/examples/peripherals/usb/host/usb_host_lib/main/usb_host_lib_main.c @@ -113,8 +113,10 @@ static void usb_host_lib_task(void *arg) # ifdef ENABLE_ENUM_FILTER_CALLBACK .enum_filter_cb = set_config_cb, # endif // ENABLE_ENUM_FILTER_CALLBACK + .peripheral_map = BIT0, }; ESP_ERROR_CHECK(usb_host_install(&host_config)); + ESP_LOGI(TAG, "USB Host installed with peripheral map 0x%x", host_config.peripheral_map); //Signalize the app_main, the USB host library has been installed xTaskNotifyGive(arg); diff --git a/examples/phy/cert_test/README.md b/examples/phy/cert_test/README.md index 748bbba0f09..42c3dc000e1 100644 --- a/examples/phy/cert_test/README.md +++ b/examples/phy/cert_test/README.md @@ -6,7 +6,6 @@ (See the README.md file in the upper level 'examples' directory for more information about examples.) This example shows how to use the Certification test APIS. - ## How to use example Before project configuration and build, be sure to set the correct chip target using `idf.py set-target `. @@ -114,6 +113,9 @@ phy> For BLE test, if you want to use `fcc_le_tx` and `rw_le_rx_per` legacy commands for tx/rx test, you need to enable `ESP_PHY_LEGACY_COMMANDS` in menuconfig, otherwise, the new format commands `esp_ble_tx` and `esp_ble_rx` are supported. +## BLE DTM Test Function + +The BLE DTM test function in this example currently supports only the ESP32-H2 and ESP32-C6 chips. ## Troubleshooting For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon. diff --git a/examples/phy/cert_test/main/CMakeLists.txt b/examples/phy/cert_test/main/CMakeLists.txt index 4daa8226287..7bb4e0d24f5 100644 --- a/examples/phy/cert_test/main/CMakeLists.txt +++ b/examples/phy/cert_test/main/CMakeLists.txt @@ -1,3 +1,9 @@ -idf_component_register(SRCS "cert_test.c" - "cmd_phy.c" +set(srcs "cert_test.c" + "cmd_phy.c") +if(CONFIG_COMMANDS_ENABLE_BLE_DTM_TEST) +list(APPEND srcs "cmd_ble_dtm.c") +endif() + +idf_component_register(SRCS "${srcs}" + PRIV_REQUIRES bt INCLUDE_DIRS ".") diff --git a/examples/phy/cert_test/main/Kconfig.projbuild b/examples/phy/cert_test/main/Kconfig.projbuild index ce75aded8f9..c751f1a68ab 100644 --- a/examples/phy/cert_test/main/Kconfig.projbuild +++ b/examples/phy/cert_test/main/Kconfig.projbuild @@ -11,4 +11,11 @@ menu "Example Configuration" endchoice + config COMMANDS_ENABLE_BLE_DTM_TEST + bool "Enable BLE DTM Test Mode" + depends on IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32H2 + default n + help + Enable this option to support BLE Direct Test Mode (DTM) for RF testing and validation. + endmenu diff --git a/examples/phy/cert_test/main/cert_test.c b/examples/phy/cert_test/main/cert_test.c index cd8ac2afac1..0c23d7850ef 100644 --- a/examples/phy/cert_test/main/cert_test.c +++ b/examples/phy/cert_test/main/cert_test.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,6 +12,9 @@ #include "cmd_phy.h" #include "esp_phy_cert_test.h" +#if CONFIG_COMMANDS_ENABLE_BLE_DTM_TEST +#include "cmd_ble_dtm.h" +#endif void app_main(void) { @@ -20,7 +23,6 @@ void app_main(void) esp_console_repl_t *repl = NULL; esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT(); repl_config.prompt = "phy>"; - #if CONFIG_ESP_CONSOLE_UART esp_console_dev_uart_config_t uart_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_console_new_repl_uart(&uart_config, &repl_config, &repl)); @@ -46,7 +48,9 @@ void app_main(void) esp_phy_rftest_config(1); esp_phy_rftest_init(); #endif - +#if CONFIG_COMMANDS_ENABLE_BLE_DTM_TEST + dtm_configuration_command_register(); +#endif int help_index = 1; printf("\n ==================================================\n"); printf(" | RF certification test |\n"); diff --git a/examples/phy/cert_test/main/cmd_ble_dtm.c b/examples/phy/cert_test/main/cmd_ble_dtm.c new file mode 100644 index 00000000000..90e9d8daf73 --- /dev/null +++ b/examples/phy/cert_test/main/cmd_ble_dtm.c @@ -0,0 +1,189 @@ +/* + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ +#include "esp_log.h" +#include "esp_bt.h" + +#include "esp_console.h" +#include "argtable3/argtable3.h" +#include "esp_hci_driver.h" + +#define PROMPT_STR CONFIG_IDF_TARGET +static struct { + struct arg_int *cmd_params; + struct arg_end *end; +} dtm_set_tx_power_cmd_args; + +static struct { + struct arg_int *tx_pin; + struct arg_int *rx_pin; + struct arg_end *end; +} dtm_reconfig_uart_cmd_args; + +static struct { + struct arg_int *cmd_params; + struct arg_end *end; +} dtm_enable_cmd_args; + +static int dtm_set_ble_tx_power_command(int argc, char **argv) +{ + esp_err_t ret = ESP_OK; + int nerrors = arg_parse(argc, argv, (void **) &dtm_set_tx_power_cmd_args); + if (nerrors != 0) { + arg_print_errors(stderr, dtm_set_tx_power_cmd_args.end, argv[0]); + return 1; + } + + if (esp_bt_controller_get_status() != ESP_BT_CONTROLLER_STATUS_ENABLED) { + esp_rom_printf("\nPlease enable BLE DTM mode first by using the command enable_ble_dtm -e 1 before sending this command.\n"); + return 2; + } + + ESP_LOGI(__func__, "Set tx power level '%d'", dtm_set_tx_power_cmd_args.cmd_params->ival[0]); + if (dtm_set_tx_power_cmd_args.cmd_params->ival[0] > 15) { + return 3; + } + + ret = esp_ble_tx_power_set_enhanced(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0, dtm_set_tx_power_cmd_args.cmd_params->ival[0]); + if (ret != ESP_OK) { + return 4; + } + + return 0; +} + +static int dtm_get_ble_tx_power_command(int argc, char **argv) +{ + esp_power_level_t power_level = 0xFF; + if (esp_bt_controller_get_status() != ESP_BT_CONTROLLER_STATUS_ENABLED) { + esp_rom_printf("\nPlease enable BLE DTM mode first by using the command enable_ble_dtm -e 1 before sending this command.\n"); + return 2; + } + + power_level = esp_ble_tx_power_get_enhanced(ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT, 0); + esp_rom_printf("\nCurrent BLE TX power is %d level\n", power_level); + return 0; +} + +static int dtm_reconfig_uart_pins_command(int argc, char **argv) +{ + int nerrors = arg_parse(argc, argv, (void **) &dtm_reconfig_uart_cmd_args); + if (nerrors != 0) { + arg_print_errors(stderr, dtm_reconfig_uart_cmd_args.end, argv[0]); + return 1; + } + + if (esp_bt_controller_get_status() != ESP_BT_CONTROLLER_STATUS_ENABLED) { + esp_rom_printf("\nPlease enable BLE DTM mode first by using the command enable_ble_dtm -e 1 before sending this command.\n"); + return 2; + } + + ESP_LOGI(__func__, "reconfig tx:'%d', rx: '%d'", + dtm_reconfig_uart_cmd_args.tx_pin->ival[0], dtm_reconfig_uart_cmd_args.rx_pin->ival[0]); + hci_uart_reconfig_pin(dtm_reconfig_uart_cmd_args.tx_pin->ival[0], + dtm_reconfig_uart_cmd_args.rx_pin->ival[0], -1, -1); + return 0; +} + +static int dtm_test_enable_command(int argc, char **argv) +{ + int dtm_enable = 0; + esp_bt_controller_config_t config_opts = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); + int nerrors = arg_parse(argc, argv, (void **) &dtm_enable_cmd_args); + if (nerrors != 0) { + arg_print_errors(stderr, dtm_enable_cmd_args.end, argv[0]); + return 1; + } + + dtm_enable = dtm_enable_cmd_args.cmd_params->ival[0]; + ESP_LOGI(__func__, "Enable DTM Test '%d'", dtm_enable); + if (dtm_enable > 2) { + return 2; + } + + if (dtm_enable) { + if (esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE) { + /* Initialize Bluetooth Controller parameters. */ + ESP_ERROR_CHECK(esp_bt_controller_init(&config_opts)); + + /* Enable the task stack of the Bluetooth Controller. */ + ESP_ERROR_CHECK(esp_bt_controller_enable(ESP_BT_MODE_BLE)); + } + } else { + if (esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_ENABLED) { + ESP_ERROR_CHECK(esp_bt_controller_disable()); + ESP_ERROR_CHECK(esp_bt_controller_deinit()); + } + } + + return 0; +} + +esp_err_t esp_console_register_set_ble_tx_power_command(void) +{ + dtm_set_tx_power_cmd_args.cmd_params = arg_int1("i", "index", "","tx power level index"); + dtm_set_tx_power_cmd_args.end = arg_end(1); + + esp_console_cmd_t command = { + .command = "set_ble_tx_power", + .help = "Set ble tx power during DTM", + .func = &dtm_set_ble_tx_power_command, + .argtable = &dtm_set_tx_power_cmd_args + }; + + return esp_console_cmd_register(&command); +} + +esp_err_t esp_console_register_get_ble_tx_power_command(void) +{ + esp_console_cmd_t command = { + .command = "get_ble_tx_power", + .help = "Get ble tx power during DTM", + .func = &dtm_get_ble_tx_power_command, + }; + + return esp_console_cmd_register(&command); +} + + +esp_err_t esp_console_register_reconfig_dtm_pins_command(void) +{ + dtm_reconfig_uart_cmd_args.tx_pin = arg_int1("t", "tx", "","tx pin index"); + dtm_reconfig_uart_cmd_args.rx_pin = arg_int1("r", "rx", "","rx pin index"); + dtm_reconfig_uart_cmd_args.end = arg_end(2); + + esp_console_cmd_t command = { + .command = "reconfig_dtm_uart_pin", + .help = "Reconfig dtm uart pins during DTM", + .func = &dtm_reconfig_uart_pins_command, + .argtable = &dtm_reconfig_uart_cmd_args + }; + + return esp_console_cmd_register(&command); +} + +esp_err_t esp_console_register_enable_ble_dtm_command(void) +{ + dtm_enable_cmd_args.cmd_params = arg_int1("e", "enable", "","enable/disable ble dtm test"); + dtm_enable_cmd_args.end = arg_end(1); + + esp_console_cmd_t command = { + .command = "enable_ble_dtm", + .help = "Enable BLE DTM Test", + .func = &dtm_test_enable_command, + .argtable = &dtm_enable_cmd_args + }; + + return esp_console_cmd_register(&command); +} + +esp_err_t dtm_configuration_command_register(void) +{ + esp_console_register_set_ble_tx_power_command(); + esp_console_register_get_ble_tx_power_command(); + esp_console_register_reconfig_dtm_pins_command(); + esp_console_register_enable_ble_dtm_command(); + return ESP_OK; +} diff --git a/examples/phy/cert_test/main/cmd_ble_dtm.h b/examples/phy/cert_test/main/cmd_ble_dtm.h new file mode 100644 index 00000000000..b6dc400c156 --- /dev/null +++ b/examples/phy/cert_test/main/cmd_ble_dtm.h @@ -0,0 +1,13 @@ +/* + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ +#ifndef __CMD_BLE_DTM_H__ +#define __CMD_BLE_DTM_H__ +#include +#include +#include "esp_err.h" + +esp_err_t dtm_configuration_command_register(void); +#endif diff --git a/examples/phy/cert_test/sdkconfig.defaults.esp32c6 b/examples/phy/cert_test/sdkconfig.defaults.esp32c6 new file mode 100644 index 00000000000..8ae9f0ef3bc --- /dev/null +++ b/examples/phy/cert_test/sdkconfig.defaults.esp32c6 @@ -0,0 +1,10 @@ +# +# ESP32C6-specific +# + +CONFIG_COMMANDS_ENABLE_BLE_DTM_TEST=y +CONFIG_BT_CONTROLLER_ONLY=y +CONFIG_BT_LE_HCI_INTERFACE_USE_UART=y +CONFIG_BT_LE_HCI_UART_TX_PIN=8 +CONFIG_BT_LE_HCI_UART_RX_PIN=9 +CONFIG_BT_LE_HCI_UART_BAUD=115200 diff --git a/examples/phy/cert_test/sdkconfig.defaults.esp32h2 b/examples/phy/cert_test/sdkconfig.defaults.esp32h2 new file mode 100644 index 00000000000..6cc9f6cd96a --- /dev/null +++ b/examples/phy/cert_test/sdkconfig.defaults.esp32h2 @@ -0,0 +1,9 @@ +# +# ESP32C6-specific +# +CONFIG_COMMANDS_ENABLE_BLE_DTM_TEST=y +CONFIG_BT_CONTROLLER_ONLY=y +CONFIG_BT_LE_HCI_INTERFACE_USE_UART=y +CONFIG_BT_LE_HCI_UART_TX_PIN=8 +CONFIG_BT_LE_HCI_UART_RX_PIN=9 +CONFIG_BT_LE_HCI_UART_BAUD=115200 diff --git a/examples/system/.build-test-rules.yml b/examples/system/.build-test-rules.yml index c52bdb089a4..dd18995fa07 100644 --- a/examples/system/.build-test-rules.yml +++ b/examples/system/.build-test-rules.yml @@ -2,7 +2,7 @@ examples/system/app_trace_basic: disable_test: - - if: IDF_TARGET in ["esp32p4", "esp32c5"] + - if: IDF_TARGET in ["esp32p4", "esp32c5", "esp32c61"] temporary: true reason: lack of runners. @@ -86,7 +86,7 @@ examples/system/freertos/real_time_stats: examples/system/gcov: disable_test: - - if: IDF_TARGET in ["esp32p4", "esp32c5"] + - if: IDF_TARGET in ["esp32p4", "esp32c5", "esp32c61"] temporary: true reason: lack of runners - if: IDF_TARGET == "esp32s3" diff --git a/examples/system/app_trace_basic/pytest_app_trace_basic.py b/examples/system/app_trace_basic/pytest_app_trace_basic.py index b669b5f013b..b715f256583 100644 --- a/examples/system/app_trace_basic/pytest_app_trace_basic.py +++ b/examples/system/app_trace_basic/pytest_app_trace_basic.py @@ -165,7 +165,6 @@ def test_examples_app_trace_basic(dut: IdfDut) -> None: @pytest.mark.esp32s3 @pytest.mark.esp32c3 @pytest.mark.esp32c6 -@pytest.mark.esp32c61 @pytest.mark.esp32h2 @pytest.mark.usb_serial_jtag def test_examples_app_trace_basic_usj(dut: IdfDut) -> None: diff --git a/examples/system/deep_sleep/main/deep_sleep_example_main.c b/examples/system/deep_sleep/main/deep_sleep_example_main.c index d46a5c1ac29..ae3579956bb 100644 --- a/examples/system/deep_sleep/main/deep_sleep_example_main.c +++ b/examples/system/deep_sleep/main/deep_sleep_example_main.c @@ -18,11 +18,7 @@ #include "nvs.h" #include "deep_sleep_example.h" -#if SOC_RTC_FAST_MEM_SUPPORTED -static RTC_DATA_ATTR struct timeval sleep_enter_time; -#else -static struct timeval sleep_enter_time; -#endif +RTC_SLOW_ATTR static struct timeval sleep_enter_time; static void deep_sleep_task(void *args) { diff --git a/examples/system/gcov/pytest_gcov.py b/examples/system/gcov/pytest_gcov.py index acd72752a30..1513137edc5 100644 --- a/examples/system/gcov/pytest_gcov.py +++ b/examples/system/gcov/pytest_gcov.py @@ -188,6 +188,6 @@ def test_gcov(dut: IdfDut) -> None: @pytest.mark.usb_serial_jtag -@idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32c61', 'esp32h2'], indirect=['target']) +@idf_parametrize('target', ['esp32c3', 'esp32c6', 'esp32h2'], indirect=['target']) def test_gcov_usj(dut: IdfDut) -> None: _test_gcov(dut) diff --git a/examples/system/ota/simple_ota_example/main/Kconfig.projbuild b/examples/system/ota/simple_ota_example/main/Kconfig.projbuild index 491d78429cf..4404a99f44e 100644 --- a/examples/system/ota/simple_ota_example/main/Kconfig.projbuild +++ b/examples/system/ota/simple_ota_example/main/Kconfig.projbuild @@ -51,4 +51,13 @@ menu "Example Configuration" help Select ethernet interface to pass the OTA data. endchoice + + config EXAMPLE_TLS_DYN_BUF_RX_STATIC + bool "Use static rx buffer for dynamic buffer after TLS handshake" + depends on MBEDTLS_DYNAMIC_BUFFER + default n + help + This converts the dynamic RX buffer to static allocation after the TLS handshake + is complete. This reduces memory fragmentation by avoiding repeated dynamic + allocations during data transfer. endmenu diff --git a/examples/system/ota/simple_ota_example/main/simple_ota_example.c b/examples/system/ota/simple_ota_example/main/simple_ota_example.c index e3e8c732cbd..52e1bac6bbe 100644 --- a/examples/system/ota/simple_ota_example/main/simple_ota_example.c +++ b/examples/system/ota/simple_ota_example/main/simple_ota_example.c @@ -101,6 +101,12 @@ void simple_ota_example_task(void *pvParameter) #ifdef CONFIG_EXAMPLE_FIRMWARE_UPGRADE_BIND_IF .if_name = &ifr, #endif +#if CONFIG_EXAMPLE_TLS_DYN_BUF_RX_STATIC + /* This part applies static buffer strategy for rx dynamic buffer. + * This is to avoid frequent allocation and deallocation of dynamic buffer. + */ + .tls_dyn_buf_strategy = HTTP_TLS_DYN_BUF_RX_STATIC, +#endif /* CONFIG_EXAMPLE_TLS_DYN_BUF_RX_STATIC */ }; #ifdef CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL_FROM_STDIN diff --git a/examples/system/ota/simple_ota_example/pytest_simple_ota.py b/examples/system/ota/simple_ota_example/pytest_simple_ota.py index 861f2525b68..43b4f50f8ef 100644 --- a/examples/system/ota/simple_ota_example/pytest_simple_ota.py +++ b/examples/system/ota/simple_ota_example/pytest_simple_ota.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Unlicense OR CC0-1.0 import http.server import multiprocessing @@ -365,6 +365,46 @@ def test_examples_protocol_simple_ota_example_tls1_3(dut: Dut) -> None: tls1_3_server.kill() +@pytest.mark.esp32 +@pytest.mark.ethernet_ota +@pytest.mark.parametrize( + 'config', + [ + 'tls1_2_dynamic', + ], + indirect=True, +) +def test_examples_protocol_simple_ota_example_tls1_2_dynamic(dut: Dut) -> None: + """ + steps: | + 1. join AP/Ethernet + 2. Fetch OTA image over HTTPS + 3. Reboot with the new OTA image + """ + sha256_bootloader, sha256_app = calc_all_sha256(dut) + # Start server + thread1 = multiprocessing.Process(target=start_https_server, args=(dut.app.binary_path, '0.0.0.0', 8000)) + thread1.daemon = True + thread1.start() + try: + # start test + dut.expect(f'Loaded app from partition at offset {OTA_0_ADDRESS}', timeout=30) + check_sha256(sha256_bootloader, str(dut.expect(r'SHA-256 for bootloader:\s+([a-f0-9]){64}')[0])) + check_sha256(sha256_app, str(dut.expect(r'SHA-256 for current firmware:\s+([a-f0-9]){64}')[0])) + + host_ip = setting_connection(dut) + + dut.expect('Starting OTA example task', timeout=30) + print(f'writing to device: https://{host_ip}:8000/simple_ota.bin') + dut.write(f'https://{host_ip}:8000/simple_ota.bin') + dut.expect('OTA Succeed, Rebooting...', timeout=120) + # after reboot + dut.expect(f'Loaded app from partition at offset {OTA_1_ADDRESS}', timeout=30) + dut.expect('OTA example app_main start', timeout=10) + finally: + thread1.terminate() + + if __name__ == '__main__': if sys.argv[2:]: # if two or more arguments provided: # Usage: pytest_simple_ota.py [cert_dir] diff --git a/examples/system/ota/simple_ota_example/sdkconfig.ci.tls1_2_dynamic b/examples/system/ota/simple_ota_example/sdkconfig.ci.tls1_2_dynamic new file mode 100644 index 00000000000..e8bc3efeadc --- /dev/null +++ b/examples/system/ota/simple_ota_example/sdkconfig.ci.tls1_2_dynamic @@ -0,0 +1,15 @@ +CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL="FROM_STDIN" +CONFIG_EXAMPLE_SKIP_COMMON_NAME_CHECK=y +CONFIG_EXAMPLE_CONNECT_ETHERNET=y +CONFIG_EXAMPLE_CONNECT_WIFI=n +CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y +CONFIG_EXAMPLE_ETH_PHY_IP101=y +CONFIG_EXAMPLE_ETH_MDC_GPIO=23 +CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 +CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 +CONFIG_EXAMPLE_ETH_PHY_ADDR=1 +CONFIG_EXAMPLE_CONNECT_IPV6=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_3=y +CONFIG_MBEDTLS_DYNAMIC_BUFFER=y +CONFIG_EXAMPLE_TLS_DYN_BUF_RX_STATIC=y diff --git a/examples/wifi/iperf/sdkconfig.defaults b/examples/wifi/iperf/sdkconfig.defaults index f096b6f0615..7e44f9266f1 100644 --- a/examples/wifi/iperf/sdkconfig.defaults +++ b/examples/wifi/iperf/sdkconfig.defaults @@ -13,3 +13,9 @@ CONFIG_LWIP_TCPIP_TASK_PRIO=23 CONFIG_IPERF_TRAFFIC_TASK_PRIORITY=23 CONFIG_IPERF_REPORT_TASK_PRIORITY=24 CONFIG_COMPILER_OPTIMIZATION_PERF=y + +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y + +# These two configurations disable the phy pll track feature, only used for experimental +CONFIG_ESP_PHY_DEBUG=y +CONFIG_ESP_PHY_DISABLE_PLL_TRACK=y diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32c2 b/examples/wifi/iperf/sdkconfig.defaults.esp32c2 index af67e48cf17..421500597e1 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32c2 +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32c2 @@ -9,7 +9,7 @@ CONFIG_ESP_WIFI_TX_BA_WIN=16 CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP_WIFI_RX_BA_WIN=14 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=11520 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=7200 CONFIG_LWIP_TCP_WND_DEFAULT=11520 CONFIG_LWIP_TCP_RECVMBOX_SIZE=32 CONFIG_LWIP_UDP_RECVMBOX_SIZE=32 diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32s2 b/examples/wifi/iperf/sdkconfig.defaults.esp32s2 index 3cdbfdf3a8f..37288848a91 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32s2 +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32s2 @@ -9,7 +9,7 @@ CONFIG_ESP_WIFI_TX_BA_WIN=16 CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP_WIFI_RX_BA_WIN=16 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=28000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=17280 CONFIG_LWIP_TCP_WND_DEFAULT=28000 CONFIG_LWIP_TCP_RECVMBOX_SIZE=32 CONFIG_LWIP_UDP_RECVMBOX_SIZE=32 diff --git a/pytest.ini b/pytest.ini index 069d1cf4158..1fe5e78cc60 100644 --- a/pytest.ini +++ b/pytest.ini @@ -7,6 +7,7 @@ python_files = pytest_*.py addopts = -s -vv --embedded-services esp,idf + -p no:idf-ci --tb short --strict-markers --skip-check-coredump y diff --git a/tools/bt/bt_hci_to_btsnoop.py b/tools/bt/bt_hci_to_btsnoop.py index 4b14da558a0..1fff3f41e23 100644 --- a/tools/bt/bt_hci_to_btsnoop.py +++ b/tools/bt/bt_hci_to_btsnoop.py @@ -1,13 +1,9 @@ -# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import argparse import os import re import struct -import time - -parsed_num = 0 -all_line_num = 0 def create_new_bt_snoop_file(filename: str) -> None: @@ -20,30 +16,19 @@ def create_new_bt_snoop_file(filename: str) -> None: f.write(header) -def append_hci_to_bt_snoop_file(filename: str, direction: int, data: str) -> None: +def append_hci_to_bt_snoop_file(filename: str, direction: int, data: str, timestamp_us: int) -> None: if os.path.exists(filename): print(f'Appending to existing file: {filename}') else: print(f'Creating new file: {filename}') create_new_bt_snoop_file(filename) - - # Ensure data is converted to bytearray from hex string - data_bytes = bytearray.fromhex(data) # Convert hex string to bytearray - - with open(filename, 'ab') as f: # 'ab' mode for appending binary data - global parsed_num - parsed_num += 1 - data_len = len(data_bytes) - orig_len = data_len - incl_len = data_len - packet_flags = direction + (data_bytes[0] != 1 or data_bytes[0] != 3) * 2 + data_bytes = bytearray.fromhex(data) + with open(filename, 'ab') as f: + orig_len = incl_len = len(data_bytes) + packet_flags = direction + (data_bytes[0] != 1 and data_bytes[0] != 3) * 2 cumulative_drops = 0 - # Calculate the timestamp with an offset from a predefined reference time(0x00DCDDB30F2F8000). - timestamp_us = int(round(time.time() * 1000000)) + 0x00DCDDB30F2F8000 - - # Writing structured data followed by the byte array data f.write(struct.pack('>IIIIQ', orig_len, incl_len, packet_flags, cumulative_drops, timestamp_us)) - f.write(data_bytes) # Write bytearray (binary data) to file + f.write(data_bytes) def log_data_clean(data: str) -> str: @@ -51,82 +36,93 @@ def log_data_clean(data: str) -> str: return cleaned -def is_adv_report(data: str) -> bool: - is_binary = all(re.fullmatch(r'[0-9a-fA-F]{2}', part) for part in data.split()) - return is_binary - - def parse_log(input_path: str, output_tag: str) -> None: - """ - Parses the specified log file and saves the results to an output file. - - Args: - input_path (str): Path to the input log file. - output_tag (str): Name tag for the output file. - - Returns: - None - """ - global parsed_num - global all_line_num if not os.path.exists(input_path): print(f"Error: The file '{input_path}' does not exist.") return - - # Define the output directory and create it if it doesn't exist output_dir = './parsed_logs' os.makedirs(output_dir, exist_ok=True) - - # Define the output file name based on the tag output_file = os.path.join(output_dir, f'parsed_log_{output_tag}.btsnoop.log') - + parsed_num = 0 + all_line_num = 0 with open(input_path, 'r', encoding='utf-8') as infile: - # Example: Parse each line and save processed results for line in infile: try: all_line_num += 1 - line = log_data_clean(line) - line = line.replace('C:', '01 ') - line = line.replace('E:', '04 ') - line = line[3:] - if line[0] == 'H': - line = line.replace('H:', '02 ') - append_hci_to_bt_snoop_file(output_file, 0, line) + line = log_data_clean(line).strip() + if not line: continue - if line[0] == 'D': - line = line.replace('D:', '02 ') - append_hci_to_bt_snoop_file(output_file, 1, line) + parts = line.split() + if len(parts) < 10: continue - if line.startswith('01'): - append_hci_to_bt_snoop_file(output_file, 0, line) - continue - if line.startswith('04'): - append_hci_to_bt_snoop_file(output_file, 1, line) - continue - if is_adv_report(line): - line = '04 3e ' + line - append_hci_to_bt_snoop_file(output_file, 1, line) + parts_wo_ln = parts[1:] + # Check for literal in the first token + literal = None + if ':' in parts_wo_ln[0]: + literal_part, sep, ts_byte = parts_wo_ln[0].partition(':') + if sep == ':' and literal_part in ['C', 'D', 'E', 'H'] and len(ts_byte) == 2: + literal = literal_part + ':' + parts_wo_ln = [literal, ts_byte] + parts_wo_ln[1:] + else: + literal = None + if literal: + # Parse timestamp + try: + timestamp_bytes = bytes(int(b, 16) for b in parts_wo_ln[1:9]) + except Exception: + continue + timestamp_us = int.from_bytes(timestamp_bytes, byteorder='little', signed=False) + hci_data = ' '.join(parts_wo_ln[9:]) + if not hci_data: + continue + # Determine indicator and direction + if literal == 'C:': + hci_data = '01 ' + hci_data + direction = 0 + elif literal == 'E:': + hci_data = '04 ' + hci_data + direction = 1 + elif literal == 'H:': + hci_data = '02 ' + hci_data + direction = 0 + elif literal == 'D:': + hci_data = '02 ' + hci_data + direction = 1 + else: + continue + append_hci_to_bt_snoop_file(output_file, direction, hci_data, timestamp_us) + parsed_num += 1 + else: + # No literal: treat as advertising report + try: + timestamp_bytes = bytes(int(b, 16) for b in parts[1:9]) + except Exception: + continue + timestamp_us = int.from_bytes(timestamp_bytes, byteorder='little', signed=False) + adv_data = ' '.join(parts[9:]) + if not adv_data: + continue + hci_data = '04 3e ' + adv_data + direction = 1 + append_hci_to_bt_snoop_file(output_file, direction, hci_data, timestamp_us) + parsed_num += 1 except Exception as e: print(f'Exception: {e}') - if parsed_num > 0: - print(f'Log parsing completed, parsed_num {parsed_num}, all_line_num {all_line_num}.\nOutput saved to: {output_file}') + print( + f'Parsing completed, parsed_num {parsed_num}, all_line_num {all_line_num}.\nOutput saved to: {output_file}' + ) else: print('No data could be parsed.') def main() -> None: - # Define command-line arguments parser = argparse.ArgumentParser(description='Log Parsing Tool') parser.add_argument('-p', '--path', required=True, help='Path to the input log file') parser.add_argument('-o', '--output', required=True, help='Name tag for the output file') - - # Parse arguments args = parser.parse_args() input_path = args.path output_tag = args.output - - # Call the log parsing function parse_log(input_path, output_tag) diff --git a/tools/check_python_dependencies.py b/tools/check_python_dependencies.py index 1c290b4b7c0..35df9ea3922 100755 --- a/tools/check_python_dependencies.py +++ b/tools/check_python_dependencies.py @@ -37,6 +37,21 @@ except ImportError: PYTHON_PACKAGE_RE = re.compile(r'[^<>=~]+') +def validate_requirement_list(file_path: str) -> str: + """Validate that a requirement file exists and is readable.""" + if not os.path.isfile(file_path): + raise argparse.ArgumentTypeError( + f'Requirement file {file_path} not found\n' + 'Please make sure the file path is correct.\n' + 'In case the file was removed, please run the export script again, to update the environment.' + ) + try: + open(file_path, encoding='utf-8').close() + except IOError as e: + raise argparse.ArgumentTypeError(f'Cannot read requirement file {file_path}: {e}') + return file_path + + # The version and requires function from importlib.metadata in python prior # 3.10 does perform distribution name normalization before searching for # package distribution. This might cause problems for package with dot in its @@ -66,12 +81,21 @@ def get_requires(name: str) -> Optional[list]: if __name__ == '__main__': parser = argparse.ArgumentParser(description='ESP-IDF Python package dependency checker') - parser.add_argument('--requirements', '-r', - help='Path to a requirements file (can be used multiple times)', - action='append', default=[]) - parser.add_argument('--constraints', '-c', default=[], - help='Path to a constraints file (can be used multiple times)', - action='append') + parser.add_argument( + '--requirements', + '-r', + help='Path to a requirements file (can be used multiple times)', + action='append', + default=[], + type=validate_requirement_list, + ) + parser.add_argument( + '--constraints', + '-c', + default=[], + help='Path to a constraints file (can be used multiple times)', + action='append', + ) args = parser.parse_args() required_set = set() diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index b689dab5116..283a618310c 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -520,7 +520,6 @@ components/soc/esp32/include/soc/reset_reasons.h components/soc/esp32/include/soc/sdmmc_pins.h components/soc/esp32/include/soc/soc_pins.h components/soc/esp32/include/soc/soc_ulp.h -components/soc/esp32/include/soc/touch_sensor_channel.h components/soc/esp32/include/soc/uart_pins.h components/soc/esp32/include/soc/wdev_reg.h components/soc/esp32/ledc_periph.c @@ -533,7 +532,6 @@ components/soc/esp32s2/include/soc/gpio_sig_map.h components/soc/esp32s2/include/soc/memprot_defs.h components/soc/esp32s2/include/soc/nrx_reg.h components/soc/esp32s2/include/soc/soc_ulp.h -components/soc/esp32s2/include/soc/touch_sensor_channel.h components/soc/esp32s2/include/soc/touch_sensor_pins.h components/soc/esp32s2/include/soc/uart_pins.h components/soc/esp32s2/include/soc/wdev_reg.h @@ -825,6 +823,7 @@ examples/bluetooth/esp_ble_mesh/aligenie_demo/components/vendor_model/include/ge examples/bluetooth/esp_ble_mesh/aligenie_demo/components/vendor_model/include/genie_slist.h examples/bluetooth/esp_ble_mesh/aligenie_demo/components/vendor_model/include/genie_timer.h examples/bluetooth/esp_ble_mesh/aligenie_demo/components/vendor_model/include/genie_util.h +examples/bluetooth/nimble/ble_ancs/main/main.c examples/bluetooth/nimble/blecent/main/blecent.h examples/bluetooth/nimble/blecent/main/main.c examples/bluetooth/nimble/blecsc/main/blecsc_sens.h diff --git a/tools/ci/idf_pytest/constants.py b/tools/ci/idf_pytest/constants.py index eb0fd6c250a..88a66142fd3 100644 --- a/tools/ci/idf_pytest/constants.py +++ b/tools/ci/idf_pytest/constants.py @@ -108,6 +108,7 @@ ENV_MARKERS = { 'httpbin': 'runner for tests that need to access the httpbin service', 'flash_4mb': 'C2 runners with 4 MB flash', 'jtag_re_enable': 'Runner to re-enable jtag which is softly disabled by burning bit SOFT_DIS_JTAG on eFuse', + 'es8311': 'Development board that carries es8311 codec', # multi-dut markers 'multi_dut_modbus_rs485': 'a pair of runners connected by RS485 bus', 'ieee802154': 'ieee802154 related tests should run on ieee802154 runners.', diff --git a/tools/ci/idf_pytest/pytest.ini b/tools/ci/idf_pytest/pytest.ini index 0ee949b8988..cc928df8995 100644 --- a/tools/ci/idf_pytest/pytest.ini +++ b/tools/ci/idf_pytest/pytest.ini @@ -1,2 +1,3 @@ [pytest] +addopts = -p no:idf-ci python_files = test_*.py diff --git a/tools/ci/test_autocomplete/pytest.ini b/tools/ci/test_autocomplete/pytest.ini index d95e773e5cd..8cb59810c32 100644 --- a/tools/ci/test_autocomplete/pytest.ini +++ b/tools/ci/test_autocomplete/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = -s -p no:pytest_embedded +addopts = -s -p no:pytest_embedded -p no:idf-ci # log related log_cli = True diff --git a/tools/cmake/kconfig.cmake b/tools/cmake/kconfig.cmake index f1f0ab20fb5..a768e7df580 100644 --- a/tools/cmake/kconfig.cmake +++ b/tools/cmake/kconfig.cmake @@ -15,6 +15,24 @@ endfunction() # function(__kconfig_component_init component_target) __component_get_property(component_dir ${component_target} COMPONENT_DIR) + + # Check for misspelled Kconfig files + # If found, print a status message, but do not add them to the configuration. + file(GLOB all_files "${component_dir}/*") + foreach(_file IN LISTS all_files) + get_filename_component(_fname ${_file} NAME) + string(TOLOWER "${_fname}" _fname_lowercase) + if(_fname_lowercase STREQUAL "kconfig" AND NOT _fname STREQUAL "Kconfig") + message(STATUS + "${_fname} file should be named 'Kconfig' (uppercase K, the rest lowercase)." + " Full path to the file: ${_file}") + elseif(_fname_lowercase STREQUAL "kconfig.projbuild" AND NOT _fname STREQUAL "Kconfig.projbuild") + message(STATUS + "${_fname} file should be named 'Kconfig.projbuild' (uppercase K, the rest lowercase)." + " Full path to the file: ${_file}") + endif() + endforeach() + file(GLOB kconfig "${component_dir}/Kconfig") list(SORT kconfig) __component_set_property(${component_target} KCONFIG "${kconfig}") diff --git a/tools/esp_app_trace/espytrace/sysview.py b/tools/esp_app_trace/espytrace/sysview.py index f19265a7c00..234bc90cd29 100644 --- a/tools/esp_app_trace/espytrace/sysview.py +++ b/tools/esp_app_trace/espytrace/sysview.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import copy import json @@ -7,41 +7,42 @@ import struct import espytrace.apptrace as apptrace -SYSVIEW_EVTID_NOP = 0 # Dummy packet. -SYSVIEW_EVTID_OVERFLOW = 1 -SYSVIEW_EVTID_ISR_ENTER = 2 -SYSVIEW_EVTID_ISR_EXIT = 3 -SYSVIEW_EVTID_TASK_START_EXEC = 4 -SYSVIEW_EVTID_TASK_STOP_EXEC = 5 -SYSVIEW_EVTID_TASK_START_READY = 6 -SYSVIEW_EVTID_TASK_STOP_READY = 7 -SYSVIEW_EVTID_TASK_CREATE = 8 -SYSVIEW_EVTID_TASK_INFO = 9 -SYSVIEW_EVTID_TRACE_START = 10 -SYSVIEW_EVTID_TRACE_STOP = 11 -SYSVIEW_EVTID_SYSTIME_CYCLES = 12 -SYSVIEW_EVTID_SYSTIME_US = 13 -SYSVIEW_EVTID_SYSDESC = 14 -SYSVIEW_EVTID_MARK_START = 15 -SYSVIEW_EVTID_MARK_STOP = 16 -SYSVIEW_EVTID_IDLE = 17 -SYSVIEW_EVTID_ISR_TO_SCHEDULER = 18 -SYSVIEW_EVTID_TIMER_ENTER = 19 -SYSVIEW_EVTID_TIMER_EXIT = 20 -SYSVIEW_EVTID_STACK_INFO = 21 -SYSVIEW_EVTID_MODULEDESC = 22 -SYSVIEW_EVTID_INIT = 24 -SYSVIEW_EVENT_ID_PREDEF_LEN_MAX = SYSVIEW_EVTID_INIT -SYSVIEW_EVTID_NAME_RESOURCE = 25 -SYSVIEW_EVTID_PRINT_FORMATTED = 26 -SYSVIEW_EVTID_NUMMODULES = 27 -SYSVIEW_EVENT_ID_PREDEF_MAX = SYSVIEW_EVTID_NUMMODULES +SYSVIEW_EVTID_NOP = 0 # Dummy packet. +SYSVIEW_EVTID_OVERFLOW = 1 +SYSVIEW_EVTID_ISR_ENTER = 2 +SYSVIEW_EVTID_ISR_EXIT = 3 +SYSVIEW_EVTID_TASK_START_EXEC = 4 +SYSVIEW_EVTID_TASK_STOP_EXEC = 5 +SYSVIEW_EVTID_TASK_START_READY = 6 +SYSVIEW_EVTID_TASK_STOP_READY = 7 +SYSVIEW_EVTID_TASK_CREATE = 8 +SYSVIEW_EVTID_TASK_INFO = 9 +SYSVIEW_EVTID_TRACE_START = 10 +SYSVIEW_EVTID_TRACE_STOP = 11 +SYSVIEW_EVTID_SYSTIME_CYCLES = 12 +SYSVIEW_EVTID_SYSTIME_US = 13 +SYSVIEW_EVTID_SYSDESC = 14 +SYSVIEW_EVTID_MARK_START = 15 +SYSVIEW_EVTID_MARK_STOP = 16 +SYSVIEW_EVTID_IDLE = 17 +SYSVIEW_EVTID_ISR_TO_SCHEDULER = 18 +SYSVIEW_EVTID_TIMER_ENTER = 19 +SYSVIEW_EVTID_TIMER_EXIT = 20 +SYSVIEW_EVTID_STACK_INFO = 21 +SYSVIEW_EVTID_MODULEDESC = 22 +SYSVIEW_EVTID_DATA_SAMPLE = 23 +SYSVIEW_EVTID_INIT = 24 +SYSVIEW_EVENT_ID_PREDEF_LEN_MAX = SYSVIEW_EVTID_INIT +SYSVIEW_EVTID_NAME_RESOURCE = 25 +SYSVIEW_EVTID_PRINT_FORMATTED = 26 +SYSVIEW_EVTID_NUMMODULES = 27 +SYSVIEW_EVENT_ID_PREDEF_MAX = SYSVIEW_EVTID_NUMMODULES -SYSVIEW_EVENT_ID_MAX = 200 +SYSVIEW_EVENT_ID_MAX = 200 -SYSVIEW_MODULE_EVENT_OFFSET = 512 +SYSVIEW_MODULE_EVENT_OFFSET = 512 -SYSVIEW_SYNC_LEN = 10 +SYSVIEW_SYNC_LEN = 10 _sysview_events_map = { 'SYS_NOP': SYSVIEW_EVTID_NOP, @@ -66,11 +67,12 @@ _sysview_events_map = { 'SYS_TIMER_ENTER': SYSVIEW_EVTID_TIMER_ENTER, 'SYS_TIMER_EXIT': SYSVIEW_EVTID_TIMER_EXIT, 'SYS_STACK_INFO': SYSVIEW_EVTID_STACK_INFO, - 'SYS_MODULEDESC': SYSVIEW_EVTID_INIT, + 'SYS_MODULEDESC': SYSVIEW_EVTID_MODULEDESC, + 'SYS_DATA_SAMPLE': SYSVIEW_EVTID_DATA_SAMPLE, 'SYS_INIT': SYSVIEW_EVTID_INIT, 'SYS_NAME_RESOURCE': SYSVIEW_EVTID_NAME_RESOURCE, 'SYS_PRINT_FORMATTED': SYSVIEW_EVTID_PRINT_FORMATTED, - 'SYS_NUMMODULES': SYSVIEW_EVTID_NUMMODULES + 'SYS_NUMMODULES': SYSVIEW_EVTID_NUMMODULES, } _os_events_map = {} @@ -92,7 +94,7 @@ def parse_trace(reader, parser, os_evt_map_file=''): global _os_events_map # parse OS events formats file _os_events_map = _read_events_map(os_evt_map_file) - parser.esp_ext = ('; ESP_Extension\n' in _read_file_header(reader)) + _read_file_header(reader) _read_init_seq(reader) while True: event = parser.read_event(reader, _os_events_map) @@ -197,14 +199,14 @@ def _decode_u32(reader): sz = 0 val = 0 while True: - b, = struct.unpack('= SYSVIEW_EVENT_ID_PREDEF_LEN_MAX and self.plen != params_len: - raise SysViewTraceParseError('Invalid event {}({:d}) payload len {:d}! Must be {:d}.'.format(self.name, self.id, self.plen, params_len)) + raise SysViewTraceParseError( + 'Invalid event {}({:d}) payload len {:d}! Must be {:d}.'.format( + self.name, self.id, self.plen, params_len + ) + ) def __str__(self): params = '' @@ -373,23 +385,26 @@ class SysViewEvent(apptrace.TraceEvent): params += '{}, '.format(param) if len(params): params = params[:-2] # remove trailing ', ' - return '{:.9f} - core[{:d}].{}({:d}), plen {:d}: [{}]'.format(self.ts, self.core_id, self.name, self.id, self.plen, params) + return '{:.9f} - core[{:d}].{}({:d}), plen {:d}: [{}]'.format( + self.ts, self.core_id, self.name, self.id, self.plen, params + ) class SysViewEventParam: """ - Abstract base SystemView event's parameter class. This is a base class for all event's parameters. + Abstract base SystemView event's parameter class. This is a base class for all event's parameters. """ + def __init__(self, name, decode_func): """ - Constructor. + Constructor. - Parameters - ---------- - name : string - Event parameter name. - decode_func : callable object - Parameter decoding function. + Parameters + ---------- + name : string + Event parameter name. + decode_func : callable object + Parameter decoding function. """ self.name = name self.decode_func = decode_func @@ -399,19 +414,19 @@ class SysViewEventParam: def decode(self, reader, max_sz): """ - Reads and decodes events parameter. + Reads and decodes events parameter. - Parameters - ---------- - reader : apptrace.Reader - Trace reader object. - max_sz : int - Maximum number of bytes to read. + Parameters + ---------- + reader : apptrace.Reader + Trace reader object. + max_sz : int + Maximum number of bytes to read. - Returns - ------- - tuple - a tuple containing number of read bytes and decoded value. + Returns + ------- + tuple + a tuple containing number of read bytes and decoded value. """ pass @@ -424,103 +439,136 @@ class SysViewEventParam: class SysViewEventParamSimple(SysViewEventParam): """ - Simple SystemView event's parameter class. + Simple SystemView event's parameter class. """ + def decode(self, reader, max_sz): """ - see SysViewEventParam.decode() + see SysViewEventParam.decode() """ return self.decode_func(reader) class SysViewEventParamArray(SysViewEventParamSimple): """ - Array SystemView event's parameter class. + Array SystemView event's parameter class. """ + def __init__(self, name, decode_func, size=-1): """ - Constructor. + Constructor. - Parameters - ---------- - name : string - see SysViewEventParam.__init__() - decode_func : callable object - see SysViewEventParam.__init__() - size : int - Array's size. If -1 decode() will try to read all bytes from reader. + Parameters + ---------- + name : string + see SysViewEventParam.__init__() + decode_func : callable object + see SysViewEventParam.__init__() + size : int + Array's size. If -1 decode() will try to read all bytes from reader. """ SysViewEventParamSimple.__init__(self, name, decode_func) self.arr_size = size def decode(self, reader, max_sz): """ - see SysViewEventParam.decode() + see SysViewEventParam.decode() """ tottal_sz = 0 vals = [] i = 0 while tottal_sz < max_sz: - sz,val = self.decode_func(reader) + sz, val = self.decode_func(reader) vals.append(val) tottal_sz += sz i += 1 if self.arr_size != -1 and i == self.arr_size: break - return tottal_sz,vals + return tottal_sz, vals class SysViewPredefinedEvent(SysViewEvent): """ - Pre-defined SystemView events class. + Pre-defined SystemView events class. """ + _predef_events_fmt = { - SYSVIEW_EVTID_NOP: ('svNop', []), - SYSVIEW_EVTID_OVERFLOW: ('svOverflow', [SysViewEventParamSimple('drop_cnt', _decode_u32)]), - SYSVIEW_EVTID_ISR_ENTER: ('svIsrEnter', [SysViewEventParamSimple('irq_num', _decode_u32)]), - SYSVIEW_EVTID_ISR_EXIT: ('svIsrExit', []), - SYSVIEW_EVTID_TASK_START_EXEC: ('svTaskStartExec', [SysViewEventParamSimple('tid', _decode_id)]), - SYSVIEW_EVTID_TASK_STOP_EXEC: ('svTaskStopExec', []), + SYSVIEW_EVTID_NOP: ('svNop', []), + SYSVIEW_EVTID_OVERFLOW: ('svOverflow', [SysViewEventParamSimple('drop_cnt', _decode_u32)]), + SYSVIEW_EVTID_ISR_ENTER: ('svIsrEnter', [SysViewEventParamSimple('irq_num', _decode_u32)]), + SYSVIEW_EVTID_ISR_EXIT: ('svIsrExit', []), + SYSVIEW_EVTID_TASK_START_EXEC: ('svTaskStartExec', [SysViewEventParamSimple('tid', _decode_id)]), + SYSVIEW_EVTID_TASK_STOP_EXEC: ('svTaskStopExec', []), SYSVIEW_EVTID_TASK_START_READY: ('svTaskStartReady', [SysViewEventParamSimple('tid', _decode_id)]), - SYSVIEW_EVTID_TASK_STOP_READY: ('svTaskStopReady', [SysViewEventParamSimple('tid', _decode_id), - SysViewEventParamSimple('cause', _decode_u32)]), - SYSVIEW_EVTID_TASK_CREATE: ('svTaskCreate', [SysViewEventParamSimple('tid', _decode_id)]), - SYSVIEW_EVTID_TASK_INFO: ('svTaskInfo', [SysViewEventParamSimple('tid', _decode_id), - SysViewEventParamSimple('prio', _decode_u32), - SysViewEventParamSimple('name', _decode_str)]), - SYSVIEW_EVTID_TRACE_START: ('svTraceStart', []), - SYSVIEW_EVTID_TRACE_STOP: ('svTraceStop', []), - SYSVIEW_EVTID_SYSTIME_CYCLES: ('svSysTimeCycles', [SysViewEventParamSimple('cycles', _decode_u32)]), - SYSVIEW_EVTID_SYSTIME_US: ('svSysTimeUs', [SysViewEventParamSimple('time', _decode_u64)]), - SYSVIEW_EVTID_SYSDESC: ('svSysDesc', [SysViewEventParamSimple('desc', _decode_str)]), - SYSVIEW_EVTID_MARK_START: ('svUserStart', [SysViewEventParamSimple('user_id', _decode_u32)]), - SYSVIEW_EVTID_MARK_STOP: ('svUserStop', [SysViewEventParamSimple('user_id', _decode_u32)]), - SYSVIEW_EVTID_IDLE: ('svIdle', []), + SYSVIEW_EVTID_TASK_STOP_READY: ( + 'svTaskStopReady', + [SysViewEventParamSimple('tid', _decode_id), SysViewEventParamSimple('cause', _decode_u32)], + ), + SYSVIEW_EVTID_TASK_CREATE: ('svTaskCreate', [SysViewEventParamSimple('tid', _decode_id)]), + SYSVIEW_EVTID_TASK_INFO: ( + 'svTaskInfo', + [ + SysViewEventParamSimple('tid', _decode_id), + SysViewEventParamSimple('prio', _decode_u32), + SysViewEventParamSimple('name', _decode_str), + ], + ), + SYSVIEW_EVTID_TRACE_START: ('svTraceStart', []), + SYSVIEW_EVTID_TRACE_STOP: ('svTraceStop', []), + SYSVIEW_EVTID_SYSTIME_CYCLES: ('svSysTimeCycles', [SysViewEventParamSimple('cycles', _decode_u32)]), + SYSVIEW_EVTID_SYSTIME_US: ('svSysTimeUs', [SysViewEventParamSimple('time', _decode_u64)]), + SYSVIEW_EVTID_SYSDESC: ('svSysDesc', [SysViewEventParamSimple('desc', _decode_str)]), + SYSVIEW_EVTID_MARK_START: ('svUserStart', [SysViewEventParamSimple('user_id', _decode_u32)]), + SYSVIEW_EVTID_MARK_STOP: ('svUserStop', [SysViewEventParamSimple('user_id', _decode_u32)]), + SYSVIEW_EVTID_IDLE: ('svIdle', []), SYSVIEW_EVTID_ISR_TO_SCHEDULER: ('svExitIsrToScheduler', []), - SYSVIEW_EVTID_TIMER_ENTER: ('svTimerEnter', [SysViewEventParamSimple('tim_id', _decode_u32)]), - SYSVIEW_EVTID_TIMER_EXIT: ('svTimerExit', []), - SYSVIEW_EVTID_STACK_INFO: ('svStackInfo', [SysViewEventParamSimple('tid', _decode_id), - SysViewEventParamSimple('base', _decode_u32), - SysViewEventParamSimple('sz', _decode_u32), - SysViewEventParamSimple('unused', _decode_u32)]), - SYSVIEW_EVTID_MODULEDESC: ('svModuleDesc', [SysViewEventParamSimple('mod_id', _decode_u32), - SysViewEventParamSimple('evt_off', _decode_u32), - SysViewEventParamSimple('desc', _decode_str)]), - SYSVIEW_EVTID_INIT: ('svInit', [SysViewEventParamSimple('sys_freq', _decode_u32), - SysViewEventParamSimple('cpu_freq', _decode_u32), - SysViewEventParamSimple('ram_base', _decode_u32), - SysViewEventParamSimple('id_shift', _decode_u32)]), - SYSVIEW_EVTID_NAME_RESOURCE: ('svNameResource', [SysViewEventParamSimple('res_id', _decode_u32), - SysViewEventParamSimple('name', _decode_str)]), - SYSVIEW_EVTID_PRINT_FORMATTED: ('svPrint', [SysViewEventParamSimple('msg', _decode_str), - SysViewEventParamSimple('lvl', _decode_u32), - SysViewEventParamSimple('unused', _decode_u32)]), - SYSVIEW_EVTID_NUMMODULES: ('svNumModules', [SysViewEventParamSimple('mod_cnt', _decode_u32)]), + SYSVIEW_EVTID_TIMER_ENTER: ('svTimerEnter', [SysViewEventParamSimple('tim_id', _decode_u32)]), + SYSVIEW_EVTID_TIMER_EXIT: ('svTimerExit', []), + SYSVIEW_EVTID_STACK_INFO: ( + 'svStackInfo', + [ + SysViewEventParamSimple('tid', _decode_id), + SysViewEventParamSimple('base', _decode_u32), + SysViewEventParamSimple('sz', _decode_u32), + SysViewEventParamSimple('unused', _decode_u32), + ], + ), + SYSVIEW_EVTID_MODULEDESC: ( + 'svModuleDesc', + [ + SysViewEventParamSimple('mod_id', _decode_u32), + SysViewEventParamSimple('evt_off', _decode_u32), + SysViewEventParamSimple('desc', _decode_str), + ], + ), + SYSVIEW_EVTID_INIT: ( + 'svInit', + [ + SysViewEventParamSimple('sys_freq', _decode_u32), + SysViewEventParamSimple('cpu_freq', _decode_u32), + SysViewEventParamSimple('ram_base', _decode_u32), + SysViewEventParamSimple('id_shift', _decode_u32), + ], + ), + SYSVIEW_EVTID_DATA_SAMPLE: ('svDataSample', []), + SYSVIEW_EVTID_NAME_RESOURCE: ( + 'svNameResource', + [SysViewEventParamSimple('res_id', _decode_u32), SysViewEventParamSimple('name', _decode_str)], + ), + SYSVIEW_EVTID_PRINT_FORMATTED: ( + 'svPrint', + [ + SysViewEventParamSimple('msg', _decode_str), + SysViewEventParamSimple('lvl', _decode_u32), + SysViewEventParamSimple('unused', _decode_u32), + ], + ), + SYSVIEW_EVTID_NUMMODULES: ('svNumModules', [SysViewEventParamSimple('mod_cnt', _decode_u32)]), } def __init__(self, evt_id, core_id, reader): """ - see SysViewEvent.__init__() + see SysViewEvent.__init__() """ SysViewEvent.__init__(self, evt_id, core_id, reader, self._predef_events_fmt) # self.name = 'SysViewPredefinedEvent' @@ -528,11 +576,12 @@ class SysViewPredefinedEvent(SysViewEvent): class SysViewOSEvent(SysViewEvent): """ - OS related SystemView events class. + OS related SystemView events class. """ + def __init__(self, evt_id, core_id, reader, events_fmt_map): """ - see SysViewEvent.__init__() + see SysViewEvent.__init__() """ SysViewEvent.__init__(self, evt_id, core_id, reader, events_fmt_map) # self.name = 'SysViewOSEvent' @@ -540,70 +589,79 @@ class SysViewOSEvent(SysViewEvent): class SysViewHeapEvent(SysViewEvent): """ - Heap related SystemView events class. + Heap related SystemView events class. - Attributes - ---------- - events_fmt : dict - see return value of _read_events_map() + Attributes + ---------- + events_fmt : dict + see return value of _read_events_map() """ + events_fmt = { - 0: ('esp_sysview_heap_trace_alloc', [SysViewEventParamSimple('addr', _decode_u32), - SysViewEventParamSimple('size', _decode_u32), - SysViewEventParamArray('callers', _decode_u32)]), - 1: ('esp_sysview_heap_trace_free', [SysViewEventParamSimple('addr', _decode_u32), - SysViewEventParamArray('callers', _decode_u32)]), + 0: ( + 'esp_sysview_heap_trace_alloc', + [ + SysViewEventParamSimple('addr', _decode_u32), + SysViewEventParamSimple('size', _decode_u32), + SysViewEventParamArray('callers', _decode_u32), + ], + ), + 1: ( + 'esp_sysview_heap_trace_free', + [SysViewEventParamSimple('addr', _decode_u32), SysViewEventParamArray('callers', _decode_u32)], + ), } def __init__(self, evt_id, core_id, events_off, reader): """ - Constructor. Reads and optionally decodes event. + Constructor. Reads and optionally decodes event. - Parameters - ---------- - evt_id : int - see SysViewEvent.__init__() - events_off : int - Offset for heap events IDs. Greater or equal to SYSVIEW_MODULE_EVENT_OFFSET. - reader : apptrace.Reader - see SysViewEvent.__init__() - core_id : int - see SysViewEvent.__init__() + Parameters + ---------- + evt_id : int + see SysViewEvent.__init__() + events_off : int + Offset for heap events IDs. Greater or equal to SYSVIEW_MODULE_EVENT_OFFSET. + reader : apptrace.Reader + see SysViewEvent.__init__() + core_id : int + see SysViewEvent.__init__() """ cur_events_map = {} - for id in self.events_fmt: - cur_events_map[events_off + id] = self.events_fmt[id] + for _id in self.events_fmt: + cur_events_map[events_off + _id] = self.events_fmt[_id] SysViewEvent.__init__(self, evt_id, core_id, reader, cur_events_map) # self.name = 'SysViewHeapEvent' class SysViewTraceDataParser(apptrace.TraceDataProcessor): """ - Base SystemView trace data parser class. + Base SystemView trace data parser class. - Attributes - ---------- - STREAMID_SYS : int - system events stream ID. Reserved for internal uses. - STREAMID_LOG : int - log events stream ID. - STREAMID_HEAP : int - heap events stream ID. + Attributes + ---------- + STREAMID_SYS : int + system events stream ID. Reserved for internal uses. + STREAMID_LOG : int + log events stream ID. + STREAMID_HEAP : int + heap events stream ID. """ + STREAMID_SYS = -1 STREAMID_LOG = 0 STREAMID_HEAP = 1 def __init__(self, print_events=False, core_id=0): """ - Constructor. + Constructor. - Parameters - ---------- - print_events : bool - see apptrace.TraceDataProcessor.__init__() - core_id : int - id of the core this parser object relates to. + Parameters + ---------- + print_events : bool + see apptrace.TraceDataProcessor.__init__() + core_id : int + id of the core this parser object relates to. """ apptrace.TraceDataProcessor.__init__(self, print_events=print_events, keep_all_events=True) self.sys_info = None @@ -611,62 +669,61 @@ class SysViewTraceDataParser(apptrace.TraceDataProcessor): self.irqs_info = {} self.tasks_info = {} self.core_id = core_id - self.esp_ext = False def _parse_irq_desc(self, desc): """ - Parses IRQ description. + Parses IRQ description. - Parameters - ---------- - desc : string - IRQ description string. + Parameters + ---------- + desc : string + IRQ description string. - Returns - ------- - tuple - a tuple with IRQ number and name or None on error. + Returns + ------- + tuple + a tuple with IRQ number and name or None on error. """ m = re.match('I#([0-9]+)=(.+)', desc) if m: - return m.group(2),m.group(1) + return m.group(2), m.group(1) return None def _update_ts(self, ts): """ - Calculates real event timestamp. + Calculates real event timestamp. - Parameters - ---------- - ts : int - Event timestamp offset. + Parameters + ---------- + ts : int + Event timestamp offset. - Returns - ------- - float - real event timestamp. + Returns + ------- + float + real event timestamp. """ self._last_ts += ts return float(self._last_ts) / self.sys_info.params['sys_freq'].value def read_extension_event(self, evt_id, core_id, reader): """ - Reads extension event. - Default implementation which just reads out event. + Reads extension event. + Default implementation which just reads out event. - Parameters - ---------- - evt_id : int - Event ID. - reader : apptrace.Reader - Trace reader object. + Parameters + ---------- + evt_id : int + Event ID. + reader : apptrace.Reader + Trace reader object. - Returns - ------- - SysViewEvent - if this is top level parser returns object for generic event, - otherwise returns None indicating to the calling top level parser - that extension event are not supported. + Returns + ------- + SysViewEvent + if this is top level parser returns object for generic event, + otherwise returns None indicating to the calling top level parser + that extension event are not supported. """ if self.root_proc == self: # by default just read out and skip unknown event @@ -680,44 +737,38 @@ class SysViewTraceDataParser(apptrace.TraceDataProcessor): high_b &= ~(1 << 6) else: core_id = 0 - return high_b,core_id + return high_b, core_id def read_event(self, reader, os_evt_map): """ - Reads pre-defined or OS-related event. + Reads pre-defined or OS-related event. - Parameters - ---------- - reader : apptrace.Reader - Trace reader object. - os_evt_map : dict - see return value of _read_events_map() + Parameters + ---------- + reader : apptrace.Reader + Trace reader object. + os_evt_map : dict + see return value of _read_events_map() - Returns - ------- - SysViewEvent - pre-defined, OS-related or extension event object. + Returns + ------- + SysViewEvent + pre-defined, OS-related or extension event object. """ - evt_hdr, = struct.unpack('= (self.events_off + self.events_num)) else True + return ( + False + if ( + self.events_off < SYSVIEW_MODULE_EVENT_OFFSET + or event.id < self.events_off + or event.id >= (self.events_off + self.events_num) + ) + else True + ) class SysViewMultiTraceDataParser(SysViewTraceDataParser): """ - SystemView trace data parser supporting multiple event streams. + SystemView trace data parser supporting multiple event streams. """ + def __init__(self, print_events=False, core_id=0): """ - see SysViewTraceDataParser.__init__() + see SysViewTraceDataParser.__init__() """ SysViewTraceDataParser.__init__(self, print_events, core_id) self.stream_parsers = {} def add_stream_parser(self, stream_id, parser): """ - Assigns parser for events stream. + Assigns parser for events stream. - Parameters - ---------- - stream_id : int - stream ID. See SysViewTraceDataParser.STREAMID_xxx. - Parsers for SysViewTraceDataParser.STREAMID_SYS are ignored. - Top level parser is the default for SysViewTraceDataParser.STREAMID_SYS. - parser : SysViewTraceDataParser - parser object. + Parameters + ---------- + stream_id : int + stream ID. See SysViewTraceDataParser.STREAMID_xxx. + Parsers for SysViewTraceDataParser.STREAMID_SYS are ignored. + Top level parser is the default for SysViewTraceDataParser.STREAMID_SYS. + parser : SysViewTraceDataParser + parser object. """ if stream_id == SysViewTraceDataParser.STREAMID_SYS: return @@ -811,20 +870,20 @@ class SysViewMultiTraceDataParser(SysViewTraceDataParser): def read_extension_event(self, evt_id, core_id, reader): """ - Reads extension event. - Iterates over registered stream parsers trying to find one which supports that type of event. + Reads extension event. + Iterates over registered stream parsers trying to find one which supports that type of event. - Parameters - ---------- - evt_id : int - see SysViewTraceDataParser.read_extension_event() - reader : apptrace.Reader - see SysViewTraceDataParser.read_extension_event() + Parameters + ---------- + evt_id : int + see SysViewTraceDataParser.read_extension_event() + reader : apptrace.Reader + see SysViewTraceDataParser.read_extension_event() - Returns - ------- - SysViewEvent - object for extension event, if extension event is not supported return SysViewEvent instance. + Returns + ------- + SysViewEvent + object for extension event, if extension event is not supported return SysViewEvent instance. """ for stream_id in self.stream_parsers: evt = self.stream_parsers[stream_id].read_extension_event(evt_id, core_id, reader) @@ -834,36 +893,37 @@ class SysViewMultiTraceDataParser(SysViewTraceDataParser): def on_new_event(self, event): """ - Iterates over registered stream parsers allowing them to do - essential processing of event. Must be called for every read event. + Iterates over registered stream parsers allowing them to do + essential processing of event. Must be called for every read event. - Parameters - ---------- - event : SysViewEvent - Event object. + Parameters + ---------- + event : SysViewEvent + Event object. """ SysViewTraceDataParser.on_new_event(self, event) for stream_id in self.stream_parsers: self.stream_parsers[stream_id].on_new_event(event) -class SysViewEventContext(): +class SysViewEventContext: """ - SystemView event context. + SystemView event context. """ + def __init__(self, handle, irq, name=''): """ - Constructor. + Constructor. - Parameters - ---------- - handle : int - handle of the context: task ID or IRQ number. - irq : bool - flag indicating whether this is IRQ or task context. - name : string - name of the context: task or IRQ name. Empty if context is unknown. - """ + Parameters + ---------- + handle : int + handle of the context: task ID or IRQ number. + irq : bool + flag indicating whether this is IRQ or task context. + name : string + name of the context: task or IRQ name. Empty if context is unknown. + """ self.handle = handle self.irq = irq self.name = name @@ -871,20 +931,21 @@ class SysViewEventContext(): class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): """ - Base SystemView trace data processor class. + Base SystemView trace data processor class. """ + def __init__(self, traces, root_proc=None, print_events=False, keep_all_events=False): """ - Constructor. + Constructor. - Parameters - ---------- - traces : list - list of parsers to process data from. - print_events : bool - see apptrace.TraceDataProcessor.__init__() - keep_all_events : bool - see apptrace.TraceDataProcessor.__init__() + Parameters + ---------- + traces : list + list of parsers to process data from. + print_events : bool + see apptrace.TraceDataProcessor.__init__() + keep_all_events : bool + see apptrace.TraceDataProcessor.__init__() """ apptrace.TraceDataProcessor.__init__(self, print_events, keep_all_events) self.event_ids = {} @@ -900,24 +961,25 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): # empty list means IDLE context or self.start_ctx self.ctx_stack[t.core_id] = [] # context is undefined, we do not know have we started the tracing in task/IDLE or IRQ context - # in general there are three scenarios when we can start tracing: when core is in task, IDLE task or IRQ context + # in general there are three scenarios when we can start tracing: + # when core is in task, IDLE task or IRQ context self.prev_ctx[t.core_id] = None def _get_curr_context(self, core_id): """ - Returns current context. + Returns current context. - Parameters - ---------- - core_id : int - core ID for requested context. + Parameters + ---------- + core_id : int + core ID for requested context. - Returns - ------- - SysViewEventContext - context object - None - if there current is undefined + Returns + ------- + SysViewEventContext + context object + None + if there current is undefined """ if len(self.root_proc.ctx_stack[core_id]): return self.root_proc.ctx_stack[core_id][-1] @@ -927,35 +989,35 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): def _get_prev_context(self, core_id): """ - Returns current context. + Returns current context. - Parameters - ---------- - core_id : int - core ID for requested context. + Parameters + ---------- + core_id : int + core ID for requested context. - Returns - ------- - SysViewEventContext - context object + Returns + ------- + SysViewEventContext + context object """ return self.root_proc.prev_ctx[core_id] def get_trace_stream(self, core_id, stream_id): """ - Retrieves parser for specified stream and core. + Retrieves parser for specified stream and core. - Parameters - ---------- - core_id : int - Parser's core ID. - stream_id : int - Parser's stream ID. + Parameters + ---------- + core_id : int + Parser's core ID. + stream_id : int + Parser's stream ID. - Returns - ------- - SysViewTraceDataParser - parser object for specified stream and core + Returns + ------- + SysViewTraceDataParser + parser object for specified stream and core """ if self.root_proc == self: return self.traces[core_id] @@ -963,49 +1025,41 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): def event_supported(self, e): """ - Should be overridden in child class. + Should be overridden in child class. """ return False def handle_event(self, e): """ - Should be overridden in child class. + Should be overridden in child class. """ pass def print_report(self): """ - see apptrace.TraceDataProcessor.print_report() + see apptrace.TraceDataProcessor.print_report() """ apptrace.TraceDataProcessor.print_report(self) def _process_event(self, event): """ - Processes event. - Keeps track of execution context on every core. + Processes event. + Keeps track of execution context on every core. - Parameters - ---------- - event : SysViewEvent - Event object. + Parameters + ---------- + event : SysViewEvent + Event object. - Raises - ---------- - SysViewTraceParseError - if there is no parser for event's core or - if SYSVIEW_EVTID_ISR_ENTER is received for unknown IRQ or - if SYSVIEW_EVTID_TASK_START_EXEC or SYSVIEW_EVTID_TASK_STOP_READY is received for unknown task. + Raises + ---------- + SysViewTraceParseError + if there is no parser for event's core or + if SYSVIEW_EVTID_ISR_ENTER is received for unknown IRQ or + if SYSVIEW_EVTID_TASK_START_EXEC or SYSVIEW_EVTID_TASK_STOP_READY is received for unknown task. """ if event.core_id not in self.traces: - if 0 in self.traces and self.traces[0].esp_ext: - # for Espressif extension there is one trace for all cores - trace = self.traces[0] - if event.core_id not in self.ctx_stack: - self.ctx_stack[event.core_id] = [] - if event.core_id not in self.prev_ctx: - self.prev_ctx[event.core_id] = None - else: - raise SysViewTraceParseError('Event for unknown core %d' % event.core_id) + raise SysViewTraceParseError('Event for unknown core %d' % event.core_id) else: trace = self.traces[event.core_id] if event.id == SYSVIEW_EVTID_ISR_ENTER: @@ -1014,16 +1068,20 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): if len(self.ctx_stack[event.core_id]): self.prev_ctx[event.core_id] = self.ctx_stack[event.core_id][-1] else: - # the 1st context switching event after trace start is SYSVIEW_EVTID_ISR_ENTER, so we have been in IDLE context + # the 1st context switching event after trace start is SYSVIEW_EVTID_ISR_ENTER, + # so we have been in IDLE context self.prev_ctx[event.core_id] = SysViewEventContext(None, False, 'IDLE%d' % event.core_id) # put new ISR context on top of the stack (the last in the list) - self.ctx_stack[event.core_id].append(SysViewEventContext(event.params['irq_num'].value, True, trace.irqs_info[event.params['irq_num'].value])) + self.ctx_stack[event.core_id].append( + SysViewEventContext(event.params['irq_num'].value, True, trace.irqs_info[event.params['irq_num'].value]) + ) elif event.id == SYSVIEW_EVTID_ISR_EXIT or event.id == SYSVIEW_EVTID_ISR_TO_SCHEDULER: if len(self.ctx_stack[event.core_id]): # return to the previous context (the last in the list) self.prev_ctx[event.core_id] = self.ctx_stack[event.core_id].pop() else: - # the 1st context switching event after trace start is SYSVIEW_EVTID_ISR_EXIT, so we have been in ISR context, + # the 1st context switching event after trace start is SYSVIEW_EVTID_ISR_EXIT, + # so we have been in ISR context, # but we do not know which one because SYSVIEW_EVTID_ISR_EXIT do not include the IRQ number self.prev_ctx[event.core_id] = SysViewEventContext(None, True, 'IRQ_oncore%d' % event.core_id) elif event.id == SYSVIEW_EVTID_TASK_START_EXEC: @@ -1033,10 +1091,13 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): # return to the previous context (the last in the list) self.prev_ctx[event.core_id] = self.ctx_stack[event.core_id][-1] else: - # the 1st context switching event after trace start is SYSVIEW_EVTID_TASK_START_EXEC, so we have been in IDLE context + # the 1st context switching event after trace start is SYSVIEW_EVTID_TASK_START_EXEC, + # so we have been in IDLE context self.prev_ctx[event.core_id] = SysViewEventContext(None, False, 'IDLE%d' % event.core_id) # only one task at a time in context stack (can be interrupted by a bunch of ISRs) - self.ctx_stack[event.core_id] = [SysViewEventContext(event.params['tid'].value, False, trace.tasks_info[event.params['tid'].value])] + self.ctx_stack[event.core_id] = [ + SysViewEventContext(event.params['tid'].value, False, trace.tasks_info[event.params['tid'].value]) + ] elif event.id == SYSVIEW_EVTID_TASK_STOP_EXEC: # delete task from context stack for ctx in self.ctx_stack[event.core_id]: @@ -1050,16 +1111,22 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): if event.params['tid'].value not in trace.tasks_info: raise SysViewTraceParseError('Stop ready unknown task 0x%x' % event.params['tid'].value) if len(self.ctx_stack[event.core_id]): - if (not self.ctx_stack[event.core_id][-1].irq and event.params['tid'].value == self.ctx_stack[event.core_id][-1].handle): + if ( + not self.ctx_stack[event.core_id][-1].irq + and event.params['tid'].value == self.ctx_stack[event.core_id][-1].handle + ): # return to the previous context (the last in the list) self.prev_ctx[event.core_id] = self.ctx_stack[event.core_id].pop() else: - # the 1st context switching event after trace start is SYSVIEW_EVTID_TASK_STOP_READY, so we have been in task context - self.prev_ctx[event.core_id] = SysViewEventContext(event.params['tid'].value, False, trace.tasks_info[event.params['tid'].value]) + # the 1st context switching event after trace start is SYSVIEW_EVTID_TASK_STOP_READY, + # so we have been in task context + self.prev_ctx[event.core_id] = SysViewEventContext( + event.params['tid'].value, False, trace.tasks_info[event.params['tid'].value] + ) def on_new_event(self, event): """ - Processes heap events. + Processes heap events. """ if self.root_proc == self: SysViewTraceDataProcessor._process_event(self, event) @@ -1088,7 +1155,7 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): def merge_and_process(self): """ - Merges events from all registered parsers, sorts them by timestamp and processes them. + Merges events from all registered parsers, sorts them by timestamp and processes them. """ all_events = [] for t in self.traces.values(): @@ -1100,27 +1167,28 @@ class SysViewTraceDataProcessor(apptrace.TraceDataProcessor): class SysViewMultiStreamTraceDataProcessor(SysViewTraceDataProcessor): """ - SystemView trace data processor supporting multiple event streams. + SystemView trace data processor supporting multiple event streams. """ + def __init__(self, traces, print_events=False, keep_all_events=False): """ - see SysViewTraceDataProcessor.__init__() + see SysViewTraceDataProcessor.__init__() """ SysViewTraceDataProcessor.__init__(self, traces, print_events=print_events, keep_all_events=keep_all_events) self.stream_procs = {} def add_stream_processor(self, stream_id, proc): """ - Assigns processor for events stream. + Assigns processor for events stream. - Parameters - ---------- - stream_id : int - stream ID. See SysViewTraceDataParser.STREAMID_xxx. - Parsers for SysViewTraceDataParser.STREAMID_SYS are ignored. - Top level parser is the default for SysViewTraceDataParser.STREAMID_SYS. - proc : SysViewTraceDataProcessor - processor object. + Parameters + ---------- + stream_id : int + stream ID. See SysViewTraceDataParser.STREAMID_xxx. + Parsers for SysViewTraceDataParser.STREAMID_SYS are ignored. + Top level parser is the default for SysViewTraceDataParser.STREAMID_SYS. + proc : SysViewTraceDataProcessor + processor object. """ if stream_id == SysViewTraceDataParser.STREAMID_SYS: return @@ -1129,25 +1197,21 @@ class SysViewMultiStreamTraceDataProcessor(SysViewTraceDataProcessor): def get_trace_stream(self, core_id, stream_id): """ - Retrieves parser for specified stream and core. + Retrieves parser for specified stream and core. - Parameters - ---------- - core_id : int - Parser's core ID. - stream_id : int - Parser's stream ID. + Parameters + ---------- + core_id : int + Parser's core ID. + stream_id : int + Parser's stream ID. - Returns - ------- - SysViewTraceDataParser - parser object for specified stream and core + Returns + ------- + SysViewTraceDataParser + parser object for specified stream and core """ - if core_id not in self.traces and 0 in self.traces and self.traces[0].esp_ext: - # for Espressif extension there is one trace for all cores - trace = self.traces[0] - else: - trace = self.traces[core_id] + trace = self.traces[core_id] if stream_id == SysViewTraceDataParser.STREAMID_SYS: return trace if isinstance(trace, SysViewMultiTraceDataParser): @@ -1156,7 +1220,7 @@ class SysViewMultiStreamTraceDataProcessor(SysViewTraceDataProcessor): def print_report(self): """ - Iterates over registered stream processors and prints their reports. + Iterates over registered stream processors and prints their reports. """ SysViewTraceDataProcessor.print_report(self) # need to sort stream procs by keys to print reports in the same order regardless of Python version @@ -1167,7 +1231,7 @@ class SysViewMultiStreamTraceDataProcessor(SysViewTraceDataProcessor): def cleanup(self): """ - Iterates over registered stream processors and cleans them up. + Iterates over registered stream processors and cleans them up. """ for stream_id in self.stream_procs: self.stream_procs[stream_id].cleanup() @@ -1175,13 +1239,13 @@ class SysViewMultiStreamTraceDataProcessor(SysViewTraceDataProcessor): def on_new_event(self, event): """ - Iterates over registered stream processors allowing them to do - the processing of event. + Iterates over registered stream processors allowing them to do + the processing of event. - Parameters - ---------- - event : SysViewEvent - Event object. + Parameters + ---------- + event : SysViewEvent + Event object. """ SysViewTraceDataProcessor.on_new_event(self, event) for stream_id in self.stream_procs: @@ -1219,11 +1283,26 @@ class SysViewTraceDataJsonEncoder(json.JSONEncoder): callers = [] for addr in obj.params['callers'].value: callers.append('0x{:x}'.format(addr)) - return {'ctx_name': obj.ctx_name, 'in_irq': obj.in_irq, 'id': obj.id, 'core_id': obj.core_id, - 'ts': obj.ts, 'addr': blk_addr, 'size': blk_size, 'callers': callers} + return { + 'ctx_name': obj.ctx_name, + 'in_irq': obj.in_irq, + 'id': obj.id, + 'core_id': obj.core_id, + 'ts': obj.ts, + 'addr': blk_addr, + 'size': blk_size, + 'callers': callers, + } if isinstance(obj, SysViewPredefinedEvent) and obj.id == SYSVIEW_EVTID_PRINT_FORMATTED: - return {'ctx_name': obj.ctx_name, 'in_irq': obj.in_irq, 'id': obj.id, 'core_id': obj.core_id, - 'ts': obj.ts, 'msg': obj.params['msg'].value, 'lvl': obj.params['lvl'].value} + return { + 'ctx_name': obj.ctx_name, + 'in_irq': obj.in_irq, + 'id': obj.id, + 'core_id': obj.core_id, + 'ts': obj.ts, + 'msg': obj.params['msg'].value, + 'lvl': obj.params['lvl'].value, + } if isinstance(obj, SysViewEvent): jobj = obj.to_jsonable() # remove unused fields @@ -1238,44 +1317,56 @@ class SysViewTraceDataJsonEncoder(json.JSONEncoder): class SysViewHeapTraceDataParser(SysViewTraceDataExtEventParser): """ - SystemView trace data parser supporting heap events. + SystemView trace data parser supporting heap events. """ + def __init__(self, print_events=False, core_id=0): """ - SystemView trace data parser supporting multiple event streams. - see SysViewTraceDataExtEventParser.__init__() + SystemView trace data parser supporting multiple event streams. + see SysViewTraceDataExtEventParser.__init__() """ - SysViewTraceDataExtEventParser.__init__(self, events_num=len(SysViewHeapEvent.events_fmt.keys()), core_id=core_id, print_events=print_events) + SysViewTraceDataExtEventParser.__init__( + self, events_num=len(SysViewHeapEvent.events_fmt.keys()), core_id=core_id, print_events=print_events + ) def read_extension_event(self, evt_id, core_id, reader): """ - Reads heap event. - see SysViewTraceDataParser.read_extension_event() + Reads heap event. + see SysViewTraceDataParser.read_extension_event() """ - if (self.events_off >= SYSVIEW_MODULE_EVENT_OFFSET and evt_id >= self.events_off and - evt_id < self.events_off + self.events_num): + if ( + self.events_off >= SYSVIEW_MODULE_EVENT_OFFSET + and evt_id >= self.events_off + and evt_id < self.events_off + self.events_num + ): return SysViewHeapEvent(evt_id, core_id, self.events_off, reader) return SysViewTraceDataParser.read_extension_event(self, evt_id, core_id, reader) def on_new_event(self, event): """ - Keeps track of heap module descriptions. + Keeps track of heap module descriptions. """ if self.root_proc == self: SysViewTraceDataParser.on_new_event(self, event) - if event.id == SYSVIEW_EVTID_MODULEDESC and event.params['desc'].value == 'M=ESP32 SystemView Heap Tracing Module': + if ( + event.id == SYSVIEW_EVTID_MODULEDESC + and event.params['desc'].value == 'M=ESP32 SystemView Heap Tracing Module' + ): self.events_off = event.params['evt_off'].value class SysViewHeapTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseHeapTraceDataProcessorImpl): """ - SystemView trace data processor supporting heap events. + SystemView trace data processor supporting heap events. """ - def __init__(self, toolchain_pref, elf_path, root_proc=None, traces=[], print_events=False, print_heap_events=False): + + def __init__( + self, toolchain_pref, elf_path, root_proc=None, traces=[], print_events=False, print_heap_events=False + ): """ - Constructor. - see SysViewTraceDataProcessor.__init__() - see apptrace.BaseHeapTraceDataProcessorImpl.__init__() + Constructor. + see SysViewTraceDataProcessor.__init__() + see apptrace.BaseHeapTraceDataProcessorImpl.__init__() """ SysViewTraceDataProcessor.__init__(self, traces, root_proc=root_proc, print_events=print_events) apptrace.BaseHeapTraceDataProcessorImpl.__init__(self, print_heap_events) @@ -1293,16 +1384,14 @@ class SysViewHeapTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseHeap def handle_event(self, event): heap_stream = self.root_proc.get_trace_stream(event.core_id, SysViewTraceDataParser.STREAMID_HEAP) if (event.id - heap_stream.events_off) == 0: - heap_event = apptrace.HeapTraceEvent(event, True, toolchain=self.toolchain, - elf_path=self.elf_path) + heap_event = apptrace.HeapTraceEvent(event, True, toolchain=self.toolchain, elf_path=self.elf_path) else: - heap_event = apptrace.HeapTraceEvent(event, False, toolchain=self.toolchain, - elf_path=self.elf_path) + heap_event = apptrace.HeapTraceEvent(event, False, toolchain=self.toolchain, elf_path=self.elf_path) apptrace.BaseHeapTraceDataProcessorImpl.on_new_event(self, heap_event) def print_report(self): """ - see apptrace.TraceDataProcessor.print_report() + see apptrace.TraceDataProcessor.print_report() """ if self.root_proc == self: SysViewTraceDataProcessor.print_report(self) @@ -1311,42 +1400,44 @@ class SysViewHeapTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseHeap class SysViewLogTraceEvent(apptrace.LogTraceEvent): """ - SystemView log event. + SystemView log event. """ + def __init__(self, ts, msg): """ - Constructor. + Constructor. - Parameters - ---------- - msg : string - Log message string. + Parameters + ---------- + msg : string + Log message string. """ self.msg = msg self.ts = ts def get_message(self, unused): """ - Retrieves log message. + Retrieves log message. - Returns - ------- - string - formatted log message + Returns + ------- + string + formatted log message """ return '[{:.9f}] LOG: {}'.format(self.ts, self.msg) class SysViewLogTraceDataParser(SysViewTraceDataParser): """ - SystemView trace data parser supporting log events. + SystemView trace data parser supporting log events. """ + def event_supported(self, event): return event.id == SYSVIEW_EVTID_PRINT_FORMATTED def on_new_event(self, event): """ - see SysViewTraceDataParser.on_new_event() + see SysViewTraceDataParser.on_new_event() """ if self.root_proc == self: SysViewTraceDataParser.on_new_event(self, event) @@ -1354,13 +1445,14 @@ class SysViewLogTraceDataParser(SysViewTraceDataParser): class SysViewLogTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseLogTraceDataProcessorImpl): """ - SystemView trace data processor supporting heap events. + SystemView trace data processor supporting heap events. """ + def __init__(self, traces=[], root_proc=None, print_events=False, print_log_events=False): """ - Constructor. - see SysViewTraceDataProcessor.__init__() - see apptrace.BaseLogTraceDataProcessorImpl.__init__() + Constructor. + see SysViewTraceDataProcessor.__init__() + see apptrace.BaseLogTraceDataProcessorImpl.__init__() """ SysViewTraceDataProcessor.__init__(self, traces, root_proc=root_proc, print_events=print_events) apptrace.BaseLogTraceDataProcessorImpl.__init__(self, print_log_events) @@ -1372,7 +1464,7 @@ class SysViewLogTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseLogTr def on_new_event(self, event): """ - Processes log events. + Processes log events. """ if self.root_proc == self: SysViewTraceDataProcessor.on_new_event(self, event) @@ -1382,7 +1474,7 @@ class SysViewLogTraceDataProcessor(SysViewTraceDataProcessor, apptrace.BaseLogTr def print_report(self): """ - see apptrace.TraceDataProcessor.print_report() + see apptrace.TraceDataProcessor.print_report() """ if self.root_proc == self: SysViewTraceDataProcessor.print_report(self) diff --git a/tools/esp_app_trace/sysviewtrace_proc.py b/tools/esp_app_trace/sysviewtrace_proc.py index d442dfc233a..7a03653f87c 100755 --- a/tools/esp_app_trace/sysviewtrace_proc.py +++ b/tools/esp_app_trace/sysviewtrace_proc.py @@ -1,47 +1,149 @@ #!/usr/bin/env python # -# SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 # # This is python script to process various types trace data streams in SystemView format. # Trace data can be provided in multiple trace files (one per CPU). After processing phase # script prints report for every type of trace data stream which was found. # - import argparse import json import logging import os.path import signal import sys +import tempfile import traceback +from urllib.parse import urlparse import espytrace.apptrace as apptrace import espytrace.sysview as sysview -def main(): +def is_segger_multicore_format(file_path): + """Check if the file has offsets in header""" + try: + url = urlparse(file_path) + if len(url.scheme) == 0 or url.scheme == 'file': + with open(url.path, 'rb') as f: + header = f.read(200) + header_str = header.decode('utf-8', errors='ignore') + if ( + '; Version SEGGER SystemViewer' in header_str + and '; Author Espressif Inc' in header_str + and '; Offset Core0' in header_str + and '; Offset Core1' in header_str + ): + return True + except Exception as e: + logging.error('Error checking SEGGER multicore file format:', e) + return False - verbosity_levels = [ - logging.CRITICAL, - logging.ERROR, - logging.WARNING, - logging.INFO, - logging.DEBUG - ] + +def split_segger_multicore_file(file_path): + """Split SEGGER multicore file into separate core files.""" + try: + with open(urlparse(file_path).path, 'rb') as f: + # Read first few lines to get offsets for each core + header = f.read(200) + header_str = header.decode('utf-8', errors='ignore') + + core1_offset = None + for line in header_str.split('\n'): + if '; Offset Core1' in line: + core1_offset = int(line.strip().split()[-1]) + + if core1_offset is None: + logging.error('Failed to parse core1 offset') + return None, None + + # Read the entire file + f.seek(0) + data = f.read() + + # Find first 10 sync bytes start offset + sync_start = data.find(b'\x00' * 10) + if sync_start == -1: + logging.error('Sync bytes not found') + return None, None + + core0_offset = sync_start + core1_offset += sync_start + + # Parse original header and get version from there, if not found, use default version + version = 'V3.60' + for line in header_str.split('\n'): + if '; Version SEGGER SystemViewer' in line: + version = line.strip().split()[-1] + break + + # Rebuild header without offset lines + core_header = f';\n; Version SEGGER SystemViewer {version}\n; Author Espressif Inc\n;\n' + core_header = core_header.encode('utf-8') + core_base = core_header + b'\x00' * 10 + + core0_data = core_base + data[core0_offset:core1_offset] + core1_data = core_base + data[core1_offset:] + + core0_file = tempfile.NamedTemporaryFile(delete=False, suffix='.svdat') + core1_file = tempfile.NamedTemporaryFile(delete=False, suffix='.svdat') + + core0_file.write(core0_data) + core1_file.write(core1_data) + + core0_file.close() + core1_file.close() + + return core0_file.name, core1_file.name + + except Exception as e: + logging.error('Failed to process files:', e) + return None, None + + +def main(): + verbosity_levels = [logging.CRITICAL, logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG] parser = argparse.ArgumentParser(description='ESP32 SEGGER SystemView Trace Parsing Tool') - parser.add_argument('trace_sources', help='Trace data sources. Format: [file://]/path/to/file.', nargs='+', type=str) + parser.add_argument( + 'trace_sources', help='Trace data sources. Format: [file://]/path/to/file.', nargs='+', type=str + ) parser.add_argument('--elf-file', '-b', help='Path to program ELF file.', type=str, default='') parser.add_argument('--tmo', '-w', help='Data wait timeout in sec. -1: infinite, 0: no wait', type=int, default=0) parser.add_argument('--dump-events', '-d', help='Dump all events.', action='store_true') - parser.add_argument('--print-events', '-p', help='Print events of selected types. By default only reports are printed', action='store_true') - parser.add_argument('--include-events', '-i', help='Events types to be included into report.', type=str, choices=['heap', 'log', 'all'], default='all') + parser.add_argument( + '--print-events', + '-p', + help='Print events of selected types. By default only reports are printed', + action='store_true', + ) + parser.add_argument( + '--include-events', + '-i', + help='Events types to be included into report.', + type=str, + choices=['heap', 'log', 'all'], + default='all', + ) parser.add_argument('--toolchain', '-t', help='Toolchain prefix.', type=str, default='xtensa-esp32-elf-') - parser.add_argument('--events-map', '-e', help='Events map file.', type=str, default=os.path.join(os.path.dirname(__file__), 'SYSVIEW_FreeRTOS.txt')) + parser.add_argument( + '--events-map', + '-e', + help='Events map file.', + type=str, + default=os.path.join(os.path.dirname(__file__), 'SYSVIEW_FreeRTOS.txt'), + ) parser.add_argument('--to-json', '-j', help='Print JSON.', action='store_true', default=False) - parser.add_argument('--verbose', '-v', help='Verbosity level. Default 1', choices=range(0, len(verbosity_levels)), type=int, default=1) + parser.add_argument( + '--verbose', + '-v', + help='Verbosity level. Default 1', + choices=range(0, len(verbosity_levels)), + type=int, + default=1, + ) args = parser.parse_args() def sig_int_handler(signum, frame): @@ -60,17 +162,33 @@ def main(): logging.basicConfig(level=verbosity_levels[args.verbose], format='[%(levelname)s] %(message)s') + temp_files = [] + # Only check for SEGGER format if there's exactly one trace source + if len(args.trace_sources) == 1: + trace_source = args.trace_sources[0] + if is_segger_multicore_format(trace_source): + core0_file, core1_file = split_segger_multicore_file(trace_source) + if core0_file and core1_file: + temp_files.extend([core0_file, core1_file]) + args.trace_sources = temp_files + else: + sys.exit(2) + # parse trace files parsers = [] for i, trace_source in enumerate(args.trace_sources): try: parser = sysview.SysViewMultiTraceDataParser(print_events=False, core_id=i) if include_events['heap']: - parser.add_stream_parser(sysview.SysViewTraceDataParser.STREAMID_HEAP, - sysview.SysViewHeapTraceDataParser(print_events=False, core_id=i)) + parser.add_stream_parser( + sysview.SysViewTraceDataParser.STREAMID_HEAP, + sysview.SysViewHeapTraceDataParser(print_events=False, core_id=i), + ) if include_events['log']: - parser.add_stream_parser(sysview.SysViewTraceDataParser.STREAMID_LOG, - sysview.SysViewLogTraceDataParser(print_events=False, core_id=i)) + parser.add_stream_parser( + sysview.SysViewTraceDataParser.STREAMID_LOG, + sysview.SysViewLogTraceDataParser(print_events=False, core_id=i), + ) parsers.append(parser) except Exception as e: logging.error('Failed to create data parser (%s)!', e) @@ -97,13 +215,21 @@ def main(): # merge and process traces try: - proc = sysview.SysViewMultiStreamTraceDataProcessor(traces=parsers, print_events=args.dump_events, keep_all_events=True if args.to_json else False) + proc = sysview.SysViewMultiStreamTraceDataProcessor( + traces=parsers, print_events=args.dump_events, keep_all_events=True if args.to_json else False + ) if include_events['heap']: - proc.add_stream_processor(sysview.SysViewTraceDataParser.STREAMID_HEAP, - sysview.SysViewHeapTraceDataProcessor(args.toolchain, args.elf_file, root_proc=proc, print_heap_events=args.print_events)) + proc.add_stream_processor( + sysview.SysViewTraceDataParser.STREAMID_HEAP, + sysview.SysViewHeapTraceDataProcessor( + args.toolchain, args.elf_file, root_proc=proc, print_heap_events=args.print_events + ), + ) if include_events['log']: - proc.add_stream_processor(sysview.SysViewTraceDataParser.STREAMID_LOG, - sysview.SysViewLogTraceDataProcessor(root_proc=proc, print_log_events=args.print_events)) + proc.add_stream_processor( + sysview.SysViewTraceDataParser.STREAMID_LOG, + sysview.SysViewLogTraceDataProcessor(root_proc=proc, print_log_events=args.print_events), + ) except Exception as e: logging.error('Failed to create data processor (%s)!', e) traceback.print_exc() @@ -119,11 +245,21 @@ def main(): sys.exit(2) finally: if args.to_json: - print(json.dumps(proc, cls=sysview.SysViewTraceDataJsonEncoder, indent=4, separators=(',', ': '), sort_keys=True)) + print( + json.dumps( + proc, cls=sysview.SysViewTraceDataJsonEncoder, indent=4, separators=(',', ': '), sort_keys=True + ) + ) else: proc.print_report() proc.cleanup() + for file in temp_files: + try: + os.remove(file) + except Exception as e: + logging.warning('Failed to remove temporary file %s: %s', file, e) + if __name__ == '__main__': main() diff --git a/tools/esp_app_trace/test/sysview/README.md b/tools/esp_app_trace/test/sysview/README.md index 4f09f1677c2..b370b03613a 100644 --- a/tools/esp_app_trace/test/sysview/README.md +++ b/tools/esp_app_trace/test/sysview/README.md @@ -24,7 +24,7 @@ ``` cd $IDF_PATH/examples/system/sysview_tracing_heap_log - xtensa-esp32-elf-gdb -x gdbinit build/sysview_tracing_heap_log.elf + xtensa-esp32-elf-gdb -x $IDF_PATH/tools/esp_app_trace/test/sysview/gdbinit build/sysview_tracing_heap_log.elf ``` When program stops at `heap_trace_stop` quit GDB and OpenOCD @@ -45,7 +45,7 @@ ``` cd $IDF_PATH/examples/system/sysview_tracing_heap_log - xtensa-esp32-elf-gdb -x gdbinit-mcore build/sysview_tracing_heap_log.elf + xtensa-esp32-elf-gdb -x $IDF_PATH/tools/esp_app_trace/test/sysview/gdbinit-mcore build/sysview_tracing_heap_log.elf ``` When program stops at `heap_trace_stop` quit GDB and OpenOCD @@ -59,6 +59,7 @@ You can use the commands from the `test.sh` to generate expected result files ``` + cd $IDF_PATH/tools/esp_app_trace/test/sysview/ $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat &> expected_output $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -j -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat &> expected_output.json $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log_mcore.svdat &> expected_output_mcore diff --git a/tools/esp_app_trace/test/sysview/expected_output b/tools/esp_app_trace/test/sysview/expected_output index a342a494cd9..7d5de4e83b9 100644 --- a/tools/esp_app_trace/test/sysview/expected_output +++ b/tools/esp_app_trace/test/sysview/expected_output @@ -1,3721 +1,3738 @@ EVENT[0]: 0.000000000 - core[0].svTraceStart(10), plen 0: [] EVENT[1]: 0.000000000 - core[1].svTraceStart(10), plen 0: [] -EVENT[2]: 0.000006650 - core[0].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] -EVENT[3]: 0.000006650 - core[1].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] -EVENT[4]: 0.000018550 - core[0].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] -EVENT[5]: 0.000018550 - core[1].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] -EVENT[6]: 0.000027675 - core[0].svSysDesc(14), plen 0: [desc: I#5=SysTick] -EVENT[7]: 0.000027675 - core[1].svSysDesc(14), plen 0: [desc: I#5=SysTick] -EVENT[8]: 0.000049775 - core[0].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] -EVENT[9]: 0.000049775 - core[1].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] -EVENT[10]: 0.000063875 - core[0].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] -EVENT[11]: 0.000063875 - core[1].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] -EVENT[12]: 0.000073825 - core[0].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] -EVENT[13]: 0.000073825 - core[1].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] -EVENT[14]: 0.000087500 - core[0].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] -EVENT[15]: 0.000087500 - core[1].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] -EVENT[16]: 0.000101575 - core[0].svSysDesc(14), plen 0: [desc: I#10=BT_BB] -EVENT[17]: 0.000101575 - core[1].svSysDesc(14), plen 0: [desc: I#10=BT_BB] -EVENT[18]: 0.000112375 - core[0].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] -EVENT[19]: 0.000112375 - core[1].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] -EVENT[20]: 0.000122300 - core[0].svSysDesc(14), plen 0: [desc: I#12=RWBT] -EVENT[21]: 0.000122300 - core[1].svSysDesc(14), plen 0: [desc: I#12=RWBT] -EVENT[22]: 0.000132300 - core[0].svSysDesc(14), plen 0: [desc: I#13=RWBLE] -EVENT[23]: 0.000132300 - core[1].svSysDesc(14), plen 0: [desc: I#13=RWBLE] -EVENT[24]: 0.000146800 - core[0].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] -EVENT[25]: 0.000146800 - core[1].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] -EVENT[26]: 0.000157600 - core[0].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] -EVENT[27]: 0.000157600 - core[1].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] -EVENT[28]: 0.000171900 - core[0].svSysDesc(14), plen 0: [desc: I#16=SLC0] -EVENT[29]: 0.000171900 - core[1].svSysDesc(14), plen 0: [desc: I#16=SLC0] -EVENT[30]: 0.000189550 - core[0].svSysDesc(14), plen 0: [desc: I#17=SLC1] -EVENT[31]: 0.000189550 - core[1].svSysDesc(14), plen 0: [desc: I#17=SLC1] -EVENT[32]: 0.000199525 - core[0].svSysDesc(14), plen 0: [desc: I#18=UHCI0] -EVENT[33]: 0.000199525 - core[1].svSysDesc(14), plen 0: [desc: I#18=UHCI0] -EVENT[34]: 0.000209500 - core[0].svSysDesc(14), plen 0: [desc: I#19=UHCI1] -EVENT[35]: 0.000209500 - core[1].svSysDesc(14), plen 0: [desc: I#19=UHCI1] -EVENT[36]: 0.000224750 - core[0].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] -EVENT[37]: 0.000224750 - core[1].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] -EVENT[38]: 0.000236150 - core[0].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] -EVENT[39]: 0.000236150 - core[1].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] -EVENT[40]: 0.000251850 - core[0].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] -EVENT[41]: 0.000251850 - core[1].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] -EVENT[42]: 0.000263625 - core[0].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] -EVENT[43]: 0.000263625 - core[1].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] -EVENT[44]: 0.000279050 - core[0].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] -EVENT[45]: 0.000279050 - core[1].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] -EVENT[46]: 0.000294450 - core[0].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] -EVENT[47]: 0.000294450 - core[1].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] -EVENT[48]: 0.000310000 - core[0].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] -EVENT[49]: 0.000310000 - core[1].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] -EVENT[50]: 0.000321975 - core[0].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] -EVENT[51]: 0.000321975 - core[1].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] -EVENT[52]: 0.000331875 - core[0].svSysDesc(14), plen 0: [desc: I#28=GPIO] -EVENT[53]: 0.000331875 - core[1].svSysDesc(14), plen 0: [desc: I#28=GPIO] -EVENT[54]: 0.000350775 - core[0].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] -EVENT[55]: 0.000350775 - core[1].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] -EVENT[56]: 0.000361675 - core[0].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] -EVENT[57]: 0.000361675 - core[1].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] -EVENT[58]: 0.000376375 - core[0].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] -EVENT[59]: 0.000376375 - core[1].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] -EVENT[60]: 0.000387200 - core[0].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] -EVENT[61]: 0.000387200 - core[1].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] -EVENT[62]: 0.000401900 - core[0].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] -EVENT[63]: 0.000401900 - core[1].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] -EVENT[64]: 0.000415650 - core[0].svSysDesc(14), plen 0: [desc: I#34=SPI0] -EVENT[65]: 0.000415650 - core[1].svSysDesc(14), plen 0: [desc: I#34=SPI0] -EVENT[66]: 0.000425400 - core[0].svSysDesc(14), plen 0: [desc: I#35=SPI1] -EVENT[67]: 0.000425400 - core[1].svSysDesc(14), plen 0: [desc: I#35=SPI1] -EVENT[68]: 0.000435175 - core[0].svSysDesc(14), plen 0: [desc: I#36=SPI2] -EVENT[69]: 0.000435175 - core[1].svSysDesc(14), plen 0: [desc: I#36=SPI2] +EVENT[2]: 0.000006675 - core[0].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] +EVENT[3]: 0.000006675 - core[1].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] +EVENT[4]: 0.000018600 - core[0].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] +EVENT[5]: 0.000018600 - core[1].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] +EVENT[6]: 0.000027750 - core[0].svSysDesc(14), plen 0: [desc: I#5=SysTick] +EVENT[7]: 0.000027750 - core[1].svSysDesc(14), plen 0: [desc: I#5=SysTick] +EVENT[8]: 0.000045925 - core[0].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] +EVENT[9]: 0.000045925 - core[1].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] +EVENT[10]: 0.000060025 - core[0].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] +EVENT[11]: 0.000060025 - core[1].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] +EVENT[12]: 0.000070125 - core[0].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] +EVENT[13]: 0.000070125 - core[1].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] +EVENT[14]: 0.000079875 - core[0].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] +EVENT[15]: 0.000079875 - core[1].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] +EVENT[16]: 0.000093950 - core[0].svSysDesc(14), plen 0: [desc: I#10=BT_BB] +EVENT[17]: 0.000093950 - core[1].svSysDesc(14), plen 0: [desc: I#10=BT_BB] +EVENT[18]: 0.000108725 - core[0].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] +EVENT[19]: 0.000108725 - core[1].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] +EVENT[20]: 0.000118675 - core[0].svSysDesc(14), plen 0: [desc: I#12=RWBT] +EVENT[21]: 0.000118675 - core[1].svSysDesc(14), plen 0: [desc: I#12=RWBT] +EVENT[22]: 0.000128675 - core[0].svSysDesc(14), plen 0: [desc: I#13=RWBLE] +EVENT[23]: 0.000128675 - core[1].svSysDesc(14), plen 0: [desc: I#13=RWBLE] +EVENT[24]: 0.000143225 - core[0].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] +EVENT[25]: 0.000143225 - core[1].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] +EVENT[26]: 0.000154025 - core[0].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] +EVENT[27]: 0.000154025 - core[1].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] +EVENT[28]: 0.000168350 - core[0].svSysDesc(14), plen 0: [desc: I#16=SLC0] +EVENT[29]: 0.000168350 - core[1].svSysDesc(14), plen 0: [desc: I#16=SLC0] +EVENT[30]: 0.000182075 - core[0].svSysDesc(14), plen 0: [desc: I#17=SLC1] +EVENT[31]: 0.000182075 - core[1].svSysDesc(14), plen 0: [desc: I#17=SLC1] +EVENT[32]: 0.000196025 - core[0].svSysDesc(14), plen 0: [desc: I#18=UHCI0] +EVENT[33]: 0.000196025 - core[1].svSysDesc(14), plen 0: [desc: I#18=UHCI0] +EVENT[34]: 0.000206000 - core[0].svSysDesc(14), plen 0: [desc: I#19=UHCI1] +EVENT[35]: 0.000206000 - core[1].svSysDesc(14), plen 0: [desc: I#19=UHCI1] +EVENT[36]: 0.000221275 - core[0].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] +EVENT[37]: 0.000221275 - core[1].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] +EVENT[38]: 0.000232700 - core[0].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] +EVENT[39]: 0.000232700 - core[1].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] +EVENT[40]: 0.000248425 - core[0].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] +EVENT[41]: 0.000248425 - core[1].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] +EVENT[42]: 0.000260225 - core[0].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] +EVENT[43]: 0.000260225 - core[1].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] +EVENT[44]: 0.000275650 - core[0].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] +EVENT[45]: 0.000275650 - core[1].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] +EVENT[46]: 0.000287250 - core[0].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] +EVENT[47]: 0.000287250 - core[1].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] +EVENT[48]: 0.000306775 - core[0].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] +EVENT[49]: 0.000306775 - core[1].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] +EVENT[50]: 0.000318775 - core[0].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] +EVENT[51]: 0.000318775 - core[1].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] +EVENT[52]: 0.000328700 - core[0].svSysDesc(14), plen 0: [desc: I#28=GPIO] +EVENT[53]: 0.000328700 - core[1].svSysDesc(14), plen 0: [desc: I#28=GPIO] +EVENT[54]: 0.000347625 - core[0].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] +EVENT[55]: 0.000347625 - core[1].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] +EVENT[56]: 0.000358550 - core[0].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] +EVENT[57]: 0.000358550 - core[1].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] +EVENT[58]: 0.000369300 - core[0].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] +EVENT[59]: 0.000369300 - core[1].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] +EVENT[60]: 0.000384075 - core[0].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] +EVENT[61]: 0.000384075 - core[1].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] +EVENT[62]: 0.000394825 - core[0].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] +EVENT[63]: 0.000394825 - core[1].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] +EVENT[64]: 0.000408600 - core[0].svSysDesc(14), plen 0: [desc: I#34=SPI0] +EVENT[65]: 0.000408600 - core[1].svSysDesc(14), plen 0: [desc: I#34=SPI0] +EVENT[66]: 0.000422675 - core[0].svSysDesc(14), plen 0: [desc: I#35=SPI1] +EVENT[67]: 0.000422675 - core[1].svSysDesc(14), plen 0: [desc: I#35=SPI1] +EVENT[68]: 0.000433900 - core[0].svSysDesc(14), plen 0: [desc: I#36=SPI2] +EVENT[69]: 0.000433900 - core[1].svSysDesc(14), plen 0: [desc: I#36=SPI2] EVENT[70]: 0.000444900 - core[0].svSysDesc(14), plen 0: [desc: I#37=SPI3] EVENT[71]: 0.000444900 - core[1].svSysDesc(14), plen 0: [desc: I#37=SPI3] -EVENT[72]: 0.000458850 - core[0].svSysDesc(14), plen 0: [desc: I#38=I2S0] -EVENT[73]: 0.000458850 - core[1].svSysDesc(14), plen 0: [desc: I#38=I2S0] -EVENT[74]: 0.000468600 - core[0].svSysDesc(14), plen 0: [desc: I#39=I2S1] -EVENT[75]: 0.000468600 - core[1].svSysDesc(14), plen 0: [desc: I#39=I2S1] -EVENT[76]: 0.000478575 - core[0].svSysDesc(14), plen 0: [desc: I#40=UART0] -EVENT[77]: 0.000478575 - core[1].svSysDesc(14), plen 0: [desc: I#40=UART0] -EVENT[78]: 0.000492500 - core[0].svSysDesc(14), plen 0: [desc: I#41=UART1] -EVENT[79]: 0.000492500 - core[1].svSysDesc(14), plen 0: [desc: I#41=UART1] -EVENT[80]: 0.000506375 - core[0].svSysDesc(14), plen 0: [desc: I#42=UART2] -EVENT[81]: 0.000506375 - core[1].svSysDesc(14), plen 0: [desc: I#42=UART2] -EVENT[82]: 0.000517150 - core[0].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] -EVENT[83]: 0.000517150 - core[1].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] -EVENT[84]: 0.000527475 - core[0].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] -EVENT[85]: 0.000527475 - core[1].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] -EVENT[86]: 0.000541625 - core[0].svSysDesc(14), plen 0: [desc: I#45=PWM0] -EVENT[87]: 0.000541625 - core[1].svSysDesc(14), plen 0: [desc: I#45=PWM0] -EVENT[88]: 0.000555300 - core[0].svSysDesc(14), plen 0: [desc: I#46=PWM1] -EVENT[89]: 0.000555300 - core[1].svSysDesc(14), plen 0: [desc: I#46=PWM1] -EVENT[90]: 0.000565975 - core[0].svSysDesc(14), plen 0: [desc: I#47=RESERVED] -EVENT[91]: 0.000565975 - core[1].svSysDesc(14), plen 0: [desc: I#47=RESERVED] -EVENT[92]: 0.000576550 - core[0].svSysDesc(14), plen 0: [desc: I#48=RESERVED] -EVENT[93]: 0.000576550 - core[1].svSysDesc(14), plen 0: [desc: I#48=RESERVED] -EVENT[94]: 0.000590325 - core[0].svSysDesc(14), plen 0: [desc: I#49=LEDC] -EVENT[95]: 0.000590325 - core[1].svSysDesc(14), plen 0: [desc: I#49=LEDC] -EVENT[96]: 0.000604225 - core[0].svSysDesc(14), plen 0: [desc: I#50=EFUSE] -EVENT[97]: 0.000604225 - core[1].svSysDesc(14), plen 0: [desc: I#50=EFUSE] -EVENT[98]: 0.000618075 - core[0].svSysDesc(14), plen 0: [desc: I#51=TWAI] -EVENT[99]: 0.000618075 - core[1].svSysDesc(14), plen 0: [desc: I#51=TWAI] -EVENT[100]: 0.000628650 - core[0].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] -EVENT[101]: 0.000628650 - core[1].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] -EVENT[102]: 0.000638250 - core[0].svSysDesc(14), plen 0: [desc: I#53=RMT] -EVENT[103]: 0.000638250 - core[1].svSysDesc(14), plen 0: [desc: I#53=RMT] -EVENT[104]: 0.000648075 - core[0].svSysDesc(14), plen 0: [desc: I#54=PCNT] -EVENT[105]: 0.000648075 - core[1].svSysDesc(14), plen 0: [desc: I#54=PCNT] -EVENT[106]: 0.000662700 - core[0].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] -EVENT[107]: 0.000662700 - core[1].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] -EVENT[108]: 0.000674475 - core[0].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] -EVENT[109]: 0.000674475 - core[1].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] -EVENT[110]: 0.000689475 - core[0].svSysDesc(14), plen 0: [desc: I#57=RSA] -EVENT[111]: 0.000689475 - core[1].svSysDesc(14), plen 0: [desc: I#57=RSA] -EVENT[112]: 0.000705425 - core[0].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] -EVENT[113]: 0.000705425 - core[1].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] -EVENT[114]: 0.000717350 - core[0].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] -EVENT[115]: 0.000717350 - core[1].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] -EVENT[116]: 0.000729475 - core[0].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] -EVENT[117]: 0.000729475 - core[1].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] -EVENT[118]: 0.000740300 - core[0].svSysDesc(14), plen 0: [desc: I#61=WDT] -EVENT[119]: 0.000740300 - core[1].svSysDesc(14), plen 0: [desc: I#61=WDT] -EVENT[120]: 0.000760650 - core[0].svSysDesc(14), plen 0: [desc: I#62=TIMER1] -EVENT[121]: 0.000760650 - core[1].svSysDesc(14), plen 0: [desc: I#62=TIMER1] -EVENT[122]: 0.000772200 - core[0].svSysDesc(14), plen 0: [desc: I#63=TIMER2] -EVENT[123]: 0.000772200 - core[1].svSysDesc(14), plen 0: [desc: I#63=TIMER2] -EVENT[124]: 0.000785150 - core[0].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] -EVENT[125]: 0.000785150 - core[1].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] -EVENT[126]: 0.000805850 - core[0].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] -EVENT[127]: 0.000805850 - core[1].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] -EVENT[128]: 0.000818750 - core[0].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] -EVENT[129]: 0.000818750 - core[1].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] -EVENT[130]: 0.000836050 - core[0].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] -EVENT[131]: 0.000836050 - core[1].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] -EVENT[132]: 0.000848850 - core[0].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] -EVENT[133]: 0.000848850 - core[1].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] -EVENT[134]: 0.000861475 - core[0].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] -EVENT[135]: 0.000861475 - core[1].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] -EVENT[136]: 0.000878425 - core[0].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] -EVENT[137]: 0.000878425 - core[1].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] -EVENT[138]: 0.000891925 - core[0].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] -EVENT[139]: 0.000891925 - core[1].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] -EVENT[140]: 0.000907825 - core[0].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] -EVENT[141]: 0.000907825 - core[1].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] -EVENT[142]: 0.000923300 - core[0].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] -EVENT[143]: 0.000923300 - core[1].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] -EVENT[144]: 0.000935450 - core[0].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] -EVENT[145]: 0.000935450 - core[1].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] -EVENT[146]: 0.000944000 - core[0].svSysTimeUs(13), plen 0: [time: 10000] -EVENT[147]: 0.000944000 - core[1].svSysTimeUs(13), plen 0: [time: 10000] -EVENT[148]: 0.001056000 - core[0].svTaskInfo(9), plen 0: [tid: 12253204, prio: 24, name: ipc0] -EVENT[149]: 0.001056000 - core[1].svTaskInfo(9), plen 0: [tid: 12253204, prio: 24, name: ipc0] -EVENT[150]: 0.001061525 - core[0].svStackInfo(21), plen 0: [tid: 12253204, base: 1073410064, sz: 1344, unused: 0] -EVENT[151]: 0.001061525 - core[1].svStackInfo(21), plen 0: [tid: 12253204, base: 1073410064, sz: 1344, unused: 0] -EVENT[152]: 0.001170650 - core[0].svTaskInfo(9), plen 0: [tid: 12253560, prio: 24, name: ipc1] -EVENT[153]: 0.001170650 - core[1].svTaskInfo(9), plen 0: [tid: 12253560, prio: 24, name: ipc1] -EVENT[154]: 0.001175900 - core[0].svStackInfo(21), plen 0: [tid: 12253560, base: 1073431024, sz: 1344, unused: 0] -EVENT[155]: 0.001175900 - core[1].svStackInfo(21), plen 0: [tid: 12253560, base: 1073431024, sz: 1344, unused: 0] -EVENT[156]: 0.001327475 - core[0].svTaskInfo(9), plen 0: [tid: 12254080, prio: 1, name: main] -EVENT[157]: 0.001327475 - core[1].svTaskInfo(9), plen 0: [tid: 12254080, prio: 1, name: main] -EVENT[158]: 0.001332900 - core[0].svStackInfo(21), plen 0: [tid: 12254080, base: 1073433076, sz: 1916, unused: 0] -EVENT[159]: 0.001332900 - core[1].svStackInfo(21), plen 0: [tid: 12254080, base: 1073433076, sz: 1916, unused: 0] -EVENT[160]: 0.001340650 - core[0].svNumModules(27), plen 1: [mod_cnt: 0] -EVENT[161]: 0.001340650 - core[1].svNumModules(27), plen 1: [mod_cnt: 0] -EVENT[162]: 0.001348325 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[163]: 0.001359700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[164]: 0.001370975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[165]: 0.001381825 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[166]: 0.001381825 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[167]: 0.001396900 - core[0].svIsrExit(3), plen 0: [] -EVENT[168]: 0.001407700 - core[1].svIdle(17), plen 0: [] -EVENT[169]: 0.001419225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[170]: 0.001430725 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[171]: 0.001447075 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[172]: 0.001473950 - core[0].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] -EVENT[173]: 0.001473950 - core[1].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] -EVENT[174]: 0.001529550 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073443032, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001529550] HEAP: Allocated 8 bytes @ 0x3ffb70d8 from task "main" on core 0 by: +EVENT[72]: 0.000455975 - core[0].svSysDesc(14), plen 0: [desc: I#38=I2S0] +EVENT[73]: 0.000455975 - core[1].svSysDesc(14), plen 0: [desc: I#38=I2S0] +EVENT[74]: 0.000471025 - core[0].svSysDesc(14), plen 0: [desc: I#39=I2S1] +EVENT[75]: 0.000471025 - core[1].svSysDesc(14), plen 0: [desc: I#39=I2S1] +EVENT[76]: 0.000482575 - core[0].svSysDesc(14), plen 0: [desc: I#40=UART0] +EVENT[77]: 0.000482575 - core[1].svSysDesc(14), plen 0: [desc: I#40=UART0] +EVENT[78]: 0.000493675 - core[0].svSysDesc(14), plen 0: [desc: I#41=UART1] +EVENT[79]: 0.000493675 - core[1].svSysDesc(14), plen 0: [desc: I#41=UART1] +EVENT[80]: 0.000509025 - core[0].svSysDesc(14), plen 0: [desc: I#42=UART2] +EVENT[81]: 0.000509025 - core[1].svSysDesc(14), plen 0: [desc: I#42=UART2] +EVENT[82]: 0.000525125 - core[0].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] +EVENT[83]: 0.000525125 - core[1].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] +EVENT[84]: 0.000536650 - core[0].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] +EVENT[85]: 0.000536650 - core[1].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] +EVENT[86]: 0.000552750 - core[0].svSysDesc(14), plen 0: [desc: I#45=PWM0] +EVENT[87]: 0.000552750 - core[1].svSysDesc(14), plen 0: [desc: I#45=PWM0] +EVENT[88]: 0.000567600 - core[0].svSysDesc(14), plen 0: [desc: I#46=PWM1] +EVENT[89]: 0.000567600 - core[1].svSysDesc(14), plen 0: [desc: I#46=PWM1] +EVENT[90]: 0.000579950 - core[0].svSysDesc(14), plen 0: [desc: I#47=RESERVED] +EVENT[91]: 0.000579950 - core[1].svSysDesc(14), plen 0: [desc: I#47=RESERVED] +EVENT[92]: 0.000592100 - core[0].svSysDesc(14), plen 0: [desc: I#48=RESERVED] +EVENT[93]: 0.000592100 - core[1].svSysDesc(14), plen 0: [desc: I#48=RESERVED] +EVENT[94]: 0.000603425 - core[0].svSysDesc(14), plen 0: [desc: I#49=LEDC] +EVENT[95]: 0.000603425 - core[1].svSysDesc(14), plen 0: [desc: I#49=LEDC] +EVENT[96]: 0.000622525 - core[0].svSysDesc(14), plen 0: [desc: I#50=EFUSE] +EVENT[97]: 0.000622525 - core[1].svSysDesc(14), plen 0: [desc: I#50=EFUSE] +EVENT[98]: 0.000633950 - core[0].svSysDesc(14), plen 0: [desc: I#51=TWAI] +EVENT[99]: 0.000633950 - core[1].svSysDesc(14), plen 0: [desc: I#51=TWAI] +EVENT[100]: 0.000650200 - core[0].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] +EVENT[101]: 0.000650200 - core[1].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] +EVENT[102]: 0.000661100 - core[0].svSysDesc(14), plen 0: [desc: I#53=RMT] +EVENT[103]: 0.000661100 - core[1].svSysDesc(14), plen 0: [desc: I#53=RMT] +EVENT[104]: 0.000672100 - core[0].svSysDesc(14), plen 0: [desc: I#54=PCNT] +EVENT[105]: 0.000672100 - core[1].svSysDesc(14), plen 0: [desc: I#54=PCNT] +EVENT[106]: 0.000688050 - core[0].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] +EVENT[107]: 0.000688050 - core[1].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] +EVENT[108]: 0.000700025 - core[0].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] +EVENT[109]: 0.000700025 - core[1].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] +EVENT[110]: 0.000710825 - core[0].svSysDesc(14), plen 0: [desc: I#57=RSA] +EVENT[111]: 0.000710825 - core[1].svSysDesc(14), plen 0: [desc: I#57=RSA] +EVENT[112]: 0.000726900 - core[0].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] +EVENT[113]: 0.000726900 - core[1].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] +EVENT[114]: 0.000743075 - core[0].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] +EVENT[115]: 0.000743075 - core[1].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] +EVENT[116]: 0.000755050 - core[0].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] +EVENT[117]: 0.000755050 - core[1].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] +EVENT[118]: 0.000765950 - core[0].svSysDesc(14), plen 0: [desc: I#61=WDT] +EVENT[119]: 0.000765950 - core[1].svSysDesc(14), plen 0: [desc: I#61=WDT] +EVENT[120]: 0.000786350 - core[0].svSysDesc(14), plen 0: [desc: I#62=TIMER1] +EVENT[121]: 0.000786350 - core[1].svSysDesc(14), plen 0: [desc: I#62=TIMER1] +EVENT[122]: 0.000797875 - core[0].svSysDesc(14), plen 0: [desc: I#63=TIMER2] +EVENT[123]: 0.000797875 - core[1].svSysDesc(14), plen 0: [desc: I#63=TIMER2] +EVENT[124]: 0.000810900 - core[0].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] +EVENT[125]: 0.000810900 - core[1].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] +EVENT[126]: 0.000827775 - core[0].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] +EVENT[127]: 0.000827775 - core[1].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] +EVENT[128]: 0.000844550 - core[0].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] +EVENT[129]: 0.000844550 - core[1].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] +EVENT[130]: 0.000861800 - core[0].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] +EVENT[131]: 0.000861800 - core[1].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] +EVENT[132]: 0.000874625 - core[0].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] +EVENT[133]: 0.000874625 - core[1].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] +EVENT[134]: 0.000887300 - core[0].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] +EVENT[135]: 0.000887300 - core[1].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] +EVENT[136]: 0.000904250 - core[0].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] +EVENT[137]: 0.000904250 - core[1].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] +EVENT[138]: 0.000917900 - core[0].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] +EVENT[139]: 0.000917900 - core[1].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] +EVENT[140]: 0.000933200 - core[0].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] +EVENT[141]: 0.000933200 - core[1].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] +EVENT[142]: 0.000944575 - core[0].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] +EVENT[143]: 0.000944575 - core[1].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] +EVENT[144]: 0.000961050 - core[0].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] +EVENT[145]: 0.000961050 - core[1].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] +EVENT[146]: 0.000971475 - core[0].svSysTimeCycles(12), plen 0: [cycles: 2890156] +EVENT[147]: 0.000971475 - core[1].svSysTimeCycles(12), plen 0: [cycles: 2890156] +EVENT[148]: 0.001084025 - core[0].svTaskInfo(9), plen 0: [tid: 12252316, prio: 24, name: ipc0] +EVENT[149]: 0.001084025 - core[1].svTaskInfo(9), plen 0: [tid: 12252316, prio: 24, name: ipc0] +EVENT[150]: 0.001089250 - core[0].svStackInfo(21), plen 0: [tid: 12252316, base: 1073409176, sz: 1352, unused: 0] +EVENT[151]: 0.001089250 - core[1].svStackInfo(21), plen 0: [tid: 12252316, base: 1073409176, sz: 1352, unused: 0] +EVENT[152]: 0.001194900 - core[0].svTaskInfo(9), plen 0: [tid: 12254724, prio: 24, name: ipc1] +EVENT[153]: 0.001194900 - core[1].svTaskInfo(9), plen 0: [tid: 12254724, prio: 24, name: ipc1] +EVENT[154]: 0.001200350 - core[0].svStackInfo(21), plen 0: [tid: 12254724, base: 1073411584, sz: 1344, unused: 0] +EVENT[155]: 0.001200350 - core[1].svStackInfo(21), plen 0: [tid: 12254724, base: 1073411584, sz: 1344, unused: 0] +EVENT[156]: 0.001388300 - core[0].svTaskInfo(9), plen 0: [tid: 12274964, prio: 1, name: main] +EVENT[157]: 0.001388300 - core[1].svTaskInfo(9), plen 0: [tid: 12274964, prio: 1, name: main] +EVENT[158]: 0.001393525 - core[0].svStackInfo(21), plen 0: [tid: 12274964, base: 1073429776, sz: 2400, unused: 0] +EVENT[159]: 0.001393525 - core[1].svStackInfo(21), plen 0: [tid: 12274964, base: 1073429776, sz: 2400, unused: 0] +EVENT[160]: 0.001400850 - core[0].svNumModules(27), plen 1: [mod_cnt: 0] +EVENT[161]: 0.001400850 - core[1].svNumModules(27), plen 1: [mod_cnt: 0] +EVENT[162]: 0.001407600 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[163]: 0.001419325 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[164]: 0.001430350 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[165]: 0.001441425 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[166]: 0.001441425 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[167]: 0.001452425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[168]: 0.001463550 - core[0].svIsrExit(3), plen 0: [] +EVENT[169]: 0.001474825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[170]: 0.001485875 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[171]: 0.001496375 - core[1].svIdle(17), plen 0: [] +EVENT[172]: 0.001507250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[173]: 0.001523850 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[174]: 0.001550575 - core[0].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] +EVENT[175]: 0.001550575 - core[1].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] +EVENT[176]: 0.001564275 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[177]: 0.001579775 - core[0].svIsrExit(3), plen 0: [] +EVENT[178]: 0.001637325 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073440928, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001637325] HEAP: Allocated 8 bytes @ 0x3ffb68a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[175]: 0.001669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[176]: 0.001682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[177]: 0.001699500 - core[1].svIdle(17), plen 0: [] -EVENT[178]: 0.001812950 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[179]: 0.001828450 - core[0].svIsrExit(3), plen 0: [] -EVENT[180]: 0.001864250 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073443048, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001864250] HEAP: Allocated 2500 bytes @ 0x3ffb70e8 from task "main" on core 0 by: +EVENT[179]: 0.001939050 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073440944, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001939050] HEAP: Allocated 2500 bytes @ 0x3ffb68b0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[181]: 0.001904100 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073445612, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001904100] HEAP: Allocated 340 bytes @ 0x3ffb7aec from task "main" on core 0 by: +EVENT[180]: 0.001979950 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073443508, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001979950] HEAP: Allocated 340 bytes @ 0x3ffb72b4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[182]: 0.001926775 - core[0].svTaskCreate(8), plen 0: [tid: 12286700] -EVENT[183]: 0.001939400 - core[0].svTaskInfo(9), plen 0: [tid: 12286700, prio: 5, name: alloc0] -EVENT[184]: 0.001939400 - core[1].svTaskInfo(9), plen 0: [tid: 12286700, prio: 5, name: alloc0] -EVENT[185]: 0.001948500 - core[0].svStackInfo(21), plen 0: [tid: 12286700, base: 1073443048, sz: 4294965096, unused: 0] -EVENT[186]: 0.001948500 - core[1].svStackInfo(21), plen 0: [tid: 12286700, base: 1073443048, sz: 4294965096, unused: 0] -EVENT[187]: 0.001959200 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[188]: 0.001959200 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[189]: 0.001974775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[190]: 0.001986150 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[191]: 0.002002500 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[192]: 0.002037875 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073445968, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.002037875] HEAP: Allocated 124 bytes @ 0x3ffb7c50 from task "alloc0" on core 0 by: +EVENT[181]: 0.002010625 - core[0].svTaskCreate(8), plen 0: [tid: 12284596] +EVENT[182]: 0.002023275 - core[0].svTaskInfo(9), plen 0: [tid: 12284596, prio: 5, name: alloc0] +EVENT[183]: 0.002023275 - core[1].svTaskInfo(9), plen 0: [tid: 12284596, prio: 5, name: alloc0] +EVENT[184]: 0.002032525 - core[0].svStackInfo(21), plen 0: [tid: 12284596, base: 1073440944, sz: 4294965088, unused: 0] +EVENT[185]: 0.002032525 - core[1].svStackInfo(21), plen 0: [tid: 12284596, base: 1073440944, sz: 4294965088, unused: 0] +EVENT[186]: 0.002043250 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[187]: 0.002043250 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[188]: 0.002058825 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[189]: 0.002070175 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[190]: 0.002086525 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[191]: 0.002130925 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073443864, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.002130925] HEAP: Allocated 124 bytes @ 0x3ffb7418 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[193]: 0.002052175 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[194]: 0.002107400 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073446096, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.002107400] HEAP: Allocated 2500 bytes @ 0x3ffb7cd0 from task "alloc0" on core 0 by: +EVENT[192]: 0.002145225 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[193]: 0.002205450 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073443992, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.002205450] HEAP: Allocated 2500 bytes @ 0x3ffb7498 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[195]: 0.002141800 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073448660, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.002141800] HEAP: Allocated 340 bytes @ 0x3ffb86d4 from task "alloc0" on core 0 by: +EVENT[194]: 0.002240900 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073446556, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.002240900] HEAP: Allocated 340 bytes @ 0x3ffb7e9c from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[196]: 0.002168500 - core[0].svTaskCreate(8), plen 0: [tid: 12289748] -EVENT[197]: 0.002181000 - core[0].svTaskInfo(9), plen 0: [tid: 12289748, prio: 5, name: free0] -EVENT[198]: 0.002181000 - core[1].svTaskInfo(9), plen 0: [tid: 12289748, prio: 5, name: free0] -EVENT[199]: 0.002190150 - core[0].svStackInfo(21), plen 0: [tid: 12289748, base: 1073446096, sz: 4294965088, unused: 0] -EVENT[200]: 0.002190150 - core[1].svStackInfo(21), plen 0: [tid: 12289748, base: 1073446096, sz: 4294965088, unused: 0] -EVENT[201]: 0.002200975 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[202]: 0.002200975 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[203]: 0.002216350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[204]: 0.002229250 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[205]: 0.002245650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449016, size: 1, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.002245650] HEAP: Allocated 1 bytes @ 0x3ffb8838 from task "alloc0" on core 0 by: +EVENT[195]: 0.002267725 - core[0].svTaskCreate(8), plen 0: [tid: 12287644] +EVENT[196]: 0.002280250 - core[0].svTaskInfo(9), plen 0: [tid: 12287644, prio: 5, name: free0] +EVENT[197]: 0.002280250 - core[1].svTaskInfo(9), plen 0: [tid: 12287644, prio: 5, name: free0] +EVENT[198]: 0.002289425 - core[0].svStackInfo(21), plen 0: [tid: 12287644, base: 1073443992, sz: 4294965096, unused: 0] +EVENT[199]: 0.002289425 - core[1].svStackInfo(21), plen 0: [tid: 12287644, base: 1073443992, sz: 4294965096, unused: 0] +EVENT[200]: 0.002300275 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[201]: 0.002300275 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[202]: 0.002315625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[203]: 0.002328675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[204]: 0.002345850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073446912, size: 1, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.002345850] HEAP: Allocated 1 bytes @ 0x3ffb8000 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[206]: 0.002256950 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[207]: 0.002286975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[208]: 0.002297900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.002297900] HEAP: Allocated 2 bytes @ 0x3ffb8848 from task "alloc0" on core 0 by: +EVENT[205]: 0.002358000 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[206]: 0.002387975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[207]: 0.002399325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073446928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.002399325] HEAP: Allocated 2 bytes @ 0x3ffb8010 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[209]: 0.002308975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[210]: 0.002321625 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[211]: 0.002332075 - core[1].svIdle(17), plen 0: [] -EVENT[212]: 0.002366250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[213]: 0.002605525 - core[0].svPrint(26), plen 69: [msg: I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848 +EVENT[208]: 0.002410900 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[209]: 0.002423150 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[210]: 0.002440625 - core[1].svIdle(17), plen 0: [] +EVENT[211]: 0.002456600 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[212]: 0.002470175 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[213]: 0.002481550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[214]: 0.002492700 - core[1].svIdle(17), plen 0: [] +EVENT[215]: 0.002742275 - core[0].svPrint(26), plen 69: [msg: I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010 , lvl: 0, unused: 0] -[0.002605525] LOG: I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848 -EVENT[214]: 0.002627100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[215]: 0.002640225 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[216]: 0.002640225 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[217]: 0.002656425 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[218]: 0.002667300 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[219]: 0.002678075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[220]: 0.002692250 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[221]: 0.002703000 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[222]: 0.002713925 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[223]: 0.002725475 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[224]: 0.002735950 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[225]: 0.002753450 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[226]: 0.002770250 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[227]: 0.002782075 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073449048, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002782075] HEAP: Allocated 8 bytes @ 0x3ffb8858 from task "main" on core 0 by: +[0.002742275] LOG: I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010 +EVENT[216]: 0.002759000 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[217]: 0.002774375 - core[0].svIsrExit(3), plen 0: [] +EVENT[218]: 0.002788425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[219]: 0.002801625 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[220]: 0.002801625 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[221]: 0.002817875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[222]: 0.002828825 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[223]: 0.002839525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[224]: 0.002853300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[225]: 0.002864225 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[226]: 0.002875075 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[227]: 0.002887100 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[228]: 0.002897825 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[229]: 0.002937850 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[230]: 0.002949925 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073446944, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.002949925] HEAP: Allocated 8 bytes @ 0x3ffb8020 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[228]: 0.002813350 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[229]: 0.002824975 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[230]: 0.002835950 - core[0].svIsrExit(3), plen 0: [] -EVENT[231]: 0.002860725 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073449064, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002860725] HEAP: Allocated 2500 bytes @ 0x3ffb8868 from task "main" on core 0 by: +EVENT[231]: 0.002992925 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[232]: 0.003004025 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073446960, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003004025] HEAP: Allocated 2500 bytes @ 0x3ffb8030 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[232]: 0.002875775 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[233]: 0.002902375 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073451628, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002902375] HEAP: Allocated 340 bytes @ 0x3ffb926c from task "main" on core 0 by: +EVENT[233]: 0.003044650 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073449524, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003044650] HEAP: Allocated 340 bytes @ 0x3ffb8a34 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[234]: 0.002925000 - core[0].svTaskCreate(8), plen 0: [tid: 12292716] -EVENT[235]: 0.002937650 - core[0].svTaskInfo(9), plen 0: [tid: 12292716, prio: 5, name: alloc1] -EVENT[236]: 0.002937650 - core[1].svTaskInfo(9), plen 0: [tid: 12292716, prio: 5, name: alloc1] -EVENT[237]: 0.002946800 - core[0].svStackInfo(21), plen 0: [tid: 12292716, base: 1073449064, sz: 4294965096, unused: 0] -EVENT[238]: 0.002946800 - core[1].svStackInfo(21), plen 0: [tid: 12292716, base: 1073449064, sz: 4294965096, unused: 0] -EVENT[239]: 0.002957675 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[240]: 0.002957675 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[241]: 0.002973300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[242]: 0.002984800 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[243]: 0.003001650 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[244]: 0.003037100 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073451984, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.003037100] HEAP: Allocated 124 bytes @ 0x3ffb93d0 from task "alloc1" on core 0 by: +EVENT[234]: 0.003067500 - core[0].svTaskCreate(8), plen 0: [tid: 12290612] +EVENT[235]: 0.003080150 - core[0].svTaskInfo(9), plen 0: [tid: 12290612, prio: 5, name: alloc1] +EVENT[236]: 0.003080150 - core[1].svTaskInfo(9), plen 0: [tid: 12290612, prio: 5, name: alloc1] +EVENT[237]: 0.003089275 - core[0].svStackInfo(21), plen 0: [tid: 12290612, base: 1073446960, sz: 4294965088, unused: 0] +EVENT[238]: 0.003089275 - core[1].svStackInfo(21), plen 0: [tid: 12290612, base: 1073446960, sz: 4294965088, unused: 0] +EVENT[239]: 0.003100000 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[240]: 0.003100000 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[241]: 0.003115575 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[242]: 0.003126925 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[243]: 0.003143300 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[244]: 0.003179725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449880, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.003179725] HEAP: Allocated 124 bytes @ 0x3ffb8b98 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[245]: 0.003051375 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[246]: 0.003090750 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073452112, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003090750] HEAP: Allocated 2500 bytes @ 0x3ffb9450 from task "alloc1" on core 0 by: +EVENT[245]: 0.003194025 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[246]: 0.003234475 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073450008, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.003234475] HEAP: Allocated 2500 bytes @ 0x3ffb8c18 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[247]: 0.003125150 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073454676, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003125150] HEAP: Allocated 340 bytes @ 0x3ffb9e54 from task "alloc1" on core 0 by: +EVENT[247]: 0.003269925 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073452572, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.003269925] HEAP: Allocated 340 bytes @ 0x3ffb961c from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[248]: 0.003151900 - core[0].svTaskCreate(8), plen 0: [tid: 12295764] -EVENT[249]: 0.003164400 - core[0].svTaskInfo(9), plen 0: [tid: 12295764, prio: 5, name: free1] -EVENT[250]: 0.003164400 - core[1].svTaskInfo(9), plen 0: [tid: 12295764, prio: 5, name: free1] -EVENT[251]: 0.003173550 - core[0].svStackInfo(21), plen 0: [tid: 12295764, base: 1073452112, sz: 4294965088, unused: 0] -EVENT[252]: 0.003173550 - core[1].svStackInfo(21), plen 0: [tid: 12295764, base: 1073452112, sz: 4294965088, unused: 0] -EVENT[253]: 0.003184375 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[254]: 0.003184375 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[255]: 0.003220600 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.003220600] HEAP: Allocated 2 bytes @ 0x3ffb9fb8 from task "alloc1" on core 0 by: +EVENT[248]: 0.003296650 - core[0].svTaskCreate(8), plen 0: [tid: 12293660] +EVENT[249]: 0.003309150 - core[0].svTaskInfo(9), plen 0: [tid: 12293660, prio: 5, name: free1] +EVENT[250]: 0.003309150 - core[1].svTaskInfo(9), plen 0: [tid: 12293660, prio: 5, name: free1] +EVENT[251]: 0.003318350 - core[0].svStackInfo(21), plen 0: [tid: 12293660, base: 1073450008, sz: 4294965096, unused: 0] +EVENT[252]: 0.003318350 - core[1].svStackInfo(21), plen 0: [tid: 12293660, base: 1073450008, sz: 4294965096, unused: 0] +EVENT[253]: 0.003329175 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[254]: 0.003329175 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[255]: 0.003366350 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.003366350] HEAP: Allocated 2 bytes @ 0x3ffb9780 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[256]: 0.003255050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.003255050] HEAP: Allocated 4 bytes @ 0x3ffb9fc8 from task "alloc1" on core 0 by: +EVENT[256]: 0.003401775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.003401775] HEAP: Allocated 4 bytes @ 0x3ffb9790 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[257]: 0.003271950 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[258]: 0.003294125 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[259]: 0.003336850 - core[1].svPrint(26), plen 63: [msg: I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848 +EVENT[257]: 0.003418700 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[258]: 0.003438675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[259]: 0.003462300 - core[1].svPrint(26), plen 63: [msg: I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010 , lvl: 0, unused: 0] -[0.003336850] LOG: I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848 -EVENT[260]: 0.003357000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[261]: 0.003368450 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[262]: 0.003385425 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[263]: 0.003404250 - core[0].svPrint(26), plen 69: [msg: I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8 +[0.003462300] LOG: I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010 +EVENT[260]: 0.003481375 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[261]: 0.003494825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[262]: 0.003506650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[263]: 0.003526375 - core[0].svPrint(26), plen 69: [msg: I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790 , lvl: 0, unused: 0] -[0.003404250] LOG: I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8 -EVENT[264]: 0.003418350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[265]: 0.003431500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073449032, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.003431500] HEAP: Freed bytes @ 0x3ffb8848 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.003526375] LOG: I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790 +EVENT[264]: 0.003537925 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[265]: 0.003550050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[266]: 0.003567875 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[267]: 0.003578850 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[268]: 0.003595750 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[269]: 0.003606975 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073446928, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.003606975] HEAP: Freed bytes @ 0x3ffb8010 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[266]: 0.003443325 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[267]: 0.003462000 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[268]: 0.003475950 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[269]: 0.003490025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[270]: 0.003501925 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[271]: 0.003512800 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[272]: 0.003532050 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[273]: 0.003544375 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073449032, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003544375] HEAP: Allocated 8 bytes @ 0x3ffb8848 from task "main" on core 0 by: +EVENT[270]: 0.003617975 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[271]: 0.003633200 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[272]: 0.003652900 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[273]: 0.003667050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[274]: 0.003680950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[275]: 0.003692800 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[276]: 0.003703850 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[277]: 0.003723175 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[278]: 0.003736750 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073446928, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003736750] HEAP: Allocated 8 bytes @ 0x3ffb8010 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[274]: 0.003561425 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[275]: 0.003580100 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[276]: 0.003597875 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073455064, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003597875] HEAP: Allocated 2500 bytes @ 0x3ffb9fd8 from task "main" on core 0 by: +EVENT[279]: 0.003753800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[280]: 0.003772075 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[281]: 0.003791150 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[282]: 0.003802900 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073452960, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003802900] HEAP: Allocated 2500 bytes @ 0x3ffb97a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[277]: 0.003610600 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[278]: 0.003637125 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073457628, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003637125] HEAP: Allocated 340 bytes @ 0x3ffba9dc from task "main" on core 0 by: +EVENT[283]: 0.003844025 - core[1].svPrint(26), plen 63: [msg: I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790 +, lvl: 0, unused: 0] +[0.003844025] LOG: I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790 +EVENT[284]: 0.003855950 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073455524, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003855950] HEAP: Allocated 340 bytes @ 0x3ffba1a4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[279]: 0.003660625 - core[1].svPrint(26), plen 63: [msg: I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8 -, lvl: 0, unused: 0] -[0.003660625] LOG: I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8 -EVENT[280]: 0.003672000 - core[0].svTaskCreate(8), plen 0: [tid: 12298716] -EVENT[281]: 0.003688200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[282]: 0.003700975 - core[0].svTaskInfo(9), plen 0: [tid: 12298716, prio: 5, name: alloc2] -EVENT[283]: 0.003700975 - core[1].svTaskInfo(9), plen 0: [tid: 12298716, prio: 5, name: alloc2] -EVENT[284]: 0.003711950 - core[0].svStackInfo(21), plen 0: [tid: 12298716, base: 1073455064, sz: 4294965096, unused: 0] -EVENT[285]: 0.003711950 - core[1].svStackInfo(21), plen 0: [tid: 12298716, base: 1073455064, sz: 4294965096, unused: 0] -EVENT[286]: 0.003724850 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[287]: 0.003724850 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[288]: 0.003742300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[289]: 0.003753150 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[290]: 0.003765400 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[291]: 0.003776400 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[292]: 0.003791750 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073455048, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.003791750] HEAP: Freed bytes @ 0x3ffb9fc8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[285]: 0.003869550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073452944, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.003869550] HEAP: Freed bytes @ 0x3ffb9790 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[293]: 0.003803375 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[294]: 0.003819875 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[295]: 0.003831475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[296]: 0.003843175 - core[0].svIsrExit(3), plen 0: [] -EVENT[297]: 0.003853725 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[298]: 0.003875450 - core[1].svIdle(17), plen 0: [] -EVENT[299]: 0.003887725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073457984, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.003887725] HEAP: Allocated 124 bytes @ 0x3ffbab40 from task "alloc2" on core 0 by: +EVENT[286]: 0.003885400 - core[0].svTaskCreate(8), plen 0: [tid: 12296612] +EVENT[287]: 0.003900350 - core[0].svTaskInfo(9), plen 0: [tid: 12296612, prio: 5, name: alloc2] +EVENT[288]: 0.003900350 - core[1].svTaskInfo(9), plen 0: [tid: 12296612, prio: 5, name: alloc2] +EVENT[289]: 0.003911525 - core[0].svStackInfo(21), plen 0: [tid: 12296612, base: 1073452960, sz: 4294965088, unused: 0] +EVENT[290]: 0.003911525 - core[1].svStackInfo(21), plen 0: [tid: 12296612, base: 1073452960, sz: 4294965088, unused: 0] +EVENT[291]: 0.003924550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[292]: 0.003924550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[293]: 0.003943225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[294]: 0.003957125 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[295]: 0.003970975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[296]: 0.003981850 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[297]: 0.003992875 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[298]: 0.004014925 - core[1].svIdle(17), plen 0: [] +EVENT[299]: 0.004030875 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455880, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.004030875] HEAP: Allocated 124 bytes @ 0x3ffba308 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[300]: 0.003902275 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[301]: 0.003941625 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073458112, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003941625] HEAP: Allocated 2500 bytes @ 0x3ffbabc0 from task "alloc2" on core 0 by: +EVENT[300]: 0.004045200 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[301]: 0.004085625 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073456008, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.004085625] HEAP: Allocated 2500 bytes @ 0x3ffba388 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[302]: 0.003976025 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073460676, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003976025] HEAP: Allocated 340 bytes @ 0x3ffbb5c4 from task "alloc2" on core 0 by: +EVENT[302]: 0.004121100 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073458572, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.004121100] HEAP: Allocated 340 bytes @ 0x3ffbad8c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[303]: 0.004002000 - core[0].svTaskCreate(8), plen 0: [tid: 12301764] -EVENT[304]: 0.004014625 - core[0].svTaskInfo(9), plen 0: [tid: 12301764, prio: 5, name: free2] -EVENT[305]: 0.004014625 - core[1].svTaskInfo(9), plen 0: [tid: 12301764, prio: 5, name: free2] -EVENT[306]: 0.004023800 - core[0].svStackInfo(21), plen 0: [tid: 12301764, base: 1073458112, sz: 4294965088, unused: 0] -EVENT[307]: 0.004023800 - core[1].svStackInfo(21), plen 0: [tid: 12301764, base: 1073458112, sz: 4294965088, unused: 0] -EVENT[308]: 0.004034600 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[309]: 0.004034600 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[310]: 0.004050850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[311]: 0.004063700 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[312]: 0.004075375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455048, size: 3, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.004075375] HEAP: Allocated 3 bytes @ 0x3ffb9fc8 from task "alloc2" on core 0 by: +EVENT[303]: 0.004143675 - core[0].svTaskCreate(8), plen 0: [tid: 12299660] +EVENT[304]: 0.004156250 - core[0].svTaskInfo(9), plen 0: [tid: 12299660, prio: 5, name: free2] +EVENT[305]: 0.004156250 - core[1].svTaskInfo(9), plen 0: [tid: 12299660, prio: 5, name: free2] +EVENT[306]: 0.004169425 - core[0].svStackInfo(21), plen 0: [tid: 12299660, base: 1073456008, sz: 4294965096, unused: 0] +EVENT[307]: 0.004169425 - core[1].svStackInfo(21), plen 0: [tid: 12299660, base: 1073456008, sz: 4294965096, unused: 0] +EVENT[308]: 0.004180150 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[309]: 0.004180150 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[310]: 0.004196250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[311]: 0.004209125 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[312]: 0.004221350 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452944, size: 3, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.004221350] HEAP: Allocated 3 bytes @ 0x3ffb9790 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[313]: 0.004086825 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[314]: 0.004113200 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[315]: 0.004124950 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461032, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.004124950] HEAP: Allocated 6 bytes @ 0x3ffbb728 from task "alloc2" on core 0 by: +EVENT[313]: 0.004233575 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[314]: 0.004259950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[315]: 0.004271525 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458928, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.004271525] HEAP: Allocated 6 bytes @ 0x3ffbaef0 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[316]: 0.004136375 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[317]: 0.004148350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[318]: 0.004158625 - core[1].svIdle(17), plen 0: [] -EVENT[319]: 0.004177025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[320]: 0.004229325 - core[0].svPrint(26), plen 69: [msg: I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728 +EVENT[316]: 0.004282925 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[317]: 0.004294950 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[318]: 0.004306150 - core[1].svIdle(17), plen 0: [] +EVENT[319]: 0.004324575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[320]: 0.004377100 - core[0].svPrint(26), plen 69: [msg: I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0 , lvl: 0, unused: 0] -[0.004229325] LOG: I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728 -EVENT[321]: 0.004246325 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[322]: 0.004259475 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[323]: 0.004259475 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[324]: 0.004275750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[325]: 0.004286600 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[326]: 0.004297375 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[327]: 0.004311250 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[328]: 0.004322050 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[329]: 0.004332900 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[330]: 0.004344800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[331]: 0.004355375 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[332]: 0.004367550 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[333]: 0.004394600 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[334]: 0.004405450 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[335]: 0.004417125 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[336]: 0.004417125 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[337]: 0.004428475 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[338]: 0.004446600 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[339]: 0.004461050 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[340]: 0.004485000 - core[1].svPrint(26), plen 63: [msg: I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728 +[0.004377100] LOG: I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0 +EVENT[321]: 0.004390575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[322]: 0.004403775 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[323]: 0.004403775 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[324]: 0.004424325 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[325]: 0.004435175 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[326]: 0.004445975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[327]: 0.004460225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[328]: 0.004471900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[329]: 0.004482925 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[330]: 0.004494925 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[331]: 0.004505375 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[332]: 0.004522150 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[333]: 0.004534325 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[334]: 0.004546275 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[335]: 0.004557600 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[336]: 0.004568700 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[337]: 0.004568700 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[338]: 0.004582350 - core[1].vTaskPriorityInherit(39), plen 5: [pxMutexHolder: 1073433876] +EVENT[339]: 0.004597425 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[340]: 0.004608000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[341]: 0.004618825 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[342]: 0.004629700 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[343]: 0.004641000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[344]: 0.004656550 - core[1].svIdle(17), plen 0: [] +EVENT[345]: 0.004671050 - core[0].xTaskPriorityDisinherit(42), plen 5: [pxMutexHolder: 1073433876] +EVENT[346]: 0.004681725 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[347]: 0.004681725 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[348]: 0.004695500 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[349]: 0.004695500 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[350]: 0.004711225 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[351]: 0.004722700 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[352]: 0.004739300 - core[0].svPrint(26), plen 34: [msg: I (299) example: Wait notify 0 , lvl: 0, unused: 0] -[0.004485000] LOG: I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728 -EVENT[341]: 0.004501225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[342]: 0.004514850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461032, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.004514850] HEAP: Freed bytes @ 0x3ffbb728 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.004739300] LOG: I (299) example: Wait notify 0 +EVENT[353]: 0.004750500 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[354]: 0.004767725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[355]: 0.004778650 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[356]: 0.004790975 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[357]: 0.004801725 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[358]: 0.004819425 - core[0].svIdle(17), plen 0: [] +EVENT[359]: 0.004840550 - core[1].svPrint(26), plen 63: [msg: I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0 +, lvl: 0, unused: 0] +[0.004840550] LOG: I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0 +EVENT[360]: 0.004866125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458928, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.004866125] HEAP: Freed bytes @ 0x3ffbaef0 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[343]: 0.004542000 - core[0].svPrint(26), plen 34: [msg: I (312) example: Wait notify 0 -, lvl: 0, unused: 0] -[0.004542000] LOG: I (312) example: Wait notify 0 -EVENT[344]: 0.004553025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[345]: 0.004566700 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[346]: 0.004580775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[347]: 0.004591450 - core[1].svIdle(17), plen 0: [] -EVENT[348]: 0.004602475 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[349]: 0.004618600 - core[0].svIdle(17), plen 0: [] -EVENT[350]: 0.004669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[351]: 0.004682875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[352]: 0.004698150 - core[1].svIdle(17), plen 0: [] -EVENT[353]: 0.004813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[354]: 0.004828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[355]: 0.004843775 - core[0].svIdle(17), plen 0: [] -EVENT[356]: 0.005669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[357]: 0.005682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[358]: 0.005698100 - core[1].svIdle(17), plen 0: [] -EVENT[359]: 0.005813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[360]: 0.005828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[361]: 0.005843775 - core[0].svIdle(17), plen 0: [] -EVENT[362]: 0.006669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[363]: 0.006682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[364]: 0.006698075 - core[1].svIdle(17), plen 0: [] -EVENT[365]: 0.006813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[366]: 0.006828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[367]: 0.006843825 - core[0].svIdle(17), plen 0: [] -EVENT[368]: 0.007669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[369]: 0.007682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[370]: 0.007698075 - core[1].svIdle(17), plen 0: [] -EVENT[371]: 0.007813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[372]: 0.007828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[373]: 0.007843775 - core[0].svIdle(17), plen 0: [] -EVENT[374]: 0.008669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[375]: 0.008687175 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[376]: 0.008702325 - core[1].svIdle(17), plen 0: [] -EVENT[377]: 0.008813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[378]: 0.008828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[379]: 0.008843775 - core[0].svIdle(17), plen 0: [] -EVENT[380]: 0.009669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[381]: 0.009682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[382]: 0.009698075 - core[1].svIdle(17), plen 0: [] -EVENT[383]: 0.009813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[384]: 0.009828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[385]: 0.009843825 - core[0].svIdle(17), plen 0: [] -EVENT[386]: 0.010669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[387]: 0.010682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[388]: 0.010698075 - core[1].svIdle(17), plen 0: [] -EVENT[389]: 0.010813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[390]: 0.010828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[391]: 0.010843775 - core[0].svIdle(17), plen 0: [] -EVENT[392]: 0.011669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[393]: 0.011682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[394]: 0.011698325 - core[1].svIdle(17), plen 0: [] -EVENT[395]: 0.011813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[396]: 0.011828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[397]: 0.011843775 - core[0].svIdle(17), plen 0: [] -EVENT[398]: 0.012669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[399]: 0.012682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[400]: 0.012698100 - core[1].svIdle(17), plen 0: [] -EVENT[401]: 0.012813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[402]: 0.012828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[403]: 0.012843775 - core[0].svIdle(17), plen 0: [] -EVENT[404]: 0.013669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[405]: 0.013682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[406]: 0.013698075 - core[1].svIdle(17), plen 0: [] -EVENT[407]: 0.013813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[408]: 0.013828850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[409]: 0.013844050 - core[0].svIdle(17), plen 0: [] -EVENT[410]: 0.014669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[411]: 0.014682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[412]: 0.014698075 - core[1].svIdle(17), plen 0: [] -EVENT[413]: 0.014813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[414]: 0.014828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[415]: 0.014843775 - core[0].svIdle(17), plen 0: [] -EVENT[416]: 0.015669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[417]: 0.015682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[418]: 0.015698325 - core[1].svIdle(17), plen 0: [] -EVENT[419]: 0.015813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[420]: 0.015828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[421]: 0.015843775 - core[0].svIdle(17), plen 0: [] -EVENT[422]: 0.016669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[423]: 0.016682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[424]: 0.016698100 - core[1].svIdle(17), plen 0: [] -EVENT[425]: 0.016813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[426]: 0.016828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[427]: 0.016843775 - core[0].svIdle(17), plen 0: [] -EVENT[428]: 0.017669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[429]: 0.017682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[430]: 0.017698075 - core[1].svIdle(17), plen 0: [] -EVENT[431]: 0.017813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[432]: 0.017828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[433]: 0.017843825 - core[0].svIdle(17), plen 0: [] -EVENT[434]: 0.018669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[435]: 0.018682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[436]: 0.018698075 - core[1].svIdle(17), plen 0: [] -EVENT[437]: 0.018813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[438]: 0.018828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[439]: 0.018843775 - core[0].svIdle(17), plen 0: [] -EVENT[440]: 0.019669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[441]: 0.019682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[442]: 0.019698325 - core[1].svIdle(17), plen 0: [] -EVENT[443]: 0.019813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[444]: 0.019828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[445]: 0.019843775 - core[0].svIdle(17), plen 0: [] -EVENT[446]: 0.020669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[447]: 0.020687200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[448]: 0.020702325 - core[1].svIdle(17), plen 0: [] -EVENT[449]: 0.020813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[450]: 0.020828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[451]: 0.020843775 - core[0].svIdle(17), plen 0: [] -EVENT[452]: 0.021669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[453]: 0.021682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[454]: 0.021698075 - core[1].svIdle(17), plen 0: [] -EVENT[455]: 0.021813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[456]: 0.021828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[457]: 0.021843825 - core[0].svIdle(17), plen 0: [] -EVENT[458]: 0.022669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[459]: 0.022682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[460]: 0.022698075 - core[1].svIdle(17), plen 0: [] -EVENT[461]: 0.022813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[462]: 0.022828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[463]: 0.022843775 - core[0].svIdle(17), plen 0: [] -EVENT[464]: 0.023669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[465]: 0.023682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[466]: 0.023698325 - core[1].svIdle(17), plen 0: [] -EVENT[467]: 0.023813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[468]: 0.023828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[469]: 0.023843775 - core[0].svIdle(17), plen 0: [] -EVENT[470]: 0.024669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[471]: 0.024682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[472]: 0.024698100 - core[1].svIdle(17), plen 0: [] -EVENT[473]: 0.024813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[474]: 0.024828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[475]: 0.024843775 - core[0].svIdle(17), plen 0: [] -EVENT[476]: 0.025669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[477]: 0.025682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[478]: 0.025698075 - core[1].svIdle(17), plen 0: [] -EVENT[479]: 0.025813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[480]: 0.025828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[481]: 0.025843825 - core[0].svIdle(17), plen 0: [] -EVENT[482]: 0.026669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[483]: 0.026682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[484]: 0.026698075 - core[1].svIdle(17), plen 0: [] -EVENT[485]: 0.026813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[486]: 0.026828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[487]: 0.026843775 - core[0].svIdle(17), plen 0: [] -EVENT[488]: 0.027669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[489]: 0.027682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[490]: 0.027698325 - core[1].svIdle(17), plen 0: [] -EVENT[491]: 0.027813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[492]: 0.027828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[493]: 0.027843775 - core[0].svIdle(17), plen 0: [] -EVENT[494]: 0.028669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[495]: 0.028682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[496]: 0.028698100 - core[1].svIdle(17), plen 0: [] -EVENT[497]: 0.028813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[498]: 0.028828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[499]: 0.028843775 - core[0].svIdle(17), plen 0: [] -EVENT[500]: 0.029669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[501]: 0.029682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[502]: 0.029698075 - core[1].svIdle(17), plen 0: [] -EVENT[503]: 0.029813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[504]: 0.029828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[505]: 0.029843825 - core[0].svIdle(17), plen 0: [] -EVENT[506]: 0.030669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[507]: 0.030682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[508]: 0.030698075 - core[1].svIdle(17), plen 0: [] -EVENT[509]: 0.030813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[510]: 0.030828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[511]: 0.030843775 - core[0].svIdle(17), plen 0: [] -EVENT[512]: 0.031669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[513]: 0.031682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[514]: 0.031698325 - core[1].svIdle(17), plen 0: [] -EVENT[515]: 0.031813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[516]: 0.031828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[517]: 0.031828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[518]: 0.031840900 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[519]: 0.031860400 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[520]: 0.031895800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.031895800] HEAP: Allocated 2 bytes @ 0x3ffbb728 from task "alloc0" on core 0 by: +EVENT[361]: 0.004893775 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[362]: 0.004905175 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[363]: 0.004921750 - core[1].svIdle(17), plen 0: [] +EVENT[364]: 0.005425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[365]: 0.005439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[366]: 0.005454975 - core[1].svIdle(17), plen 0: [] +EVENT[367]: 0.005546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[368]: 0.005562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[369]: 0.005577425 - core[0].svIdle(17), plen 0: [] +EVENT[370]: 0.006425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[371]: 0.006439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[372]: 0.006454550 - core[1].svIdle(17), plen 0: [] +EVENT[373]: 0.006546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[374]: 0.006562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[375]: 0.006577125 - core[0].svIdle(17), plen 0: [] +EVENT[376]: 0.007425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[377]: 0.007439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[378]: 0.007454675 - core[1].svIdle(17), plen 0: [] +EVENT[379]: 0.007546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[380]: 0.007562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[381]: 0.007577150 - core[0].svIdle(17), plen 0: [] +EVENT[382]: 0.008425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[383]: 0.008439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[384]: 0.008454600 - core[1].svIdle(17), plen 0: [] +EVENT[385]: 0.008546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[386]: 0.008562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[387]: 0.008577125 - core[0].svIdle(17), plen 0: [] +EVENT[388]: 0.009425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[389]: 0.009439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[390]: 0.009454550 - core[1].svIdle(17), plen 0: [] +EVENT[391]: 0.009546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[392]: 0.009562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[393]: 0.009577425 - core[0].svIdle(17), plen 0: [] +EVENT[394]: 0.010425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[395]: 0.010439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[396]: 0.010454550 - core[1].svIdle(17), plen 0: [] +EVENT[397]: 0.010546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[398]: 0.010562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[399]: 0.010577125 - core[0].svIdle(17), plen 0: [] +EVENT[400]: 0.011425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[401]: 0.011439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[402]: 0.011454675 - core[1].svIdle(17), plen 0: [] +EVENT[403]: 0.011546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[404]: 0.011562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[405]: 0.011577150 - core[0].svIdle(17), plen 0: [] +EVENT[406]: 0.012425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[407]: 0.012439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[408]: 0.012454675 - core[1].svIdle(17), plen 0: [] +EVENT[409]: 0.012546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[410]: 0.012562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[411]: 0.012577150 - core[0].svIdle(17), plen 0: [] +EVENT[412]: 0.013425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[413]: 0.013439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[414]: 0.013454600 - core[1].svIdle(17), plen 0: [] +EVENT[415]: 0.013546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[416]: 0.013562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[417]: 0.013577125 - core[0].svIdle(17), plen 0: [] +EVENT[418]: 0.014425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[419]: 0.014439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[420]: 0.014454550 - core[1].svIdle(17), plen 0: [] +EVENT[421]: 0.014546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[422]: 0.014562325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[423]: 0.014577550 - core[0].svIdle(17), plen 0: [] +EVENT[424]: 0.015425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[425]: 0.015439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[426]: 0.015454550 - core[1].svIdle(17), plen 0: [] +EVENT[427]: 0.015546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[428]: 0.015562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[429]: 0.015577125 - core[0].svIdle(17), plen 0: [] +EVENT[430]: 0.016425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[431]: 0.016439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[432]: 0.016454675 - core[1].svIdle(17), plen 0: [] +EVENT[433]: 0.016546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[434]: 0.016562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[435]: 0.016577150 - core[0].svIdle(17), plen 0: [] +EVENT[436]: 0.017425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[437]: 0.017439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[438]: 0.017454600 - core[1].svIdle(17), plen 0: [] +EVENT[439]: 0.017546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[440]: 0.017562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[441]: 0.017577125 - core[0].svIdle(17), plen 0: [] +EVENT[442]: 0.018425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[443]: 0.018439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[444]: 0.018454550 - core[1].svIdle(17), plen 0: [] +EVENT[445]: 0.018546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[446]: 0.018562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[447]: 0.018577425 - core[0].svIdle(17), plen 0: [] +EVENT[448]: 0.019425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[449]: 0.019439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[450]: 0.019454550 - core[1].svIdle(17), plen 0: [] +EVENT[451]: 0.019546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[452]: 0.019562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[453]: 0.019577125 - core[0].svIdle(17), plen 0: [] +EVENT[454]: 0.020425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[455]: 0.020439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[456]: 0.020454675 - core[1].svIdle(17), plen 0: [] +EVENT[457]: 0.020546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[458]: 0.020562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[459]: 0.020577150 - core[0].svIdle(17), plen 0: [] +EVENT[460]: 0.021425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[461]: 0.021439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[462]: 0.021454600 - core[1].svIdle(17), plen 0: [] +EVENT[463]: 0.021546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[464]: 0.021562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[465]: 0.021577125 - core[0].svIdle(17), plen 0: [] +EVENT[466]: 0.022425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[467]: 0.022439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[468]: 0.022454550 - core[1].svIdle(17), plen 0: [] +EVENT[469]: 0.022546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[470]: 0.022562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[471]: 0.022577425 - core[0].svIdle(17), plen 0: [] +EVENT[472]: 0.023425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[473]: 0.023439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[474]: 0.023454550 - core[1].svIdle(17), plen 0: [] +EVENT[475]: 0.023546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[476]: 0.023562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[477]: 0.023577125 - core[0].svIdle(17), plen 0: [] +EVENT[478]: 0.024425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[479]: 0.024443675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[480]: 0.024458825 - core[1].svIdle(17), plen 0: [] +EVENT[481]: 0.024546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[482]: 0.024562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[483]: 0.024577125 - core[0].svIdle(17), plen 0: [] +EVENT[484]: 0.025425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[485]: 0.025439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[486]: 0.025454550 - core[1].svIdle(17), plen 0: [] +EVENT[487]: 0.025546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[488]: 0.025562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[489]: 0.025577425 - core[0].svIdle(17), plen 0: [] +EVENT[490]: 0.026425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[491]: 0.026439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[492]: 0.026454550 - core[1].svIdle(17), plen 0: [] +EVENT[493]: 0.026546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[494]: 0.026562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[495]: 0.026577125 - core[0].svIdle(17), plen 0: [] +EVENT[496]: 0.027425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[497]: 0.027439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[498]: 0.027454675 - core[1].svIdle(17), plen 0: [] +EVENT[499]: 0.027546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[500]: 0.027562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[501]: 0.027577150 - core[0].svIdle(17), plen 0: [] +EVENT[502]: 0.028425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[503]: 0.028439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[504]: 0.028454600 - core[1].svIdle(17), plen 0: [] +EVENT[505]: 0.028546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[506]: 0.028562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[507]: 0.028577125 - core[0].svIdle(17), plen 0: [] +EVENT[508]: 0.029425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[509]: 0.029439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[510]: 0.029454550 - core[1].svIdle(17), plen 0: [] +EVENT[511]: 0.029546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[512]: 0.029562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[513]: 0.029577425 - core[0].svIdle(17), plen 0: [] +EVENT[514]: 0.030425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[515]: 0.030439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[516]: 0.030454550 - core[1].svIdle(17), plen 0: [] +EVENT[517]: 0.030546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[518]: 0.030562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[519]: 0.030577125 - core[0].svIdle(17), plen 0: [] +EVENT[520]: 0.031425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[521]: 0.031439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[522]: 0.031454675 - core[1].svIdle(17), plen 0: [] +EVENT[523]: 0.031546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[524]: 0.031562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[525]: 0.031577150 - core[0].svIdle(17), plen 0: [] +EVENT[526]: 0.032425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[527]: 0.032439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[528]: 0.032454600 - core[1].svIdle(17), plen 0: [] +EVENT[529]: 0.032546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[530]: 0.032561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[531]: 0.032561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[532]: 0.032574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[533]: 0.032589975 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[534]: 0.032626425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.032626425] HEAP: Allocated 2 bytes @ 0x3ffbaef0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[521]: 0.031930350 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.031930350] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc0" on core 0 by: +EVENT[535]: 0.032661850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.032661850] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[522]: 0.031947275 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[523]: 0.031963225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[524]: 0.032027500 - core[0].svPrint(26), plen 69: [msg: I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738 +EVENT[536]: 0.032682300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[537]: 0.032698225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[538]: 0.032750775 - core[0].svPrint(26), plen 69: [msg: I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00 , lvl: 0, unused: 0] -[0.032027500] LOG: I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738 -EVENT[525]: 0.032041200 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[526]: 0.032054450 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[527]: 0.032054450 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[528]: 0.032070625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[529]: 0.032081475 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[530]: 0.032092275 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[531]: 0.032106075 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[532]: 0.032116925 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[533]: 0.032127825 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[534]: 0.032139925 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[535]: 0.032150500 - core[0].svIdle(17), plen 0: [] -EVENT[536]: 0.032166625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[537]: 0.032182825 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[538]: 0.032246375 - core[1].svPrint(26), plen 63: [msg: I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738 +[0.032750775] LOG: I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00 +EVENT[539]: 0.032764225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[540]: 0.032777450 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[541]: 0.032777450 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[542]: 0.032793700 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[543]: 0.032804650 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[544]: 0.032815400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[545]: 0.032829150 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[546]: 0.032839875 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[547]: 0.032850675 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[548]: 0.032862750 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[549]: 0.032873950 - core[0].svIdle(17), plen 0: [] +EVENT[550]: 0.032891200 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[551]: 0.032907525 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[552]: 0.032955300 - core[1].svPrint(26), plen 63: [msg: I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00 , lvl: 0, unused: 0] -[0.032246375] LOG: I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738 -EVENT[539]: 0.032267375 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461048, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.032267375] HEAP: Freed bytes @ 0x3ffbb738 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.032955300] LOG: I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00 +EVENT[553]: 0.032980775 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458944, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.032980775] HEAP: Freed bytes @ 0x3ffbaf00 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[540]: 0.032294250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[541]: 0.032305725 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[542]: 0.032322425 - core[1].svIdle(17), plen 0: [] -EVENT[543]: 0.032669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[544]: 0.032682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[545]: 0.032698425 - core[1].svIdle(17), plen 0: [] -EVENT[546]: 0.032813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[547]: 0.032828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[548]: 0.032828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[549]: 0.032840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[550]: 0.032856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[551]: 0.032891700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.032891700] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc1" on core 0 by: +EVENT[554]: 0.033008200 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[555]: 0.033019600 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[556]: 0.033036175 - core[1].svIdle(17), plen 0: [] +EVENT[557]: 0.033425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[558]: 0.033439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[559]: 0.033455150 - core[1].svIdle(17), plen 0: [] +EVENT[560]: 0.033546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[561]: 0.033561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[562]: 0.033561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[563]: 0.033573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[564]: 0.033573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[565]: 0.033586100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[566]: 0.033601775 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[567]: 0.033638000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.033638000] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[552]: 0.032926225 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461064, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.032926225] HEAP: Allocated 8 bytes @ 0x3ffbb748 from task "alloc1" on core 0 by: +EVENT[568]: 0.033673475 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458960, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.033673475] HEAP: Allocated 8 bytes @ 0x3ffbaf10 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[553]: 0.032943250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[554]: 0.032963425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[555]: 0.033027675 - core[0].svPrint(26), plen 69: [msg: I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748 +EVENT[569]: 0.033690400 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[570]: 0.033706325 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[571]: 0.033758875 - core[0].svPrint(26), plen 69: [msg: I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10 , lvl: 0, unused: 0] -[0.033027675] LOG: I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748 -EVENT[556]: 0.033041400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[557]: 0.033054625 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[558]: 0.033054625 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[559]: 0.033070875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[560]: 0.033081725 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[561]: 0.033092475 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[562]: 0.033106200 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[563]: 0.033116975 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[564]: 0.033127725 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[565]: 0.033139725 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[566]: 0.033151025 - core[0].svIdle(17), plen 0: [] -EVENT[567]: 0.033162675 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[568]: 0.033179000 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[569]: 0.033242525 - core[1].svPrint(26), plen 63: [msg: I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748 -, lvl: 0, unused: 0] -[0.033242525] LOG: I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748 -EVENT[570]: 0.033267050 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461064, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.033267050] HEAP: Freed bytes @ 0x3ffbb748 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[571]: 0.033294050 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[572]: 0.033305475 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[573]: 0.033322050 - core[1].svIdle(17), plen 0: [] -EVENT[574]: 0.033669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[575]: 0.033682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[576]: 0.033698525 - core[1].svIdle(17), plen 0: [] -EVENT[577]: 0.033813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[578]: 0.033828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[579]: 0.033828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[580]: 0.033840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[581]: 0.033856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[582]: 0.033892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461064, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.033892175] HEAP: Allocated 6 bytes @ 0x3ffbb748 from task "alloc2" on core 0 by: +[0.033758875] LOG: I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10 +EVENT[572]: 0.033776525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[573]: 0.033789675 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[574]: 0.033789675 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[575]: 0.033806000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[576]: 0.033816850 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[577]: 0.033827650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[578]: 0.033841700 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[579]: 0.033853500 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[580]: 0.033864750 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[581]: 0.033876675 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[582]: 0.033888475 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[583]: 0.033901250 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[584]: 0.033919975 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[585]: 0.033931975 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458976, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.033931975] HEAP: Allocated 6 bytes @ 0x3ffbaf20 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[583]: 0.033926575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461080, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.033926575] HEAP: Allocated 12 bytes @ 0x3ffbb758 from task "alloc2" on core 0 by: +EVENT[586]: 0.033973050 - core[1].svPrint(26), plen 63: [msg: I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10 +, lvl: 0, unused: 0] +[0.033973050] LOG: I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10 +EVENT[587]: 0.033988900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.033988900] HEAP: Allocated 12 bytes @ 0x3ffbaf30 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[584]: 0.033943475 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[585]: 0.033959450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[586]: 0.034029800 - core[0].svPrint(26), plen 70: [msg: I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758 -, lvl: 0, unused: 0] -[0.034029800] LOG: I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758 -EVENT[587]: 0.034047625 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[588]: 0.034060850 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[589]: 0.034060850 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[590]: 0.034077150 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[591]: 0.034088000 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[592]: 0.034098775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[593]: 0.034112500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[594]: 0.034123375 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[595]: 0.034134200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[596]: 0.034146200 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[597]: 0.034156450 - core[0].svIdle(17), plen 0: [] -EVENT[598]: 0.034167850 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[599]: 0.034184225 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[600]: 0.034247900 - core[1].svPrint(26), plen 63: [msg: I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758 -, lvl: 0, unused: 0] -[0.034247900] LOG: I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758 -EVENT[601]: 0.034269100 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461080, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.034269100] HEAP: Freed bytes @ 0x3ffbb758 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[588]: 0.034003200 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458960, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.034003200] HEAP: Freed bytes @ 0x3ffbaf10 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[602]: 0.034300025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[603]: 0.034311500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[604]: 0.034328200 - core[1].svIdle(17), plen 0: [] -EVENT[605]: 0.034669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[606]: 0.034682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[607]: 0.034698425 - core[1].svIdle(17), plen 0: [] -EVENT[608]: 0.034813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[609]: 0.034828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[610]: 0.034843825 - core[0].svIdle(17), plen 0: [] -EVENT[611]: 0.035669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[612]: 0.035682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[613]: 0.035698075 - core[1].svIdle(17), plen 0: [] -EVENT[614]: 0.035813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[615]: 0.035828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[616]: 0.035843775 - core[0].svIdle(17), plen 0: [] -EVENT[617]: 0.036669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[618]: 0.036682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[619]: 0.036698325 - core[1].svIdle(17), plen 0: [] -EVENT[620]: 0.036813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[621]: 0.036828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[622]: 0.036843775 - core[0].svIdle(17), plen 0: [] -EVENT[623]: 0.037669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[624]: 0.037682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[625]: 0.037698100 - core[1].svIdle(17), plen 0: [] -EVENT[626]: 0.037813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[627]: 0.037828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[628]: 0.037843775 - core[0].svIdle(17), plen 0: [] -EVENT[629]: 0.038669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[630]: 0.038682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[631]: 0.038698075 - core[1].svIdle(17), plen 0: [] -EVENT[632]: 0.038813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[633]: 0.038828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[634]: 0.038843825 - core[0].svIdle(17), plen 0: [] -EVENT[635]: 0.039669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[636]: 0.039682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[637]: 0.039698075 - core[1].svIdle(17), plen 0: [] -EVENT[638]: 0.039813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[639]: 0.039828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[640]: 0.039843775 - core[0].svIdle(17), plen 0: [] -EVENT[641]: 0.040669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[642]: 0.040682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[643]: 0.040698325 - core[1].svIdle(17), plen 0: [] -EVENT[644]: 0.040813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[645]: 0.040828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[646]: 0.040843775 - core[0].svIdle(17), plen 0: [] -EVENT[647]: 0.041669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[648]: 0.041682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[649]: 0.041698100 - core[1].svIdle(17), plen 0: [] -EVENT[650]: 0.041813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[651]: 0.041828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[652]: 0.041843775 - core[0].svIdle(17), plen 0: [] -EVENT[653]: 0.042669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[654]: 0.042682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[655]: 0.042698075 - core[1].svIdle(17), plen 0: [] -EVENT[656]: 0.042813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[657]: 0.042828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[658]: 0.042843825 - core[0].svIdle(17), plen 0: [] -EVENT[659]: 0.043669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[660]: 0.043682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[661]: 0.043698075 - core[1].svIdle(17), plen 0: [] -EVENT[662]: 0.043813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[663]: 0.043828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[664]: 0.043843775 - core[0].svIdle(17), plen 0: [] -EVENT[665]: 0.044669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[666]: 0.044687175 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[667]: 0.044702300 - core[1].svIdle(17), plen 0: [] -EVENT[668]: 0.044813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[669]: 0.044828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[670]: 0.044843775 - core[0].svIdle(17), plen 0: [] -EVENT[671]: 0.045669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[672]: 0.045682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[673]: 0.045698075 - core[1].svIdle(17), plen 0: [] -EVENT[674]: 0.045813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[675]: 0.045828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[676]: 0.045843825 - core[0].svIdle(17), plen 0: [] -EVENT[677]: 0.046669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[678]: 0.046682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[679]: 0.046698075 - core[1].svIdle(17), plen 0: [] -EVENT[680]: 0.046813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[681]: 0.046828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[682]: 0.046843775 - core[0].svIdle(17), plen 0: [] -EVENT[683]: 0.047669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[684]: 0.047682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[685]: 0.047698325 - core[1].svIdle(17), plen 0: [] -EVENT[686]: 0.047813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[687]: 0.047828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[688]: 0.047843775 - core[0].svIdle(17), plen 0: [] -EVENT[689]: 0.048669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[690]: 0.048682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[691]: 0.048698100 - core[1].svIdle(17), plen 0: [] -EVENT[692]: 0.048813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[693]: 0.048828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[694]: 0.048843775 - core[0].svIdle(17), plen 0: [] -EVENT[695]: 0.049669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[696]: 0.049682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[697]: 0.049698075 - core[1].svIdle(17), plen 0: [] -EVENT[698]: 0.049813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[699]: 0.049828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[700]: 0.049843825 - core[0].svIdle(17), plen 0: [] -EVENT[701]: 0.050669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[702]: 0.050682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[703]: 0.050698075 - core[1].svIdle(17), plen 0: [] -EVENT[704]: 0.050813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[705]: 0.050828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[706]: 0.050843775 - core[0].svIdle(17), plen 0: [] -EVENT[707]: 0.051669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[708]: 0.051682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[709]: 0.051698325 - core[1].svIdle(17), plen 0: [] -EVENT[710]: 0.051813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[711]: 0.051828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[712]: 0.051843775 - core[0].svIdle(17), plen 0: [] -EVENT[713]: 0.052669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[714]: 0.052682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[715]: 0.052698100 - core[1].svIdle(17), plen 0: [] -EVENT[716]: 0.052813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[717]: 0.052828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[718]: 0.052843775 - core[0].svIdle(17), plen 0: [] -EVENT[719]: 0.053669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[720]: 0.053682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[721]: 0.053698075 - core[1].svIdle(17), plen 0: [] -EVENT[722]: 0.053813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[723]: 0.053828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[724]: 0.053843825 - core[0].svIdle(17), plen 0: [] -EVENT[725]: 0.054669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[726]: 0.054682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[727]: 0.054698075 - core[1].svIdle(17), plen 0: [] -EVENT[728]: 0.054813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[729]: 0.054828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[730]: 0.054843775 - core[0].svIdle(17), plen 0: [] -EVENT[731]: 0.055669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[732]: 0.055682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[733]: 0.055698325 - core[1].svIdle(17), plen 0: [] -EVENT[734]: 0.055813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[735]: 0.055828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[736]: 0.055843775 - core[0].svIdle(17), plen 0: [] -EVENT[737]: 0.056669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[738]: 0.056687200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[739]: 0.056702350 - core[1].svIdle(17), plen 0: [] -EVENT[740]: 0.056813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[741]: 0.056828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[742]: 0.056843775 - core[0].svIdle(17), plen 0: [] -EVENT[743]: 0.057669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[744]: 0.057682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[745]: 0.057698075 - core[1].svIdle(17), plen 0: [] -EVENT[746]: 0.057813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[747]: 0.057828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[748]: 0.057843825 - core[0].svIdle(17), plen 0: [] -EVENT[749]: 0.058669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[750]: 0.058682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[751]: 0.058698075 - core[1].svIdle(17), plen 0: [] -EVENT[752]: 0.058813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[753]: 0.058828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[754]: 0.058843775 - core[0].svIdle(17), plen 0: [] -EVENT[755]: 0.059669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[756]: 0.059682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[757]: 0.059698325 - core[1].svIdle(17), plen 0: [] -EVENT[758]: 0.059813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[759]: 0.059828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[760]: 0.059843775 - core[0].svIdle(17), plen 0: [] -EVENT[761]: 0.060669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[762]: 0.060682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[763]: 0.060698100 - core[1].svIdle(17), plen 0: [] -EVENT[764]: 0.060813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[765]: 0.060828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[766]: 0.060843775 - core[0].svIdle(17), plen 0: [] -EVENT[767]: 0.061669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[768]: 0.061682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[769]: 0.061698075 - core[1].svIdle(17), plen 0: [] -EVENT[770]: 0.061813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[771]: 0.061828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[772]: 0.061828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[773]: 0.061840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[774]: 0.061856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[775]: 0.061891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461080, size: 3, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.061891850] HEAP: Allocated 3 bytes @ 0x3ffbb758 from task "alloc0" on core 0 by: +EVENT[589]: 0.034015625 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[590]: 0.034035675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[591]: 0.034046600 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[592]: 0.034058125 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[593]: 0.034076100 - core[1].svIdle(17), plen 0: [] +EVENT[594]: 0.034094100 - core[0].svPrint(26), plen 70: [msg: I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30 +, lvl: 0, unused: 0] +[0.034094100] LOG: I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30 +EVENT[595]: 0.034107525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[596]: 0.034124925 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[597]: 0.034124925 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[598]: 0.034141275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[599]: 0.034152125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[600]: 0.034162950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[601]: 0.034176750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[602]: 0.034187500 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[603]: 0.034198300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[604]: 0.034210250 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[605]: 0.034221475 - core[0].svIdle(17), plen 0: [] +EVENT[606]: 0.034233300 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[607]: 0.034249550 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[608]: 0.034297325 - core[1].svPrint(26), plen 63: [msg: I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30 +, lvl: 0, unused: 0] +[0.034297325] LOG: I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30 +EVENT[609]: 0.034318700 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458992, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.034318700] HEAP: Freed bytes @ 0x3ffbaf30 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[610]: 0.034346125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[611]: 0.034357525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[612]: 0.034374100 - core[1].svIdle(17), plen 0: [] +EVENT[613]: 0.034425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[614]: 0.034439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[615]: 0.034455150 - core[1].svIdle(17), plen 0: [] +EVENT[616]: 0.034546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[617]: 0.034562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[618]: 0.034577125 - core[0].svIdle(17), plen 0: [] +EVENT[619]: 0.035425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[620]: 0.035439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[621]: 0.035454550 - core[1].svIdle(17), plen 0: [] +EVENT[622]: 0.035546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[623]: 0.035562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[624]: 0.035577425 - core[0].svIdle(17), plen 0: [] +EVENT[625]: 0.036425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[626]: 0.036439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[627]: 0.036454550 - core[1].svIdle(17), plen 0: [] +EVENT[628]: 0.036546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[629]: 0.036566350 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[630]: 0.036581550 - core[0].svIdle(17), plen 0: [] +EVENT[631]: 0.037425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[632]: 0.037439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[633]: 0.037454550 - core[1].svIdle(17), plen 0: [] +EVENT[634]: 0.037546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[635]: 0.037562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[636]: 0.037577125 - core[0].svIdle(17), plen 0: [] +EVENT[637]: 0.038425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[638]: 0.038439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[639]: 0.038454675 - core[1].svIdle(17), plen 0: [] +EVENT[640]: 0.038546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[641]: 0.038562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[642]: 0.038577150 - core[0].svIdle(17), plen 0: [] +EVENT[643]: 0.039425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[644]: 0.039439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[645]: 0.039454600 - core[1].svIdle(17), plen 0: [] +EVENT[646]: 0.039546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[647]: 0.039562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[648]: 0.039577125 - core[0].svIdle(17), plen 0: [] +EVENT[649]: 0.040425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[650]: 0.040439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[651]: 0.040454550 - core[1].svIdle(17), plen 0: [] +EVENT[652]: 0.040546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[653]: 0.040562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[654]: 0.040577425 - core[0].svIdle(17), plen 0: [] +EVENT[655]: 0.041425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[656]: 0.041439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[657]: 0.041454550 - core[1].svIdle(17), plen 0: [] +EVENT[658]: 0.041546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[659]: 0.041562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[660]: 0.041577125 - core[0].svIdle(17), plen 0: [] +EVENT[661]: 0.042425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[662]: 0.042439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[663]: 0.042454675 - core[1].svIdle(17), plen 0: [] +EVENT[664]: 0.042546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[665]: 0.042562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[666]: 0.042577150 - core[0].svIdle(17), plen 0: [] +EVENT[667]: 0.043425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[668]: 0.043439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[669]: 0.043454600 - core[1].svIdle(17), plen 0: [] +EVENT[670]: 0.043546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[671]: 0.043562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[672]: 0.043577125 - core[0].svIdle(17), plen 0: [] +EVENT[673]: 0.044425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[674]: 0.044439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[675]: 0.044454550 - core[1].svIdle(17), plen 0: [] +EVENT[676]: 0.044546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[677]: 0.044562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[678]: 0.044577425 - core[0].svIdle(17), plen 0: [] +EVENT[679]: 0.045425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[680]: 0.045439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[681]: 0.045454550 - core[1].svIdle(17), plen 0: [] +EVENT[682]: 0.045546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[683]: 0.045562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[684]: 0.045577125 - core[0].svIdle(17), plen 0: [] +EVENT[685]: 0.046425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[686]: 0.046439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[687]: 0.046454675 - core[1].svIdle(17), plen 0: [] +EVENT[688]: 0.046546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[689]: 0.046562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[690]: 0.046577150 - core[0].svIdle(17), plen 0: [] +EVENT[691]: 0.047425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[692]: 0.047439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[693]: 0.047454600 - core[1].svIdle(17), plen 0: [] +EVENT[694]: 0.047546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[695]: 0.047562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[696]: 0.047577125 - core[0].svIdle(17), plen 0: [] +EVENT[697]: 0.048425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[698]: 0.048439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[699]: 0.048454550 - core[1].svIdle(17), plen 0: [] +EVENT[700]: 0.048546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[701]: 0.048566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[702]: 0.048581550 - core[0].svIdle(17), plen 0: [] +EVENT[703]: 0.049425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[704]: 0.049439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[705]: 0.049454550 - core[1].svIdle(17), plen 0: [] +EVENT[706]: 0.049546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[707]: 0.049562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[708]: 0.049577125 - core[0].svIdle(17), plen 0: [] +EVENT[709]: 0.050425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[710]: 0.050439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[711]: 0.050454675 - core[1].svIdle(17), plen 0: [] +EVENT[712]: 0.050546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[713]: 0.050562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[714]: 0.050577150 - core[0].svIdle(17), plen 0: [] +EVENT[715]: 0.051425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[716]: 0.051439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[717]: 0.051454600 - core[1].svIdle(17), plen 0: [] +EVENT[718]: 0.051546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[719]: 0.051562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[720]: 0.051577125 - core[0].svIdle(17), plen 0: [] +EVENT[721]: 0.052425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[722]: 0.052439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[723]: 0.052454550 - core[1].svIdle(17), plen 0: [] +EVENT[724]: 0.052546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[725]: 0.052562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[726]: 0.052577425 - core[0].svIdle(17), plen 0: [] +EVENT[727]: 0.053425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[728]: 0.053439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[729]: 0.053454550 - core[1].svIdle(17), plen 0: [] +EVENT[730]: 0.053546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[731]: 0.053562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[732]: 0.053577125 - core[0].svIdle(17), plen 0: [] +EVENT[733]: 0.054425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[734]: 0.054439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[735]: 0.054454675 - core[1].svIdle(17), plen 0: [] +EVENT[736]: 0.054546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[737]: 0.054562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[738]: 0.054577150 - core[0].svIdle(17), plen 0: [] +EVENT[739]: 0.055425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[740]: 0.055439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[741]: 0.055454600 - core[1].svIdle(17), plen 0: [] +EVENT[742]: 0.055546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[743]: 0.055562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[744]: 0.055577125 - core[0].svIdle(17), plen 0: [] +EVENT[745]: 0.056425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[746]: 0.056439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[747]: 0.056454550 - core[1].svIdle(17), plen 0: [] +EVENT[748]: 0.056546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[749]: 0.056562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[750]: 0.056577425 - core[0].svIdle(17), plen 0: [] +EVENT[751]: 0.057425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[752]: 0.057439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[753]: 0.057454550 - core[1].svIdle(17), plen 0: [] +EVENT[754]: 0.057546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[755]: 0.057562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[756]: 0.057577125 - core[0].svIdle(17), plen 0: [] +EVENT[757]: 0.058425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[758]: 0.058439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[759]: 0.058454675 - core[1].svIdle(17), plen 0: [] +EVENT[760]: 0.058546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[761]: 0.058562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[762]: 0.058577150 - core[0].svIdle(17), plen 0: [] +EVENT[763]: 0.059425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[764]: 0.059439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[765]: 0.059454600 - core[1].svIdle(17), plen 0: [] +EVENT[766]: 0.059546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[767]: 0.059562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[768]: 0.059577125 - core[0].svIdle(17), plen 0: [] +EVENT[769]: 0.060425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[770]: 0.060439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[771]: 0.060454550 - core[1].svIdle(17), plen 0: [] +EVENT[772]: 0.060546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[773]: 0.060566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[774]: 0.060581550 - core[0].svIdle(17), plen 0: [] +EVENT[775]: 0.061425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[776]: 0.061439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[777]: 0.061454550 - core[1].svIdle(17), plen 0: [] +EVENT[778]: 0.061546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[779]: 0.061562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[780]: 0.061577125 - core[0].svIdle(17), plen 0: [] +EVENT[781]: 0.062425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[782]: 0.062439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[783]: 0.062454675 - core[1].svIdle(17), plen 0: [] +EVENT[784]: 0.062546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[785]: 0.062561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[786]: 0.062561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[787]: 0.062574250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[788]: 0.062589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[789]: 0.062624925 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458960, size: 3, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.062624925] HEAP: Allocated 3 bytes @ 0x3ffbaf10 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[776]: 0.061926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461096, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.061926275] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc0" on core 0 by: +EVENT[790]: 0.062660425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.062660425] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[777]: 0.061943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[778]: 0.061959425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[779]: 0.062023675 - core[0].svPrint(26), plen 69: [msg: I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768 +EVENT[791]: 0.062677350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[792]: 0.062693275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[793]: 0.062745825 - core[0].svPrint(26), plen 69: [msg: I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30 , lvl: 0, unused: 0] -[0.062023675] LOG: I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768 -EVENT[780]: 0.062041475 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[781]: 0.062054600 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[782]: 0.062054600 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[783]: 0.062070800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[784]: 0.062081675 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[785]: 0.062092450 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[786]: 0.062106525 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[787]: 0.062117350 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[788]: 0.062128225 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[789]: 0.062140100 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[790]: 0.062150525 - core[0].svIdle(17), plen 0: [] -EVENT[791]: 0.062162975 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[792]: 0.062179175 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[793]: 0.062242725 - core[1].svPrint(26), plen 63: [msg: I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768 +[0.062745825] LOG: I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30 +EVENT[794]: 0.062759275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[795]: 0.062772500 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[796]: 0.062772500 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[797]: 0.062792925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[798]: 0.062803875 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[799]: 0.062814650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[800]: 0.062828550 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[801]: 0.062839350 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[802]: 0.062850075 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[803]: 0.062862300 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[804]: 0.062872475 - core[0].svIdle(17), plen 0: [] +EVENT[805]: 0.062884375 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[806]: 0.062900650 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[807]: 0.062948525 - core[1].svPrint(26), plen 63: [msg: I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30 , lvl: 0, unused: 0] -[0.062242725] LOG: I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768 -EVENT[794]: 0.062263725 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461096, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.062263725] HEAP: Freed bytes @ 0x3ffbb768 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.062948525] LOG: I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30 +EVENT[808]: 0.062969750 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458992, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.062969750] HEAP: Freed bytes @ 0x3ffbaf30 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[795]: 0.062294025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[796]: 0.062305500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[797]: 0.062322200 - core[1].svIdle(17), plen 0: [] -EVENT[798]: 0.062669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[799]: 0.062682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[800]: 0.062698425 - core[1].svIdle(17), plen 0: [] -EVENT[801]: 0.062813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[802]: 0.062828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[803]: 0.062828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[804]: 0.062840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[805]: 0.062856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[806]: 0.062891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461096, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.062891850] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc1" on core 0 by: +EVENT[809]: 0.062997025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[810]: 0.063008475 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[811]: 0.063025175 - core[1].svIdle(17), plen 0: [] +EVENT[812]: 0.063425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[813]: 0.063439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[814]: 0.063455150 - core[1].svIdle(17), plen 0: [] +EVENT[815]: 0.063546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[816]: 0.063561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[817]: 0.063561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[818]: 0.063573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[819]: 0.063573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[820]: 0.063586050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[821]: 0.063601725 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[822]: 0.063638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.063638150] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[807]: 0.062926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461112, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.062926275] HEAP: Allocated 12 bytes @ 0x3ffbb778 from task "alloc1" on core 0 by: +EVENT[823]: 0.063677800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459008, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.063677800] HEAP: Allocated 12 bytes @ 0x3ffbaf40 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[808]: 0.062943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[809]: 0.062959425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[810]: 0.063025900 - core[0].svPrint(26), plen 70: [msg: I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778 +EVENT[824]: 0.063694725 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[825]: 0.063710750 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[826]: 0.063765475 - core[0].svPrint(26), plen 70: [msg: I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40 , lvl: 0, unused: 0] -[0.063025900] LOG: I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778 -EVENT[811]: 0.063039450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[812]: 0.063056850 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[813]: 0.063056850 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[814]: 0.063073175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[815]: 0.063084025 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[816]: 0.063094775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[817]: 0.063108500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[818]: 0.063119350 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[819]: 0.063130175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[820]: 0.063142025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[821]: 0.063152300 - core[0].svIdle(17), plen 0: [] -EVENT[822]: 0.063163775 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[823]: 0.063180075 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[824]: 0.063243525 - core[1].svPrint(26), plen 63: [msg: I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778 -, lvl: 0, unused: 0] -[0.063243525] LOG: I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778 -EVENT[825]: 0.063264675 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461112, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.063264675] HEAP: Freed bytes @ 0x3ffbb778 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[826]: 0.063291675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[827]: 0.063303100 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[828]: 0.063319675 - core[1].svIdle(17), plen 0: [] -EVENT[829]: 0.063669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[830]: 0.063682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[831]: 0.063698525 - core[1].svIdle(17), plen 0: [] -EVENT[832]: 0.063813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[833]: 0.063828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[834]: 0.063828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[835]: 0.063840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[836]: 0.063856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[837]: 0.063892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461112, size: 9, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.063892175] HEAP: Allocated 9 bytes @ 0x3ffbb778 from task "alloc2" on core 0 by: +[0.063765475] LOG: I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40 +EVENT[827]: 0.063778900 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[828]: 0.063792150 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[829]: 0.063792150 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[830]: 0.063808625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[831]: 0.063819475 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[832]: 0.063830300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[833]: 0.063844100 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[834]: 0.063855800 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[835]: 0.063867475 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[836]: 0.063880350 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[837]: 0.063892150 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[838]: 0.063904750 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[839]: 0.063926350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[840]: 0.063937800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459024, size: 9, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.063937800] HEAP: Allocated 9 bytes @ 0x3ffbaf50 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[838]: 0.063930700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461128, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.063930700] HEAP: Allocated 18 bytes @ 0x3ffbb788 from task "alloc2" on core 0 by: +EVENT[841]: 0.063979200 - core[1].svPrint(26), plen 63: [msg: I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40 +, lvl: 0, unused: 0] +[0.063979200] LOG: I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40 +EVENT[842]: 0.063991300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.063991300] HEAP: Allocated 18 bytes @ 0x3ffbaf60 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[839]: 0.063947725 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[840]: 0.063963700 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[841]: 0.064034050 - core[0].svPrint(26), plen 70: [msg: I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788 -, lvl: 0, unused: 0] -[0.064034050] LOG: I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788 -EVENT[842]: 0.064047650 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[843]: 0.064060875 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[844]: 0.064060875 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[845]: 0.064077175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[846]: 0.064088025 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[847]: 0.064098800 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[848]: 0.064112775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[849]: 0.064123600 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[850]: 0.064134475 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[851]: 0.064146325 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[852]: 0.064157625 - core[0].svIdle(17), plen 0: [] -EVENT[853]: 0.064169250 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[854]: 0.064189700 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[855]: 0.064253250 - core[1].svPrint(26), plen 63: [msg: I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788 -, lvl: 0, unused: 0] -[0.064253250] LOG: I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788 -EVENT[856]: 0.064274450 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461128, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.064274450] HEAP: Freed bytes @ 0x3ffbb788 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[843]: 0.064005175 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459008, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.064005175] HEAP: Freed bytes @ 0x3ffbaf40 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[857]: 0.064301350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[858]: 0.064312775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[859]: 0.064329350 - core[1].svIdle(17), plen 0: [] -EVENT[860]: 0.064669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[861]: 0.064682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[862]: 0.064698525 - core[1].svIdle(17), plen 0: [] -EVENT[863]: 0.064813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[864]: 0.064828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[865]: 0.064843775 - core[0].svIdle(17), plen 0: [] -EVENT[866]: 0.065669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[867]: 0.065682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[868]: 0.065698325 - core[1].svIdle(17), plen 0: [] -EVENT[869]: 0.065813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[870]: 0.065828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[871]: 0.065843775 - core[0].svIdle(17), plen 0: [] -EVENT[872]: 0.066669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[873]: 0.066682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[874]: 0.066698100 - core[1].svIdle(17), plen 0: [] -EVENT[875]: 0.066813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[876]: 0.066828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[877]: 0.066843775 - core[0].svIdle(17), plen 0: [] -EVENT[878]: 0.067669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[879]: 0.067682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[880]: 0.067698075 - core[1].svIdle(17), plen 0: [] -EVENT[881]: 0.067813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[882]: 0.067828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[883]: 0.067843825 - core[0].svIdle(17), plen 0: [] -EVENT[884]: 0.068669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[885]: 0.068682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[886]: 0.068698075 - core[1].svIdle(17), plen 0: [] -EVENT[887]: 0.068813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[888]: 0.068828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[889]: 0.068843775 - core[0].svIdle(17), plen 0: [] -EVENT[890]: 0.069669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[891]: 0.069682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[892]: 0.069698325 - core[1].svIdle(17), plen 0: [] -EVENT[893]: 0.069813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[894]: 0.069828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[895]: 0.069848100 - core[0].svIdle(17), plen 0: [] -EVENT[896]: 0.070669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[897]: 0.070682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[898]: 0.070698075 - core[1].svIdle(17), plen 0: [] -EVENT[899]: 0.070813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[900]: 0.070828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[901]: 0.070843775 - core[0].svIdle(17), plen 0: [] -EVENT[902]: 0.071669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[903]: 0.071682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[904]: 0.071698325 - core[1].svIdle(17), plen 0: [] -EVENT[905]: 0.071813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[906]: 0.071828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[907]: 0.071843775 - core[0].svIdle(17), plen 0: [] -EVENT[908]: 0.072669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[909]: 0.072682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[910]: 0.072698100 - core[1].svIdle(17), plen 0: [] -EVENT[911]: 0.072813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[912]: 0.072828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[913]: 0.072843775 - core[0].svIdle(17), plen 0: [] -EVENT[914]: 0.073669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[915]: 0.073682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[916]: 0.073698075 - core[1].svIdle(17), plen 0: [] -EVENT[917]: 0.073813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[918]: 0.073828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[919]: 0.073843825 - core[0].svIdle(17), plen 0: [] -EVENT[920]: 0.074669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[921]: 0.074682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[922]: 0.074698075 - core[1].svIdle(17), plen 0: [] -EVENT[923]: 0.074813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[924]: 0.074828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[925]: 0.074843775 - core[0].svIdle(17), plen 0: [] -EVENT[926]: 0.075669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[927]: 0.075682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[928]: 0.075698325 - core[1].svIdle(17), plen 0: [] -EVENT[929]: 0.075813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[930]: 0.075828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[931]: 0.075843775 - core[0].svIdle(17), plen 0: [] -EVENT[932]: 0.076669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[933]: 0.076682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[934]: 0.076698100 - core[1].svIdle(17), plen 0: [] -EVENT[935]: 0.076813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[936]: 0.076828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[937]: 0.076843775 - core[0].svIdle(17), plen 0: [] -EVENT[938]: 0.077669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[939]: 0.077682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[940]: 0.077698075 - core[1].svIdle(17), plen 0: [] -EVENT[941]: 0.077813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[942]: 0.077828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[943]: 0.077843825 - core[0].svIdle(17), plen 0: [] -EVENT[944]: 0.078669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[945]: 0.078682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[946]: 0.078698075 - core[1].svIdle(17), plen 0: [] -EVENT[947]: 0.078813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[948]: 0.078828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[949]: 0.078843775 - core[0].svIdle(17), plen 0: [] -EVENT[950]: 0.079669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[951]: 0.079682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[952]: 0.079698325 - core[1].svIdle(17), plen 0: [] -EVENT[953]: 0.079813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[954]: 0.079828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[955]: 0.079843775 - core[0].svIdle(17), plen 0: [] -EVENT[956]: 0.080669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[957]: 0.080682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[958]: 0.080698100 - core[1].svIdle(17), plen 0: [] -EVENT[959]: 0.080813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[960]: 0.080828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[961]: 0.080843775 - core[0].svIdle(17), plen 0: [] -EVENT[962]: 0.081669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[963]: 0.081682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[964]: 0.081698075 - core[1].svIdle(17), plen 0: [] -EVENT[965]: 0.081813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[966]: 0.081828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[967]: 0.081843825 - core[0].svIdle(17), plen 0: [] -EVENT[968]: 0.082669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[969]: 0.082682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[970]: 0.082698325 - core[1].svIdle(17), plen 0: [] -EVENT[971]: 0.082813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[972]: 0.082828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[973]: 0.082843775 - core[0].svIdle(17), plen 0: [] -EVENT[974]: 0.083669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[975]: 0.083682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[976]: 0.083698100 - core[1].svIdle(17), plen 0: [] -EVENT[977]: 0.083813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[978]: 0.083828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[979]: 0.083843775 - core[0].svIdle(17), plen 0: [] -EVENT[980]: 0.084669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[981]: 0.084682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[982]: 0.084698075 - core[1].svIdle(17), plen 0: [] -EVENT[983]: 0.084813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[984]: 0.084828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[985]: 0.084843825 - core[0].svIdle(17), plen 0: [] -EVENT[986]: 0.085669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[987]: 0.085682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[988]: 0.085698075 - core[1].svIdle(17), plen 0: [] -EVENT[989]: 0.085813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[990]: 0.085828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[991]: 0.085843775 - core[0].svIdle(17), plen 0: [] -EVENT[992]: 0.086669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[993]: 0.086682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[994]: 0.086698325 - core[1].svIdle(17), plen 0: [] -EVENT[995]: 0.086813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[996]: 0.086828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[997]: 0.086843775 - core[0].svIdle(17), plen 0: [] -EVENT[998]: 0.087669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[999]: 0.087682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1000]: 0.087698100 - core[1].svIdle(17), plen 0: [] -EVENT[1001]: 0.087813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1002]: 0.087828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1003]: 0.087843775 - core[0].svIdle(17), plen 0: [] -EVENT[1004]: 0.088669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1005]: 0.088682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1006]: 0.088698075 - core[1].svIdle(17), plen 0: [] -EVENT[1007]: 0.088813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1008]: 0.088828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1009]: 0.088843825 - core[0].svIdle(17), plen 0: [] -EVENT[1010]: 0.089669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1011]: 0.089682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1012]: 0.089698075 - core[1].svIdle(17), plen 0: [] -EVENT[1013]: 0.089813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1014]: 0.089828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1015]: 0.089843775 - core[0].svIdle(17), plen 0: [] -EVENT[1016]: 0.090669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1017]: 0.090682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1018]: 0.090698325 - core[1].svIdle(17), plen 0: [] -EVENT[1019]: 0.090813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1020]: 0.090828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1021]: 0.090843775 - core[0].svIdle(17), plen 0: [] -EVENT[1022]: 0.091669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1023]: 0.091682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1024]: 0.091698100 - core[1].svIdle(17), plen 0: [] -EVENT[1025]: 0.091813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1026]: 0.091828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1027]: 0.091828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1028]: 0.091840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1029]: 0.091856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1030]: 0.091892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461128, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.091892175] HEAP: Allocated 4 bytes @ 0x3ffbb788 from task "alloc0" on core 0 by: +EVENT[844]: 0.064017600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[845]: 0.064036500 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[846]: 0.064047725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[847]: 0.064058500 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[848]: 0.064076650 - core[1].svIdle(17), plen 0: [] +EVENT[849]: 0.064104450 - core[0].svPrint(26), plen 70: [msg: I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60 +, lvl: 0, unused: 0] +[0.064104450] LOG: I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60 +EVENT[850]: 0.064122050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[851]: 0.064135300 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[852]: 0.064135300 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[853]: 0.064151650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[854]: 0.064162500 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[855]: 0.064173325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[856]: 0.064187250 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[857]: 0.064198150 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[858]: 0.064209025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[859]: 0.064220950 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[860]: 0.064232175 - core[0].svIdle(17), plen 0: [] +EVENT[861]: 0.064244000 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[862]: 0.064260225 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[863]: 0.064308100 - core[1].svPrint(26), plen 63: [msg: I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60 +, lvl: 0, unused: 0] +[0.064308100] LOG: I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60 +EVENT[864]: 0.064329500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459040, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.064329500] HEAP: Freed bytes @ 0x3ffbaf60 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[865]: 0.064360850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[866]: 0.064372300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[867]: 0.064389000 - core[1].svIdle(17), plen 0: [] +EVENT[868]: 0.064425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[869]: 0.064439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[870]: 0.064455150 - core[1].svIdle(17), plen 0: [] +EVENT[871]: 0.064546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[872]: 0.064562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[873]: 0.064577425 - core[0].svIdle(17), plen 0: [] +EVENT[874]: 0.065425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[875]: 0.065439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[876]: 0.065454550 - core[1].svIdle(17), plen 0: [] +EVENT[877]: 0.065546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[878]: 0.065562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[879]: 0.065577125 - core[0].svIdle(17), plen 0: [] +EVENT[880]: 0.066425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[881]: 0.066439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[882]: 0.066454675 - core[1].svIdle(17), plen 0: [] +EVENT[883]: 0.066546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[884]: 0.066562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[885]: 0.066577150 - core[0].svIdle(17), plen 0: [] +EVENT[886]: 0.067425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[887]: 0.067439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[888]: 0.067454600 - core[1].svIdle(17), plen 0: [] +EVENT[889]: 0.067546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[890]: 0.067562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[891]: 0.067577125 - core[0].svIdle(17), plen 0: [] +EVENT[892]: 0.068425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[893]: 0.068439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[894]: 0.068454550 - core[1].svIdle(17), plen 0: [] +EVENT[895]: 0.068546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[896]: 0.068562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[897]: 0.068577425 - core[0].svIdle(17), plen 0: [] +EVENT[898]: 0.069425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[899]: 0.069439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[900]: 0.069454550 - core[1].svIdle(17), plen 0: [] +EVENT[901]: 0.069546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[902]: 0.069562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[903]: 0.069577125 - core[0].svIdle(17), plen 0: [] +EVENT[904]: 0.070425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[905]: 0.070439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[906]: 0.070454675 - core[1].svIdle(17), plen 0: [] +EVENT[907]: 0.070546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[908]: 0.070562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[909]: 0.070577150 - core[0].svIdle(17), plen 0: [] +EVENT[910]: 0.071425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[911]: 0.071439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[912]: 0.071454600 - core[1].svIdle(17), plen 0: [] +EVENT[913]: 0.071546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[914]: 0.071562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[915]: 0.071577125 - core[0].svIdle(17), plen 0: [] +EVENT[916]: 0.072425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[917]: 0.072439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[918]: 0.072454550 - core[1].svIdle(17), plen 0: [] +EVENT[919]: 0.072546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[920]: 0.072562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[921]: 0.072577425 - core[0].svIdle(17), plen 0: [] +EVENT[922]: 0.073425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[923]: 0.073439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[924]: 0.073454550 - core[1].svIdle(17), plen 0: [] +EVENT[925]: 0.073546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[926]: 0.073562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[927]: 0.073577125 - core[0].svIdle(17), plen 0: [] +EVENT[928]: 0.074425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[929]: 0.074443775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[930]: 0.074458900 - core[1].svIdle(17), plen 0: [] +EVENT[931]: 0.074546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[932]: 0.074562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[933]: 0.074577125 - core[0].svIdle(17), plen 0: [] +EVENT[934]: 0.075425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[935]: 0.075439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[936]: 0.075454550 - core[1].svIdle(17), plen 0: [] +EVENT[937]: 0.075546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[938]: 0.075562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[939]: 0.075577425 - core[0].svIdle(17), plen 0: [] +EVENT[940]: 0.076425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[941]: 0.076439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[942]: 0.076454550 - core[1].svIdle(17), plen 0: [] +EVENT[943]: 0.076546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[944]: 0.076562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[945]: 0.076577125 - core[0].svIdle(17), plen 0: [] +EVENT[946]: 0.077425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[947]: 0.077439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[948]: 0.077454675 - core[1].svIdle(17), plen 0: [] +EVENT[949]: 0.077546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[950]: 0.077562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[951]: 0.077577150 - core[0].svIdle(17), plen 0: [] +EVENT[952]: 0.078425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[953]: 0.078439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[954]: 0.078454600 - core[1].svIdle(17), plen 0: [] +EVENT[955]: 0.078546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[956]: 0.078562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[957]: 0.078577125 - core[0].svIdle(17), plen 0: [] +EVENT[958]: 0.079425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[959]: 0.079439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[960]: 0.079454550 - core[1].svIdle(17), plen 0: [] +EVENT[961]: 0.079546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[962]: 0.079562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[963]: 0.079577425 - core[0].svIdle(17), plen 0: [] +EVENT[964]: 0.080425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[965]: 0.080439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[966]: 0.080454550 - core[1].svIdle(17), plen 0: [] +EVENT[967]: 0.080546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[968]: 0.080562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[969]: 0.080577125 - core[0].svIdle(17), plen 0: [] +EVENT[970]: 0.081425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[971]: 0.081439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[972]: 0.081454675 - core[1].svIdle(17), plen 0: [] +EVENT[973]: 0.081546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[974]: 0.081562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[975]: 0.081577150 - core[0].svIdle(17), plen 0: [] +EVENT[976]: 0.082425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[977]: 0.082439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[978]: 0.082454600 - core[1].svIdle(17), plen 0: [] +EVENT[979]: 0.082546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[980]: 0.082562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[981]: 0.082577125 - core[0].svIdle(17), plen 0: [] +EVENT[982]: 0.083425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[983]: 0.083439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[984]: 0.083454550 - core[1].svIdle(17), plen 0: [] +EVENT[985]: 0.083546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[986]: 0.083562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[987]: 0.083577425 - core[0].svIdle(17), plen 0: [] +EVENT[988]: 0.084425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[989]: 0.084439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[990]: 0.084454550 - core[1].svIdle(17), plen 0: [] +EVENT[991]: 0.084546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[992]: 0.084562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[993]: 0.084577125 - core[0].svIdle(17), plen 0: [] +EVENT[994]: 0.085425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[995]: 0.085439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[996]: 0.085454675 - core[1].svIdle(17), plen 0: [] +EVENT[997]: 0.085546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[998]: 0.085562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[999]: 0.085577150 - core[0].svIdle(17), plen 0: [] +EVENT[1000]: 0.086425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1001]: 0.086443675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1002]: 0.086458825 - core[1].svIdle(17), plen 0: [] +EVENT[1003]: 0.086546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1004]: 0.086562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1005]: 0.086577125 - core[0].svIdle(17), plen 0: [] +EVENT[1006]: 0.087425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1007]: 0.087439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1008]: 0.087454550 - core[1].svIdle(17), plen 0: [] +EVENT[1009]: 0.087546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1010]: 0.087562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1011]: 0.087577425 - core[0].svIdle(17), plen 0: [] +EVENT[1012]: 0.088425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1013]: 0.088439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1014]: 0.088454550 - core[1].svIdle(17), plen 0: [] +EVENT[1015]: 0.088546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1016]: 0.088562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1017]: 0.088577125 - core[0].svIdle(17), plen 0: [] +EVENT[1018]: 0.089425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1019]: 0.089439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1020]: 0.089454675 - core[1].svIdle(17), plen 0: [] +EVENT[1021]: 0.089546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1022]: 0.089562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1023]: 0.089577150 - core[0].svIdle(17), plen 0: [] +EVENT[1024]: 0.090425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1025]: 0.090439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1026]: 0.090454600 - core[1].svIdle(17), plen 0: [] +EVENT[1027]: 0.090546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1028]: 0.090562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1029]: 0.090577125 - core[0].svIdle(17), plen 0: [] +EVENT[1030]: 0.091425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1031]: 0.091439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1032]: 0.091454550 - core[1].svIdle(17), plen 0: [] +EVENT[1033]: 0.091546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1034]: 0.091562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1035]: 0.091577425 - core[0].svIdle(17), plen 0: [] +EVENT[1036]: 0.092425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1037]: 0.092439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1038]: 0.092454550 - core[1].svIdle(17), plen 0: [] +EVENT[1039]: 0.092546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1040]: 0.092561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1041]: 0.092561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1042]: 0.092574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1043]: 0.092590225 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1044]: 0.092625300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459008, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.092625300] HEAP: Allocated 4 bytes @ 0x3ffbaf40 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1031]: 0.091930000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461144, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.091930000] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc0" on core 0 by: +EVENT[1045]: 0.092660875 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.092660875] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1032]: 0.091946900 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1033]: 0.091962875 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1034]: 0.092027050 - core[0].svPrint(26), plen 69: [msg: I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798 +EVENT[1046]: 0.092677850 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1047]: 0.092693825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1048]: 0.092750600 - core[0].svPrint(26), plen 69: [msg: I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60 , lvl: 0, unused: 0] -[0.092027050] LOG: I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798 -EVENT[1035]: 0.092040625 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1036]: 0.092053750 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1037]: 0.092053750 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1038]: 0.092069950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1039]: 0.092080825 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1040]: 0.092091600 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1041]: 0.092105500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1042]: 0.092116300 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1043]: 0.092127150 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1044]: 0.092139050 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1045]: 0.092149275 - core[0].svIdle(17), plen 0: [] -EVENT[1046]: 0.092160725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1047]: 0.092181000 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1048]: 0.092244550 - core[1].svPrint(26), plen 63: [msg: I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798 +[0.092750600] LOG: I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60 +EVENT[1049]: 0.092764050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1050]: 0.092777275 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1051]: 0.092777275 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1052]: 0.092793525 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1053]: 0.092804475 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1054]: 0.092815225 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1055]: 0.092828975 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1056]: 0.092839700 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1057]: 0.092850500 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1058]: 0.092862500 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1059]: 0.092872725 - core[0].svIdle(17), plen 0: [] +EVENT[1060]: 0.092884475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1061]: 0.092900750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1062]: 0.092948525 - core[1].svPrint(26), plen 63: [msg: I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60 , lvl: 0, unused: 0] -[0.092244550] LOG: I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798 -EVENT[1049]: 0.092265750 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461144, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.092265750] HEAP: Freed bytes @ 0x3ffbb798 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.092948525] LOG: I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60 +EVENT[1063]: 0.092969900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459040, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.092969900] HEAP: Freed bytes @ 0x3ffbaf60 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1050]: 0.092292625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1051]: 0.092304050 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1052]: 0.092320625 - core[1].svIdle(17), plen 0: [] -EVENT[1053]: 0.092669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1054]: 0.092682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1055]: 0.092698525 - core[1].svIdle(17), plen 0: [] -EVENT[1056]: 0.092813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1057]: 0.092828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1058]: 0.092828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1059]: 0.092840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1060]: 0.092856775 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1061]: 0.092892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461144, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.092892175] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc1" on core 0 by: +EVENT[1064]: 0.093001350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1065]: 0.093012800 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1066]: 0.093029500 - core[1].svIdle(17), plen 0: [] +EVENT[1067]: 0.093425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1068]: 0.093439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1069]: 0.093455150 - core[1].svIdle(17), plen 0: [] +EVENT[1070]: 0.093546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1071]: 0.093561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1072]: 0.093561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1073]: 0.093573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1074]: 0.093573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1075]: 0.093586050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1076]: 0.093601725 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1077]: 0.093638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.093638150] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1062]: 0.092926700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461160, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.092926700] HEAP: Allocated 16 bytes @ 0x3ffbb7a8 from task "alloc1" on core 0 by: +EVENT[1078]: 0.093673575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459056, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.093673575] HEAP: Allocated 16 bytes @ 0x3ffbaf70 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1063]: 0.092943650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1064]: 0.092963825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1065]: 0.093030300 - core[0].svPrint(26), plen 70: [msg: I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8 +EVENT[1079]: 0.093690525 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1080]: 0.093706525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1081]: 0.093761375 - core[0].svPrint(26), plen 70: [msg: I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70 , lvl: 0, unused: 0] -[0.093030300] LOG: I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8 -EVENT[1066]: 0.093043950 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1067]: 0.093057125 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1068]: 0.093057125 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1069]: 0.093073450 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1070]: 0.093084300 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1071]: 0.093095050 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1072]: 0.093108775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1073]: 0.093119625 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1074]: 0.093130450 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1075]: 0.093142300 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1076]: 0.093152575 - core[0].svIdle(17), plen 0: [] -EVENT[1077]: 0.093164050 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1078]: 0.093180350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1079]: 0.093243800 - core[1].svPrint(26), plen 63: [msg: I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8 -, lvl: 0, unused: 0] -[0.093243800] LOG: I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8 -EVENT[1080]: 0.093268825 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461160, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.093268825] HEAP: Freed bytes @ 0x3ffbb7a8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1081]: 0.093295825 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1082]: 0.093307375 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1083]: 0.093323950 - core[1].svIdle(17), plen 0: [] -EVENT[1084]: 0.093669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1085]: 0.093682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1086]: 0.093698525 - core[1].svIdle(17), plen 0: [] -EVENT[1087]: 0.093813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1088]: 0.093828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1089]: 0.093828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1090]: 0.093840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1091]: 0.093856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1092]: 0.093892000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461160, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.093892000] HEAP: Allocated 12 bytes @ 0x3ffbb7a8 from task "alloc2" on core 0 by: +[0.093761375] LOG: I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70 +EVENT[1082]: 0.093778675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1083]: 0.093791925 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1084]: 0.093791925 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1085]: 0.093808275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1086]: 0.093819125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1087]: 0.093829950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1088]: 0.093843750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1089]: 0.093855475 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1090]: 0.093866850 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1091]: 0.093878850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1092]: 0.093890525 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1093]: 0.093903125 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1094]: 0.093921750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1095]: 0.093933750 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459076, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.093933750] HEAP: Allocated 12 bytes @ 0x3ffbaf84 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1093]: 0.093926400 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461176, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.093926400] HEAP: Allocated 24 bytes @ 0x3ffbb7b8 from task "alloc2" on core 0 by: +EVENT[1096]: 0.093974800 - core[1].svPrint(26), plen 63: [msg: I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70 +, lvl: 0, unused: 0] +[0.093974800] LOG: I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70 +EVENT[1097]: 0.093990750 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.093990750] HEAP: Allocated 24 bytes @ 0x3ffbaf94 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1094]: 0.093943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1095]: 0.093959425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1096]: 0.094029750 - core[0].svPrint(26), plen 70: [msg: I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8 -, lvl: 0, unused: 0] -[0.094029750] LOG: I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8 -EVENT[1097]: 0.094047575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1098]: 0.094060800 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1099]: 0.094060800 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1100]: 0.094077125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1101]: 0.094087975 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1102]: 0.094098725 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1103]: 0.094112450 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1104]: 0.094123350 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1105]: 0.094134175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1106]: 0.094146025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1107]: 0.094157325 - core[0].svIdle(17), plen 0: [] -EVENT[1108]: 0.094168950 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1109]: 0.094185350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1110]: 0.094248900 - core[1].svPrint(26), plen 63: [msg: I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8 -, lvl: 0, unused: 0] -[0.094248900] LOG: I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8 -EVENT[1111]: 0.094270100 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461176, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.094270100] HEAP: Freed bytes @ 0x3ffbb7b8 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1098]: 0.094005125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459056, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.094005125] HEAP: Freed bytes @ 0x3ffbaf70 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1112]: 0.094301100 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1113]: 0.094312575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1114]: 0.094329275 - core[1].svIdle(17), plen 0: [] -EVENT[1115]: 0.094669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1116]: 0.094682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1117]: 0.094698425 - core[1].svIdle(17), plen 0: [] -EVENT[1118]: 0.094813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1119]: 0.094828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1120]: 0.094843825 - core[0].svIdle(17), plen 0: [] -EVENT[1121]: 0.095669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1122]: 0.095682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1123]: 0.095698075 - core[1].svIdle(17), plen 0: [] -EVENT[1124]: 0.095813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1125]: 0.095828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1126]: 0.095843775 - core[0].svIdle(17), plen 0: [] -EVENT[1127]: 0.096669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1128]: 0.096682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1129]: 0.096698325 - core[1].svIdle(17), plen 0: [] -EVENT[1130]: 0.096813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1131]: 0.096828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1132]: 0.096843775 - core[0].svIdle(17), plen 0: [] -EVENT[1133]: 0.097669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1134]: 0.097682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1135]: 0.097698100 - core[1].svIdle(17), plen 0: [] -EVENT[1136]: 0.097813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1137]: 0.097828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1138]: 0.097843775 - core[0].svIdle(17), plen 0: [] -EVENT[1139]: 0.098669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1140]: 0.098682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1141]: 0.098698075 - core[1].svIdle(17), plen 0: [] -EVENT[1142]: 0.098813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1143]: 0.098828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1144]: 0.098843825 - core[0].svIdle(17), plen 0: [] -EVENT[1145]: 0.099669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1146]: 0.099682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1147]: 0.099698075 - core[1].svIdle(17), plen 0: [] -EVENT[1148]: 0.099813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1149]: 0.099828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1150]: 0.099843775 - core[0].svIdle(17), plen 0: [] -EVENT[1151]: 0.100669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1152]: 0.100682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1153]: 0.100698325 - core[1].svIdle(17), plen 0: [] -EVENT[1154]: 0.100813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1155]: 0.100828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1156]: 0.100843775 - core[0].svIdle(17), plen 0: [] -EVENT[1157]: 0.101669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1158]: 0.101682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1159]: 0.101698100 - core[1].svIdle(17), plen 0: [] -EVENT[1160]: 0.101813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1161]: 0.101828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1162]: 0.101843775 - core[0].svIdle(17), plen 0: [] -EVENT[1163]: 0.102669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1164]: 0.102682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1165]: 0.102698075 - core[1].svIdle(17), plen 0: [] -EVENT[1166]: 0.102813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1167]: 0.102828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1168]: 0.102843825 - core[0].svIdle(17), plen 0: [] -EVENT[1169]: 0.103669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1170]: 0.103682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1171]: 0.103698075 - core[1].svIdle(17), plen 0: [] -EVENT[1172]: 0.103813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1173]: 0.103828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1174]: 0.103843775 - core[0].svIdle(17), plen 0: [] -EVENT[1175]: 0.104669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1176]: 0.104686550 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1177]: 0.104701825 - core[1].svIdle(17), plen 0: [] -EVENT[1178]: 0.104813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1179]: 0.104828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1180]: 0.104843775 - core[0].svIdle(17), plen 0: [] -EVENT[1181]: 0.105669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1182]: 0.105682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1183]: 0.105698075 - core[1].svIdle(17), plen 0: [] -EVENT[1184]: 0.105813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1185]: 0.105828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1186]: 0.105843825 - core[0].svIdle(17), plen 0: [] -EVENT[1187]: 0.106669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1188]: 0.106682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1189]: 0.106698075 - core[1].svIdle(17), plen 0: [] -EVENT[1190]: 0.106813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1191]: 0.106828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1192]: 0.106843775 - core[0].svIdle(17), plen 0: [] -EVENT[1193]: 0.107669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1194]: 0.107682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1195]: 0.107698325 - core[1].svIdle(17), plen 0: [] -EVENT[1196]: 0.107813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1197]: 0.107828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1198]: 0.107843775 - core[0].svIdle(17), plen 0: [] -EVENT[1199]: 0.108669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1200]: 0.108682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1201]: 0.108698100 - core[1].svIdle(17), plen 0: [] -EVENT[1202]: 0.108813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1203]: 0.108828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1204]: 0.108843775 - core[0].svIdle(17), plen 0: [] -EVENT[1205]: 0.109669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1206]: 0.109682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1207]: 0.109698075 - core[1].svIdle(17), plen 0: [] -EVENT[1208]: 0.109813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1209]: 0.109828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1210]: 0.109843825 - core[0].svIdle(17), plen 0: [] -EVENT[1211]: 0.110669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1212]: 0.110682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1213]: 0.110698075 - core[1].svIdle(17), plen 0: [] -EVENT[1214]: 0.110813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1215]: 0.110828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1216]: 0.110843775 - core[0].svIdle(17), plen 0: [] -EVENT[1217]: 0.111669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1218]: 0.111682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1219]: 0.111698325 - core[1].svIdle(17), plen 0: [] -EVENT[1220]: 0.111813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1221]: 0.111828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1222]: 0.111843775 - core[0].svIdle(17), plen 0: [] -EVENT[1223]: 0.112669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1224]: 0.112682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1225]: 0.112698100 - core[1].svIdle(17), plen 0: [] -EVENT[1226]: 0.112813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1227]: 0.112828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1228]: 0.112843775 - core[0].svIdle(17), plen 0: [] -EVENT[1229]: 0.113669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1230]: 0.113682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1231]: 0.113698075 - core[1].svIdle(17), plen 0: [] -EVENT[1232]: 0.113813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1233]: 0.113828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1234]: 0.113843825 - core[0].svIdle(17), plen 0: [] -EVENT[1235]: 0.114669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1236]: 0.114682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1237]: 0.114698075 - core[1].svIdle(17), plen 0: [] -EVENT[1238]: 0.114813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1239]: 0.114828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1240]: 0.114843775 - core[0].svIdle(17), plen 0: [] -EVENT[1241]: 0.115669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1242]: 0.115682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1243]: 0.115698325 - core[1].svIdle(17), plen 0: [] -EVENT[1244]: 0.115813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1245]: 0.115828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1246]: 0.115843775 - core[0].svIdle(17), plen 0: [] -EVENT[1247]: 0.116669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1248]: 0.116687200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1249]: 0.116702350 - core[1].svIdle(17), plen 0: [] -EVENT[1250]: 0.116813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1251]: 0.116828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1252]: 0.116843775 - core[0].svIdle(17), plen 0: [] -EVENT[1253]: 0.117669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1254]: 0.117682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1255]: 0.117698075 - core[1].svIdle(17), plen 0: [] -EVENT[1256]: 0.117813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1257]: 0.117828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1258]: 0.117843825 - core[0].svIdle(17), plen 0: [] -EVENT[1259]: 0.118669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1260]: 0.118682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1261]: 0.118698075 - core[1].svIdle(17), plen 0: [] -EVENT[1262]: 0.118813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1263]: 0.118828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1264]: 0.118843775 - core[0].svIdle(17), plen 0: [] -EVENT[1265]: 0.119669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1266]: 0.119682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1267]: 0.119698325 - core[1].svIdle(17), plen 0: [] -EVENT[1268]: 0.119813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1269]: 0.119828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1270]: 0.119843775 - core[0].svIdle(17), plen 0: [] -EVENT[1271]: 0.120669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1272]: 0.120682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1273]: 0.120698100 - core[1].svIdle(17), plen 0: [] -EVENT[1274]: 0.120813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1275]: 0.120828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1276]: 0.120843775 - core[0].svIdle(17), plen 0: [] -EVENT[1277]: 0.121669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1278]: 0.121682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1279]: 0.121698075 - core[1].svIdle(17), plen 0: [] -EVENT[1280]: 0.121813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1281]: 0.121828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1282]: 0.121828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1283]: 0.121840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1284]: 0.121856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1285]: 0.121891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461176, size: 5, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.121891850] HEAP: Allocated 5 bytes @ 0x3ffbb7b8 from task "alloc0" on core 0 by: +EVENT[1099]: 0.094017575 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1100]: 0.094036725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1101]: 0.094047975 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1102]: 0.094058825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1103]: 0.094077100 - core[1].svIdle(17), plen 0: [] +EVENT[1104]: 0.094104950 - core[0].svPrint(26), plen 70: [msg: I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94 +, lvl: 0, unused: 0] +[0.094104950] LOG: I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94 +EVENT[1105]: 0.094118375 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1106]: 0.094135775 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1107]: 0.094135775 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1108]: 0.094152125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1109]: 0.094162975 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1110]: 0.094173800 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1111]: 0.094187600 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1112]: 0.094198350 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1113]: 0.094209150 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1114]: 0.094221100 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1115]: 0.094232325 - core[0].svIdle(17), plen 0: [] +EVENT[1116]: 0.094244150 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1117]: 0.094260400 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1118]: 0.094308175 - core[1].svPrint(26), plen 63: [msg: I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94 +, lvl: 0, unused: 0] +[0.094308175] LOG: I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94 +EVENT[1119]: 0.094329550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459092, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.094329550] HEAP: Freed bytes @ 0x3ffbaf94 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1120]: 0.094356975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1121]: 0.094368375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1122]: 0.094384950 - core[1].svIdle(17), plen 0: [] +EVENT[1123]: 0.094425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1124]: 0.094439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1125]: 0.094455150 - core[1].svIdle(17), plen 0: [] +EVENT[1126]: 0.094546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1127]: 0.094562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1128]: 0.094577125 - core[0].svIdle(17), plen 0: [] +EVENT[1129]: 0.095425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1130]: 0.095439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1131]: 0.095454550 - core[1].svIdle(17), plen 0: [] +EVENT[1132]: 0.095546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1133]: 0.095562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1134]: 0.095577425 - core[0].svIdle(17), plen 0: [] +EVENT[1135]: 0.096425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1136]: 0.096439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1137]: 0.096454550 - core[1].svIdle(17), plen 0: [] +EVENT[1138]: 0.096546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1139]: 0.096566350 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1140]: 0.096581550 - core[0].svIdle(17), plen 0: [] +EVENT[1141]: 0.097425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1142]: 0.097439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1143]: 0.097454550 - core[1].svIdle(17), plen 0: [] +EVENT[1144]: 0.097546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1145]: 0.097562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1146]: 0.097577125 - core[0].svIdle(17), plen 0: [] +EVENT[1147]: 0.098425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1148]: 0.098439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1149]: 0.098454675 - core[1].svIdle(17), plen 0: [] +EVENT[1150]: 0.098546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1151]: 0.098562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1152]: 0.098577150 - core[0].svIdle(17), plen 0: [] +EVENT[1153]: 0.099425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1154]: 0.099439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1155]: 0.099454600 - core[1].svIdle(17), plen 0: [] +EVENT[1156]: 0.099546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1157]: 0.099562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1158]: 0.099577125 - core[0].svIdle(17), plen 0: [] +EVENT[1159]: 0.100425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1160]: 0.100439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1161]: 0.100454550 - core[1].svIdle(17), plen 0: [] +EVENT[1162]: 0.100546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1163]: 0.100562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1164]: 0.100577425 - core[0].svIdle(17), plen 0: [] +EVENT[1165]: 0.101425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1166]: 0.101439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1167]: 0.101454550 - core[1].svIdle(17), plen 0: [] +EVENT[1168]: 0.101546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1169]: 0.101562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1170]: 0.101577125 - core[0].svIdle(17), plen 0: [] +EVENT[1171]: 0.102425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1172]: 0.102439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1173]: 0.102454675 - core[1].svIdle(17), plen 0: [] +EVENT[1174]: 0.102546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1175]: 0.102562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1176]: 0.102577150 - core[0].svIdle(17), plen 0: [] +EVENT[1177]: 0.103425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1178]: 0.103439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1179]: 0.103454600 - core[1].svIdle(17), plen 0: [] +EVENT[1180]: 0.103546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1181]: 0.103562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1182]: 0.103577125 - core[0].svIdle(17), plen 0: [] +EVENT[1183]: 0.104425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1184]: 0.104439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1185]: 0.104454550 - core[1].svIdle(17), plen 0: [] +EVENT[1186]: 0.104546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1187]: 0.104562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1188]: 0.104577425 - core[0].svIdle(17), plen 0: [] +EVENT[1189]: 0.105425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1190]: 0.105439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1191]: 0.105454550 - core[1].svIdle(17), plen 0: [] +EVENT[1192]: 0.105546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1193]: 0.105562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1194]: 0.105577125 - core[0].svIdle(17), plen 0: [] +EVENT[1195]: 0.106425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1196]: 0.106439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1197]: 0.106454675 - core[1].svIdle(17), plen 0: [] +EVENT[1198]: 0.106546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1199]: 0.106562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1200]: 0.106577150 - core[0].svIdle(17), plen 0: [] +EVENT[1201]: 0.107425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1202]: 0.107439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1203]: 0.107454600 - core[1].svIdle(17), plen 0: [] +EVENT[1204]: 0.107546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1205]: 0.107562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1206]: 0.107577125 - core[0].svIdle(17), plen 0: [] +EVENT[1207]: 0.108425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1208]: 0.108439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1209]: 0.108454550 - core[1].svIdle(17), plen 0: [] +EVENT[1210]: 0.108546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1211]: 0.108566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1212]: 0.108581550 - core[0].svIdle(17), plen 0: [] +EVENT[1213]: 0.109425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1214]: 0.109439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1215]: 0.109454550 - core[1].svIdle(17), plen 0: [] +EVENT[1216]: 0.109546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1217]: 0.109562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1218]: 0.109577125 - core[0].svIdle(17), plen 0: [] +EVENT[1219]: 0.110425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1220]: 0.110439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1221]: 0.110454675 - core[1].svIdle(17), plen 0: [] +EVENT[1222]: 0.110546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1223]: 0.110562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1224]: 0.110577150 - core[0].svIdle(17), plen 0: [] +EVENT[1225]: 0.111425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1226]: 0.111439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1227]: 0.111454600 - core[1].svIdle(17), plen 0: [] +EVENT[1228]: 0.111546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1229]: 0.111562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1230]: 0.111577125 - core[0].svIdle(17), plen 0: [] +EVENT[1231]: 0.112425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1232]: 0.112439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1233]: 0.112454550 - core[1].svIdle(17), plen 0: [] +EVENT[1234]: 0.112546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1235]: 0.112562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1236]: 0.112577425 - core[0].svIdle(17), plen 0: [] +EVENT[1237]: 0.113425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1238]: 0.113439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1239]: 0.113454550 - core[1].svIdle(17), plen 0: [] +EVENT[1240]: 0.113546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1241]: 0.113562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1242]: 0.113577125 - core[0].svIdle(17), plen 0: [] +EVENT[1243]: 0.114425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1244]: 0.114439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1245]: 0.114454675 - core[1].svIdle(17), plen 0: [] +EVENT[1246]: 0.114546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1247]: 0.114562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1248]: 0.114577150 - core[0].svIdle(17), plen 0: [] +EVENT[1249]: 0.115425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1250]: 0.115439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1251]: 0.115454600 - core[1].svIdle(17), plen 0: [] +EVENT[1252]: 0.115546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1253]: 0.115562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1254]: 0.115577125 - core[0].svIdle(17), plen 0: [] +EVENT[1255]: 0.116425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1256]: 0.116439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1257]: 0.116454550 - core[1].svIdle(17), plen 0: [] +EVENT[1258]: 0.116546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1259]: 0.116562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1260]: 0.116577425 - core[0].svIdle(17), plen 0: [] +EVENT[1261]: 0.117425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1262]: 0.117439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1263]: 0.117454550 - core[1].svIdle(17), plen 0: [] +EVENT[1264]: 0.117546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1265]: 0.117562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1266]: 0.117577125 - core[0].svIdle(17), plen 0: [] +EVENT[1267]: 0.118425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1268]: 0.118439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1269]: 0.118454675 - core[1].svIdle(17), plen 0: [] +EVENT[1270]: 0.118546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1271]: 0.118562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1272]: 0.118577150 - core[0].svIdle(17), plen 0: [] +EVENT[1273]: 0.119425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1274]: 0.119439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1275]: 0.119454600 - core[1].svIdle(17), plen 0: [] +EVENT[1276]: 0.119546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1277]: 0.119562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1278]: 0.119577125 - core[0].svIdle(17), plen 0: [] +EVENT[1279]: 0.120425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1280]: 0.120439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1281]: 0.120454550 - core[1].svIdle(17), plen 0: [] +EVENT[1282]: 0.120546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1283]: 0.120566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1284]: 0.120581550 - core[0].svIdle(17), plen 0: [] +EVENT[1285]: 0.121425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1286]: 0.121439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1287]: 0.121454550 - core[1].svIdle(17), plen 0: [] +EVENT[1288]: 0.121546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1289]: 0.121562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1290]: 0.121577125 - core[0].svIdle(17), plen 0: [] +EVENT[1291]: 0.122425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1292]: 0.122439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1293]: 0.122454675 - core[1].svIdle(17), plen 0: [] +EVENT[1294]: 0.122546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1295]: 0.122561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1296]: 0.122561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1297]: 0.122574250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1298]: 0.122589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1299]: 0.122624925 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459056, size: 5, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.122624925] HEAP: Allocated 5 bytes @ 0x3ffbaf70 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1286]: 0.121926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461192, size: 10, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.121926275] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc0" on core 0 by: +EVENT[1300]: 0.122660425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 10, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.122660425] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1287]: 0.121943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1288]: 0.121959425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1289]: 0.122029850 - core[0].svPrint(26), plen 70: [msg: I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8 +EVENT[1301]: 0.122677350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1302]: 0.122693275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1303]: 0.122748050 - core[0].svPrint(26), plen 70: [msg: I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94 , lvl: 0, unused: 0] -[0.122029850] LOG: I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8 -EVENT[1290]: 0.122047575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1291]: 0.122060800 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1292]: 0.122060800 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1293]: 0.122077050 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1294]: 0.122087900 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1295]: 0.122098675 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1296]: 0.122112500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1297]: 0.122123400 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1298]: 0.122134225 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1299]: 0.122146175 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1300]: 0.122156425 - core[0].svIdle(17), plen 0: [] -EVENT[1301]: 0.122167850 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1302]: 0.122184200 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1303]: 0.122247750 - core[1].svPrint(26), plen 63: [msg: I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8 +[0.122748050] LOG: I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94 +EVENT[1304]: 0.122761550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1305]: 0.122778975 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1306]: 0.122778975 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1307]: 0.122795250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1308]: 0.122806100 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1309]: 0.122816975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1310]: 0.122830800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1311]: 0.122841650 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1312]: 0.122852500 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1313]: 0.122864500 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1314]: 0.122874800 - core[0].svIdle(17), plen 0: [] +EVENT[1315]: 0.122886425 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1316]: 0.122902750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1317]: 0.122950525 - core[1].svPrint(26), plen 63: [msg: I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94 , lvl: 0, unused: 0] -[0.122247750] LOG: I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8 -EVENT[1304]: 0.122268950 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461192, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.122268950] HEAP: Freed bytes @ 0x3ffbb7c8 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.122950525] LOG: I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94 +EVENT[1318]: 0.122971900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459092, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.122971900] HEAP: Freed bytes @ 0x3ffbaf94 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1305]: 0.122299975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1306]: 0.122311450 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1307]: 0.122328150 - core[1].svIdle(17), plen 0: [] -EVENT[1308]: 0.122669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1309]: 0.122682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1310]: 0.122698425 - core[1].svIdle(17), plen 0: [] -EVENT[1311]: 0.122813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1312]: 0.122828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1313]: 0.122828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1314]: 0.122840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1315]: 0.122856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1316]: 0.122891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461192, size: 10, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.122891850] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc1" on core 0 by: +EVENT[1319]: 0.122999325 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1320]: 0.123010850 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1321]: 0.123027425 - core[1].svIdle(17), plen 0: [] +EVENT[1322]: 0.123425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1323]: 0.123439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1324]: 0.123455150 - core[1].svIdle(17), plen 0: [] +EVENT[1325]: 0.123546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1326]: 0.123561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1327]: 0.123561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1328]: 0.123573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1329]: 0.123573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1330]: 0.123586100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1331]: 0.123601775 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1332]: 0.123638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 10, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.123638150] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1317]: 0.122926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461208, size: 20, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.122926275] HEAP: Allocated 20 bytes @ 0x3ffbb7d8 from task "alloc1" on core 0 by: +EVENT[1333]: 0.123677150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459108, size: 20, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.123677150] HEAP: Allocated 20 bytes @ 0x3ffbafa4 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1318]: 0.122943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1319]: 0.122959425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1320]: 0.123029850 - core[0].svPrint(26), plen 70: [msg: I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8 +EVENT[1334]: 0.123694075 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1335]: 0.123710100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1336]: 0.123764825 - core[0].svPrint(26), plen 70: [msg: I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4 , lvl: 0, unused: 0] -[0.123029850] LOG: I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8 -EVENT[1321]: 0.123043400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1322]: 0.123060825 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1323]: 0.123060825 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1324]: 0.123077125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1325]: 0.123087975 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1326]: 0.123098725 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1327]: 0.123112450 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1328]: 0.123123300 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1329]: 0.123134125 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1330]: 0.123146000 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1331]: 0.123156250 - core[0].svIdle(17), plen 0: [] -EVENT[1332]: 0.123167725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1333]: 0.123184025 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1334]: 0.123247475 - core[1].svPrint(26), plen 63: [msg: I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8 -, lvl: 0, unused: 0] -[0.123247475] LOG: I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8 -EVENT[1335]: 0.123268650 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461208, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.123268650] HEAP: Freed bytes @ 0x3ffbb7d8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1336]: 0.123295650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1337]: 0.123307075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1338]: 0.123323650 - core[1].svIdle(17), plen 0: [] -EVENT[1339]: 0.123669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1340]: 0.123682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1341]: 0.123698525 - core[1].svIdle(17), plen 0: [] -EVENT[1342]: 0.123813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1343]: 0.123828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1344]: 0.123828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1345]: 0.123840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1346]: 0.123856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1347]: 0.123892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461208, size: 15, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.123892175] HEAP: Allocated 15 bytes @ 0x3ffbb7d8 from task "alloc2" on core 0 by: +[0.123764825] LOG: I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4 +EVENT[1337]: 0.123778250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1338]: 0.123791500 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1339]: 0.123791500 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1340]: 0.123807850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1341]: 0.123818700 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1342]: 0.123829525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1343]: 0.123843325 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1344]: 0.123855250 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1345]: 0.123866325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1346]: 0.123878250 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1347]: 0.123889925 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1348]: 0.123902550 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1349]: 0.123924950 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1350]: 0.123936400 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459132, size: 15, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.123936400] HEAP: Allocated 15 bytes @ 0x3ffbafbc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1348]: 0.123930850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461228, size: 30, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.123930850] HEAP: Allocated 30 bytes @ 0x3ffbb7ec from task "alloc2" on core 0 by: +EVENT[1351]: 0.123977725 - core[1].svPrint(26), plen 63: [msg: I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4 +, lvl: 0, unused: 0] +[0.123977725] LOG: I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4 +EVENT[1352]: 0.123989300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 30, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.123989300] HEAP: Allocated 30 bytes @ 0x3ffbafd0 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1349]: 0.123947750 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1350]: 0.123963725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1351]: 0.124034075 - core[0].svPrint(26), plen 70: [msg: I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec -, lvl: 0, unused: 0] -[0.124034075] LOG: I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec -EVENT[1352]: 0.124047800 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1353]: 0.124061025 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1354]: 0.124061025 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1355]: 0.124077325 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1356]: 0.124088175 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1357]: 0.124098950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1358]: 0.124112675 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1359]: 0.124125000 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1360]: 0.124135825 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1361]: 0.124147700 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1362]: 0.124158975 - core[0].svIdle(17), plen 0: [] -EVENT[1363]: 0.124170625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1364]: 0.124190325 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1365]: 0.124253875 - core[1].svPrint(26), plen 63: [msg: I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec -, lvl: 0, unused: 0] -[0.124253875] LOG: I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec -EVENT[1366]: 0.124275075 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461228, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.124275075] HEAP: Freed bytes @ 0x3ffbb7ec from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1353]: 0.124003525 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459108, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.124003525] HEAP: Freed bytes @ 0x3ffbafa4 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1367]: 0.124301975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1368]: 0.124313400 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1369]: 0.124329975 - core[1].svIdle(17), plen 0: [] -EVENT[1370]: 0.124669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1371]: 0.124682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1372]: 0.124698525 - core[1].svIdle(17), plen 0: [] -EVENT[1373]: 0.124813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1374]: 0.124828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1375]: 0.124843775 - core[0].svIdle(17), plen 0: [] -EVENT[1376]: 0.125669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1377]: 0.125682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1378]: 0.125698325 - core[1].svIdle(17), plen 0: [] -EVENT[1379]: 0.125813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1380]: 0.125828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1381]: 0.125843775 - core[0].svIdle(17), plen 0: [] -EVENT[1382]: 0.126669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1383]: 0.126682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1384]: 0.126698100 - core[1].svIdle(17), plen 0: [] -EVENT[1385]: 0.126813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1386]: 0.126828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1387]: 0.126843775 - core[0].svIdle(17), plen 0: [] -EVENT[1388]: 0.127669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1389]: 0.127682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1390]: 0.127698075 - core[1].svIdle(17), plen 0: [] -EVENT[1391]: 0.127813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1392]: 0.127828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1393]: 0.127843825 - core[0].svIdle(17), plen 0: [] -EVENT[1394]: 0.128669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1395]: 0.128682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1396]: 0.128698075 - core[1].svIdle(17), plen 0: [] -EVENT[1397]: 0.128813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1398]: 0.128828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1399]: 0.128843775 - core[0].svIdle(17), plen 0: [] -EVENT[1400]: 0.129669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1401]: 0.129682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1402]: 0.129698325 - core[1].svIdle(17), plen 0: [] -EVENT[1403]: 0.129813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1404]: 0.129828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1405]: 0.129848100 - core[0].svIdle(17), plen 0: [] -EVENT[1406]: 0.130669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1407]: 0.130682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1408]: 0.130698075 - core[1].svIdle(17), plen 0: [] -EVENT[1409]: 0.130813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1410]: 0.130828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1411]: 0.130843775 - core[0].svIdle(17), plen 0: [] -EVENT[1412]: 0.131669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1413]: 0.131682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1414]: 0.131698325 - core[1].svIdle(17), plen 0: [] -EVENT[1415]: 0.131813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1416]: 0.131828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1417]: 0.131843775 - core[0].svIdle(17), plen 0: [] -EVENT[1418]: 0.132669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1419]: 0.132682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1420]: 0.132698100 - core[1].svIdle(17), plen 0: [] -EVENT[1421]: 0.132813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1422]: 0.132828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1423]: 0.132843775 - core[0].svIdle(17), plen 0: [] -EVENT[1424]: 0.133669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1425]: 0.133682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1426]: 0.133698075 - core[1].svIdle(17), plen 0: [] -EVENT[1427]: 0.133813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1428]: 0.133828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1429]: 0.133843825 - core[0].svIdle(17), plen 0: [] -EVENT[1430]: 0.134669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1431]: 0.134682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1432]: 0.134698075 - core[1].svIdle(17), plen 0: [] -EVENT[1433]: 0.134813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1434]: 0.134828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1435]: 0.134843775 - core[0].svIdle(17), plen 0: [] -EVENT[1436]: 0.135669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1437]: 0.135682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1438]: 0.135698325 - core[1].svIdle(17), plen 0: [] -EVENT[1439]: 0.135813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1440]: 0.135828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1441]: 0.135843775 - core[0].svIdle(17), plen 0: [] -EVENT[1442]: 0.136669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1443]: 0.136682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1444]: 0.136698100 - core[1].svIdle(17), plen 0: [] -EVENT[1445]: 0.136813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1446]: 0.136828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1447]: 0.136843775 - core[0].svIdle(17), plen 0: [] -EVENT[1448]: 0.137669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1449]: 0.137682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1450]: 0.137698075 - core[1].svIdle(17), plen 0: [] -EVENT[1451]: 0.137813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1452]: 0.137828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1453]: 0.137843825 - core[0].svIdle(17), plen 0: [] -EVENT[1454]: 0.138669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1455]: 0.138682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1456]: 0.138698075 - core[1].svIdle(17), plen 0: [] -EVENT[1457]: 0.138813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1458]: 0.138828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1459]: 0.138843775 - core[0].svIdle(17), plen 0: [] -EVENT[1460]: 0.139669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1461]: 0.139682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1462]: 0.139698325 - core[1].svIdle(17), plen 0: [] -EVENT[1463]: 0.139813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1464]: 0.139828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1465]: 0.139843775 - core[0].svIdle(17), plen 0: [] -EVENT[1466]: 0.140669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1467]: 0.140682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1468]: 0.140698100 - core[1].svIdle(17), plen 0: [] -EVENT[1469]: 0.140813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1470]: 0.140828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1471]: 0.140843775 - core[0].svIdle(17), plen 0: [] -EVENT[1472]: 0.141669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1473]: 0.141682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1474]: 0.141698075 - core[1].svIdle(17), plen 0: [] -EVENT[1475]: 0.141813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1476]: 0.141828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1477]: 0.141843825 - core[0].svIdle(17), plen 0: [] -EVENT[1478]: 0.142669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1479]: 0.142682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1480]: 0.142698325 - core[1].svIdle(17), plen 0: [] -EVENT[1481]: 0.142813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1482]: 0.142828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1483]: 0.142843775 - core[0].svIdle(17), plen 0: [] -EVENT[1484]: 0.143669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1485]: 0.143682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1486]: 0.143698100 - core[1].svIdle(17), plen 0: [] -EVENT[1487]: 0.143813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1488]: 0.143828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1489]: 0.143843775 - core[0].svIdle(17), plen 0: [] -EVENT[1490]: 0.144669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1491]: 0.144682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1492]: 0.144698075 - core[1].svIdle(17), plen 0: [] -EVENT[1493]: 0.144813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1494]: 0.144828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1495]: 0.144843825 - core[0].svIdle(17), plen 0: [] -EVENT[1496]: 0.145669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1497]: 0.145682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1498]: 0.145698075 - core[1].svIdle(17), plen 0: [] -EVENT[1499]: 0.145813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1500]: 0.145828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1501]: 0.145843775 - core[0].svIdle(17), plen 0: [] -EVENT[1502]: 0.146669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1503]: 0.146682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1504]: 0.146698325 - core[1].svIdle(17), plen 0: [] -EVENT[1505]: 0.146813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1506]: 0.146828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1507]: 0.146843775 - core[0].svIdle(17), plen 0: [] -EVENT[1508]: 0.147669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1509]: 0.147682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1510]: 0.147698100 - core[1].svIdle(17), plen 0: [] -EVENT[1511]: 0.147813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1512]: 0.147828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1513]: 0.147843775 - core[0].svIdle(17), plen 0: [] -EVENT[1514]: 0.148669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1515]: 0.148682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1516]: 0.148698075 - core[1].svIdle(17), plen 0: [] -EVENT[1517]: 0.148813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1518]: 0.148828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1519]: 0.148843825 - core[0].svIdle(17), plen 0: [] -EVENT[1520]: 0.149669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1521]: 0.149682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1522]: 0.149698075 - core[1].svIdle(17), plen 0: [] -EVENT[1523]: 0.149813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1524]: 0.149828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1525]: 0.149843775 - core[0].svIdle(17), plen 0: [] -EVENT[1526]: 0.150669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1527]: 0.150682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1528]: 0.150698325 - core[1].svIdle(17), plen 0: [] -EVENT[1529]: 0.150813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1530]: 0.150828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1531]: 0.150843775 - core[0].svIdle(17), plen 0: [] -EVENT[1532]: 0.151669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1533]: 0.151682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1534]: 0.151698100 - core[1].svIdle(17), plen 0: [] -EVENT[1535]: 0.151813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1536]: 0.151828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1537]: 0.151828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1538]: 0.151840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1539]: 0.151856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1540]: 0.151892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461228, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.151892175] HEAP: Allocated 6 bytes @ 0x3ffbb7ec from task "alloc0" on core 0 by: +EVENT[1354]: 0.124016100 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1355]: 0.124035950 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1356]: 0.124046875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1357]: 0.124058400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1358]: 0.124076350 - core[1].svIdle(17), plen 0: [] +EVENT[1359]: 0.124094100 - core[0].svPrint(26), plen 70: [msg: I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0 +, lvl: 0, unused: 0] +[0.124094100] LOG: I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0 +EVENT[1360]: 0.124111700 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1361]: 0.124124950 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1362]: 0.124124950 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1363]: 0.124141300 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1364]: 0.124152150 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1365]: 0.124162975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1366]: 0.124176800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1367]: 0.124187725 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1368]: 0.124198600 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1369]: 0.124210550 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1370]: 0.124221775 - core[0].svIdle(17), plen 0: [] +EVENT[1371]: 0.124233575 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1372]: 0.124249925 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1373]: 0.124297800 - core[1].svPrint(26), plen 63: [msg: I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0 +, lvl: 0, unused: 0] +[0.124297800] LOG: I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0 +EVENT[1374]: 0.124319225 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459152, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.124319225] HEAP: Freed bytes @ 0x3ffbafd0 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1375]: 0.124349975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1376]: 0.124361425 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1377]: 0.124378125 - core[1].svIdle(17), plen 0: [] +EVENT[1378]: 0.124425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1379]: 0.124439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1380]: 0.124455150 - core[1].svIdle(17), plen 0: [] +EVENT[1381]: 0.124546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1382]: 0.124562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1383]: 0.124577425 - core[0].svIdle(17), plen 0: [] +EVENT[1384]: 0.125425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1385]: 0.125439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1386]: 0.125454550 - core[1].svIdle(17), plen 0: [] +EVENT[1387]: 0.125546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1388]: 0.125562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1389]: 0.125577125 - core[0].svIdle(17), plen 0: [] +EVENT[1390]: 0.126425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1391]: 0.126439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1392]: 0.126454675 - core[1].svIdle(17), plen 0: [] +EVENT[1393]: 0.126546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1394]: 0.126562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1395]: 0.126577150 - core[0].svIdle(17), plen 0: [] +EVENT[1396]: 0.127425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1397]: 0.127439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1398]: 0.127454600 - core[1].svIdle(17), plen 0: [] +EVENT[1399]: 0.127546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1400]: 0.127562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1401]: 0.127577125 - core[0].svIdle(17), plen 0: [] +EVENT[1402]: 0.128425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1403]: 0.128439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1404]: 0.128454550 - core[1].svIdle(17), plen 0: [] +EVENT[1405]: 0.128546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1406]: 0.128562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1407]: 0.128577425 - core[0].svIdle(17), plen 0: [] +EVENT[1408]: 0.129425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1409]: 0.129439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1410]: 0.129454550 - core[1].svIdle(17), plen 0: [] +EVENT[1411]: 0.129546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1412]: 0.129562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1413]: 0.129577125 - core[0].svIdle(17), plen 0: [] +EVENT[1414]: 0.130425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1415]: 0.130439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1416]: 0.130454675 - core[1].svIdle(17), plen 0: [] +EVENT[1417]: 0.130546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1418]: 0.130562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1419]: 0.130577150 - core[0].svIdle(17), plen 0: [] +EVENT[1420]: 0.131425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1421]: 0.131439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1422]: 0.131454600 - core[1].svIdle(17), plen 0: [] +EVENT[1423]: 0.131546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1424]: 0.131562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1425]: 0.131577125 - core[0].svIdle(17), plen 0: [] +EVENT[1426]: 0.132425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1427]: 0.132439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1428]: 0.132454550 - core[1].svIdle(17), plen 0: [] +EVENT[1429]: 0.132546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1430]: 0.132562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1431]: 0.132577425 - core[0].svIdle(17), plen 0: [] +EVENT[1432]: 0.133425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1433]: 0.133439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1434]: 0.133454550 - core[1].svIdle(17), plen 0: [] +EVENT[1435]: 0.133546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1436]: 0.133562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1437]: 0.133577125 - core[0].svIdle(17), plen 0: [] +EVENT[1438]: 0.134425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1439]: 0.134443650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1440]: 0.134458800 - core[1].svIdle(17), plen 0: [] +EVENT[1441]: 0.134546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1442]: 0.134562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1443]: 0.134577125 - core[0].svIdle(17), plen 0: [] +EVENT[1444]: 0.135425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1445]: 0.135439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1446]: 0.135454550 - core[1].svIdle(17), plen 0: [] +EVENT[1447]: 0.135546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1448]: 0.135562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1449]: 0.135577425 - core[0].svIdle(17), plen 0: [] +EVENT[1450]: 0.136425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1451]: 0.136439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1452]: 0.136454550 - core[1].svIdle(17), plen 0: [] +EVENT[1453]: 0.136546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1454]: 0.136562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1455]: 0.136577125 - core[0].svIdle(17), plen 0: [] +EVENT[1456]: 0.137425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1457]: 0.137439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1458]: 0.137454675 - core[1].svIdle(17), plen 0: [] +EVENT[1459]: 0.137546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1460]: 0.137562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1461]: 0.137577150 - core[0].svIdle(17), plen 0: [] +EVENT[1462]: 0.138425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1463]: 0.138439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1464]: 0.138454600 - core[1].svIdle(17), plen 0: [] +EVENT[1465]: 0.138546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1466]: 0.138562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1467]: 0.138577125 - core[0].svIdle(17), plen 0: [] +EVENT[1468]: 0.139425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1469]: 0.139439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1470]: 0.139454550 - core[1].svIdle(17), plen 0: [] +EVENT[1471]: 0.139546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1472]: 0.139562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1473]: 0.139577425 - core[0].svIdle(17), plen 0: [] +EVENT[1474]: 0.140425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1475]: 0.140439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1476]: 0.140454550 - core[1].svIdle(17), plen 0: [] +EVENT[1477]: 0.140546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1478]: 0.140562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1479]: 0.140577125 - core[0].svIdle(17), plen 0: [] +EVENT[1480]: 0.141425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1481]: 0.141439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1482]: 0.141454675 - core[1].svIdle(17), plen 0: [] +EVENT[1483]: 0.141546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1484]: 0.141562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1485]: 0.141577150 - core[0].svIdle(17), plen 0: [] +EVENT[1486]: 0.142425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1487]: 0.142439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1488]: 0.142454600 - core[1].svIdle(17), plen 0: [] +EVENT[1489]: 0.142546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1490]: 0.142562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1491]: 0.142577125 - core[0].svIdle(17), plen 0: [] +EVENT[1492]: 0.143425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1493]: 0.143439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1494]: 0.143454550 - core[1].svIdle(17), plen 0: [] +EVENT[1495]: 0.143546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1496]: 0.143562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1497]: 0.143577425 - core[0].svIdle(17), plen 0: [] +EVENT[1498]: 0.144425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1499]: 0.144439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1500]: 0.144454550 - core[1].svIdle(17), plen 0: [] +EVENT[1501]: 0.144546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1502]: 0.144562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1503]: 0.144577125 - core[0].svIdle(17), plen 0: [] +EVENT[1504]: 0.145425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1505]: 0.145439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1506]: 0.145454675 - core[1].svIdle(17), plen 0: [] +EVENT[1507]: 0.145546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1508]: 0.145562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1509]: 0.145577150 - core[0].svIdle(17), plen 0: [] +EVENT[1510]: 0.146425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1511]: 0.146443000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1512]: 0.146458125 - core[1].svIdle(17), plen 0: [] +EVENT[1513]: 0.146546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1514]: 0.146562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1515]: 0.146577125 - core[0].svIdle(17), plen 0: [] +EVENT[1516]: 0.147425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1517]: 0.147439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1518]: 0.147454550 - core[1].svIdle(17), plen 0: [] +EVENT[1519]: 0.147546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1520]: 0.147562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1521]: 0.147577425 - core[0].svIdle(17), plen 0: [] +EVENT[1522]: 0.148425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1523]: 0.148439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1524]: 0.148454550 - core[1].svIdle(17), plen 0: [] +EVENT[1525]: 0.148546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1526]: 0.148562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1527]: 0.148577125 - core[0].svIdle(17), plen 0: [] +EVENT[1528]: 0.149425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1529]: 0.149439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1530]: 0.149454675 - core[1].svIdle(17), plen 0: [] +EVENT[1531]: 0.149546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1532]: 0.149562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1533]: 0.149577150 - core[0].svIdle(17), plen 0: [] +EVENT[1534]: 0.150425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1535]: 0.150439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1536]: 0.150454600 - core[1].svIdle(17), plen 0: [] +EVENT[1537]: 0.150546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1538]: 0.150562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1539]: 0.150577125 - core[0].svIdle(17), plen 0: [] +EVENT[1540]: 0.151425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1541]: 0.151439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1542]: 0.151454550 - core[1].svIdle(17), plen 0: [] +EVENT[1543]: 0.151546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1544]: 0.151562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1545]: 0.151577425 - core[0].svIdle(17), plen 0: [] +EVENT[1546]: 0.152425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1547]: 0.152439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1548]: 0.152454550 - core[1].svIdle(17), plen 0: [] +EVENT[1549]: 0.152546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1550]: 0.152561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1551]: 0.152561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1552]: 0.152574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1553]: 0.152590225 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1554]: 0.152625450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459108, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.152625450] HEAP: Allocated 6 bytes @ 0x3ffbafa4 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1541]: 0.151930650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461244, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.151930650] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc0" on core 0 by: +EVENT[1555]: 0.152661150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.152661150] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1542]: 0.151947550 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1543]: 0.151963550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1544]: 0.152033875 - core[0].svPrint(26), plen 70: [msg: I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc +EVENT[1556]: 0.152678125 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1557]: 0.152694100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1558]: 0.152753100 - core[0].svPrint(26), plen 70: [msg: I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0 , lvl: 0, unused: 0] -[0.152033875] LOG: I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc -EVENT[1545]: 0.152047475 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1546]: 0.152060700 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1547]: 0.152060700 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1548]: 0.152076950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1549]: 0.152087800 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1550]: 0.152098575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1551]: 0.152112375 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1552]: 0.152123175 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1553]: 0.152134025 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1554]: 0.152145900 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1555]: 0.152156200 - core[0].svIdle(17), plen 0: [] -EVENT[1556]: 0.152167725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1557]: 0.152188150 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1558]: 0.152251700 - core[1].svPrint(26), plen 63: [msg: I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc +[0.152753100] LOG: I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0 +EVENT[1559]: 0.152766600 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1560]: 0.152779750 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1561]: 0.152779750 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1562]: 0.152795975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1563]: 0.152806925 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1564]: 0.152817675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1565]: 0.152831750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1566]: 0.152842550 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1567]: 0.152853275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1568]: 0.152865400 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1569]: 0.152875575 - core[0].svIdle(17), plen 0: [] +EVENT[1570]: 0.152887350 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1571]: 0.152903675 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1572]: 0.152951550 - core[1].svPrint(26), plen 63: [msg: I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0 , lvl: 0, unused: 0] -[0.152251700] LOG: I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc -EVENT[1559]: 0.152272900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461244, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.152272900] HEAP: Freed bytes @ 0x3ffbb7fc from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.152951550] LOG: I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0 +EVENT[1573]: 0.152972775 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459152, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.152972775] HEAP: Freed bytes @ 0x3ffbafd0 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1560]: 0.152299800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1561]: 0.152311225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1562]: 0.152327800 - core[1].svIdle(17), plen 0: [] -EVENT[1563]: 0.152669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1564]: 0.152682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1565]: 0.152698525 - core[1].svIdle(17), plen 0: [] -EVENT[1566]: 0.152813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1567]: 0.152828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1568]: 0.152828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1569]: 0.152840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1570]: 0.152856775 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1571]: 0.152892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461244, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.152892175] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc1" on core 0 by: +EVENT[1574]: 0.153004250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1575]: 0.153015700 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1576]: 0.153032400 - core[1].svIdle(17), plen 0: [] +EVENT[1577]: 0.153425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1578]: 0.153439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1579]: 0.153455150 - core[1].svIdle(17), plen 0: [] +EVENT[1580]: 0.153546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1581]: 0.153561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1582]: 0.153561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1583]: 0.153573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1584]: 0.153573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1585]: 0.153586050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1586]: 0.153601725 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1587]: 0.153638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.153638150] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1572]: 0.152926700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461260, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.152926700] HEAP: Allocated 24 bytes @ 0x3ffbb80c from task "alloc1" on core 0 by: +EVENT[1588]: 0.153673575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459168, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.153673575] HEAP: Allocated 24 bytes @ 0x3ffbafe0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1573]: 0.152943650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1574]: 0.152963825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1575]: 0.153034250 - core[0].svPrint(26), plen 70: [msg: I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c +EVENT[1589]: 0.153690525 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1590]: 0.153706525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1591]: 0.153761375 - core[0].svPrint(26), plen 70: [msg: I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0 , lvl: 0, unused: 0] -[0.153034250] LOG: I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c -EVENT[1576]: 0.153047900 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1577]: 0.153061075 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1578]: 0.153061075 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1579]: 0.153077400 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1580]: 0.153088250 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1581]: 0.153098975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1582]: 0.153112750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1583]: 0.153123700 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1584]: 0.153134500 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1585]: 0.153146375 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1586]: 0.153156625 - core[0].svIdle(17), plen 0: [] -EVENT[1587]: 0.153168100 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1588]: 0.153184400 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1589]: 0.153247850 - core[1].svPrint(26), plen 63: [msg: I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c -, lvl: 0, unused: 0] -[0.153247850] LOG: I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c -EVENT[1590]: 0.153272900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461260, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.153272900] HEAP: Freed bytes @ 0x3ffbb80c from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1591]: 0.153299900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1592]: 0.153311325 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1593]: 0.153327900 - core[1].svIdle(17), plen 0: [] -EVENT[1594]: 0.153669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1595]: 0.153682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1596]: 0.153698525 - core[1].svIdle(17), plen 0: [] -EVENT[1597]: 0.153813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1598]: 0.153828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1599]: 0.153828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1600]: 0.153840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1601]: 0.153856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1602]: 0.153892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461260, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.153892175] HEAP: Allocated 18 bytes @ 0x3ffbb80c from task "alloc2" on core 0 by: +[0.153761375] LOG: I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0 +EVENT[1592]: 0.153778675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1593]: 0.153791925 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1594]: 0.153791925 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1595]: 0.153808275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1596]: 0.153819125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1597]: 0.153829950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1598]: 0.153843750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1599]: 0.153855475 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1600]: 0.153866850 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1601]: 0.153878850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1602]: 0.153890525 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1603]: 0.153903125 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1604]: 0.153921750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1605]: 0.153933750 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459196, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.153933750] HEAP: Allocated 18 bytes @ 0x3ffbaffc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1603]: 0.153926725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461284, size: 36, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.153926725] HEAP: Allocated 36 bytes @ 0x3ffbb824 from task "alloc2" on core 0 by: +EVENT[1606]: 0.153974925 - core[1].svPrint(26), plen 63: [msg: I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0 +, lvl: 0, unused: 0] +[0.153974925] LOG: I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0 +EVENT[1607]: 0.153991100 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 36, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.153991100] HEAP: Allocated 36 bytes @ 0x3ffbb014 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1604]: 0.153943625 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1605]: 0.153959625 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1606]: 0.154029950 - core[0].svPrint(26), plen 70: [msg: I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824 -, lvl: 0, unused: 0] -[0.154029950] LOG: I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824 -EVENT[1607]: 0.154047775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1608]: 0.154061125 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1609]: 0.154061125 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1610]: 0.154077450 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1611]: 0.154088300 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1612]: 0.154099050 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1613]: 0.154112775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1614]: 0.154123675 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1615]: 0.154134500 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1616]: 0.154146350 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1617]: 0.154157650 - core[0].svIdle(17), plen 0: [] -EVENT[1618]: 0.154169275 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1619]: 0.154185675 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1620]: 0.154249225 - core[1].svPrint(26), plen 63: [msg: I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824 -, lvl: 0, unused: 0] -[0.154249225] LOG: I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824 -EVENT[1621]: 0.154270425 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461284, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.154270425] HEAP: Freed bytes @ 0x3ffbb824 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1608]: 0.154005475 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459168, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.154005475] HEAP: Freed bytes @ 0x3ffbafe0 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1622]: 0.154301425 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1623]: 0.154312900 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1624]: 0.154329600 - core[1].svIdle(17), plen 0: [] -EVENT[1625]: 0.154669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1626]: 0.154682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1627]: 0.154698425 - core[1].svIdle(17), plen 0: [] -EVENT[1628]: 0.154813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1629]: 0.154828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1630]: 0.154843825 - core[0].svIdle(17), plen 0: [] -EVENT[1631]: 0.155669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1632]: 0.155682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1633]: 0.155698075 - core[1].svIdle(17), plen 0: [] -EVENT[1634]: 0.155813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1635]: 0.155828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1636]: 0.155843775 - core[0].svIdle(17), plen 0: [] -EVENT[1637]: 0.156669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1638]: 0.156682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1639]: 0.156698325 - core[1].svIdle(17), plen 0: [] -EVENT[1640]: 0.156813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1641]: 0.156828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1642]: 0.156843775 - core[0].svIdle(17), plen 0: [] -EVENT[1643]: 0.157669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1644]: 0.157682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1645]: 0.157698100 - core[1].svIdle(17), plen 0: [] -EVENT[1646]: 0.157813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1647]: 0.157828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1648]: 0.157843775 - core[0].svIdle(17), plen 0: [] -EVENT[1649]: 0.158669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1650]: 0.158682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1651]: 0.158698075 - core[1].svIdle(17), plen 0: [] -EVENT[1652]: 0.158813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1653]: 0.158828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1654]: 0.158843825 - core[0].svIdle(17), plen 0: [] -EVENT[1655]: 0.159669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1656]: 0.159682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1657]: 0.159698075 - core[1].svIdle(17), plen 0: [] -EVENT[1658]: 0.159813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1659]: 0.159828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1660]: 0.159843775 - core[0].svIdle(17), plen 0: [] -EVENT[1661]: 0.160669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1662]: 0.160682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1663]: 0.160698325 - core[1].svIdle(17), plen 0: [] -EVENT[1664]: 0.160813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1665]: 0.160828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1666]: 0.160843775 - core[0].svIdle(17), plen 0: [] -EVENT[1667]: 0.161669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1668]: 0.161682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1669]: 0.161698100 - core[1].svIdle(17), plen 0: [] -EVENT[1670]: 0.161813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1671]: 0.161828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1672]: 0.161843775 - core[0].svIdle(17), plen 0: [] -EVENT[1673]: 0.162669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1674]: 0.162682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1675]: 0.162698075 - core[1].svIdle(17), plen 0: [] -EVENT[1676]: 0.162813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1677]: 0.162828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1678]: 0.162843825 - core[0].svIdle(17), plen 0: [] -EVENT[1679]: 0.163669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1680]: 0.163682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1681]: 0.163698075 - core[1].svIdle(17), plen 0: [] -EVENT[1682]: 0.163813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1683]: 0.163828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1684]: 0.163843775 - core[0].svIdle(17), plen 0: [] -EVENT[1685]: 0.164669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1686]: 0.164686550 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1687]: 0.164701825 - core[1].svIdle(17), plen 0: [] -EVENT[1688]: 0.164813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1689]: 0.164828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1690]: 0.164843775 - core[0].svIdle(17), plen 0: [] -EVENT[1691]: 0.165669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1692]: 0.165682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1693]: 0.165698075 - core[1].svIdle(17), plen 0: [] -EVENT[1694]: 0.165813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1695]: 0.165828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1696]: 0.165843825 - core[0].svIdle(17), plen 0: [] -EVENT[1697]: 0.166669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1698]: 0.166682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1699]: 0.166698075 - core[1].svIdle(17), plen 0: [] -EVENT[1700]: 0.166813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1701]: 0.166828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1702]: 0.166843775 - core[0].svIdle(17), plen 0: [] -EVENT[1703]: 0.167669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1704]: 0.167682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1705]: 0.167698325 - core[1].svIdle(17), plen 0: [] -EVENT[1706]: 0.167813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1707]: 0.167828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1708]: 0.167843775 - core[0].svIdle(17), plen 0: [] -EVENT[1709]: 0.168669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1710]: 0.168682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1711]: 0.168698100 - core[1].svIdle(17), plen 0: [] -EVENT[1712]: 0.168813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1713]: 0.168828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1714]: 0.168843775 - core[0].svIdle(17), plen 0: [] -EVENT[1715]: 0.169669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1716]: 0.169682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1717]: 0.169698075 - core[1].svIdle(17), plen 0: [] -EVENT[1718]: 0.169813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1719]: 0.169828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1720]: 0.169843825 - core[0].svIdle(17), plen 0: [] -EVENT[1721]: 0.170669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1722]: 0.170682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1723]: 0.170698075 - core[1].svIdle(17), plen 0: [] -EVENT[1724]: 0.170813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1725]: 0.170828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1726]: 0.170843775 - core[0].svIdle(17), plen 0: [] -EVENT[1727]: 0.171669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1728]: 0.171682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1729]: 0.171698325 - core[1].svIdle(17), plen 0: [] -EVENT[1730]: 0.171813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1731]: 0.171828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1732]: 0.171843775 - core[0].svIdle(17), plen 0: [] -EVENT[1733]: 0.172669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1734]: 0.172682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1735]: 0.172698100 - core[1].svIdle(17), plen 0: [] -EVENT[1736]: 0.172813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1737]: 0.172828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1738]: 0.172843775 - core[0].svIdle(17), plen 0: [] -EVENT[1739]: 0.173669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1740]: 0.173682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1741]: 0.173698075 - core[1].svIdle(17), plen 0: [] -EVENT[1742]: 0.173813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1743]: 0.173828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1744]: 0.173843825 - core[0].svIdle(17), plen 0: [] -EVENT[1745]: 0.174669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1746]: 0.174682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1747]: 0.174698075 - core[1].svIdle(17), plen 0: [] -EVENT[1748]: 0.174813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1749]: 0.174828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1750]: 0.174843775 - core[0].svIdle(17), plen 0: [] -EVENT[1751]: 0.175669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1752]: 0.175682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1753]: 0.175698325 - core[1].svIdle(17), plen 0: [] -EVENT[1754]: 0.175813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1755]: 0.175828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1756]: 0.175843775 - core[0].svIdle(17), plen 0: [] -EVENT[1757]: 0.176669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1758]: 0.176687200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1759]: 0.176702350 - core[1].svIdle(17), plen 0: [] -EVENT[1760]: 0.176813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1761]: 0.176828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1762]: 0.176843775 - core[0].svIdle(17), plen 0: [] -EVENT[1763]: 0.177669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1764]: 0.177682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1765]: 0.177698075 - core[1].svIdle(17), plen 0: [] -EVENT[1766]: 0.177813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1767]: 0.177828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1768]: 0.177843825 - core[0].svIdle(17), plen 0: [] -EVENT[1769]: 0.178669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1770]: 0.178682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1771]: 0.178698075 - core[1].svIdle(17), plen 0: [] -EVENT[1772]: 0.178813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1773]: 0.178828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1774]: 0.178843775 - core[0].svIdle(17), plen 0: [] -EVENT[1775]: 0.179669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1776]: 0.179682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1777]: 0.179698325 - core[1].svIdle(17), plen 0: [] -EVENT[1778]: 0.179813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1779]: 0.179828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1780]: 0.179843775 - core[0].svIdle(17), plen 0: [] -EVENT[1781]: 0.180669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1782]: 0.180682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1783]: 0.180698100 - core[1].svIdle(17), plen 0: [] -EVENT[1784]: 0.180813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1785]: 0.180828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1786]: 0.180843775 - core[0].svIdle(17), plen 0: [] -EVENT[1787]: 0.181669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1788]: 0.181682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1789]: 0.181698075 - core[1].svIdle(17), plen 0: [] -EVENT[1790]: 0.181813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1791]: 0.181828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1792]: 0.181828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1793]: 0.181840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1794]: 0.181856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1795]: 0.181891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461284, size: 7, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.181891850] HEAP: Allocated 7 bytes @ 0x3ffbb824 from task "alloc0" on core 0 by: +EVENT[1609]: 0.154017925 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1610]: 0.154037825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1611]: 0.154048750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1612]: 0.154060300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1613]: 0.154078250 - core[1].svIdle(17), plen 0: [] +EVENT[1614]: 0.154096250 - core[0].svPrint(26), plen 70: [msg: I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014 +, lvl: 0, unused: 0] +[0.154096250] LOG: I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014 +EVENT[1615]: 0.154109700 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1616]: 0.154126450 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1617]: 0.154126450 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1618]: 0.154142800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1619]: 0.154153675 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1620]: 0.154164475 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1621]: 0.154178300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1622]: 0.154189225 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1623]: 0.154200075 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1624]: 0.154212025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1625]: 0.154223250 - core[0].svIdle(17), plen 0: [] +EVENT[1626]: 0.154235050 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1627]: 0.154251325 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1628]: 0.154299100 - core[1].svPrint(26), plen 63: [msg: I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014 +, lvl: 0, unused: 0] +[0.154299100] LOG: I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014 +EVENT[1629]: 0.154320475 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459220, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.154320475] HEAP: Freed bytes @ 0x3ffbb014 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1630]: 0.154347875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1631]: 0.154359300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1632]: 0.154375850 - core[1].svIdle(17), plen 0: [] +EVENT[1633]: 0.154425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1634]: 0.154439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1635]: 0.154455150 - core[1].svIdle(17), plen 0: [] +EVENT[1636]: 0.154546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1637]: 0.154562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1638]: 0.154577125 - core[0].svIdle(17), plen 0: [] +EVENT[1639]: 0.155425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1640]: 0.155439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1641]: 0.155454550 - core[1].svIdle(17), plen 0: [] +EVENT[1642]: 0.155546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1643]: 0.155562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1644]: 0.155577425 - core[0].svIdle(17), plen 0: [] +EVENT[1645]: 0.156425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1646]: 0.156439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1647]: 0.156454550 - core[1].svIdle(17), plen 0: [] +EVENT[1648]: 0.156546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1649]: 0.156565675 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1650]: 0.156580875 - core[0].svIdle(17), plen 0: [] +EVENT[1651]: 0.157425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1652]: 0.157439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1653]: 0.157454550 - core[1].svIdle(17), plen 0: [] +EVENT[1654]: 0.157546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1655]: 0.157562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1656]: 0.157577125 - core[0].svIdle(17), plen 0: [] +EVENT[1657]: 0.158425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1658]: 0.158439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1659]: 0.158454675 - core[1].svIdle(17), plen 0: [] +EVENT[1660]: 0.158546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1661]: 0.158562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1662]: 0.158577150 - core[0].svIdle(17), plen 0: [] +EVENT[1663]: 0.159425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1664]: 0.159439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1665]: 0.159454600 - core[1].svIdle(17), plen 0: [] +EVENT[1666]: 0.159546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1667]: 0.159562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1668]: 0.159577125 - core[0].svIdle(17), plen 0: [] +EVENT[1669]: 0.160425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1670]: 0.160439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1671]: 0.160454550 - core[1].svIdle(17), plen 0: [] +EVENT[1672]: 0.160546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1673]: 0.160562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1674]: 0.160577425 - core[0].svIdle(17), plen 0: [] +EVENT[1675]: 0.161425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1676]: 0.161439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1677]: 0.161454550 - core[1].svIdle(17), plen 0: [] +EVENT[1678]: 0.161546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1679]: 0.161562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1680]: 0.161577125 - core[0].svIdle(17), plen 0: [] +EVENT[1681]: 0.162425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1682]: 0.162439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1683]: 0.162454675 - core[1].svIdle(17), plen 0: [] +EVENT[1684]: 0.162546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1685]: 0.162562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1686]: 0.162577150 - core[0].svIdle(17), plen 0: [] +EVENT[1687]: 0.163425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1688]: 0.163439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1689]: 0.163454600 - core[1].svIdle(17), plen 0: [] +EVENT[1690]: 0.163546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1691]: 0.163562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1692]: 0.163577125 - core[0].svIdle(17), plen 0: [] +EVENT[1693]: 0.164425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1694]: 0.164439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1695]: 0.164454550 - core[1].svIdle(17), plen 0: [] +EVENT[1696]: 0.164546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1697]: 0.164562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1698]: 0.164577425 - core[0].svIdle(17), plen 0: [] +EVENT[1699]: 0.165425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1700]: 0.165439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1701]: 0.165454550 - core[1].svIdle(17), plen 0: [] +EVENT[1702]: 0.165546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1703]: 0.165562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1704]: 0.165577125 - core[0].svIdle(17), plen 0: [] +EVENT[1705]: 0.166425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1706]: 0.166439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1707]: 0.166454675 - core[1].svIdle(17), plen 0: [] +EVENT[1708]: 0.166546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1709]: 0.166562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1710]: 0.166577150 - core[0].svIdle(17), plen 0: [] +EVENT[1711]: 0.167425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1712]: 0.167439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1713]: 0.167454600 - core[1].svIdle(17), plen 0: [] +EVENT[1714]: 0.167546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1715]: 0.167562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1716]: 0.167577125 - core[0].svIdle(17), plen 0: [] +EVENT[1717]: 0.168425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1718]: 0.168439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1719]: 0.168454550 - core[1].svIdle(17), plen 0: [] +EVENT[1720]: 0.168546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1721]: 0.168566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1722]: 0.168581550 - core[0].svIdle(17), plen 0: [] +EVENT[1723]: 0.169425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1724]: 0.169439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1725]: 0.169454550 - core[1].svIdle(17), plen 0: [] +EVENT[1726]: 0.169546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1727]: 0.169562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1728]: 0.169577125 - core[0].svIdle(17), plen 0: [] +EVENT[1729]: 0.170425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1730]: 0.170439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1731]: 0.170454675 - core[1].svIdle(17), plen 0: [] +EVENT[1732]: 0.170546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1733]: 0.170562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1734]: 0.170577150 - core[0].svIdle(17), plen 0: [] +EVENT[1735]: 0.171425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1736]: 0.171439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1737]: 0.171454600 - core[1].svIdle(17), plen 0: [] +EVENT[1738]: 0.171546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1739]: 0.171562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1740]: 0.171577125 - core[0].svIdle(17), plen 0: [] +EVENT[1741]: 0.172425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1742]: 0.172439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1743]: 0.172454550 - core[1].svIdle(17), plen 0: [] +EVENT[1744]: 0.172546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1745]: 0.172562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1746]: 0.172577425 - core[0].svIdle(17), plen 0: [] +EVENT[1747]: 0.173425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1748]: 0.173439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1749]: 0.173454550 - core[1].svIdle(17), plen 0: [] +EVENT[1750]: 0.173546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1751]: 0.173562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1752]: 0.173577125 - core[0].svIdle(17), plen 0: [] +EVENT[1753]: 0.174425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1754]: 0.174439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1755]: 0.174454675 - core[1].svIdle(17), plen 0: [] +EVENT[1756]: 0.174546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1757]: 0.174562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1758]: 0.174577150 - core[0].svIdle(17), plen 0: [] +EVENT[1759]: 0.175425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1760]: 0.175439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1761]: 0.175454600 - core[1].svIdle(17), plen 0: [] +EVENT[1762]: 0.175546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1763]: 0.175562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1764]: 0.175577125 - core[0].svIdle(17), plen 0: [] +EVENT[1765]: 0.176425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1766]: 0.176439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1767]: 0.176454550 - core[1].svIdle(17), plen 0: [] +EVENT[1768]: 0.176546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1769]: 0.176562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1770]: 0.176577425 - core[0].svIdle(17), plen 0: [] +EVENT[1771]: 0.177425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1772]: 0.177439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1773]: 0.177454550 - core[1].svIdle(17), plen 0: [] +EVENT[1774]: 0.177546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1775]: 0.177562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1776]: 0.177577125 - core[0].svIdle(17), plen 0: [] +EVENT[1777]: 0.178425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1778]: 0.178439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1779]: 0.178454675 - core[1].svIdle(17), plen 0: [] +EVENT[1780]: 0.178546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1781]: 0.178562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1782]: 0.178577150 - core[0].svIdle(17), plen 0: [] +EVENT[1783]: 0.179425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1784]: 0.179439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1785]: 0.179454600 - core[1].svIdle(17), plen 0: [] +EVENT[1786]: 0.179546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1787]: 0.179562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1788]: 0.179577125 - core[0].svIdle(17), plen 0: [] +EVENT[1789]: 0.180425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1790]: 0.180439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1791]: 0.180454550 - core[1].svIdle(17), plen 0: [] +EVENT[1792]: 0.180546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1793]: 0.180566325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1794]: 0.180581550 - core[0].svIdle(17), plen 0: [] +EVENT[1795]: 0.181425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1796]: 0.181439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1797]: 0.181454550 - core[1].svIdle(17), plen 0: [] +EVENT[1798]: 0.181546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1799]: 0.181562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1800]: 0.181577125 - core[0].svIdle(17), plen 0: [] +EVENT[1801]: 0.182425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1802]: 0.182439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1803]: 0.182454675 - core[1].svIdle(17), plen 0: [] +EVENT[1804]: 0.182546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1805]: 0.182561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1806]: 0.182561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1807]: 0.182574250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1808]: 0.182589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1809]: 0.182624925 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459168, size: 7, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.182624925] HEAP: Allocated 7 bytes @ 0x3ffbafe0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1796]: 0.181926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461300, size: 14, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.181926275] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc0" on core 0 by: +EVENT[1810]: 0.182660425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 14, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.182660425] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1797]: 0.181943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1798]: 0.181959300 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1799]: 0.182029725 - core[0].svPrint(26), plen 70: [msg: I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834 +EVENT[1811]: 0.182677350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1812]: 0.182693275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1813]: 0.182748050 - core[0].svPrint(26), plen 70: [msg: I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014 , lvl: 0, unused: 0] -[0.182029725] LOG: I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834 -EVENT[1800]: 0.182047475 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1801]: 0.182060700 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1802]: 0.182060700 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1803]: 0.182076925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1804]: 0.182087800 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1805]: 0.182098550 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1806]: 0.182112400 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1807]: 0.182123275 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1808]: 0.182134150 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1809]: 0.182146025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1810]: 0.182156325 - core[0].svIdle(17), plen 0: [] -EVENT[1811]: 0.182167850 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1812]: 0.182184150 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1813]: 0.182247700 - core[1].svPrint(26), plen 63: [msg: I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834 +[0.182748050] LOG: I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014 +EVENT[1814]: 0.182761550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1815]: 0.182779025 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1816]: 0.182779025 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1817]: 0.182795275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1818]: 0.182806100 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1819]: 0.182816975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1820]: 0.182830800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1821]: 0.182841650 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1822]: 0.182852500 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1823]: 0.182864500 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1824]: 0.182874800 - core[0].svIdle(17), plen 0: [] +EVENT[1825]: 0.182886425 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1826]: 0.182902750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1827]: 0.182950525 - core[1].svPrint(26), plen 63: [msg: I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014 , lvl: 0, unused: 0] -[0.182247700] LOG: I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834 -EVENT[1814]: 0.182268900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461300, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.182268900] HEAP: Freed bytes @ 0x3ffbb834 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.182950525] LOG: I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014 +EVENT[1828]: 0.182971900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459220, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.182971900] HEAP: Freed bytes @ 0x3ffbb014 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1815]: 0.182300050 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1816]: 0.182311525 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1817]: 0.182328225 - core[1].svIdle(17), plen 0: [] -EVENT[1818]: 0.182669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1819]: 0.182682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1820]: 0.182698425 - core[1].svIdle(17), plen 0: [] -EVENT[1821]: 0.182813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1822]: 0.182828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1823]: 0.182828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1824]: 0.182840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1825]: 0.182856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1826]: 0.182891700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461300, size: 14, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.182891700] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc1" on core 0 by: +EVENT[1829]: 0.182999325 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1830]: 0.183010850 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1831]: 0.183027425 - core[1].svIdle(17), plen 0: [] +EVENT[1832]: 0.183425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1833]: 0.183439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1834]: 0.183455150 - core[1].svIdle(17), plen 0: [] +EVENT[1835]: 0.183546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1836]: 0.183561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1837]: 0.183561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1838]: 0.183573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1839]: 0.183573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1840]: 0.183586100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1841]: 0.183601775 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1842]: 0.183638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 14, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.183638150] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1827]: 0.182926225 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461320, size: 28, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.182926225] HEAP: Allocated 28 bytes @ 0x3ffbb848 from task "alloc1" on core 0 by: +EVENT[1843]: 0.183677725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459240, size: 28, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.183677725] HEAP: Allocated 28 bytes @ 0x3ffbb028 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1828]: 0.182943250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1829]: 0.182959250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1830]: 0.183029675 - core[0].svPrint(26), plen 70: [msg: I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848 +EVENT[1844]: 0.183694650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1845]: 0.183710675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1846]: 0.183765400 - core[0].svPrint(26), plen 70: [msg: I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028 , lvl: 0, unused: 0] -[0.183029675] LOG: I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848 -EVENT[1831]: 0.183043225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1832]: 0.183060650 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1833]: 0.183060650 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1834]: 0.183076975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1835]: 0.183087825 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1836]: 0.183098575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1837]: 0.183112300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1838]: 0.183123150 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1839]: 0.183133975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1840]: 0.183145825 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1841]: 0.183156100 - core[0].svIdle(17), plen 0: [] -EVENT[1842]: 0.183167575 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1843]: 0.183183875 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1844]: 0.183247325 - core[1].svPrint(26), plen 63: [msg: I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848 -, lvl: 0, unused: 0] -[0.183247325] LOG: I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848 -EVENT[1845]: 0.183268600 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461320, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.183268600] HEAP: Freed bytes @ 0x3ffbb848 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1846]: 0.183295600 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1847]: 0.183307025 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1848]: 0.183323600 - core[1].svIdle(17), plen 0: [] -EVENT[1849]: 0.183669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1850]: 0.183682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1851]: 0.183698525 - core[1].svIdle(17), plen 0: [] -EVENT[1852]: 0.183813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1853]: 0.183828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1854]: 0.183828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1855]: 0.183840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1856]: 0.183856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1857]: 0.183892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461320, size: 21, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.183892175] HEAP: Allocated 21 bytes @ 0x3ffbb848 from task "alloc2" on core 0 by: +[0.183765400] LOG: I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028 +EVENT[1847]: 0.183778825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1848]: 0.183792075 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1849]: 0.183792075 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1850]: 0.183808675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1851]: 0.183819450 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1852]: 0.183830375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1853]: 0.183844225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1854]: 0.183856150 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1855]: 0.183867325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1856]: 0.183879250 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1857]: 0.183891000 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1858]: 0.183903625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1859]: 0.183926050 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1860]: 0.183937500 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459272, size: 21, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.183937500] HEAP: Allocated 21 bytes @ 0x3ffbb048 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1858]: 0.183930850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461348, size: 42, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.183930850] HEAP: Allocated 42 bytes @ 0x3ffbb864 from task "alloc2" on core 0 by: +EVENT[1861]: 0.183978650 - core[1].svPrint(26), plen 63: [msg: I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028 +, lvl: 0, unused: 0] +[0.183978650] LOG: I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028 +EVENT[1862]: 0.183990225 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 42, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.183990225] HEAP: Allocated 42 bytes @ 0x3ffbb064 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1859]: 0.183947750 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1860]: 0.183963725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1861]: 0.184034075 - core[0].svPrint(26), plen 70: [msg: I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864 -, lvl: 0, unused: 0] -[0.184034075] LOG: I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864 -EVENT[1862]: 0.184047800 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1863]: 0.184061025 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1864]: 0.184061025 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1865]: 0.184077325 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1866]: 0.184088175 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1867]: 0.184098950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1868]: 0.184112675 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1869]: 0.184125000 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1870]: 0.184135825 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1871]: 0.184147700 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1872]: 0.184158975 - core[0].svIdle(17), plen 0: [] -EVENT[1873]: 0.184170625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1874]: 0.184190325 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1875]: 0.184253875 - core[1].svPrint(26), plen 63: [msg: I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864 -, lvl: 0, unused: 0] -[0.184253875] LOG: I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864 -EVENT[1876]: 0.184275075 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461348, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.184275075] HEAP: Freed bytes @ 0x3ffbb864 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1863]: 0.184004450 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459240, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.184004450] HEAP: Freed bytes @ 0x3ffbb028 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1877]: 0.184301975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1878]: 0.184313400 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1879]: 0.184329975 - core[1].svIdle(17), plen 0: [] -EVENT[1880]: 0.184669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1881]: 0.184682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1882]: 0.184698525 - core[1].svIdle(17), plen 0: [] -EVENT[1883]: 0.184813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1884]: 0.184828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1885]: 0.184843775 - core[0].svIdle(17), plen 0: [] -EVENT[1886]: 0.185669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1887]: 0.185682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1888]: 0.185698325 - core[1].svIdle(17), plen 0: [] -EVENT[1889]: 0.185813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1890]: 0.185828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1891]: 0.185843775 - core[0].svIdle(17), plen 0: [] -EVENT[1892]: 0.186669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1893]: 0.186682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1894]: 0.186698100 - core[1].svIdle(17), plen 0: [] -EVENT[1895]: 0.186813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1896]: 0.186828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1897]: 0.186843775 - core[0].svIdle(17), plen 0: [] -EVENT[1898]: 0.187669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1899]: 0.187682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1900]: 0.187698075 - core[1].svIdle(17), plen 0: [] -EVENT[1901]: 0.187813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1902]: 0.187828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1903]: 0.187843825 - core[0].svIdle(17), plen 0: [] -EVENT[1904]: 0.188669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1905]: 0.188682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1906]: 0.188698075 - core[1].svIdle(17), plen 0: [] -EVENT[1907]: 0.188813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1908]: 0.188828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1909]: 0.188843775 - core[0].svIdle(17), plen 0: [] -EVENT[1910]: 0.189669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1911]: 0.189682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1912]: 0.189698325 - core[1].svIdle(17), plen 0: [] -EVENT[1913]: 0.189813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1914]: 0.189828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1915]: 0.189848100 - core[0].svIdle(17), plen 0: [] -EVENT[1916]: 0.190669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1917]: 0.190682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1918]: 0.190698075 - core[1].svIdle(17), plen 0: [] -EVENT[1919]: 0.190813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1920]: 0.190828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1921]: 0.190843775 - core[0].svIdle(17), plen 0: [] -EVENT[1922]: 0.191669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1923]: 0.191682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1924]: 0.191698325 - core[1].svIdle(17), plen 0: [] -EVENT[1925]: 0.191813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1926]: 0.191828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1927]: 0.191843775 - core[0].svIdle(17), plen 0: [] -EVENT[1928]: 0.192669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1929]: 0.192682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1930]: 0.192698100 - core[1].svIdle(17), plen 0: [] -EVENT[1931]: 0.192813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1932]: 0.192828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1933]: 0.192843775 - core[0].svIdle(17), plen 0: [] -EVENT[1934]: 0.193669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1935]: 0.193682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1936]: 0.193698075 - core[1].svIdle(17), plen 0: [] -EVENT[1937]: 0.193813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1938]: 0.193828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1939]: 0.193843825 - core[0].svIdle(17), plen 0: [] -EVENT[1940]: 0.194669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1941]: 0.194682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1942]: 0.194698075 - core[1].svIdle(17), plen 0: [] -EVENT[1943]: 0.194813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1944]: 0.194828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1945]: 0.194843775 - core[0].svIdle(17), plen 0: [] -EVENT[1946]: 0.195669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1947]: 0.195682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1948]: 0.195698325 - core[1].svIdle(17), plen 0: [] -EVENT[1949]: 0.195813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1950]: 0.195828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1951]: 0.195843775 - core[0].svIdle(17), plen 0: [] -EVENT[1952]: 0.196669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1953]: 0.196682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1954]: 0.196698100 - core[1].svIdle(17), plen 0: [] -EVENT[1955]: 0.196813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1956]: 0.196828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1957]: 0.196843775 - core[0].svIdle(17), plen 0: [] -EVENT[1958]: 0.197669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1959]: 0.197682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1960]: 0.197698075 - core[1].svIdle(17), plen 0: [] -EVENT[1961]: 0.197813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1962]: 0.197828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1963]: 0.197843825 - core[0].svIdle(17), plen 0: [] -EVENT[1964]: 0.198669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1965]: 0.198682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1966]: 0.198698075 - core[1].svIdle(17), plen 0: [] -EVENT[1967]: 0.198813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1968]: 0.198828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1969]: 0.198843775 - core[0].svIdle(17), plen 0: [] -EVENT[1970]: 0.199669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1971]: 0.199682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1972]: 0.199698325 - core[1].svIdle(17), plen 0: [] -EVENT[1973]: 0.199813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1974]: 0.199828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1975]: 0.199843775 - core[0].svIdle(17), plen 0: [] -EVENT[1976]: 0.200669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1977]: 0.200682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1978]: 0.200698100 - core[1].svIdle(17), plen 0: [] -EVENT[1979]: 0.200813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1980]: 0.200828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1981]: 0.200843775 - core[0].svIdle(17), plen 0: [] -EVENT[1982]: 0.201669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1983]: 0.201682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1984]: 0.201698075 - core[1].svIdle(17), plen 0: [] -EVENT[1985]: 0.201813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1986]: 0.201828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1987]: 0.201843825 - core[0].svIdle(17), plen 0: [] -EVENT[1988]: 0.202669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1989]: 0.202682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1990]: 0.202698325 - core[1].svIdle(17), plen 0: [] -EVENT[1991]: 0.202813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1992]: 0.202828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1993]: 0.202843775 - core[0].svIdle(17), plen 0: [] -EVENT[1994]: 0.203669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1995]: 0.203682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1996]: 0.203698100 - core[1].svIdle(17), plen 0: [] -EVENT[1997]: 0.203813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1998]: 0.203828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1999]: 0.203843775 - core[0].svIdle(17), plen 0: [] -EVENT[2000]: 0.204669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2001]: 0.204682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2002]: 0.204698075 - core[1].svIdle(17), plen 0: [] -EVENT[2003]: 0.204813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2004]: 0.204828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2005]: 0.204843825 - core[0].svIdle(17), plen 0: [] -EVENT[2006]: 0.205669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2007]: 0.205682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2008]: 0.205698075 - core[1].svIdle(17), plen 0: [] -EVENT[2009]: 0.205813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2010]: 0.205828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2011]: 0.205843775 - core[0].svIdle(17), plen 0: [] -EVENT[2012]: 0.206669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2013]: 0.206682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2014]: 0.206698325 - core[1].svIdle(17), plen 0: [] -EVENT[2015]: 0.206813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2016]: 0.206828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2017]: 0.206843775 - core[0].svIdle(17), plen 0: [] -EVENT[2018]: 0.207669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2019]: 0.207682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2020]: 0.207698100 - core[1].svIdle(17), plen 0: [] -EVENT[2021]: 0.207813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2022]: 0.207828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2023]: 0.207843775 - core[0].svIdle(17), plen 0: [] -EVENT[2024]: 0.208669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2025]: 0.208682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2026]: 0.208698075 - core[1].svIdle(17), plen 0: [] -EVENT[2027]: 0.208813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2028]: 0.208828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2029]: 0.208843825 - core[0].svIdle(17), plen 0: [] -EVENT[2030]: 0.209669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2031]: 0.209682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2032]: 0.209698075 - core[1].svIdle(17), plen 0: [] -EVENT[2033]: 0.209813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2034]: 0.209828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2035]: 0.209843775 - core[0].svIdle(17), plen 0: [] -EVENT[2036]: 0.210669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2037]: 0.210682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2038]: 0.210698325 - core[1].svIdle(17), plen 0: [] -EVENT[2039]: 0.210813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2040]: 0.210828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2041]: 0.210843775 - core[0].svIdle(17), plen 0: [] -EVENT[2042]: 0.211669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2043]: 0.211682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2044]: 0.211698100 - core[1].svIdle(17), plen 0: [] -EVENT[2045]: 0.211813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2046]: 0.211828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2047]: 0.211828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2048]: 0.211840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2049]: 0.211856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[2050]: 0.211892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461348, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.211892175] HEAP: Allocated 8 bytes @ 0x3ffbb864 from task "alloc0" on core 0 by: +EVENT[1864]: 0.184017025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1865]: 0.184036875 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1866]: 0.184047800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1867]: 0.184059325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1868]: 0.184077275 - core[1].svIdle(17), plen 0: [] +EVENT[1869]: 0.184095050 - core[0].svPrint(26), plen 70: [msg: I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064 +, lvl: 0, unused: 0] +[0.184095050] LOG: I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064 +EVENT[1870]: 0.184112650 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1871]: 0.184126025 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1872]: 0.184126025 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1873]: 0.184142375 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1874]: 0.184153225 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1875]: 0.184164050 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1876]: 0.184177850 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1877]: 0.184188600 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1878]: 0.184199375 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1879]: 0.184211475 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1880]: 0.184222675 - core[0].svIdle(17), plen 0: [] +EVENT[1881]: 0.184235025 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1882]: 0.184251250 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1883]: 0.184299250 - core[1].svPrint(26), plen 63: [msg: I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064 +, lvl: 0, unused: 0] +[0.184299250] LOG: I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064 +EVENT[1884]: 0.184320675 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459300, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.184320675] HEAP: Freed bytes @ 0x3ffbb064 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1885]: 0.184352100 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1886]: 0.184363550 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1887]: 0.184380250 - core[1].svIdle(17), plen 0: [] +EVENT[1888]: 0.184425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1889]: 0.184439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1890]: 0.184455150 - core[1].svIdle(17), plen 0: [] +EVENT[1891]: 0.184546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1892]: 0.184562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1893]: 0.184577425 - core[0].svIdle(17), plen 0: [] +EVENT[1894]: 0.185425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1895]: 0.185439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1896]: 0.185454550 - core[1].svIdle(17), plen 0: [] +EVENT[1897]: 0.185546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1898]: 0.185562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1899]: 0.185577125 - core[0].svIdle(17), plen 0: [] +EVENT[1900]: 0.186425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1901]: 0.186439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1902]: 0.186454675 - core[1].svIdle(17), plen 0: [] +EVENT[1903]: 0.186546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1904]: 0.186562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1905]: 0.186577150 - core[0].svIdle(17), plen 0: [] +EVENT[1906]: 0.187425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1907]: 0.187439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1908]: 0.187454600 - core[1].svIdle(17), plen 0: [] +EVENT[1909]: 0.187546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1910]: 0.187562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1911]: 0.187577125 - core[0].svIdle(17), plen 0: [] +EVENT[1912]: 0.188425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1913]: 0.188439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1914]: 0.188454550 - core[1].svIdle(17), plen 0: [] +EVENT[1915]: 0.188546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1916]: 0.188562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1917]: 0.188577425 - core[0].svIdle(17), plen 0: [] +EVENT[1918]: 0.189425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1919]: 0.189439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1920]: 0.189454550 - core[1].svIdle(17), plen 0: [] +EVENT[1921]: 0.189546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1922]: 0.189562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1923]: 0.189577125 - core[0].svIdle(17), plen 0: [] +EVENT[1924]: 0.190425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1925]: 0.190439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1926]: 0.190454675 - core[1].svIdle(17), plen 0: [] +EVENT[1927]: 0.190546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1928]: 0.190562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1929]: 0.190577150 - core[0].svIdle(17), plen 0: [] +EVENT[1930]: 0.191425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1931]: 0.191439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1932]: 0.191454600 - core[1].svIdle(17), plen 0: [] +EVENT[1933]: 0.191546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1934]: 0.191562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1935]: 0.191577125 - core[0].svIdle(17), plen 0: [] +EVENT[1936]: 0.192425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1937]: 0.192439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1938]: 0.192454550 - core[1].svIdle(17), plen 0: [] +EVENT[1939]: 0.192546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1940]: 0.192562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1941]: 0.192577425 - core[0].svIdle(17), plen 0: [] +EVENT[1942]: 0.193425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1943]: 0.193439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1944]: 0.193454550 - core[1].svIdle(17), plen 0: [] +EVENT[1945]: 0.193546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1946]: 0.193562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1947]: 0.193577125 - core[0].svIdle(17), plen 0: [] +EVENT[1948]: 0.194425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1949]: 0.194443650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1950]: 0.194458800 - core[1].svIdle(17), plen 0: [] +EVENT[1951]: 0.194546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1952]: 0.194562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1953]: 0.194577125 - core[0].svIdle(17), plen 0: [] +EVENT[1954]: 0.195425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1955]: 0.195439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1956]: 0.195454550 - core[1].svIdle(17), plen 0: [] +EVENT[1957]: 0.195546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1958]: 0.195562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1959]: 0.195577425 - core[0].svIdle(17), plen 0: [] +EVENT[1960]: 0.196425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1961]: 0.196439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1962]: 0.196454550 - core[1].svIdle(17), plen 0: [] +EVENT[1963]: 0.196546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1964]: 0.196562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1965]: 0.196577125 - core[0].svIdle(17), plen 0: [] +EVENT[1966]: 0.197425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1967]: 0.197439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1968]: 0.197454675 - core[1].svIdle(17), plen 0: [] +EVENT[1969]: 0.197546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1970]: 0.197562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1971]: 0.197577150 - core[0].svIdle(17), plen 0: [] +EVENT[1972]: 0.198425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1973]: 0.198439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1974]: 0.198454600 - core[1].svIdle(17), plen 0: [] +EVENT[1975]: 0.198546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1976]: 0.198562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1977]: 0.198577125 - core[0].svIdle(17), plen 0: [] +EVENT[1978]: 0.199425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1979]: 0.199439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1980]: 0.199454550 - core[1].svIdle(17), plen 0: [] +EVENT[1981]: 0.199546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1982]: 0.199562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1983]: 0.199577425 - core[0].svIdle(17), plen 0: [] +EVENT[1984]: 0.200425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1985]: 0.200439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1986]: 0.200454550 - core[1].svIdle(17), plen 0: [] +EVENT[1987]: 0.200546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1988]: 0.200562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1989]: 0.200577125 - core[0].svIdle(17), plen 0: [] +EVENT[1990]: 0.201425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1991]: 0.201439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1992]: 0.201454675 - core[1].svIdle(17), plen 0: [] +EVENT[1993]: 0.201546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1994]: 0.201562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1995]: 0.201577150 - core[0].svIdle(17), plen 0: [] +EVENT[1996]: 0.202425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1997]: 0.202439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1998]: 0.202454600 - core[1].svIdle(17), plen 0: [] +EVENT[1999]: 0.202546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2000]: 0.202562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2001]: 0.202577125 - core[0].svIdle(17), plen 0: [] +EVENT[2002]: 0.203425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2003]: 0.203439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2004]: 0.203454550 - core[1].svIdle(17), plen 0: [] +EVENT[2005]: 0.203546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2006]: 0.203562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2007]: 0.203577425 - core[0].svIdle(17), plen 0: [] +EVENT[2008]: 0.204425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2009]: 0.204439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2010]: 0.204454550 - core[1].svIdle(17), plen 0: [] +EVENT[2011]: 0.204546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2012]: 0.204562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2013]: 0.204577125 - core[0].svIdle(17), plen 0: [] +EVENT[2014]: 0.205425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2015]: 0.205439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2016]: 0.205454675 - core[1].svIdle(17), plen 0: [] +EVENT[2017]: 0.205546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2018]: 0.205562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2019]: 0.205577150 - core[0].svIdle(17), plen 0: [] +EVENT[2020]: 0.206425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2021]: 0.206443675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2022]: 0.206458925 - core[1].svIdle(17), plen 0: [] +EVENT[2023]: 0.206546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2024]: 0.206562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2025]: 0.206577125 - core[0].svIdle(17), plen 0: [] +EVENT[2026]: 0.207425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2027]: 0.207439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2028]: 0.207454550 - core[1].svIdle(17), plen 0: [] +EVENT[2029]: 0.207546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2030]: 0.207562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2031]: 0.207577425 - core[0].svIdle(17), plen 0: [] +EVENT[2032]: 0.208425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2033]: 0.208439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2034]: 0.208454550 - core[1].svIdle(17), plen 0: [] +EVENT[2035]: 0.208546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2036]: 0.208562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2037]: 0.208577125 - core[0].svIdle(17), plen 0: [] +EVENT[2038]: 0.209425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2039]: 0.209439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2040]: 0.209454675 - core[1].svIdle(17), plen 0: [] +EVENT[2041]: 0.209546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2042]: 0.209562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2043]: 0.209577150 - core[0].svIdle(17), plen 0: [] +EVENT[2044]: 0.210425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2045]: 0.210439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2046]: 0.210454600 - core[1].svIdle(17), plen 0: [] +EVENT[2047]: 0.210546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2048]: 0.210562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2049]: 0.210577125 - core[0].svIdle(17), plen 0: [] +EVENT[2050]: 0.211425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2051]: 0.211439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2052]: 0.211454550 - core[1].svIdle(17), plen 0: [] +EVENT[2053]: 0.211546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2054]: 0.211562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2055]: 0.211577425 - core[0].svIdle(17), plen 0: [] +EVENT[2056]: 0.212425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2057]: 0.212439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2058]: 0.212454550 - core[1].svIdle(17), plen 0: [] +EVENT[2059]: 0.212546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2060]: 0.212561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2061]: 0.212561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2062]: 0.212574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2063]: 0.212590225 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2064]: 0.212626475 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459240, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.212626475] HEAP: Allocated 8 bytes @ 0x3ffbb028 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2051]: 0.211930650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461364, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.211930650] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc0" on core 0 by: +EVENT[2065]: 0.212662050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.212662050] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2052]: 0.211947550 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2053]: 0.211963550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2054]: 0.212033875 - core[0].svPrint(26), plen 70: [msg: I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874 +EVENT[2066]: 0.212679025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2067]: 0.212695000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2068]: 0.212753400 - core[0].svPrint(26), plen 70: [msg: I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064 , lvl: 0, unused: 0] -[0.212033875] LOG: I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874 -EVENT[2055]: 0.212047475 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2056]: 0.212060700 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[2057]: 0.212060700 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[2058]: 0.212076950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2059]: 0.212087800 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2060]: 0.212098575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2061]: 0.212112375 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2062]: 0.212123175 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[2063]: 0.212134025 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2064]: 0.212145900 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2065]: 0.212156200 - core[0].svIdle(17), plen 0: [] -EVENT[2066]: 0.212167725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2067]: 0.212188150 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2068]: 0.212251700 - core[1].svPrint(26), plen 63: [msg: I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874 +[0.212753400] LOG: I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064 +EVENT[2069]: 0.212766900 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2070]: 0.212780050 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2071]: 0.212780050 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2072]: 0.212796275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2073]: 0.212807100 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2074]: 0.212817975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2075]: 0.212831875 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2076]: 0.212842675 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[2077]: 0.212853400 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2078]: 0.212865525 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2079]: 0.212875725 - core[0].svIdle(17), plen 0: [] +EVENT[2080]: 0.212887475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2081]: 0.212903825 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2082]: 0.212951700 - core[1].svPrint(26), plen 63: [msg: I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064 , lvl: 0, unused: 0] -[0.212251700] LOG: I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874 -EVENT[2069]: 0.212272900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461364, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.212272900] HEAP: Freed bytes @ 0x3ffbb874 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.212951700] LOG: I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064 +EVENT[2083]: 0.212972900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459300, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.212972900] HEAP: Freed bytes @ 0x3ffbb064 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2070]: 0.212299800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2071]: 0.212311225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2072]: 0.212327800 - core[1].svIdle(17), plen 0: [] -EVENT[2073]: 0.212669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2074]: 0.212682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2075]: 0.212698525 - core[1].svIdle(17), plen 0: [] -EVENT[2076]: 0.212813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2077]: 0.212828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2078]: 0.212828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2079]: 0.212840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2080]: 0.212856775 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[2081]: 0.212892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461364, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.212892175] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc1" on core 0 by: +EVENT[2084]: 0.213004375 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2085]: 0.213015825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2086]: 0.213032525 - core[1].svIdle(17), plen 0: [] +EVENT[2087]: 0.213425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2088]: 0.213439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2089]: 0.213455150 - core[1].svIdle(17), plen 0: [] +EVENT[2090]: 0.213546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2091]: 0.213561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2092]: 0.213561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2093]: 0.213573550 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2094]: 0.213573550 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2095]: 0.213586050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2096]: 0.213601725 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2097]: 0.213638150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.213638150] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2082]: 0.212926875 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461384, size: 32, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.212926875] HEAP: Allocated 32 bytes @ 0x3ffbb888 from task "alloc1" on core 0 by: +EVENT[2098]: 0.213673775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 32, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.213673775] HEAP: Allocated 32 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2083]: 0.212943800 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2084]: 0.212963975 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2085]: 0.213034425 - core[0].svPrint(26), plen 70: [msg: I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888 +EVENT[2099]: 0.213690700 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2100]: 0.213706725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2101]: 0.213761450 - core[0].svPrint(26), plen 70: [msg: I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.213034425] LOG: I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888 -EVENT[2086]: 0.213048050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2087]: 0.213061250 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[2088]: 0.213061250 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[2089]: 0.213077550 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2090]: 0.213088400 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2091]: 0.213099150 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2092]: 0.213112875 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2093]: 0.213123725 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[2094]: 0.213134550 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2095]: 0.213146575 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2096]: 0.213156950 - core[0].svIdle(17), plen 0: [] -EVENT[2097]: 0.213168350 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2098]: 0.213184750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2099]: 0.213248200 - core[1].svPrint(26), plen 63: [msg: I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888 -, lvl: 0, unused: 0] -[0.213248200] LOG: I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888 -EVENT[2100]: 0.213273225 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461384, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.213273225] HEAP: Freed bytes @ 0x3ffbb888 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[2101]: 0.213300225 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2102]: 0.213311650 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2103]: 0.213328225 - core[1].svIdle(17), plen 0: [] -EVENT[2104]: 0.213669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2105]: 0.213682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2106]: 0.213698525 - core[1].svIdle(17), plen 0: [] -EVENT[2107]: 0.213813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2108]: 0.213828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2109]: 0.213828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2110]: 0.213840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2111]: 0.213856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[2112]: 0.213892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461384, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.213892175] HEAP: Allocated 24 bytes @ 0x3ffbb888 from task "alloc2" on core 0 by: +[0.213761450] LOG: I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078 +EVENT[2102]: 0.213778750 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2103]: 0.213792000 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2104]: 0.213792000 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2105]: 0.213808350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2106]: 0.213819200 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2107]: 0.213830025 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2108]: 0.213843800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2109]: 0.213855750 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[2110]: 0.213866900 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2111]: 0.213878850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2112]: 0.213890500 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2113]: 0.213902200 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2114]: 0.213920800 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2115]: 0.213933875 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459356, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.213933875] HEAP: Allocated 24 bytes @ 0x3ffbb09c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2113]: 0.213926725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461412, size: 48, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.213926725] HEAP: Allocated 48 bytes @ 0x3ffbb8a4 from task "alloc2" on core 0 by: +EVENT[2116]: 0.213974650 - core[1].svPrint(26), plen 63: [msg: I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078 +, lvl: 0, unused: 0] +[0.213974650] LOG: I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078 +EVENT[2117]: 0.213990500 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 48, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.213990500] HEAP: Allocated 48 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2114]: 0.213943625 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2115]: 0.213959625 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2116]: 0.214029950 - core[0].svPrint(26), plen 70: [msg: I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4 -, lvl: 0, unused: 0] -[0.214029950] LOG: I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4 -EVENT[2117]: 0.214050450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2118]: 0.214063675 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[2119]: 0.214063675 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[2120]: 0.214080000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2121]: 0.214090850 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2122]: 0.214101600 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2123]: 0.214115500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2124]: 0.214126375 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[2125]: 0.214137200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2126]: 0.214149050 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2127]: 0.214160350 - core[0].svIdle(17), plen 0: [] -EVENT[2128]: 0.214171975 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2129]: 0.214188375 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2130]: 0.214251925 - core[1].svPrint(26), plen 63: [msg: I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4 -, lvl: 0, unused: 0] -[0.214251925] LOG: I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4 -EVENT[2131]: 0.214273125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461412, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.214273125] HEAP: Freed bytes @ 0x3ffbb8a4 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[2118]: 0.214004800 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459320, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.214004800] HEAP: Freed bytes @ 0x3ffbb078 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2132]: 0.214303450 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2133]: 0.214314925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2134]: 0.214331625 - core[1].svIdle(17), plen 0: [] -EVENT[2135]: 0.214669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2136]: 0.214682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2137]: 0.214698425 - core[1].svIdle(17), plen 0: [] -EVENT[2138]: 0.214813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2139]: 0.214828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2140]: 0.214843825 - core[0].svIdle(17), plen 0: [] -EVENT[2141]: 0.215669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2142]: 0.215682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2143]: 0.215698075 - core[1].svIdle(17), plen 0: [] -EVENT[2144]: 0.215813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2145]: 0.215828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2146]: 0.215843775 - core[0].svIdle(17), plen 0: [] -EVENT[2147]: 0.216669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2148]: 0.216682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2149]: 0.216698325 - core[1].svIdle(17), plen 0: [] -EVENT[2150]: 0.216813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2151]: 0.216828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2152]: 0.216843775 - core[0].svIdle(17), plen 0: [] -EVENT[2153]: 0.217669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2154]: 0.217682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2155]: 0.217698100 - core[1].svIdle(17), plen 0: [] -EVENT[2156]: 0.217813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2157]: 0.217828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2158]: 0.217843775 - core[0].svIdle(17), plen 0: [] -EVENT[2159]: 0.218669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2160]: 0.218682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2161]: 0.218698075 - core[1].svIdle(17), plen 0: [] -EVENT[2162]: 0.218813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2163]: 0.218828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2164]: 0.218843825 - core[0].svIdle(17), plen 0: [] -EVENT[2165]: 0.219669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2166]: 0.219682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2167]: 0.219698075 - core[1].svIdle(17), plen 0: [] -EVENT[2168]: 0.219813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2169]: 0.219828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2170]: 0.219843775 - core[0].svIdle(17), plen 0: [] -EVENT[2171]: 0.220669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2172]: 0.220682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2173]: 0.220698325 - core[1].svIdle(17), plen 0: [] -EVENT[2174]: 0.220813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2175]: 0.220828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2176]: 0.220843775 - core[0].svIdle(17), plen 0: [] -EVENT[2177]: 0.221669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2178]: 0.221682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2179]: 0.221698100 - core[1].svIdle(17), plen 0: [] -EVENT[2180]: 0.221813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2181]: 0.221828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2182]: 0.221843775 - core[0].svIdle(17), plen 0: [] -EVENT[2183]: 0.222669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2184]: 0.222682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2185]: 0.222698075 - core[1].svIdle(17), plen 0: [] -EVENT[2186]: 0.222813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2187]: 0.222828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2188]: 0.222843825 - core[0].svIdle(17), plen 0: [] -EVENT[2189]: 0.223669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2190]: 0.223682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2191]: 0.223698075 - core[1].svIdle(17), plen 0: [] -EVENT[2192]: 0.223813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2193]: 0.223828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2194]: 0.223843775 - core[0].svIdle(17), plen 0: [] -EVENT[2195]: 0.224669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2196]: 0.224687175 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2197]: 0.224702325 - core[1].svIdle(17), plen 0: [] -EVENT[2198]: 0.224813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2199]: 0.224828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2200]: 0.224843775 - core[0].svIdle(17), plen 0: [] -EVENT[2201]: 0.225669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2202]: 0.225682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2203]: 0.225698075 - core[1].svIdle(17), plen 0: [] -EVENT[2204]: 0.225813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2205]: 0.225828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2206]: 0.225843825 - core[0].svIdle(17), plen 0: [] -EVENT[2207]: 0.226669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2208]: 0.226682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2209]: 0.226698075 - core[1].svIdle(17), plen 0: [] -EVENT[2210]: 0.226813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2211]: 0.226828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2212]: 0.226843775 - core[0].svIdle(17), plen 0: [] -EVENT[2213]: 0.227669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2214]: 0.227682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2215]: 0.227698325 - core[1].svIdle(17), plen 0: [] -EVENT[2216]: 0.227813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2217]: 0.227828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2218]: 0.227843775 - core[0].svIdle(17), plen 0: [] -EVENT[2219]: 0.228669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2220]: 0.228682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2221]: 0.228698100 - core[1].svIdle(17), plen 0: [] -EVENT[2222]: 0.228813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2223]: 0.228828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2224]: 0.228843775 - core[0].svIdle(17), plen 0: [] -EVENT[2225]: 0.229669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2226]: 0.229682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2227]: 0.229698075 - core[1].svIdle(17), plen 0: [] -EVENT[2228]: 0.229813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2229]: 0.229828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2230]: 0.229843825 - core[0].svIdle(17), plen 0: [] -EVENT[2231]: 0.230669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2232]: 0.230682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2233]: 0.230698075 - core[1].svIdle(17), plen 0: [] -EVENT[2234]: 0.230813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2235]: 0.230828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2236]: 0.230843775 - core[0].svIdle(17), plen 0: [] -EVENT[2237]: 0.231669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2238]: 0.231682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2239]: 0.231698325 - core[1].svIdle(17), plen 0: [] -EVENT[2240]: 0.231813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2241]: 0.231828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2242]: 0.231843775 - core[0].svIdle(17), plen 0: [] -EVENT[2243]: 0.232669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2244]: 0.232682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2245]: 0.232698100 - core[1].svIdle(17), plen 0: [] -EVENT[2246]: 0.232813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2247]: 0.232828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2248]: 0.232843775 - core[0].svIdle(17), plen 0: [] -EVENT[2249]: 0.233669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2250]: 0.233682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2251]: 0.233698075 - core[1].svIdle(17), plen 0: [] -EVENT[2252]: 0.233813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2253]: 0.233828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2254]: 0.233843825 - core[0].svIdle(17), plen 0: [] -EVENT[2255]: 0.234669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2256]: 0.234682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2257]: 0.234698075 - core[1].svIdle(17), plen 0: [] -EVENT[2258]: 0.234813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2259]: 0.234828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2260]: 0.234843775 - core[0].svIdle(17), plen 0: [] -EVENT[2261]: 0.235669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2262]: 0.235682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2263]: 0.235698325 - core[1].svIdle(17), plen 0: [] -EVENT[2264]: 0.235813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2265]: 0.235828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2266]: 0.235843775 - core[0].svIdle(17), plen 0: [] -EVENT[2267]: 0.236669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2268]: 0.236686525 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2269]: 0.236701650 - core[1].svIdle(17), plen 0: [] -EVENT[2270]: 0.236813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2271]: 0.236828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2272]: 0.236843775 - core[0].svIdle(17), plen 0: [] -EVENT[2273]: 0.237669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2274]: 0.237682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2275]: 0.237698075 - core[1].svIdle(17), plen 0: [] -EVENT[2276]: 0.237813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2277]: 0.237828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2278]: 0.237843825 - core[0].svIdle(17), plen 0: [] -EVENT[2279]: 0.238669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2280]: 0.238682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2281]: 0.238698075 - core[1].svIdle(17), plen 0: [] -EVENT[2282]: 0.238813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2283]: 0.238828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2284]: 0.238843775 - core[0].svIdle(17), plen 0: [] -EVENT[2285]: 0.239669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2286]: 0.239682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2287]: 0.239698325 - core[1].svIdle(17), plen 0: [] -EVENT[2288]: 0.239813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2289]: 0.239828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2290]: 0.239843775 - core[0].svIdle(17), plen 0: [] -EVENT[2291]: 0.240669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2292]: 0.240682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2293]: 0.240698100 - core[1].svIdle(17), plen 0: [] -EVENT[2294]: 0.240813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2295]: 0.240828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2296]: 0.240843775 - core[0].svIdle(17), plen 0: [] -EVENT[2297]: 0.241669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2298]: 0.241682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2299]: 0.241698075 - core[1].svIdle(17), plen 0: [] -EVENT[2300]: 0.241813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2301]: 0.241828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2302]: 0.241828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2303]: 0.241840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2304]: 0.241856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[2305]: 0.241891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461412, size: 9, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.241891850] HEAP: Allocated 9 bytes @ 0x3ffbb8a4 from task "alloc0" on core 0 by: +EVENT[2119]: 0.214017225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2120]: 0.214037250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2121]: 0.214048175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2122]: 0.214059725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2123]: 0.214077675 - core[1].svIdle(17), plen 0: [] +EVENT[2124]: 0.214095675 - core[0].svPrint(26), plen 70: [msg: I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8 +, lvl: 0, unused: 0] +[0.214095675] LOG: I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8 +EVENT[2125]: 0.214109125 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2126]: 0.215654450 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2127]: 0.215666025 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2128]: 0.215666025 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2129]: 0.215683825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2130]: 0.215694950 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2131]: 0.215705850 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2132]: 0.215717500 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2133]: 0.215728000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2134]: 0.215738875 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2135]: 0.215749800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2136]: 0.215761550 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2137]: 0.215772300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2138]: 0.215783750 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2139]: 0.215801425 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[2140]: 0.215815250 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2141]: 0.215827525 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2142]: 0.215838975 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2143]: 0.215851050 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2144]: 0.215862100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2145]: 0.215874300 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2146]: 0.215885925 - core[0].svIdle(17), plen 0: [] +EVENT[2147]: 0.215935950 - core[1].svPrint(26), plen 63: [msg: I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8 +, lvl: 0, unused: 0] +[0.215935950] LOG: I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8 +EVENT[2148]: 0.215957325 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459384, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.215957325] HEAP: Freed bytes @ 0x3ffbb0b8 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[2149]: 0.215984750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2150]: 0.215996150 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2151]: 0.216012725 - core[1].svIdle(17), plen 0: [] +EVENT[2152]: 0.216425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2153]: 0.216439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2154]: 0.216454975 - core[1].svIdle(17), plen 0: [] +EVENT[2155]: 0.216546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2156]: 0.216562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2157]: 0.216577425 - core[0].svIdle(17), plen 0: [] +EVENT[2158]: 0.217425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2159]: 0.217439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2160]: 0.217454675 - core[1].svIdle(17), plen 0: [] +EVENT[2161]: 0.217546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2162]: 0.217562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2163]: 0.217577150 - core[0].svIdle(17), plen 0: [] +EVENT[2164]: 0.218425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2165]: 0.218439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2166]: 0.218454600 - core[1].svIdle(17), plen 0: [] +EVENT[2167]: 0.218546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2168]: 0.218562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2169]: 0.218577125 - core[0].svIdle(17), plen 0: [] +EVENT[2170]: 0.219425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2171]: 0.219439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2172]: 0.219454550 - core[1].svIdle(17), plen 0: [] +EVENT[2173]: 0.219546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2174]: 0.219562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2175]: 0.219577425 - core[0].svIdle(17), plen 0: [] +EVENT[2176]: 0.220425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2177]: 0.220439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2178]: 0.220454550 - core[1].svIdle(17), plen 0: [] +EVENT[2179]: 0.220546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2180]: 0.220562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2181]: 0.220577125 - core[0].svIdle(17), plen 0: [] +EVENT[2182]: 0.221425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2183]: 0.221439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2184]: 0.221454675 - core[1].svIdle(17), plen 0: [] +EVENT[2185]: 0.221546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2186]: 0.221562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2187]: 0.221577150 - core[0].svIdle(17), plen 0: [] +EVENT[2188]: 0.222425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2189]: 0.222439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2190]: 0.222454600 - core[1].svIdle(17), plen 0: [] +EVENT[2191]: 0.222546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2192]: 0.222562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2193]: 0.222577125 - core[0].svIdle(17), plen 0: [] +EVENT[2194]: 0.223425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2195]: 0.223439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2196]: 0.223454550 - core[1].svIdle(17), plen 0: [] +EVENT[2197]: 0.223546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2198]: 0.223562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2199]: 0.223577425 - core[0].svIdle(17), plen 0: [] +EVENT[2200]: 0.224425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2201]: 0.224439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2202]: 0.224454550 - core[1].svIdle(17), plen 0: [] +EVENT[2203]: 0.224546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2204]: 0.224562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2205]: 0.224577125 - core[0].svIdle(17), plen 0: [] +EVENT[2206]: 0.225425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2207]: 0.225439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2208]: 0.225454675 - core[1].svIdle(17), plen 0: [] +EVENT[2209]: 0.225546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2210]: 0.225562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2211]: 0.225577150 - core[0].svIdle(17), plen 0: [] +EVENT[2212]: 0.226425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2213]: 0.226439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2214]: 0.226454600 - core[1].svIdle(17), plen 0: [] +EVENT[2215]: 0.226546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2216]: 0.226562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2217]: 0.226577125 - core[0].svIdle(17), plen 0: [] +EVENT[2218]: 0.227425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2219]: 0.227439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2220]: 0.227454550 - core[1].svIdle(17), plen 0: [] +EVENT[2221]: 0.227546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2222]: 0.227562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2223]: 0.227577425 - core[0].svIdle(17), plen 0: [] +EVENT[2224]: 0.228425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2225]: 0.228439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2226]: 0.228454550 - core[1].svIdle(17), plen 0: [] +EVENT[2227]: 0.228546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2228]: 0.228562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2229]: 0.228577125 - core[0].svIdle(17), plen 0: [] +EVENT[2230]: 0.229425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2231]: 0.229443675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2232]: 0.229458825 - core[1].svIdle(17), plen 0: [] +EVENT[2233]: 0.229546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2234]: 0.229562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2235]: 0.229577125 - core[0].svIdle(17), plen 0: [] +EVENT[2236]: 0.230425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2237]: 0.230439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2238]: 0.230454550 - core[1].svIdle(17), plen 0: [] +EVENT[2239]: 0.230546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2240]: 0.230562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2241]: 0.230577425 - core[0].svIdle(17), plen 0: [] +EVENT[2242]: 0.231425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2243]: 0.231439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2244]: 0.231454550 - core[1].svIdle(17), plen 0: [] +EVENT[2245]: 0.231546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2246]: 0.231562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2247]: 0.231577125 - core[0].svIdle(17), plen 0: [] +EVENT[2248]: 0.232425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2249]: 0.232439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2250]: 0.232454675 - core[1].svIdle(17), plen 0: [] +EVENT[2251]: 0.232546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2252]: 0.232562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2253]: 0.232577150 - core[0].svIdle(17), plen 0: [] +EVENT[2254]: 0.233425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2255]: 0.233439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2256]: 0.233454600 - core[1].svIdle(17), plen 0: [] +EVENT[2257]: 0.233546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2258]: 0.233562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2259]: 0.233577125 - core[0].svIdle(17), plen 0: [] +EVENT[2260]: 0.234425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2261]: 0.234439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2262]: 0.234454550 - core[1].svIdle(17), plen 0: [] +EVENT[2263]: 0.234546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2264]: 0.234562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2265]: 0.234577425 - core[0].svIdle(17), plen 0: [] +EVENT[2266]: 0.235425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2267]: 0.235439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2268]: 0.235454550 - core[1].svIdle(17), plen 0: [] +EVENT[2269]: 0.235546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2270]: 0.235562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2271]: 0.235577125 - core[0].svIdle(17), plen 0: [] +EVENT[2272]: 0.236425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2273]: 0.236439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2274]: 0.236454675 - core[1].svIdle(17), plen 0: [] +EVENT[2275]: 0.236546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2276]: 0.236562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2277]: 0.236577150 - core[0].svIdle(17), plen 0: [] +EVENT[2278]: 0.237425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2279]: 0.237439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2280]: 0.237454600 - core[1].svIdle(17), plen 0: [] +EVENT[2281]: 0.237546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2282]: 0.237562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2283]: 0.237577125 - core[0].svIdle(17), plen 0: [] +EVENT[2284]: 0.238425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2285]: 0.238439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2286]: 0.238454550 - core[1].svIdle(17), plen 0: [] +EVENT[2287]: 0.238546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2288]: 0.238562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2289]: 0.238577425 - core[0].svIdle(17), plen 0: [] +EVENT[2290]: 0.239425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2291]: 0.239439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2292]: 0.239454550 - core[1].svIdle(17), plen 0: [] +EVENT[2293]: 0.239546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2294]: 0.239562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2295]: 0.239577125 - core[0].svIdle(17), plen 0: [] +EVENT[2296]: 0.240425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2297]: 0.240439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2298]: 0.240454675 - core[1].svIdle(17), plen 0: [] +EVENT[2299]: 0.240546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2300]: 0.240562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2301]: 0.240577150 - core[0].svIdle(17), plen 0: [] +EVENT[2302]: 0.241425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2303]: 0.241443000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2304]: 0.241458125 - core[1].svIdle(17), plen 0: [] +EVENT[2305]: 0.241546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2306]: 0.241562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2307]: 0.241577125 - core[0].svIdle(17), plen 0: [] +EVENT[2308]: 0.242425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2309]: 0.242439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2310]: 0.242454550 - core[1].svIdle(17), plen 0: [] +EVENT[2311]: 0.242546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2312]: 0.242561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2313]: 0.242561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2314]: 0.242574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2315]: 0.242589975 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2316]: 0.242625100 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459256, size: 9, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.242625100] HEAP: Allocated 9 bytes @ 0x3ffbb038 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2306]: 0.241926275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461428, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.241926275] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc0" on core 0 by: +EVENT[2317]: 0.242659350 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.242659350] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2307]: 0.241943300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2308]: 0.241959300 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2309]: 0.242029725 - core[0].svPrint(26), plen 70: [msg: I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4 +EVENT[2318]: 0.242676400 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2319]: 0.242692425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2320]: 0.242747250 - core[0].svPrint(26), plen 70: [msg: I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.242029725] LOG: I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4 -EVENT[2310]: 0.242047550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2311]: 0.242060775 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[2312]: 0.242060775 - core[1].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[2313]: 0.242077000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2314]: 0.242087875 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2315]: 0.242098625 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2316]: 0.242112475 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2317]: 0.242123350 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[2318]: 0.242134175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2319]: 0.242146150 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2320]: 0.242156400 - core[0].svIdle(17), plen 0: [] -EVENT[2321]: 0.242167800 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2322]: 0.242184175 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2323]: 0.242247725 - core[1].svPrint(26), plen 63: [msg: I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4 +[0.242747250] LOG: I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078 +EVENT[2321]: 0.242760625 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2322]: 0.242774025 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2323]: 0.242774025 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2324]: 0.242790200 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2325]: 0.242806100 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2326]: 0.242816800 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2327]: 0.242830525 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2328]: 0.242841300 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[2329]: 0.242852050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2330]: 0.242864300 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2331]: 0.242875550 - core[0].svIdle(17), plen 0: [] +EVENT[2332]: 0.242892800 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2333]: 0.242909050 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2334]: 0.242956925 - core[1].svPrint(26), plen 63: [msg: I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.242247725] LOG: I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4 -EVENT[2324]: 0.242268925 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461428, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.242268925] HEAP: Freed bytes @ 0x3ffbb8b4 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.242956925] LOG: I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078 +EVENT[2335]: 0.242978325 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459320, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.242978325] HEAP: Freed bytes @ 0x3ffbb078 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2325]: 0.242299925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2326]: 0.242311400 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2327]: 0.242328100 - core[1].svIdle(17), plen 0: [] -EVENT[2328]: 0.242669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2329]: 0.242682850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2330]: 0.242698425 - core[1].svIdle(17), plen 0: [] -EVENT[2331]: 0.242813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2332]: 0.242828225 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2333]: 0.242828225 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2334]: 0.242840850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2335]: 0.242856525 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[2336]: 0.242891850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461428, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.242891850] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc1" on core 0 by: +EVENT[2336]: 0.243004800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2337]: 0.243016200 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2338]: 0.243032775 - core[1].svIdle(17), plen 0: [] +EVENT[2339]: 0.243425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2340]: 0.243439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2341]: 0.243455150 - core[1].svIdle(17), plen 0: [] +EVENT[2342]: 0.243546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2343]: 0.243561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2344]: 0.243561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2345]: 0.243574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2346]: 0.243590225 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2347]: 0.243625450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.243625450] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2337]: 0.242926425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461452, size: 36, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.242926425] HEAP: Allocated 36 bytes @ 0x3ffbb8cc from task "alloc1" on core 0 by: +EVENT[2348]: 0.243661200 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 36, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.243661200] HEAP: Allocated 36 bytes @ 0x3ffbb0b8 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2338]: 0.242943450 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2339]: 0.242959450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2340]: 0.243029875 - core[0].svPrint(26), plen 70: [msg: I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc +EVENT[2349]: 0.243682350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2350]: 0.243698300 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2351]: 0.243753075 - core[0].svPrint(26), plen 70: [msg: I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8 , lvl: 0, unused: 0] -[0.243029875] LOG: I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc -EVENT[2341]: 0.243043425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2342]: 0.243060250 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[2343]: 0.243060250 - core[1].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[2344]: 0.243076550 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2345]: 0.243087400 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2346]: 0.243098150 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2347]: 0.243111875 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2348]: 0.243122725 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[2349]: 0.243133550 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2350]: 0.243145575 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2351]: 0.243155950 - core[0].svIdle(17), plen 0: [] -EVENT[2352]: 0.243167350 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2353]: 0.243183750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2354]: 0.243247200 - core[1].svPrint(26), plen 63: [msg: I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc +[0.243753075] LOG: I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8 +EVENT[2352]: 0.243766550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2353]: 0.243779725 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2354]: 0.243779725 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2355]: 0.243796025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2356]: 0.243806875 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2357]: 0.243817700 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2358]: 0.243831575 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2359]: 0.243842375 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[2360]: 0.243853100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2361]: 0.243865225 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2362]: 0.243876425 - core[0].svIdle(17), plen 0: [] +EVENT[2363]: 0.243888150 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2364]: 0.243904550 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2365]: 0.243952425 - core[1].svPrint(26), plen 63: [msg: I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8 , lvl: 0, unused: 0] -[0.243247200] LOG: I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc -EVENT[2355]: 0.243268350 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461452, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.243268350] HEAP: Freed bytes @ 0x3ffbb8cc from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.243952425] LOG: I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8 +EVENT[2366]: 0.243977950 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459384, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.243977950] HEAP: Freed bytes @ 0x3ffbb0b8 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2356]: 0.243295350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2357]: 0.243306775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2358]: 0.243323350 - core[1].svIdle(17), plen 0: [] -EVENT[2359]: 0.243669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2360]: 0.243682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2361]: 0.243698525 - core[1].svIdle(17), plen 0: [] -EVENT[2362]: 0.243813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2363]: 0.243828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2364]: 0.243828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2365]: 0.243840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2366]: 0.243856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[2367]: 0.243892175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461452, size: 27, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.243892175] HEAP: Allocated 27 bytes @ 0x3ffbb8cc from task "alloc2" on core 0 by: +EVENT[2367]: 0.244005350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2368]: 0.244016775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2369]: 0.244033325 - core[1].svIdle(17), plen 0: [] +EVENT[2370]: 0.244425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2371]: 0.244439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2372]: 0.244455150 - core[1].svIdle(17), plen 0: [] +EVENT[2373]: 0.244546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2374]: 0.244562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2375]: 0.244577125 - core[0].svIdle(17), plen 0: [] +EVENT[2376]: 0.245425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2377]: 0.245439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2378]: 0.245454550 - core[1].svIdle(17), plen 0: [] +EVENT[2379]: 0.245546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2380]: 0.245561700 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2381]: 0.245561700 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2382]: 0.245574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2383]: 0.245589975 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2384]: 0.245626175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 27, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.245626175] HEAP: Allocated 27 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2368]: 0.243930850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461484, size: 54, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.243930850] HEAP: Allocated 54 bytes @ 0x3ffbb8ec from task "alloc2" on core 0 by: +EVENT[2385]: 0.245661800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459416, size: 54, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.245661800] HEAP: Allocated 54 bytes @ 0x3ffbb0d8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2369]: 0.243947750 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2370]: 0.243963875 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2371]: 0.244034325 - core[0].svPrint(26), plen 70: [msg: I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec +EVENT[2386]: 0.245678850 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2387]: 0.245699000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2388]: 0.245753825 - core[0].svPrint(26), plen 70: [msg: I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8 , lvl: 0, unused: 0] -[0.244034325] LOG: I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec -EVENT[2372]: 0.244047925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2373]: 0.244061150 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[2374]: 0.244061150 - core[1].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[2375]: 0.244077475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2376]: 0.244088325 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2377]: 0.244099075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2378]: 0.244112800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2379]: 0.244123700 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[2380]: 0.244134525 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2381]: 0.244146375 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2382]: 0.244157675 - core[0].svIdle(17), plen 0: [] -EVENT[2383]: 0.244169300 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2384]: 0.244189750 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2385]: 0.244253300 - core[1].svPrint(26), plen 63: [msg: I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec +[0.245753825] LOG: I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8 +EVENT[2389]: 0.245767425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2390]: 0.245780625 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2391]: 0.245780625 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2392]: 0.245796975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2393]: 0.245807850 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2394]: 0.245818650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2395]: 0.245832350 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2396]: 0.245843200 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[2397]: 0.245854025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2398]: 0.245865975 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2399]: 0.245877175 - core[0].svIdle(17), plen 0: [] +EVENT[2400]: 0.245889575 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2401]: 0.245905825 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2402]: 0.245953600 - core[1].svPrint(26), plen 63: [msg: I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8 , lvl: 0, unused: 0] -[0.244253300] LOG: I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec -EVENT[2386]: 0.244274500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461484, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.244274500] HEAP: Freed bytes @ 0x3ffbb8ec from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.245953600] LOG: I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8 +EVENT[2403]: 0.245978850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459416, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.245978850] HEAP: Freed bytes @ 0x3ffbb0d8 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2387]: 0.244301400 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2388]: 0.244312825 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2389]: 0.244329400 - core[1].svIdle(17), plen 0: [] -EVENT[2390]: 0.244669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2391]: 0.244682950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2392]: 0.244698525 - core[1].svIdle(17), plen 0: [] -EVENT[2393]: 0.244813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2394]: 0.244828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2395]: 0.244843775 - core[0].svIdle(17), plen 0: [] -EVENT[2396]: 0.245669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2397]: 0.245682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2398]: 0.245698325 - core[1].svIdle(17), plen 0: [] -EVENT[2399]: 0.245813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2400]: 0.245828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2401]: 0.245843775 - core[0].svIdle(17), plen 0: [] -EVENT[2402]: 0.246669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2403]: 0.246682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2404]: 0.246698100 - core[1].svIdle(17), plen 0: [] -EVENT[2405]: 0.246813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2406]: 0.246828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2407]: 0.246843775 - core[0].svIdle(17), plen 0: [] -EVENT[2408]: 0.247669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2409]: 0.247682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2410]: 0.247698075 - core[1].svIdle(17), plen 0: [] -EVENT[2411]: 0.247813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2412]: 0.247828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2413]: 0.247843825 - core[0].svIdle(17), plen 0: [] -EVENT[2414]: 0.248669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2415]: 0.248682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2416]: 0.248698075 - core[1].svIdle(17), plen 0: [] -EVENT[2417]: 0.248813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2418]: 0.248828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2419]: 0.248843775 - core[0].svIdle(17), plen 0: [] -EVENT[2420]: 0.249669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2421]: 0.249682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2422]: 0.249698325 - core[1].svIdle(17), plen 0: [] -EVENT[2423]: 0.249813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2424]: 0.249828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2425]: 0.249848325 - core[0].svIdle(17), plen 0: [] -EVENT[2426]: 0.250669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2427]: 0.250682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2428]: 0.250698075 - core[1].svIdle(17), plen 0: [] -EVENT[2429]: 0.250813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2430]: 0.250828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2431]: 0.250843775 - core[0].svIdle(17), plen 0: [] -EVENT[2432]: 0.251669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2433]: 0.251682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2434]: 0.251698325 - core[1].svIdle(17), plen 0: [] -EVENT[2435]: 0.251813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2436]: 0.251828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2437]: 0.251843775 - core[0].svIdle(17), plen 0: [] -EVENT[2438]: 0.252669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2439]: 0.252682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2440]: 0.252698100 - core[1].svIdle(17), plen 0: [] -EVENT[2441]: 0.252813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2442]: 0.252828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2443]: 0.252843775 - core[0].svIdle(17), plen 0: [] -EVENT[2444]: 0.253669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2445]: 0.253682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2446]: 0.253698075 - core[1].svIdle(17), plen 0: [] -EVENT[2447]: 0.253813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2448]: 0.253828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2449]: 0.253843825 - core[0].svIdle(17), plen 0: [] -EVENT[2450]: 0.254669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2451]: 0.254682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2452]: 0.254698075 - core[1].svIdle(17), plen 0: [] -EVENT[2453]: 0.254813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2454]: 0.254828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2455]: 0.254843775 - core[0].svIdle(17), plen 0: [] -EVENT[2456]: 0.255669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2457]: 0.255682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2458]: 0.255698325 - core[1].svIdle(17), plen 0: [] -EVENT[2459]: 0.255813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2460]: 0.255828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2461]: 0.255843775 - core[0].svIdle(17), plen 0: [] -EVENT[2462]: 0.256669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2463]: 0.256682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2464]: 0.256698100 - core[1].svIdle(17), plen 0: [] -EVENT[2465]: 0.256813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2466]: 0.256828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2467]: 0.256843775 - core[0].svIdle(17), plen 0: [] -EVENT[2468]: 0.257669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2469]: 0.257682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2470]: 0.257698075 - core[1].svIdle(17), plen 0: [] -EVENT[2471]: 0.257813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2472]: 0.257828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2473]: 0.257843825 - core[0].svIdle(17), plen 0: [] -EVENT[2474]: 0.258669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2475]: 0.258682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2476]: 0.258698075 - core[1].svIdle(17), plen 0: [] -EVENT[2477]: 0.258813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2478]: 0.258828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2479]: 0.258843775 - core[0].svIdle(17), plen 0: [] -EVENT[2480]: 0.259669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2481]: 0.259682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2482]: 0.259698325 - core[1].svIdle(17), plen 0: [] -EVENT[2483]: 0.259813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2484]: 0.259828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2485]: 0.259843775 - core[0].svIdle(17), plen 0: [] -EVENT[2486]: 0.260669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2487]: 0.260682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2488]: 0.260698100 - core[1].svIdle(17), plen 0: [] -EVENT[2489]: 0.260813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2490]: 0.260828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2491]: 0.260843775 - core[0].svIdle(17), plen 0: [] -EVENT[2492]: 0.261669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2493]: 0.261682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2494]: 0.261698075 - core[1].svIdle(17), plen 0: [] -EVENT[2495]: 0.261813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2496]: 0.261828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2497]: 0.261843825 - core[0].svIdle(17), plen 0: [] -EVENT[2498]: 0.262669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2499]: 0.262682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2500]: 0.262698325 - core[1].svIdle(17), plen 0: [] -EVENT[2501]: 0.262813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2502]: 0.262828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2503]: 0.262843775 - core[0].svIdle(17), plen 0: [] -EVENT[2504]: 0.263669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2505]: 0.263682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2506]: 0.263698100 - core[1].svIdle(17), plen 0: [] -EVENT[2507]: 0.263813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2508]: 0.263828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2509]: 0.263843775 - core[0].svIdle(17), plen 0: [] -EVENT[2510]: 0.264669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2511]: 0.264682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2512]: 0.264698075 - core[1].svIdle(17), plen 0: [] -EVENT[2513]: 0.264813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2514]: 0.264828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2515]: 0.264843825 - core[0].svIdle(17), plen 0: [] -EVENT[2516]: 0.265669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2517]: 0.265682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2518]: 0.265698075 - core[1].svIdle(17), plen 0: [] -EVENT[2519]: 0.265813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2520]: 0.265828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2521]: 0.265843775 - core[0].svIdle(17), plen 0: [] -EVENT[2522]: 0.266669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2523]: 0.266682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2524]: 0.266698325 - core[1].svIdle(17), plen 0: [] -EVENT[2525]: 0.266813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2526]: 0.266828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2527]: 0.266843775 - core[0].svIdle(17), plen 0: [] -EVENT[2528]: 0.267669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2529]: 0.267682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2530]: 0.267698100 - core[1].svIdle(17), plen 0: [] -EVENT[2531]: 0.267813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2532]: 0.267828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2533]: 0.267843775 - core[0].svIdle(17), plen 0: [] -EVENT[2534]: 0.268669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2535]: 0.268682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2536]: 0.268698075 - core[1].svIdle(17), plen 0: [] -EVENT[2537]: 0.268813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2538]: 0.268828600 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2539]: 0.268843825 - core[0].svIdle(17), plen 0: [] -EVENT[2540]: 0.269669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2541]: 0.269682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2542]: 0.269698075 - core[1].svIdle(17), plen 0: [] -EVENT[2543]: 0.269813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2544]: 0.269828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2545]: 0.269843775 - core[0].svIdle(17), plen 0: [] -EVENT[2546]: 0.270669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2547]: 0.270682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2548]: 0.270698325 - core[1].svIdle(17), plen 0: [] -EVENT[2549]: 0.270813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2550]: 0.270828700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2551]: 0.270843775 - core[0].svIdle(17), plen 0: [] -EVENT[2552]: 0.271669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2553]: 0.271682975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2554]: 0.271698100 - core[1].svIdle(17), plen 0: [] -EVENT[2555]: 0.271813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2556]: 0.271828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2557]: 0.271828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2558]: 0.271840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2559]: 0.271856650 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[2560]: 0.271875150 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2561]: 0.271886225 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2562]: 0.271886225 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2563]: 0.271899375 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2564]: 0.271915925 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2565]: 0.271927300 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2566]: 0.271944250 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2567]: 0.271962125 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2568]: 0.271978075 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2569]: 0.271993975 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2570]: 0.272043200 - core[0].svPrint(26), plen 37: [msg: I (580) example: Got notify val 1 +EVENT[2404]: 0.246006250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2405]: 0.246017675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2406]: 0.246034225 - core[1].svIdle(17), plen 0: [] +EVENT[2407]: 0.246425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2408]: 0.246439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2409]: 0.246455150 - core[1].svIdle(17), plen 0: [] +EVENT[2410]: 0.246546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2411]: 0.246562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2412]: 0.246577125 - core[0].svIdle(17), plen 0: [] +EVENT[2413]: 0.247425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2414]: 0.247439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2415]: 0.247454550 - core[1].svIdle(17), plen 0: [] +EVENT[2416]: 0.247546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2417]: 0.247562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2418]: 0.247577425 - core[0].svIdle(17), plen 0: [] +EVENT[2419]: 0.248425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2420]: 0.248439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2421]: 0.248454550 - core[1].svIdle(17), plen 0: [] +EVENT[2422]: 0.248546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2423]: 0.248562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2424]: 0.248577125 - core[0].svIdle(17), plen 0: [] +EVENT[2425]: 0.249425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2426]: 0.249439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2427]: 0.249454675 - core[1].svIdle(17), plen 0: [] +EVENT[2428]: 0.249546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2429]: 0.249562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2430]: 0.249577150 - core[0].svIdle(17), plen 0: [] +EVENT[2431]: 0.250425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2432]: 0.250439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2433]: 0.250454600 - core[1].svIdle(17), plen 0: [] +EVENT[2434]: 0.250546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2435]: 0.250562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2436]: 0.250577125 - core[0].svIdle(17), plen 0: [] +EVENT[2437]: 0.251425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2438]: 0.251439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2439]: 0.251454550 - core[1].svIdle(17), plen 0: [] +EVENT[2440]: 0.251546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2441]: 0.251562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2442]: 0.251577425 - core[0].svIdle(17), plen 0: [] +EVENT[2443]: 0.252425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2444]: 0.252439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2445]: 0.252454550 - core[1].svIdle(17), plen 0: [] +EVENT[2446]: 0.252546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2447]: 0.252562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2448]: 0.252577125 - core[0].svIdle(17), plen 0: [] +EVENT[2449]: 0.253425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2450]: 0.253443075 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2451]: 0.253458200 - core[1].svIdle(17), plen 0: [] +EVENT[2452]: 0.253546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2453]: 0.253562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2454]: 0.253577125 - core[0].svIdle(17), plen 0: [] +EVENT[2455]: 0.254425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2456]: 0.254439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2457]: 0.254454550 - core[1].svIdle(17), plen 0: [] +EVENT[2458]: 0.254546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2459]: 0.254562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2460]: 0.254577425 - core[0].svIdle(17), plen 0: [] +EVENT[2461]: 0.255425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2462]: 0.255439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2463]: 0.255454550 - core[1].svIdle(17), plen 0: [] +EVENT[2464]: 0.255546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2465]: 0.255562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2466]: 0.255577125 - core[0].svIdle(17), plen 0: [] +EVENT[2467]: 0.256425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2468]: 0.256439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2469]: 0.256454675 - core[1].svIdle(17), plen 0: [] +EVENT[2470]: 0.256546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2471]: 0.256562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2472]: 0.256577150 - core[0].svIdle(17), plen 0: [] +EVENT[2473]: 0.257425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2474]: 0.257439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2475]: 0.257454600 - core[1].svIdle(17), plen 0: [] +EVENT[2476]: 0.257546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2477]: 0.257562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2478]: 0.257577125 - core[0].svIdle(17), plen 0: [] +EVENT[2479]: 0.258425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2480]: 0.258439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2481]: 0.258454550 - core[1].svIdle(17), plen 0: [] +EVENT[2482]: 0.258546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2483]: 0.258562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2484]: 0.258577425 - core[0].svIdle(17), plen 0: [] +EVENT[2485]: 0.259425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2486]: 0.259439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2487]: 0.259454550 - core[1].svIdle(17), plen 0: [] +EVENT[2488]: 0.259546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2489]: 0.259562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2490]: 0.259577125 - core[0].svIdle(17), plen 0: [] +EVENT[2491]: 0.260425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2492]: 0.260439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2493]: 0.260454675 - core[1].svIdle(17), plen 0: [] +EVENT[2494]: 0.260546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2495]: 0.260562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2496]: 0.260577150 - core[0].svIdle(17), plen 0: [] +EVENT[2497]: 0.261425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2498]: 0.261439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2499]: 0.261454600 - core[1].svIdle(17), plen 0: [] +EVENT[2500]: 0.261546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2501]: 0.261562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2502]: 0.261577125 - core[0].svIdle(17), plen 0: [] +EVENT[2503]: 0.262425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2504]: 0.262439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2505]: 0.262454550 - core[1].svIdle(17), plen 0: [] +EVENT[2506]: 0.262546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2507]: 0.262562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2508]: 0.262577425 - core[0].svIdle(17), plen 0: [] +EVENT[2509]: 0.263425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2510]: 0.263439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2511]: 0.263454550 - core[1].svIdle(17), plen 0: [] +EVENT[2512]: 0.263546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2513]: 0.263562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2514]: 0.263577125 - core[0].svIdle(17), plen 0: [] +EVENT[2515]: 0.264425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2516]: 0.264439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2517]: 0.264454675 - core[1].svIdle(17), plen 0: [] +EVENT[2518]: 0.264546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2519]: 0.264562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2520]: 0.264577150 - core[0].svIdle(17), plen 0: [] +EVENT[2521]: 0.265425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2522]: 0.265443675 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2523]: 0.265458825 - core[1].svIdle(17), plen 0: [] +EVENT[2524]: 0.265546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2525]: 0.265562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2526]: 0.265577125 - core[0].svIdle(17), plen 0: [] +EVENT[2527]: 0.266425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2528]: 0.266439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2529]: 0.266454550 - core[1].svIdle(17), plen 0: [] +EVENT[2530]: 0.266546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2531]: 0.266562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2532]: 0.266577425 - core[0].svIdle(17), plen 0: [] +EVENT[2533]: 0.267425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2534]: 0.267439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2535]: 0.267454550 - core[1].svIdle(17), plen 0: [] +EVENT[2536]: 0.267546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2537]: 0.267562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2538]: 0.267577125 - core[0].svIdle(17), plen 0: [] +EVENT[2539]: 0.268425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2540]: 0.268439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2541]: 0.268454675 - core[1].svIdle(17), plen 0: [] +EVENT[2542]: 0.268546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2543]: 0.268562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2544]: 0.268577150 - core[0].svIdle(17), plen 0: [] +EVENT[2545]: 0.269425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2546]: 0.269439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2547]: 0.269454600 - core[1].svIdle(17), plen 0: [] +EVENT[2548]: 0.269546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2549]: 0.269562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2550]: 0.269577125 - core[0].svIdle(17), plen 0: [] +EVENT[2551]: 0.270425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2552]: 0.270439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2553]: 0.270454550 - core[1].svIdle(17), plen 0: [] +EVENT[2554]: 0.270546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2555]: 0.270562100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2556]: 0.270577425 - core[0].svIdle(17), plen 0: [] +EVENT[2557]: 0.271425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2558]: 0.271439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2559]: 0.271454550 - core[1].svIdle(17), plen 0: [] +EVENT[2560]: 0.271546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2561]: 0.271562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2562]: 0.271577125 - core[0].svIdle(17), plen 0: [] +EVENT[2563]: 0.272425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2564]: 0.272439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2565]: 0.272454675 - core[1].svIdle(17), plen 0: [] +EVENT[2566]: 0.272546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2567]: 0.272561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2568]: 0.272561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2569]: 0.272574250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2570]: 0.272589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2571]: 0.272608100 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2572]: 0.272619125 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2573]: 0.272619125 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2574]: 0.272632225 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2575]: 0.272648775 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2576]: 0.272660150 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2577]: 0.272677100 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2578]: 0.272690850 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2579]: 0.272706775 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2580]: 0.272722800 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2581]: 0.272764375 - core[0].svPrint(26), plen 37: [msg: I (568) example: Got notify val 1 , lvl: 0, unused: 0] -[0.272043200] LOG: I (580) example: Got notify val 1 -EVENT[2571]: 0.272059500 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2572]: 0.272075450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2573]: 0.272119800 - core[0].svPrint(26), plen 34: [msg: I (580) example: Wait notify 1 +[0.272764375] LOG: I (568) example: Got notify val 1 +EVENT[2582]: 0.272784725 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2583]: 0.272800650 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2584]: 0.272837200 - core[0].svPrint(26), plen 34: [msg: I (568) example: Wait notify 1 , lvl: 0, unused: 0] -[0.272119800] LOG: I (580) example: Wait notify 1 -EVENT[2574]: 0.272138175 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2575]: 0.272149575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2576]: 0.272165625 - core[0].svIdle(17), plen 0: [] -EVENT[2577]: 0.272669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2578]: 0.272682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2579]: 0.272698075 - core[1].svIdle(17), plen 0: [] -EVENT[2580]: 0.272813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2581]: 0.272828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2582]: 0.272828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2583]: 0.272840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2584]: 0.272856775 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[2585]: 0.272871200 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2586]: 0.272882200 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2587]: 0.272882200 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2588]: 0.272895325 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2589]: 0.272911925 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2590]: 0.272923300 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2591]: 0.272940250 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2592]: 0.272953950 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2593]: 0.272969875 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2594]: 0.272985925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2595]: 0.273035525 - core[0].svPrint(26), plen 37: [msg: I (581) example: Got notify val 1 +[0.272837200] LOG: I (568) example: Wait notify 1 +EVENT[2585]: 0.272855425 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2586]: 0.272866775 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2587]: 0.272882700 - core[0].svIdle(17), plen 0: [] +EVENT[2588]: 0.273425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2589]: 0.273439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2590]: 0.273454675 - core[1].svIdle(17), plen 0: [] +EVENT[2591]: 0.273546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2592]: 0.273561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2593]: 0.273561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2594]: 0.273574250 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2595]: 0.273589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2596]: 0.273604300 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2597]: 0.273615325 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2598]: 0.273615325 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2599]: 0.273628425 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2600]: 0.273644975 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2601]: 0.273656350 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2602]: 0.273673300 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2603]: 0.273687050 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2604]: 0.273702975 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2605]: 0.273719000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2606]: 0.273756475 - core[0].svPrint(26), plen 37: [msg: I (569) example: Got notify val 1 , lvl: 0, unused: 0] -[0.273035525] LOG: I (581) example: Got notify val 1 -EVENT[2596]: 0.273051825 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2597]: 0.273067775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2598]: 0.273112250 - core[0].svPrint(26), plen 34: [msg: I (581) example: Wait notify 2 +[0.273756475] LOG: I (569) example: Got notify val 1 +EVENT[2607]: 0.273776650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2608]: 0.273792575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2609]: 0.273829125 - core[0].svPrint(26), plen 34: [msg: I (569) example: Wait notify 2 , lvl: 0, unused: 0] -[0.273112250] LOG: I (581) example: Wait notify 2 -EVENT[2599]: 0.273130625 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2600]: 0.273142025 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2601]: 0.273158075 - core[0].svIdle(17), plen 0: [] -EVENT[2602]: 0.273669400 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2603]: 0.273682925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2604]: 0.273698075 - core[1].svIdle(17), plen 0: [] -EVENT[2605]: 0.273813200 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2606]: 0.273828325 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2607]: 0.273828325 - core[1].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2608]: 0.273840975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2609]: 0.273856775 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[2610]: 0.273871200 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2611]: 0.273882200 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2612]: 0.273882200 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2613]: 0.273895325 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2614]: 0.273911925 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2615]: 0.273923300 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2616]: 0.273940250 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2617]: 0.273953950 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2618]: 0.273969875 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2619]: 0.273985925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2620]: 0.274031175 - core[0].svPrint(26), plen 37: [msg: I (582) example: Got notify val 1 +[0.273829125] LOG: I (569) example: Wait notify 2 +EVENT[2610]: 0.273847350 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2611]: 0.273858700 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2612]: 0.273874625 - core[0].svIdle(17), plen 0: [] +EVENT[2613]: 0.274425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2614]: 0.274439400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2615]: 0.274454675 - core[1].svIdle(17), plen 0: [] +EVENT[2616]: 0.274546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2617]: 0.274562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2618]: 0.274577150 - core[0].svIdle(17), plen 0: [] +EVENT[2619]: 0.275425900 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2620]: 0.275439450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2621]: 0.275454600 - core[1].svIdle(17), plen 0: [] +EVENT[2622]: 0.275546700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2623]: 0.275561650 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2624]: 0.275561650 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2625]: 0.275574300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2626]: 0.275589975 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2627]: 0.275604400 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2628]: 0.275615400 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2629]: 0.275615400 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2630]: 0.275628550 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2631]: 0.275645125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2632]: 0.275656475 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2633]: 0.275673425 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2634]: 0.275687250 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2635]: 0.275703250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2636]: 0.275719275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2637]: 0.275756850 - core[0].svPrint(26), plen 37: [msg: I (571) example: Got notify val 1 , lvl: 0, unused: 0] -[0.274031175] LOG: I (582) example: Got notify val 1 -EVENT[2621]: 0.329656225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2622]: 0.329664950 - core[0].svTraceStop(11), plen 0: [] -EVENT[2623]: 0.329664950 - core[1].svTraceStop(11), plen 0: [] -Processed 2624 events +[0.275756850] LOG: I (571) example: Got notify val 1 +EVENT[2638]: 0.329911225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2639]: 0.329919950 - core[0].svTraceStop(11), plen 0: [] +EVENT[2640]: 0.329919950 - core[1].svTraceStop(11), plen 0: [] +Processed 2641 events =============== LOG TRACE REPORT =============== Processed 60 log messages. =============== HEAP TRACE REPORT =============== Processed 99 heap events. -[0.001529550] HEAP: Allocated 8 bytes @ 0x3ffb70d8 from task "main" on core 0 by: +[0.001637325] HEAP: Allocated 8 bytes @ 0x3ffb68a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.001864250] HEAP: Allocated 2500 bytes @ 0x3ffb70e8 from task "main" on core 0 by: +[0.001939050] HEAP: Allocated 2500 bytes @ 0x3ffb68b0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.001904100] HEAP: Allocated 340 bytes @ 0x3ffb7aec from task "main" on core 0 by: +[0.001979950] HEAP: Allocated 340 bytes @ 0x3ffb72b4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002037875] HEAP: Allocated 124 bytes @ 0x3ffb7c50 from task "alloc0" on core 0 by: +[0.002130925] HEAP: Allocated 124 bytes @ 0x3ffb7418 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002107400] HEAP: Allocated 2500 bytes @ 0x3ffb7cd0 from task "alloc0" on core 0 by: +[0.002205450] HEAP: Allocated 2500 bytes @ 0x3ffb7498 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002141800] HEAP: Allocated 340 bytes @ 0x3ffb86d4 from task "alloc0" on core 0 by: +[0.002240900] HEAP: Allocated 340 bytes @ 0x3ffb7e9c from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002245650] HEAP: Allocated 1 bytes @ 0x3ffb8838 from task "alloc0" on core 0 by: +[0.002345850] HEAP: Allocated 1 bytes @ 0x3ffb8000 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002782075] HEAP: Allocated 8 bytes @ 0x3ffb8858 from task "main" on core 0 by: +[0.002949925] HEAP: Allocated 8 bytes @ 0x3ffb8020 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002860725] HEAP: Allocated 2500 bytes @ 0x3ffb8868 from task "main" on core 0 by: +[0.003004025] HEAP: Allocated 2500 bytes @ 0x3ffb8030 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002902375] HEAP: Allocated 340 bytes @ 0x3ffb926c from task "main" on core 0 by: +[0.003044650] HEAP: Allocated 340 bytes @ 0x3ffb8a34 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003037100] HEAP: Allocated 124 bytes @ 0x3ffb93d0 from task "alloc1" on core 0 by: +[0.003179725] HEAP: Allocated 124 bytes @ 0x3ffb8b98 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003090750] HEAP: Allocated 2500 bytes @ 0x3ffb9450 from task "alloc1" on core 0 by: +[0.003234475] HEAP: Allocated 2500 bytes @ 0x3ffb8c18 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003125150] HEAP: Allocated 340 bytes @ 0x3ffb9e54 from task "alloc1" on core 0 by: +[0.003269925] HEAP: Allocated 340 bytes @ 0x3ffb961c from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003220600] HEAP: Allocated 2 bytes @ 0x3ffb9fb8 from task "alloc1" on core 0 by: +[0.003366350] HEAP: Allocated 2 bytes @ 0x3ffb9780 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003544375] HEAP: Allocated 8 bytes @ 0x3ffb8848 from task "main" on core 0 by: +[0.003736750] HEAP: Allocated 8 bytes @ 0x3ffb8010 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003597875] HEAP: Allocated 2500 bytes @ 0x3ffb9fd8 from task "main" on core 0 by: +[0.003802900] HEAP: Allocated 2500 bytes @ 0x3ffb97a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003637125] HEAP: Allocated 340 bytes @ 0x3ffba9dc from task "main" on core 0 by: +[0.003855950] HEAP: Allocated 340 bytes @ 0x3ffba1a4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003887725] HEAP: Allocated 124 bytes @ 0x3ffbab40 from task "alloc2" on core 0 by: +[0.004030875] HEAP: Allocated 124 bytes @ 0x3ffba308 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003941625] HEAP: Allocated 2500 bytes @ 0x3ffbabc0 from task "alloc2" on core 0 by: +[0.004085625] HEAP: Allocated 2500 bytes @ 0x3ffba388 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003976025] HEAP: Allocated 340 bytes @ 0x3ffbb5c4 from task "alloc2" on core 0 by: +[0.004121100] HEAP: Allocated 340 bytes @ 0x3ffbad8c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.004075375] HEAP: Allocated 3 bytes @ 0x3ffb9fc8 from task "alloc2" on core 0 by: +[0.004221350] HEAP: Allocated 3 bytes @ 0x3ffb9790 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.031895800] HEAP: Allocated 2 bytes @ 0x3ffbb728 from task "alloc0" on core 0 by: +[0.032626425] HEAP: Allocated 2 bytes @ 0x3ffbaef0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.032891700] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc1" on core 0 by: +[0.033638000] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.033892175] HEAP: Allocated 6 bytes @ 0x3ffbb748 from task "alloc2" on core 0 by: +[0.033931975] HEAP: Allocated 6 bytes @ 0x3ffbaf20 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.061891850] HEAP: Allocated 3 bytes @ 0x3ffbb758 from task "alloc0" on core 0 by: +[0.062624925] HEAP: Allocated 3 bytes @ 0x3ffbaf10 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.062891850] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc1" on core 0 by: +[0.063638150] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.063892175] HEAP: Allocated 9 bytes @ 0x3ffbb778 from task "alloc2" on core 0 by: +[0.063937800] HEAP: Allocated 9 bytes @ 0x3ffbaf50 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.091892175] HEAP: Allocated 4 bytes @ 0x3ffbb788 from task "alloc0" on core 0 by: +[0.092625300] HEAP: Allocated 4 bytes @ 0x3ffbaf40 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.092892175] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc1" on core 0 by: +[0.093638150] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.093892000] HEAP: Allocated 12 bytes @ 0x3ffbb7a8 from task "alloc2" on core 0 by: +[0.093933750] HEAP: Allocated 12 bytes @ 0x3ffbaf84 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.121891850] HEAP: Allocated 5 bytes @ 0x3ffbb7b8 from task "alloc0" on core 0 by: +[0.122624925] HEAP: Allocated 5 bytes @ 0x3ffbaf70 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.122891850] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc1" on core 0 by: +[0.123638150] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.123892175] HEAP: Allocated 15 bytes @ 0x3ffbb7d8 from task "alloc2" on core 0 by: +[0.123936400] HEAP: Allocated 15 bytes @ 0x3ffbafbc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.151892175] HEAP: Allocated 6 bytes @ 0x3ffbb7ec from task "alloc0" on core 0 by: +[0.152625450] HEAP: Allocated 6 bytes @ 0x3ffbafa4 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.152892175] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc1" on core 0 by: +[0.153638150] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.153892175] HEAP: Allocated 18 bytes @ 0x3ffbb80c from task "alloc2" on core 0 by: +[0.153933750] HEAP: Allocated 18 bytes @ 0x3ffbaffc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.181891850] HEAP: Allocated 7 bytes @ 0x3ffbb824 from task "alloc0" on core 0 by: +[0.182624925] HEAP: Allocated 7 bytes @ 0x3ffbafe0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.182891700] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc1" on core 0 by: +[0.183638150] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.183892175] HEAP: Allocated 21 bytes @ 0x3ffbb848 from task "alloc2" on core 0 by: +[0.183937500] HEAP: Allocated 21 bytes @ 0x3ffbb048 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.211892175] HEAP: Allocated 8 bytes @ 0x3ffbb864 from task "alloc0" on core 0 by: +[0.212626475] HEAP: Allocated 8 bytes @ 0x3ffbb028 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.212892175] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc1" on core 0 by: +[0.213638150] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.213892175] HEAP: Allocated 24 bytes @ 0x3ffbb888 from task "alloc2" on core 0 by: +[0.213933875] HEAP: Allocated 24 bytes @ 0x3ffbb09c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.241891850] HEAP: Allocated 9 bytes @ 0x3ffbb8a4 from task "alloc0" on core 0 by: +[0.242625100] HEAP: Allocated 9 bytes @ 0x3ffbb038 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.242891850] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc1" on core 0 by: +[0.243625450] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.243892175] HEAP: Allocated 27 bytes @ 0x3ffbb8cc from task "alloc2" on core 0 by: +[0.245626175] HEAP: Allocated 27 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 diff --git a/tools/esp_app_trace/test/sysview/expected_output.json b/tools/esp_app_trace/test/sysview/expected_output.json index 4a42e26841c..581d0337dfc 100644 --- a/tools/esp_app_trace/test/sysview/expected_output.json +++ b/tools/esp_app_trace/test/sysview/expected_output.json @@ -27,7 +27,7 @@ "ram_base": 1061158912, "sys_freq": 40000000 }, - "ts": 6.65e-06 + "ts": 6.675e-06 }, { "core_id": 1, @@ -40,7 +40,7 @@ "ram_base": 1061158912, "sys_freq": 40000000 }, - "ts": 6.65e-06 + "ts": 6.675e-06 }, { "core_id": 0, @@ -50,7 +50,7 @@ "params": { "desc": "N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS" }, - "ts": 1.855e-05 + "ts": 1.86e-05 }, { "core_id": 1, @@ -60,7 +60,7 @@ "params": { "desc": "N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS" }, - "ts": 1.855e-05 + "ts": 1.86e-05 }, { "core_id": 0, @@ -70,7 +70,7 @@ "params": { "desc": "I#5=SysTick" }, - "ts": 2.7675e-05 + "ts": 2.775e-05 }, { "core_id": 1, @@ -80,7 +80,7 @@ "params": { "desc": "I#5=SysTick" }, - "ts": 2.7675e-05 + "ts": 2.775e-05 }, { "core_id": 0, @@ -90,7 +90,7 @@ "params": { "desc": "I#6=WIFI_MAC" }, - "ts": 4.9775e-05 + "ts": 4.5925e-05 }, { "core_id": 1, @@ -100,7 +100,7 @@ "params": { "desc": "I#6=WIFI_MAC" }, - "ts": 4.9775e-05 + "ts": 4.5925e-05 }, { "core_id": 0, @@ -110,7 +110,7 @@ "params": { "desc": "I#7=WIFI_NMI" }, - "ts": 6.3875e-05 + "ts": 6.0025e-05 }, { "core_id": 1, @@ -120,7 +120,7 @@ "params": { "desc": "I#7=WIFI_NMI" }, - "ts": 6.3875e-05 + "ts": 6.0025e-05 }, { "core_id": 0, @@ -130,7 +130,7 @@ "params": { "desc": "I#8=WIFI_BB" }, - "ts": 7.3825e-05 + "ts": 7.0125e-05 }, { "core_id": 1, @@ -140,7 +140,7 @@ "params": { "desc": "I#8=WIFI_BB" }, - "ts": 7.3825e-05 + "ts": 7.0125e-05 }, { "core_id": 0, @@ -150,7 +150,7 @@ "params": { "desc": "I#9=BT_MAC" }, - "ts": 8.75e-05 + "ts": 7.9875e-05 }, { "core_id": 1, @@ -160,7 +160,7 @@ "params": { "desc": "I#9=BT_MAC" }, - "ts": 8.75e-05 + "ts": 7.9875e-05 }, { "core_id": 0, @@ -170,7 +170,7 @@ "params": { "desc": "I#10=BT_BB" }, - "ts": 0.000101575 + "ts": 9.395e-05 }, { "core_id": 1, @@ -180,7 +180,7 @@ "params": { "desc": "I#10=BT_BB" }, - "ts": 0.000101575 + "ts": 9.395e-05 }, { "core_id": 0, @@ -190,7 +190,7 @@ "params": { "desc": "I#11=BT_BB_NMI" }, - "ts": 0.000112375 + "ts": 0.000108725 }, { "core_id": 1, @@ -200,7 +200,7 @@ "params": { "desc": "I#11=BT_BB_NMI" }, - "ts": 0.000112375 + "ts": 0.000108725 }, { "core_id": 0, @@ -210,7 +210,7 @@ "params": { "desc": "I#12=RWBT" }, - "ts": 0.0001223 + "ts": 0.000118675 }, { "core_id": 1, @@ -220,7 +220,7 @@ "params": { "desc": "I#12=RWBT" }, - "ts": 0.0001223 + "ts": 0.000118675 }, { "core_id": 0, @@ -230,7 +230,7 @@ "params": { "desc": "I#13=RWBLE" }, - "ts": 0.0001323 + "ts": 0.000128675 }, { "core_id": 1, @@ -240,7 +240,7 @@ "params": { "desc": "I#13=RWBLE" }, - "ts": 0.0001323 + "ts": 0.000128675 }, { "core_id": 0, @@ -250,7 +250,7 @@ "params": { "desc": "I#14=RWBT_NMI" }, - "ts": 0.0001468 + "ts": 0.000143225 }, { "core_id": 1, @@ -260,7 +260,7 @@ "params": { "desc": "I#14=RWBT_NMI" }, - "ts": 0.0001468 + "ts": 0.000143225 }, { "core_id": 0, @@ -270,7 +270,7 @@ "params": { "desc": "I#15=RWBLE_NMI" }, - "ts": 0.0001576 + "ts": 0.000154025 }, { "core_id": 1, @@ -280,7 +280,7 @@ "params": { "desc": "I#15=RWBLE_NMI" }, - "ts": 0.0001576 + "ts": 0.000154025 }, { "core_id": 0, @@ -290,7 +290,7 @@ "params": { "desc": "I#16=SLC0" }, - "ts": 0.0001719 + "ts": 0.00016835 }, { "core_id": 1, @@ -300,7 +300,7 @@ "params": { "desc": "I#16=SLC0" }, - "ts": 0.0001719 + "ts": 0.00016835 }, { "core_id": 0, @@ -310,7 +310,7 @@ "params": { "desc": "I#17=SLC1" }, - "ts": 0.00018955 + "ts": 0.000182075 }, { "core_id": 1, @@ -320,7 +320,7 @@ "params": { "desc": "I#17=SLC1" }, - "ts": 0.00018955 + "ts": 0.000182075 }, { "core_id": 0, @@ -330,7 +330,7 @@ "params": { "desc": "I#18=UHCI0" }, - "ts": 0.000199525 + "ts": 0.000196025 }, { "core_id": 1, @@ -340,7 +340,7 @@ "params": { "desc": "I#18=UHCI0" }, - "ts": 0.000199525 + "ts": 0.000196025 }, { "core_id": 0, @@ -350,7 +350,7 @@ "params": { "desc": "I#19=UHCI1" }, - "ts": 0.0002095 + "ts": 0.000206 }, { "core_id": 1, @@ -360,7 +360,7 @@ "params": { "desc": "I#19=UHCI1" }, - "ts": 0.0002095 + "ts": 0.000206 }, { "core_id": 0, @@ -370,7 +370,7 @@ "params": { "desc": "I#20=TG0_T0_LEVEL" }, - "ts": 0.00022475 + "ts": 0.000221275 }, { "core_id": 1, @@ -380,7 +380,7 @@ "params": { "desc": "I#20=TG0_T0_LEVEL" }, - "ts": 0.00022475 + "ts": 0.000221275 }, { "core_id": 0, @@ -390,7 +390,7 @@ "params": { "desc": "I#21=TG0_T1_LEVEL" }, - "ts": 0.00023615 + "ts": 0.0002327 }, { "core_id": 1, @@ -400,7 +400,7 @@ "params": { "desc": "I#21=TG0_T1_LEVEL" }, - "ts": 0.00023615 + "ts": 0.0002327 }, { "core_id": 0, @@ -410,7 +410,7 @@ "params": { "desc": "I#22=TG0_WDT_LEVEL" }, - "ts": 0.00025185 + "ts": 0.000248425 }, { "core_id": 1, @@ -420,7 +420,7 @@ "params": { "desc": "I#22=TG0_WDT_LEVEL" }, - "ts": 0.00025185 + "ts": 0.000248425 }, { "core_id": 0, @@ -430,7 +430,7 @@ "params": { "desc": "I#23=TG0_LACT_LEVEL" }, - "ts": 0.000263625 + "ts": 0.000260225 }, { "core_id": 1, @@ -440,7 +440,7 @@ "params": { "desc": "I#23=TG0_LACT_LEVEL" }, - "ts": 0.000263625 + "ts": 0.000260225 }, { "core_id": 0, @@ -450,7 +450,7 @@ "params": { "desc": "I#24=TG1_T0_LEVEL" }, - "ts": 0.00027905 + "ts": 0.00027565 }, { "core_id": 1, @@ -460,7 +460,7 @@ "params": { "desc": "I#24=TG1_T0_LEVEL" }, - "ts": 0.00027905 + "ts": 0.00027565 }, { "core_id": 0, @@ -470,7 +470,7 @@ "params": { "desc": "I#25=TG1_T1_LEVEL" }, - "ts": 0.00029445 + "ts": 0.00028725 }, { "core_id": 1, @@ -480,7 +480,7 @@ "params": { "desc": "I#25=TG1_T1_LEVEL" }, - "ts": 0.00029445 + "ts": 0.00028725 }, { "core_id": 0, @@ -490,7 +490,7 @@ "params": { "desc": "I#26=TG1_WDT_LEVEL" }, - "ts": 0.00031 + "ts": 0.000306775 }, { "core_id": 1, @@ -500,7 +500,7 @@ "params": { "desc": "I#26=TG1_WDT_LEVEL" }, - "ts": 0.00031 + "ts": 0.000306775 }, { "core_id": 0, @@ -510,7 +510,7 @@ "params": { "desc": "I#27=TG1_LACT_LEVEL" }, - "ts": 0.000321975 + "ts": 0.000318775 }, { "core_id": 1, @@ -520,7 +520,7 @@ "params": { "desc": "I#27=TG1_LACT_LEVEL" }, - "ts": 0.000321975 + "ts": 0.000318775 }, { "core_id": 0, @@ -530,7 +530,7 @@ "params": { "desc": "I#28=GPIO" }, - "ts": 0.000331875 + "ts": 0.0003287 }, { "core_id": 1, @@ -540,7 +540,7 @@ "params": { "desc": "I#28=GPIO" }, - "ts": 0.000331875 + "ts": 0.0003287 }, { "core_id": 0, @@ -550,7 +550,7 @@ "params": { "desc": "I#29=GPIO_NMI" }, - "ts": 0.000350775 + "ts": 0.000347625 }, { "core_id": 1, @@ -560,7 +560,7 @@ "params": { "desc": "I#29=GPIO_NMI" }, - "ts": 0.000350775 + "ts": 0.000347625 }, { "core_id": 0, @@ -570,7 +570,7 @@ "params": { "desc": "I#30=FROM_CPU0" }, - "ts": 0.000361675 + "ts": 0.00035855 }, { "core_id": 1, @@ -580,7 +580,7 @@ "params": { "desc": "I#30=FROM_CPU0" }, - "ts": 0.000361675 + "ts": 0.00035855 }, { "core_id": 0, @@ -590,7 +590,7 @@ "params": { "desc": "I#31=FROM_CPU1" }, - "ts": 0.000376375 + "ts": 0.0003693 }, { "core_id": 1, @@ -600,7 +600,7 @@ "params": { "desc": "I#31=FROM_CPU1" }, - "ts": 0.000376375 + "ts": 0.0003693 }, { "core_id": 0, @@ -610,7 +610,7 @@ "params": { "desc": "I#32=FROM_CPU2" }, - "ts": 0.0003872 + "ts": 0.000384075 }, { "core_id": 1, @@ -620,7 +620,7 @@ "params": { "desc": "I#32=FROM_CPU2" }, - "ts": 0.0003872 + "ts": 0.000384075 }, { "core_id": 0, @@ -630,7 +630,7 @@ "params": { "desc": "I#33=FROM_CPU3" }, - "ts": 0.0004019 + "ts": 0.000394825 }, { "core_id": 1, @@ -640,7 +640,7 @@ "params": { "desc": "I#33=FROM_CPU3" }, - "ts": 0.0004019 + "ts": 0.000394825 }, { "core_id": 0, @@ -650,7 +650,7 @@ "params": { "desc": "I#34=SPI0" }, - "ts": 0.00041565 + "ts": 0.0004086 }, { "core_id": 1, @@ -660,7 +660,7 @@ "params": { "desc": "I#34=SPI0" }, - "ts": 0.00041565 + "ts": 0.0004086 }, { "core_id": 0, @@ -670,7 +670,7 @@ "params": { "desc": "I#35=SPI1" }, - "ts": 0.0004254 + "ts": 0.000422675 }, { "core_id": 1, @@ -680,7 +680,7 @@ "params": { "desc": "I#35=SPI1" }, - "ts": 0.0004254 + "ts": 0.000422675 }, { "core_id": 0, @@ -690,7 +690,7 @@ "params": { "desc": "I#36=SPI2" }, - "ts": 0.000435175 + "ts": 0.0004339 }, { "core_id": 1, @@ -700,7 +700,7 @@ "params": { "desc": "I#36=SPI2" }, - "ts": 0.000435175 + "ts": 0.0004339 }, { "core_id": 0, @@ -730,7 +730,7 @@ "params": { "desc": "I#38=I2S0" }, - "ts": 0.00045885 + "ts": 0.000455975 }, { "core_id": 1, @@ -740,7 +740,7 @@ "params": { "desc": "I#38=I2S0" }, - "ts": 0.00045885 + "ts": 0.000455975 }, { "core_id": 0, @@ -750,7 +750,7 @@ "params": { "desc": "I#39=I2S1" }, - "ts": 0.0004686 + "ts": 0.000471025 }, { "core_id": 1, @@ -760,7 +760,7 @@ "params": { "desc": "I#39=I2S1" }, - "ts": 0.0004686 + "ts": 0.000471025 }, { "core_id": 0, @@ -770,7 +770,7 @@ "params": { "desc": "I#40=UART0" }, - "ts": 0.000478575 + "ts": 0.000482575 }, { "core_id": 1, @@ -780,7 +780,7 @@ "params": { "desc": "I#40=UART0" }, - "ts": 0.000478575 + "ts": 0.000482575 }, { "core_id": 0, @@ -790,7 +790,7 @@ "params": { "desc": "I#41=UART1" }, - "ts": 0.0004925 + "ts": 0.000493675 }, { "core_id": 1, @@ -800,7 +800,7 @@ "params": { "desc": "I#41=UART1" }, - "ts": 0.0004925 + "ts": 0.000493675 }, { "core_id": 0, @@ -810,7 +810,7 @@ "params": { "desc": "I#42=UART2" }, - "ts": 0.000506375 + "ts": 0.000509025 }, { "core_id": 1, @@ -820,7 +820,7 @@ "params": { "desc": "I#42=UART2" }, - "ts": 0.000506375 + "ts": 0.000509025 }, { "core_id": 0, @@ -830,7 +830,7 @@ "params": { "desc": "I#43=SDIO_HOST" }, - "ts": 0.00051715 + "ts": 0.000525125 }, { "core_id": 1, @@ -840,7 +840,7 @@ "params": { "desc": "I#43=SDIO_HOST" }, - "ts": 0.00051715 + "ts": 0.000525125 }, { "core_id": 0, @@ -850,7 +850,7 @@ "params": { "desc": "I#44=ETH_MAC" }, - "ts": 0.000527475 + "ts": 0.00053665 }, { "core_id": 1, @@ -860,7 +860,7 @@ "params": { "desc": "I#44=ETH_MAC" }, - "ts": 0.000527475 + "ts": 0.00053665 }, { "core_id": 0, @@ -870,7 +870,7 @@ "params": { "desc": "I#45=PWM0" }, - "ts": 0.000541625 + "ts": 0.00055275 }, { "core_id": 1, @@ -880,7 +880,7 @@ "params": { "desc": "I#45=PWM0" }, - "ts": 0.000541625 + "ts": 0.00055275 }, { "core_id": 0, @@ -890,7 +890,7 @@ "params": { "desc": "I#46=PWM1" }, - "ts": 0.0005553 + "ts": 0.0005676 }, { "core_id": 1, @@ -900,7 +900,7 @@ "params": { "desc": "I#46=PWM1" }, - "ts": 0.0005553 + "ts": 0.0005676 }, { "core_id": 0, @@ -910,7 +910,7 @@ "params": { "desc": "I#47=RESERVED" }, - "ts": 0.000565975 + "ts": 0.00057995 }, { "core_id": 1, @@ -920,7 +920,7 @@ "params": { "desc": "I#47=RESERVED" }, - "ts": 0.000565975 + "ts": 0.00057995 }, { "core_id": 0, @@ -930,7 +930,7 @@ "params": { "desc": "I#48=RESERVED" }, - "ts": 0.00057655 + "ts": 0.0005921 }, { "core_id": 1, @@ -940,7 +940,7 @@ "params": { "desc": "I#48=RESERVED" }, - "ts": 0.00057655 + "ts": 0.0005921 }, { "core_id": 0, @@ -950,7 +950,7 @@ "params": { "desc": "I#49=LEDC" }, - "ts": 0.000590325 + "ts": 0.000603425 }, { "core_id": 1, @@ -960,7 +960,7 @@ "params": { "desc": "I#49=LEDC" }, - "ts": 0.000590325 + "ts": 0.000603425 }, { "core_id": 0, @@ -970,7 +970,7 @@ "params": { "desc": "I#50=EFUSE" }, - "ts": 0.000604225 + "ts": 0.000622525 }, { "core_id": 1, @@ -980,7 +980,7 @@ "params": { "desc": "I#50=EFUSE" }, - "ts": 0.000604225 + "ts": 0.000622525 }, { "core_id": 0, @@ -990,7 +990,7 @@ "params": { "desc": "I#51=TWAI" }, - "ts": 0.000618075 + "ts": 0.00063395 }, { "core_id": 1, @@ -1000,7 +1000,7 @@ "params": { "desc": "I#51=TWAI" }, - "ts": 0.000618075 + "ts": 0.00063395 }, { "core_id": 0, @@ -1010,7 +1010,7 @@ "params": { "desc": "I#52=RTC_CORE" }, - "ts": 0.00062865 + "ts": 0.0006502 }, { "core_id": 1, @@ -1020,7 +1020,7 @@ "params": { "desc": "I#52=RTC_CORE" }, - "ts": 0.00062865 + "ts": 0.0006502 }, { "core_id": 0, @@ -1030,7 +1030,7 @@ "params": { "desc": "I#53=RMT" }, - "ts": 0.00063825 + "ts": 0.0006611 }, { "core_id": 1, @@ -1040,7 +1040,7 @@ "params": { "desc": "I#53=RMT" }, - "ts": 0.00063825 + "ts": 0.0006611 }, { "core_id": 0, @@ -1050,7 +1050,7 @@ "params": { "desc": "I#54=PCNT" }, - "ts": 0.000648075 + "ts": 0.0006721 }, { "core_id": 1, @@ -1060,7 +1060,7 @@ "params": { "desc": "I#54=PCNT" }, - "ts": 0.000648075 + "ts": 0.0006721 }, { "core_id": 0, @@ -1070,7 +1070,7 @@ "params": { "desc": "I#55=I2C_EXT0" }, - "ts": 0.0006627 + "ts": 0.00068805 }, { "core_id": 1, @@ -1080,7 +1080,7 @@ "params": { "desc": "I#55=I2C_EXT0" }, - "ts": 0.0006627 + "ts": 0.00068805 }, { "core_id": 0, @@ -1090,7 +1090,7 @@ "params": { "desc": "I#56=I2C_EXT1" }, - "ts": 0.000674475 + "ts": 0.000700025 }, { "core_id": 1, @@ -1100,7 +1100,7 @@ "params": { "desc": "I#56=I2C_EXT1" }, - "ts": 0.000674475 + "ts": 0.000700025 }, { "core_id": 0, @@ -1110,7 +1110,7 @@ "params": { "desc": "I#57=RSA" }, - "ts": 0.000689475 + "ts": 0.000710825 }, { "core_id": 1, @@ -1120,7 +1120,7 @@ "params": { "desc": "I#57=RSA" }, - "ts": 0.000689475 + "ts": 0.000710825 }, { "core_id": 0, @@ -1130,7 +1130,7 @@ "params": { "desc": "I#58=SPI1_DMA" }, - "ts": 0.000705425 + "ts": 0.0007269 }, { "core_id": 1, @@ -1140,7 +1140,7 @@ "params": { "desc": "I#58=SPI1_DMA" }, - "ts": 0.000705425 + "ts": 0.0007269 }, { "core_id": 0, @@ -1150,7 +1150,7 @@ "params": { "desc": "I#59=SPI2_DMA" }, - "ts": 0.00071735 + "ts": 0.000743075 }, { "core_id": 1, @@ -1160,7 +1160,7 @@ "params": { "desc": "I#59=SPI2_DMA" }, - "ts": 0.00071735 + "ts": 0.000743075 }, { "core_id": 0, @@ -1170,7 +1170,7 @@ "params": { "desc": "I#60=SPI3_DMA" }, - "ts": 0.000729475 + "ts": 0.00075505 }, { "core_id": 1, @@ -1180,7 +1180,7 @@ "params": { "desc": "I#60=SPI3_DMA" }, - "ts": 0.000729475 + "ts": 0.00075505 }, { "core_id": 0, @@ -1190,7 +1190,7 @@ "params": { "desc": "I#61=WDT" }, - "ts": 0.0007403 + "ts": 0.00076595 }, { "core_id": 1, @@ -1200,7 +1200,7 @@ "params": { "desc": "I#61=WDT" }, - "ts": 0.0007403 + "ts": 0.00076595 }, { "core_id": 0, @@ -1210,7 +1210,7 @@ "params": { "desc": "I#62=TIMER1" }, - "ts": 0.00076065 + "ts": 0.00078635 }, { "core_id": 1, @@ -1220,7 +1220,7 @@ "params": { "desc": "I#62=TIMER1" }, - "ts": 0.00076065 + "ts": 0.00078635 }, { "core_id": 0, @@ -1230,7 +1230,7 @@ "params": { "desc": "I#63=TIMER2" }, - "ts": 0.0007722 + "ts": 0.000797875 }, { "core_id": 1, @@ -1240,7 +1240,7 @@ "params": { "desc": "I#63=TIMER2" }, - "ts": 0.0007722 + "ts": 0.000797875 }, { "core_id": 0, @@ -1250,7 +1250,7 @@ "params": { "desc": "I#64=TG0_T0_EDGE" }, - "ts": 0.00078515 + "ts": 0.0008109 }, { "core_id": 1, @@ -1260,7 +1260,7 @@ "params": { "desc": "I#64=TG0_T0_EDGE" }, - "ts": 0.00078515 + "ts": 0.0008109 }, { "core_id": 0, @@ -1270,7 +1270,7 @@ "params": { "desc": "I#65=TG0_T1_EDGE" }, - "ts": 0.00080585 + "ts": 0.000827775 }, { "core_id": 1, @@ -1280,7 +1280,7 @@ "params": { "desc": "I#65=TG0_T1_EDGE" }, - "ts": 0.00080585 + "ts": 0.000827775 }, { "core_id": 0, @@ -1290,7 +1290,7 @@ "params": { "desc": "I#66=TG0_WDT_EDGE" }, - "ts": 0.00081875 + "ts": 0.00084455 }, { "core_id": 1, @@ -1300,7 +1300,7 @@ "params": { "desc": "I#66=TG0_WDT_EDGE" }, - "ts": 0.00081875 + "ts": 0.00084455 }, { "core_id": 0, @@ -1310,7 +1310,7 @@ "params": { "desc": "I#67=TG0_LACT_EDGE" }, - "ts": 0.00083605 + "ts": 0.0008618 }, { "core_id": 1, @@ -1320,7 +1320,7 @@ "params": { "desc": "I#67=TG0_LACT_EDGE" }, - "ts": 0.00083605 + "ts": 0.0008618 }, { "core_id": 0, @@ -1330,7 +1330,7 @@ "params": { "desc": "I#68=TG1_T0_EDGE" }, - "ts": 0.00084885 + "ts": 0.000874625 }, { "core_id": 1, @@ -1340,7 +1340,7 @@ "params": { "desc": "I#68=TG1_T0_EDGE" }, - "ts": 0.00084885 + "ts": 0.000874625 }, { "core_id": 0, @@ -1350,7 +1350,7 @@ "params": { "desc": "I#69=TG1_T1_EDGE" }, - "ts": 0.000861475 + "ts": 0.0008873 }, { "core_id": 1, @@ -1360,7 +1360,7 @@ "params": { "desc": "I#69=TG1_T1_EDGE" }, - "ts": 0.000861475 + "ts": 0.0008873 }, { "core_id": 0, @@ -1370,7 +1370,7 @@ "params": { "desc": "I#70=TG1_WDT_EDGE" }, - "ts": 0.000878425 + "ts": 0.00090425 }, { "core_id": 1, @@ -1380,7 +1380,7 @@ "params": { "desc": "I#70=TG1_WDT_EDGE" }, - "ts": 0.000878425 + "ts": 0.00090425 }, { "core_id": 0, @@ -1390,7 +1390,7 @@ "params": { "desc": "I#71=TG1_LACT_EDGE" }, - "ts": 0.000891925 + "ts": 0.0009179 }, { "core_id": 1, @@ -1400,7 +1400,7 @@ "params": { "desc": "I#71=TG1_LACT_EDGE" }, - "ts": 0.000891925 + "ts": 0.0009179 }, { "core_id": 0, @@ -1410,7 +1410,7 @@ "params": { "desc": "I#72=MMU_IA" }, - "ts": 0.000907825 + "ts": 0.0009332 }, { "core_id": 1, @@ -1420,7 +1420,7 @@ "params": { "desc": "I#72=MMU_IA" }, - "ts": 0.000907825 + "ts": 0.0009332 }, { "core_id": 0, @@ -1430,7 +1430,7 @@ "params": { "desc": "I#73=MPU_IA" }, - "ts": 0.0009233 + "ts": 0.000944575 }, { "core_id": 1, @@ -1440,7 +1440,7 @@ "params": { "desc": "I#73=MPU_IA" }, - "ts": 0.0009233 + "ts": 0.000944575 }, { "core_id": 0, @@ -1450,7 +1450,7 @@ "params": { "desc": "I#74=CACHE_IA" }, - "ts": 0.00093545 + "ts": 0.00096105 }, { "core_id": 1, @@ -1460,27 +1460,27 @@ "params": { "desc": "I#74=CACHE_IA" }, - "ts": 0.00093545 + "ts": 0.00096105 }, { "core_id": 0, "ctx_name": "IDLE1", - "id": 13, + "id": 12, "in_irq": false, "params": { - "time": 10000 + "cycles": 2890156 }, - "ts": 0.000944 + "ts": 0.000971475 }, { "core_id": 1, "ctx_name": "IDLE1", - "id": 13, + "id": 12, "in_irq": false, "params": { - "time": 10000 + "cycles": 2890156 }, - "ts": 0.000944 + "ts": 0.000971475 }, { "core_id": 0, @@ -1490,9 +1490,9 @@ "params": { "name": "ipc0", "prio": 24, - "tid": 12253204 + "tid": 12252316 }, - "ts": 0.001056 + "ts": 0.001084025 }, { "core_id": 1, @@ -1502,9 +1502,9 @@ "params": { "name": "ipc0", "prio": 24, - "tid": 12253204 + "tid": 12252316 }, - "ts": 0.001056 + "ts": 0.001084025 }, { "core_id": 0, @@ -1512,12 +1512,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073410064, - "sz": 1344, - "tid": 12253204, + "base": 1073409176, + "sz": 1352, + "tid": 12252316, "unused": 0 }, - "ts": 0.001061525 + "ts": 0.00108925 }, { "core_id": 1, @@ -1525,12 +1525,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073410064, - "sz": 1344, - "tid": 12253204, + "base": 1073409176, + "sz": 1352, + "tid": 12252316, "unused": 0 }, - "ts": 0.001061525 + "ts": 0.00108925 }, { "core_id": 0, @@ -1540,9 +1540,9 @@ "params": { "name": "ipc1", "prio": 24, - "tid": 12253560 + "tid": 12254724 }, - "ts": 0.00117065 + "ts": 0.0011949 }, { "core_id": 1, @@ -1552,9 +1552,9 @@ "params": { "name": "ipc1", "prio": 24, - "tid": 12253560 + "tid": 12254724 }, - "ts": 0.00117065 + "ts": 0.0011949 }, { "core_id": 0, @@ -1562,12 +1562,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073431024, + "base": 1073411584, "sz": 1344, - "tid": 12253560, + "tid": 12254724, "unused": 0 }, - "ts": 0.0011759 + "ts": 0.00120035 }, { "core_id": 1, @@ -1575,12 +1575,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073431024, + "base": 1073411584, "sz": 1344, - "tid": 12253560, + "tid": 12254724, "unused": 0 }, - "ts": 0.0011759 + "ts": 0.00120035 }, { "core_id": 0, @@ -1590,9 +1590,9 @@ "params": { "name": "main", "prio": 1, - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001327475 + "ts": 0.0013883 }, { "core_id": 1, @@ -1602,9 +1602,9 @@ "params": { "name": "main", "prio": 1, - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001327475 + "ts": 0.0013883 }, { "core_id": 0, @@ -1612,12 +1612,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073433076, - "sz": 1916, - "tid": 12254080, + "base": 1073429776, + "sz": 2400, + "tid": 12274964, "unused": 0 }, - "ts": 0.0013329 + "ts": 0.001393525 }, { "core_id": 1, @@ -1625,12 +1625,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073433076, - "sz": 1916, - "tid": 12254080, + "base": 1073429776, + "sz": 2400, + "tid": 12274964, "unused": 0 }, - "ts": 0.0013329 + "ts": 0.001393525 }, { "core_id": 0, @@ -1640,7 +1640,7 @@ "params": { "mod_cnt": 0 }, - "ts": 0.00134065 + "ts": 0.00140085 }, { "core_id": 1, @@ -1650,7 +1650,7 @@ "params": { "mod_cnt": 0 }, - "ts": 0.00134065 + "ts": 0.00140085 }, { "core_id": 1, @@ -1660,7 +1660,7 @@ "params": { "irq_num": 5 }, - "ts": 0.001348325 + "ts": 0.0014076 }, { "core_id": 0, @@ -1670,7 +1670,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0013597 + "ts": 0.001419325 }, { "core_id": 1, @@ -1678,7 +1678,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.001370975 + "ts": 0.00143035 }, { "core_id": 0, @@ -1686,9 +1686,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001381825 + "ts": 0.001441425 }, { "core_id": 1, @@ -1696,9 +1696,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001381825 + "ts": 0.001441425 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.001452425 }, { "core_id": 0, @@ -1706,15 +1716,15 @@ "id": 3, "in_irq": false, "params": {}, - "ts": 0.0013969 + "ts": 0.00146355 }, { "core_id": 1, "ctx_name": "IDLE1", - "id": 17, + "id": 18, "in_irq": false, "params": {}, - "ts": 0.0014077 + "ts": 0.001474825 }, { "core_id": 0, @@ -1724,7 +1734,15 @@ "params": { "irq_num": 30 }, - "ts": 0.001419225 + "ts": 0.001485875 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.001496375 }, { "core_id": 0, @@ -1732,7 +1750,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.001430725 + "ts": 0.00150725 }, { "core_id": 0, @@ -1740,9 +1758,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001447075 + "ts": 0.00152385 }, { "core_id": 0, @@ -1754,7 +1772,7 @@ "evt_off": 512, "mod_id": 0 }, - "ts": 0.00147395 + "ts": 0.001550575 }, { "core_id": 1, @@ -1766,17 +1784,35 @@ "evt_off": 512, "mod_id": 0 }, - "ts": 0.00147395 + "ts": 0.001550575 }, { - "addr": "0x3ffb70d8", + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.001564275 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 3, + "in_irq": false, + "params": {}, + "ts": 0.001579775 + }, + { + "addr": "0x3ffb68a0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1787,61 +1823,17 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.00152955 + "ts": 0.001637325 }, { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0016694 - }, - { - "core_id": 1, - "ctx_name": "IDLE1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.00168285 - }, - { - "core_id": 1, - "ctx_name": "IDLE1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.0016995 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.00181295 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 3, - "in_irq": false, - "params": {}, - "ts": 0.00182845 - }, - { - "addr": "0x3ffb70e8", + "addr": "0x3ffb68b0", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1852,17 +1844,17 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.00186425 + "ts": 0.00193905 }, { - "addr": "0x3ffb7aec", + "addr": "0x3ffb72b4", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1873,7 +1865,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.0019041 + "ts": 0.00197995 }, { "core_id": 0, @@ -1881,9 +1873,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.001926775 + "ts": 0.002010625 }, { "core_id": 0, @@ -1893,9 +1885,9 @@ "params": { "name": "alloc0", "prio": 5, - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0019394 + "ts": 0.002023275 }, { "core_id": 1, @@ -1905,9 +1897,9 @@ "params": { "name": "alloc0", "prio": 5, - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0019394 + "ts": 0.002023275 }, { "core_id": 0, @@ -1915,12 +1907,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073443048, - "sz": 4294965096, - "tid": 12286700, + "base": 1073440944, + "sz": 4294965088, + "tid": 12284596, "unused": 0 }, - "ts": 0.0019485 + "ts": 0.002032525 }, { "core_id": 1, @@ -1928,12 +1920,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073443048, - "sz": 4294965096, - "tid": 12286700, + "base": 1073440944, + "sz": 4294965088, + "tid": 12284596, "unused": 0 }, - "ts": 0.0019485 + "ts": 0.002032525 }, { "core_id": 0, @@ -1941,9 +1933,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0019592 + "ts": 0.00204325 }, { "core_id": 1, @@ -1951,9 +1943,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0019592 + "ts": 0.00204325 }, { "core_id": 0, @@ -1963,7 +1955,7 @@ "params": { "irq_num": 30 }, - "ts": 0.001974775 + "ts": 0.002058825 }, { "core_id": 0, @@ -1971,7 +1963,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00198615 + "ts": 0.002070175 }, { "core_id": 0, @@ -1979,18 +1971,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0020025 + "ts": 0.002086525 }, { - "addr": "0x3ffb7c50", + "addr": "0x3ffb7418", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2002,7 +1994,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.002037875 + "ts": 0.002130925 }, { "core_id": 0, @@ -2014,16 +2006,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.002052175 + "ts": 0.002145225 }, { - "addr": "0x3ffb7cd0", + "addr": "0x3ffb7498", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2035,16 +2027,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.0021074 + "ts": 0.00220545 }, { - "addr": "0x3ffb86d4", + "addr": "0x3ffb7e9c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2056,7 +2048,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.0021418 + "ts": 0.0022409 }, { "core_id": 0, @@ -2064,9 +2056,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0021685 + "ts": 0.002267725 }, { "core_id": 0, @@ -2076,9 +2068,9 @@ "params": { "name": "free0", "prio": 5, - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.002181 + "ts": 0.00228025 }, { "core_id": 1, @@ -2088,9 +2080,9 @@ "params": { "name": "free0", "prio": 5, - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.002181 + "ts": 0.00228025 }, { "core_id": 0, @@ -2098,12 +2090,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073446096, - "sz": 4294965088, - "tid": 12289748, + "base": 1073443992, + "sz": 4294965096, + "tid": 12287644, "unused": 0 }, - "ts": 0.00219015 + "ts": 0.002289425 }, { "core_id": 1, @@ -2111,12 +2103,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073446096, - "sz": 4294965088, - "tid": 12289748, + "base": 1073443992, + "sz": 4294965096, + "tid": 12287644, "unused": 0 }, - "ts": 0.00219015 + "ts": 0.002289425 }, { "core_id": 0, @@ -2124,9 +2116,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.002200975 + "ts": 0.002300275 }, { "core_id": 1, @@ -2134,9 +2126,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.002200975 + "ts": 0.002300275 }, { "core_id": 1, @@ -2146,7 +2138,7 @@ "params": { "irq_num": 31 }, - "ts": 0.00221635 + "ts": 0.002315625 }, { "core_id": 1, @@ -2154,16 +2146,16 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00222925 + "ts": 0.002328675 }, { - "addr": "0x3ffb8838", + "addr": "0x3ffb8000", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2175,7 +2167,7 @@ "id": 512, "in_irq": false, "size": 1, - "ts": 0.00224565 + "ts": 0.00234585 }, { "core_id": 1, @@ -2183,9 +2175,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.00225695 + "ts": 0.002358 }, { "core_id": 1, @@ -2195,16 +2187,16 @@ "params": { "irq_num": 31 }, - "ts": 0.002286975 + "ts": 0.002387975 }, { - "addr": "0x3ffb8848", + "addr": "0x3ffb8010", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2216,7 +2208,7 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.0022979 + "ts": 0.002399325 }, { "core_id": 1, @@ -2224,7 +2216,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.002308975 + "ts": 0.0024109 }, { "core_id": 0, @@ -2234,10 +2226,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.002321625 + "ts": 0.00242315 }, { "core_id": 1, @@ -2245,109 +2237,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.002332075 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.00236625 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848\n", - "ts": 0.002605525 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848\n", - "ts": 0.002605525 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12287056, - "xTicksToWait": 0 - }, - "ts": 0.0026271 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 6, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.002640225 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 6, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.002640225 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.002656425 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 34, - "in_irq": false, - "params": { - "xTicksToDelay": 30 - }, - "ts": 0.0026673 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.002678075 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.00269225 + "ts": 0.002440625 }, { "core_id": 1, @@ -2357,7 +2247,153 @@ "params": { "irq_num": 5 }, - "ts": 0.002703 + "ts": 0.0024566 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.002470175 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.00248155 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.0024927 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010\n", + "ts": 0.002742275 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010\n", + "ts": 0.002742275 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.002759 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 3, + "in_irq": false, + "params": {}, + "ts": 0.002774375 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12284952, + "xTicksToWait": 0 + }, + "ts": 0.002788425 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.002801625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.002801625 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.002817875 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 34, + "in_irq": false, + "params": { + "xTicksToDelay": 30 + }, + "ts": 0.002828825 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.002839525 + }, + { + "core_id": 0, + "ctx_name": "FROM_CPU0", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 30 + }, + "ts": 0.0028533 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 4, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.002864225 }, { "core_id": 0, @@ -2365,35 +2401,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.002713925 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.002725475 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 4, - "in_irq": false, - "params": { - "tid": 12254080 - }, - "ts": 0.00273595 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 4, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.00275345 + "ts": 0.002875075 }, { "core_id": 1, @@ -2403,20 +2411,43 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.00277025 + "ts": 0.0028871 }, { - "addr": "0x3ffb8858", + "core_id": 0, + "ctx_name": "main", + "id": 4, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.002897825 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 49, + "in_irq": false, + "params": { + "pvBuffer": 3233808384, + "xJustPeek": 0, + "xQueue": 12281672, + "xTicksToWait": 10 + }, + "ts": 0.00293785 + }, + { + "addr": "0x3ffb8020", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2427,48 +2458,30 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.002782075 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.00281335 + "ts": 0.002949925 }, { "core_id": 1, "ctx_name": "free0", - "id": 49, + "id": 53, "in_irq": false, "params": { - "pvBuffer": 3233808384, - "xJustPeek": 0, - "xQueue": 12283904, - "xTicksToWait": 10 + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 }, - "ts": 0.002824975 + "ts": 0.002992925 }, { - "core_id": 0, - "ctx_name": "main", - "id": 3, - "in_irq": false, - "params": {}, - "ts": 0.00283595 - }, - { - "addr": "0x3ffb8868", + "addr": "0x3ffb8030", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2479,30 +2492,17 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.002860725 + "ts": 0.003004025 }, { - "core_id": 1, - "ctx_name": "free0", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.002875775 - }, - { - "addr": "0x3ffb926c", + "addr": "0x3ffb8a34", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2513,7 +2513,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.002902375 + "ts": 0.00304465 }, { "core_id": 0, @@ -2521,9 +2521,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.002925 + "ts": 0.0030675 }, { "core_id": 0, @@ -2533,9 +2533,9 @@ "params": { "name": "alloc1", "prio": 5, - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.00293765 + "ts": 0.00308015 }, { "core_id": 1, @@ -2545,9 +2545,9 @@ "params": { "name": "alloc1", "prio": 5, - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.00293765 + "ts": 0.00308015 }, { "core_id": 0, @@ -2555,12 +2555,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073449064, - "sz": 4294965096, - "tid": 12292716, + "base": 1073446960, + "sz": 4294965088, + "tid": 12290612, "unused": 0 }, - "ts": 0.0029468 + "ts": 0.003089275 }, { "core_id": 1, @@ -2568,12 +2568,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073449064, - "sz": 4294965096, - "tid": 12292716, + "base": 1073446960, + "sz": 4294965088, + "tid": 12290612, "unused": 0 }, - "ts": 0.0029468 + "ts": 0.003089275 }, { "core_id": 0, @@ -2581,9 +2581,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.002957675 + "ts": 0.0031 }, { "core_id": 1, @@ -2591,9 +2591,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.002957675 + "ts": 0.0031 }, { "core_id": 0, @@ -2603,7 +2603,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0029733 + "ts": 0.003115575 }, { "core_id": 0, @@ -2611,7 +2611,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0029848 + "ts": 0.003126925 }, { "core_id": 0, @@ -2619,18 +2619,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.00300165 + "ts": 0.0031433 }, { - "addr": "0x3ffb93d0", + "addr": "0x3ffb8b98", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2642,7 +2642,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.0030371 + "ts": 0.003179725 }, { "core_id": 0, @@ -2654,16 +2654,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.003051375 + "ts": 0.003194025 }, { - "addr": "0x3ffb9450", + "addr": "0x3ffb8c18", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2675,16 +2675,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.00309075 + "ts": 0.003234475 }, { - "addr": "0x3ffb9e54", + "addr": "0x3ffb961c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2696,7 +2696,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.00312515 + "ts": 0.003269925 }, { "core_id": 0, @@ -2704,9 +2704,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0031519 + "ts": 0.00329665 }, { "core_id": 0, @@ -2716,9 +2716,9 @@ "params": { "name": "free1", "prio": 5, - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0031644 + "ts": 0.00330915 }, { "core_id": 1, @@ -2728,9 +2728,9 @@ "params": { "name": "free1", "prio": 5, - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0031644 + "ts": 0.00330915 }, { "core_id": 0, @@ -2738,12 +2738,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073452112, - "sz": 4294965088, - "tid": 12295764, + "base": 1073450008, + "sz": 4294965096, + "tid": 12293660, "unused": 0 }, - "ts": 0.00317355 + "ts": 0.00331835 }, { "core_id": 1, @@ -2751,12 +2751,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073452112, - "sz": 4294965088, - "tid": 12295764, + "base": 1073450008, + "sz": 4294965096, + "tid": 12293660, "unused": 0 }, - "ts": 0.00317355 + "ts": 0.00331835 }, { "core_id": 0, @@ -2764,9 +2764,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.003184375 + "ts": 0.003329175 }, { "core_id": 1, @@ -2774,18 +2774,18 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.003184375 + "ts": 0.003329175 }, { - "addr": "0x3ffb9fb8", + "addr": "0x3ffb9780", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2797,16 +2797,16 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.0032206 + "ts": 0.00336635 }, { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2818,7 +2818,7 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.00325505 + "ts": 0.003401775 }, { "core_id": 0, @@ -2828,10 +2828,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.00327195 + "ts": 0.0034187 }, { "core_id": 0, @@ -2841,10 +2841,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.003294125 + "ts": 0.003438675 }, { "core_id": 1, @@ -2852,8 +2852,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848\n", - "ts": 0.00333685 + "msg": "I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010\n", + "ts": 0.0034623 }, { "core_id": 1, @@ -2861,8 +2861,26 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848\n", - "ts": 0.00333685 + "msg": "I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010\n", + "ts": 0.0034623 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.003481375 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.003494825 }, { "core_id": 1, @@ -2872,7 +2890,25 @@ "params": { "irq_num": 31 }, - "ts": 0.003357 + "ts": 0.00350665 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790\n", + "ts": 0.003526375 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790\n", + "ts": 0.003526375 }, { "core_id": 1, @@ -2880,35 +2916,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00336845 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 4, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.003385425 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8\n", - "ts": 0.00340425 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8\n", - "ts": 0.00340425 + "ts": 0.003537925 }, { "core_id": 0, @@ -2918,17 +2926,45 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.00341835 + "ts": 0.00355005 }, { - "addr": "0x3ffb8848", + "core_id": 1, + "ctx_name": "free0", + "id": 4, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.003567875 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.00357885 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.00359575 + }, + { + "addr": "0x3ffb8010", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2942,7 +2978,17 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0034315 + "ts": 0.003606975 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 4, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.003617975 }, { "core_id": 0, @@ -2952,7 +2998,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.003443325 + "ts": 0.0036332 }, { "core_id": 0, @@ -2962,7 +3008,7 @@ "params": { "irq_num": 30 }, - "ts": 0.003462 + "ts": 0.0036529 }, { "core_id": 0, @@ -2970,7 +3016,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00347595 + "ts": 0.00366705 }, { "core_id": 1, @@ -2980,7 +3026,7 @@ "params": { "irq_num": 31 }, - "ts": 0.003490025 + "ts": 0.00368095 }, { "core_id": 0, @@ -2988,9 +3034,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.003501925 + "ts": 0.0036928 }, { "core_id": 1, @@ -2998,7 +3044,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0035128 + "ts": 0.00370385 }, { "core_id": 1, @@ -3006,19 +3052,19 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.00353205 + "ts": 0.003723175 }, { - "addr": "0x3ffb8848", + "addr": "0x3ffb8010", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3029,7 +3075,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.003544375 + "ts": 0.00373675 }, { "core_id": 1, @@ -3039,10 +3085,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.003561425 + "ts": 0.0037538 }, { "core_id": 1, @@ -3052,20 +3098,33 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0035801 + "ts": 0.003772075 }, { - "addr": "0x3ffb9fd8", + "core_id": 1, + "ctx_name": "free1", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.00379115 + }, + { + "addr": "0x3ffb97a0", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3076,30 +3135,35 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.003597875 + "ts": 0.0038029 }, { "core_id": 1, "ctx_name": "free1", - "id": 53, + "id": 26, "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.0036106 + "lvl": 0, + "msg": "I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790\n", + "ts": 0.003844025 }, { - "addr": "0x3ffba9dc", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790\n", + "ts": 0.003844025 + }, + { + "addr": "0x3ffba1a4", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3110,158 +3174,14 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.003637125 + "ts": 0.00385595 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8\n", - "ts": 0.003660625 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8\n", - "ts": 0.003660625 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 8, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.003672 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0036882 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 9, - "in_irq": false, - "params": { - "name": "alloc2", - "prio": 5, - "tid": 12298716 - }, - "ts": 0.003700975 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 9, - "in_irq": true, - "params": { - "name": "alloc2", - "prio": 5, - "tid": 12298716 - }, - "ts": 0.003700975 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 21, - "in_irq": false, - "params": { - "base": 1073455064, - "sz": 4294965096, - "tid": 12298716, - "unused": 0 - }, - "ts": 0.00371195 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 21, - "in_irq": true, - "params": { - "base": 1073455064, - "sz": 4294965096, - "tid": 12298716, - "unused": 0 - }, - "ts": 0.00371195 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.00372485 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.00372485 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.0037423 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.00375315 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 4, - "in_irq": false, - "params": { - "tid": 12295764 - }, - "ts": 0.0037654 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.0037764 - }, - { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3275,27 +3195,105 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.00379175 + "ts": 0.00386955 }, { "core_id": 0, - "ctx_name": "alloc2", - "id": 4, + "ctx_name": "main", + "id": 8, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.003803375 + "ts": 0.0038854 }, { "core_id": 0, - "ctx_name": "SysTick", + "ctx_name": "main", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc2", + "prio": 5, + "tid": 12296612 + }, + "ts": 0.00390035 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc2", + "prio": 5, + "tid": 12296612 + }, + "ts": 0.00390035 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 21, + "in_irq": false, + "params": { + "base": 1073452960, + "sz": 4294965088, + "tid": 12296612, + "unused": 0 + }, + "ts": 0.003911525 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073452960, + "sz": 4294965088, + "tid": 12296612, + "unused": 0 + }, + "ts": 0.003911525 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.00392455 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.00392455 + }, + { + "core_id": 0, + "ctx_name": "FROM_CPU0", "id": 2, "in_irq": true, "params": { - "irq_num": 5 + "irq_num": 30 }, - "ts": 0.003819875 + "ts": 0.003943225 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.003957125 }, { "core_id": 1, @@ -3305,15 +3303,17 @@ "params": { "irq_num": 31 }, - "ts": 0.003831475 + "ts": 0.003970975 }, { "core_id": 0, "ctx_name": "alloc2", - "id": 3, + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.003843175 + "params": { + "tid": 12296612 + }, + "ts": 0.00398185 }, { "core_id": 1, @@ -3321,7 +3321,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.003853725 + "ts": 0.003992875 }, { "core_id": 1, @@ -3329,16 +3329,16 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00387545 + "ts": 0.004014925 }, { - "addr": "0x3ffbab40", + "addr": "0x3ffba308", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3350,7 +3350,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.003887725 + "ts": 0.004030875 }, { "core_id": 0, @@ -3362,16 +3362,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.003902275 + "ts": 0.0040452 }, { - "addr": "0x3ffbabc0", + "addr": "0x3ffba388", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3383,16 +3383,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.003941625 + "ts": 0.004085625 }, { - "addr": "0x3ffbb5c4", + "addr": "0x3ffbad8c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3404,7 +3404,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.003976025 + "ts": 0.0041211 }, { "core_id": 0, @@ -3412,9 +3412,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004002 + "ts": 0.004143675 }, { "core_id": 0, @@ -3424,9 +3424,9 @@ "params": { "name": "free2", "prio": 5, - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004014625 + "ts": 0.00415625 }, { "core_id": 1, @@ -3436,9 +3436,9 @@ "params": { "name": "free2", "prio": 5, - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004014625 + "ts": 0.00415625 }, { "core_id": 0, @@ -3446,12 +3446,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073458112, - "sz": 4294965088, - "tid": 12301764, + "base": 1073456008, + "sz": 4294965096, + "tid": 12299660, "unused": 0 }, - "ts": 0.0040238 + "ts": 0.004169425 }, { "core_id": 1, @@ -3459,12 +3459,12 @@ "id": 21, "in_irq": false, "params": { - "base": 1073458112, - "sz": 4294965088, - "tid": 12301764, + "base": 1073456008, + "sz": 4294965096, + "tid": 12299660, "unused": 0 }, - "ts": 0.0040238 + "ts": 0.004169425 }, { "core_id": 0, @@ -3472,9 +3472,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0040346 + "ts": 0.00418015 }, { "core_id": 1, @@ -3482,9 +3482,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0040346 + "ts": 0.00418015 }, { "core_id": 1, @@ -3494,7 +3494,7 @@ "params": { "irq_num": 31 }, - "ts": 0.00405085 + "ts": 0.00419625 }, { "core_id": 1, @@ -3502,16 +3502,16 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0040637 + "ts": 0.004209125 }, { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3523,7 +3523,7 @@ "id": 512, "in_irq": false, "size": 3, - "ts": 0.004075375 + "ts": 0.00422135 }, { "core_id": 1, @@ -3531,9 +3531,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004086825 + "ts": 0.004233575 }, { "core_id": 1, @@ -3543,16 +3543,16 @@ "params": { "irq_num": 31 }, - "ts": 0.0041132 + "ts": 0.00425995 }, { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3564,7 +3564,7 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.00412495 + "ts": 0.004271525 }, { "core_id": 1, @@ -3572,7 +3572,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004136375 + "ts": 0.004282925 }, { "core_id": 0, @@ -3582,10 +3582,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.00414835 + "ts": 0.00429495 }, { "core_id": 1, @@ -3593,7 +3593,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.004158625 + "ts": 0.00430615 }, { "core_id": 0, @@ -3603,10 +3603,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.004177025 + "ts": 0.004324575 }, { "core_id": 0, @@ -3614,8 +3614,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728\n", - "ts": 0.004229325 + "msg": "I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0\n", + "ts": 0.0043771 }, { "core_id": 0, @@ -3623,8 +3623,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728\n", - "ts": 0.004229325 + "msg": "I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0\n", + "ts": 0.0043771 }, { "core_id": 0, @@ -3634,10 +3634,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 0 }, - "ts": 0.004246325 + "ts": 0.004390575 }, { "core_id": 0, @@ -3645,9 +3645,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004259475 + "ts": 0.004403775 }, { "core_id": 1, @@ -3655,9 +3655,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004259475 + "ts": 0.004403775 }, { "core_id": 1, @@ -3667,7 +3667,7 @@ "params": { "irq_num": 31 }, - "ts": 0.00427575 + "ts": 0.004424325 }, { "core_id": 0, @@ -3677,7 +3677,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.0042866 + "ts": 0.004435175 }, { "core_id": 1, @@ -3685,7 +3685,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004297375 + "ts": 0.004445975 }, { "core_id": 0, @@ -3695,17 +3695,17 @@ "params": { "irq_num": 30 }, - "ts": 0.00431125 + "ts": 0.004460225 }, { "core_id": 1, - "ctx_name": "free2", - "id": 4, - "in_irq": false, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, "params": { - "tid": 12301764 + "irq_num": 5 }, - "ts": 0.00432205 + "ts": 0.0044719 }, { "core_id": 0, @@ -3713,7 +3713,48 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0043329 + "ts": 0.004482925 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.004494925 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 4, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004505375 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.00452215 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 49, + "in_irq": false, + "params": { + "pvBuffer": 3233808384, + "xJustPeek": 0, + "xQueue": 12281672, + "xTicksToWait": 10 + }, + "ts": 0.004534325 }, { "core_id": 1, @@ -3723,10 +3764,68 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.0043448 + "ts": 0.004546275 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0045576 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12274964 + }, + "ts": 0.0045687 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.0045687 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 39, + "in_irq": false, + "params": { + "pxMutexHolder": 1073433876 + }, + "ts": 0.00458235 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.004597425 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.004608 }, { "core_id": 0, @@ -3734,9 +3833,134 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.004355375 + "ts": 0.004618825 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0046297 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.004641 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.00465655 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 42, + "in_irq": false, + "params": { + "pxMutexHolder": 1073433876 + }, + "ts": 0.00467105 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004681725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004681725 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0046955 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0046955 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.004711225 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0047227 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Wait notify 0\n", + "ts": 0.0047393 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Wait notify 0\n", + "ts": 0.0047393 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0047505 }, { "core_id": 1, @@ -3746,23 +3970,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.00436755 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.0043946 + "ts": 0.004767725 }, { "core_id": 0, @@ -3772,27 +3983,20 @@ "params": { "irq_num": 30 }, - "ts": 0.00440545 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 6, - "in_irq": true, - "params": { - "tid": 12254080 - }, - "ts": 0.004417125 + "ts": 0.00477865 }, { "core_id": 1, "ctx_name": "free2", - "id": 6, + "id": 53, "in_irq": false, "params": { - "tid": 12254080 + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 }, - "ts": 0.004417125 + "ts": 0.004790975 }, { "core_id": 0, @@ -3800,30 +4004,15 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004428475 + "ts": 0.004801725 }, { "core_id": 0, "ctx_name": "main", - "id": 4, + "id": 17, "in_irq": false, - "params": { - "tid": 12254080 - }, - "ts": 0.0044466 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 49, - "in_irq": false, - "params": { - "pvBuffer": 3233808384, - "xJustPeek": 0, - "xQueue": 12283904, - "xTicksToWait": 10 - }, - "ts": 0.00446105 + "params": {}, + "ts": 0.004819425 }, { "core_id": 1, @@ -3831,8 +4020,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728\n", - "ts": 0.004485 + "msg": "I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0\n", + "ts": 0.00484055 }, { "core_id": 1, @@ -3840,28 +4029,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728\n", - "ts": 0.004485 + "msg": "I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0\n", + "ts": 0.00484055 }, { - "core_id": 0, - "ctx_name": "main", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.004501225 - }, - { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -3875,25 +4051,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.00451485 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (312) example: Wait notify 0\n", - "ts": 0.004542 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (312) example: Wait notify 0\n", - "ts": 0.004542 + "ts": 0.004866125 }, { "core_id": 1, @@ -3903,7 +4061,7 @@ "params": { "irq_num": 31 }, - "ts": 0.004553025 + "ts": 0.004893775 }, { "core_id": 1, @@ -3911,17 +4069,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0045667 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.004580775 + "ts": 0.004905175 }, { "core_id": 1, @@ -3929,23 +4077,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00459145 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.004602475 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.0046186 + "ts": 0.00492175 }, { "core_id": 1, @@ -3955,7 +4087,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0046694 + "ts": 0.0054259 }, { "core_id": 1, @@ -3963,7 +4095,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004682875 + "ts": 0.0054394 }, { "core_id": 1, @@ -3971,7 +4103,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00469815 + "ts": 0.005454975 }, { "core_id": 0, @@ -3981,7 +4113,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0048132 + "ts": 0.0055467 }, { "core_id": 0, @@ -3989,7 +4121,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0048287 + "ts": 0.0055621 }, { "core_id": 0, @@ -3997,7 +4129,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.004843775 + "ts": 0.005577425 }, { "core_id": 1, @@ -4007,7 +4139,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0056694 + "ts": 0.0064259 }, { "core_id": 1, @@ -4015,7 +4147,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.005682975 + "ts": 0.0064394 }, { "core_id": 1, @@ -4023,7 +4155,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0056981 + "ts": 0.00645455 }, { "core_id": 0, @@ -4033,7 +4165,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0058132 + "ts": 0.0065467 }, { "core_id": 0, @@ -4041,7 +4173,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0058287 + "ts": 0.00656205 }, { "core_id": 0, @@ -4049,7 +4181,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.005843775 + "ts": 0.006577125 }, { "core_id": 1, @@ -4059,7 +4191,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0066694 + "ts": 0.0074259 }, { "core_id": 1, @@ -4067,7 +4199,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.006682925 + "ts": 0.0074394 }, { "core_id": 1, @@ -4075,7 +4207,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.006698075 + "ts": 0.007454675 }, { "core_id": 0, @@ -4085,7 +4217,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0068132 + "ts": 0.0075467 }, { "core_id": 0, @@ -4093,7 +4225,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0068286 + "ts": 0.00756205 }, { "core_id": 0, @@ -4101,7 +4233,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.006843825 + "ts": 0.00757715 }, { "core_id": 1, @@ -4111,7 +4243,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0076694 + "ts": 0.0084259 }, { "core_id": 1, @@ -4119,7 +4251,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.007682925 + "ts": 0.00843945 }, { "core_id": 1, @@ -4127,7 +4259,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.007698075 + "ts": 0.0084546 }, { "core_id": 0, @@ -4137,7 +4269,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0078132 + "ts": 0.0085467 }, { "core_id": 0, @@ -4145,7 +4277,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0078287 + "ts": 0.00856205 }, { "core_id": 0, @@ -4153,7 +4285,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.007843775 + "ts": 0.008577125 }, { "core_id": 1, @@ -4163,7 +4295,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0086694 + "ts": 0.0094259 }, { "core_id": 1, @@ -4171,7 +4303,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.008687175 + "ts": 0.0094394 }, { "core_id": 1, @@ -4179,7 +4311,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.008702325 + "ts": 0.00945455 }, { "core_id": 0, @@ -4189,7 +4321,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0088132 + "ts": 0.0095467 }, { "core_id": 0, @@ -4197,7 +4329,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0088287 + "ts": 0.0095621 }, { "core_id": 0, @@ -4205,7 +4337,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.008843775 + "ts": 0.009577425 }, { "core_id": 1, @@ -4215,7 +4347,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0096694 + "ts": 0.0104259 }, { "core_id": 1, @@ -4223,7 +4355,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.009682925 + "ts": 0.0104394 }, { "core_id": 1, @@ -4231,7 +4363,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.009698075 + "ts": 0.01045455 }, { "core_id": 0, @@ -4241,7 +4373,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0098132 + "ts": 0.0105467 }, { "core_id": 0, @@ -4249,7 +4381,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0098286 + "ts": 0.01056205 }, { "core_id": 0, @@ -4257,7 +4389,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.009843825 + "ts": 0.010577125 }, { "core_id": 1, @@ -4267,7 +4399,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0106694 + "ts": 0.0114259 }, { "core_id": 1, @@ -4275,7 +4407,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.010682925 + "ts": 0.0114394 }, { "core_id": 1, @@ -4283,7 +4415,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.010698075 + "ts": 0.011454675 }, { "core_id": 0, @@ -4293,7 +4425,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0108132 + "ts": 0.0115467 }, { "core_id": 0, @@ -4301,7 +4433,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0108287 + "ts": 0.01156205 }, { "core_id": 0, @@ -4309,7 +4441,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.010843775 + "ts": 0.01157715 }, { "core_id": 1, @@ -4319,7 +4451,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0116694 + "ts": 0.0124259 }, { "core_id": 1, @@ -4327,7 +4459,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.011682925 + "ts": 0.0124394 }, { "core_id": 1, @@ -4335,7 +4467,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.011698325 + "ts": 0.012454675 }, { "core_id": 0, @@ -4345,7 +4477,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0118132 + "ts": 0.0125467 }, { "core_id": 0, @@ -4353,7 +4485,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0118287 + "ts": 0.01256205 }, { "core_id": 0, @@ -4361,7 +4493,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.011843775 + "ts": 0.01257715 }, { "core_id": 1, @@ -4371,7 +4503,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0126694 + "ts": 0.0134259 }, { "core_id": 1, @@ -4379,7 +4511,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.012682975 + "ts": 0.01343945 }, { "core_id": 1, @@ -4387,7 +4519,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0126981 + "ts": 0.0134546 }, { "core_id": 0, @@ -4397,7 +4529,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0128132 + "ts": 0.0135467 }, { "core_id": 0, @@ -4405,7 +4537,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0128287 + "ts": 0.01356205 }, { "core_id": 0, @@ -4413,7 +4545,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.012843775 + "ts": 0.013577125 }, { "core_id": 1, @@ -4423,7 +4555,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0136694 + "ts": 0.0144259 }, { "core_id": 1, @@ -4431,7 +4563,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.013682925 + "ts": 0.0144394 }, { "core_id": 1, @@ -4439,7 +4571,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.013698075 + "ts": 0.01445455 }, { "core_id": 0, @@ -4449,7 +4581,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0138132 + "ts": 0.0145467 }, { "core_id": 0, @@ -4457,7 +4589,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01382885 + "ts": 0.014562325 }, { "core_id": 0, @@ -4465,7 +4597,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01384405 + "ts": 0.01457755 }, { "core_id": 1, @@ -4475,7 +4607,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0146694 + "ts": 0.0154259 }, { "core_id": 1, @@ -4483,7 +4615,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.014682925 + "ts": 0.0154394 }, { "core_id": 1, @@ -4491,7 +4623,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.014698075 + "ts": 0.01545455 }, { "core_id": 0, @@ -4501,7 +4633,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0148132 + "ts": 0.0155467 }, { "core_id": 0, @@ -4509,7 +4641,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0148287 + "ts": 0.01556205 }, { "core_id": 0, @@ -4517,7 +4649,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.014843775 + "ts": 0.015577125 }, { "core_id": 1, @@ -4527,7 +4659,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0156694 + "ts": 0.0164259 }, { "core_id": 1, @@ -4535,7 +4667,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.015682925 + "ts": 0.0164394 }, { "core_id": 1, @@ -4543,7 +4675,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.015698325 + "ts": 0.016454675 }, { "core_id": 0, @@ -4553,7 +4685,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0158132 + "ts": 0.0165467 }, { "core_id": 0, @@ -4561,7 +4693,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0158287 + "ts": 0.01656205 }, { "core_id": 0, @@ -4569,7 +4701,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.015843775 + "ts": 0.01657715 }, { "core_id": 1, @@ -4579,7 +4711,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0166694 + "ts": 0.0174259 }, { "core_id": 1, @@ -4587,7 +4719,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.016682975 + "ts": 0.01743945 }, { "core_id": 1, @@ -4595,7 +4727,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0166981 + "ts": 0.0174546 }, { "core_id": 0, @@ -4605,7 +4737,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0168132 + "ts": 0.0175467 }, { "core_id": 0, @@ -4613,7 +4745,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0168287 + "ts": 0.01756205 }, { "core_id": 0, @@ -4621,7 +4753,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.016843775 + "ts": 0.017577125 }, { "core_id": 1, @@ -4631,7 +4763,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0176694 + "ts": 0.0184259 }, { "core_id": 1, @@ -4639,7 +4771,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.017682925 + "ts": 0.0184394 }, { "core_id": 1, @@ -4647,7 +4779,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.017698075 + "ts": 0.01845455 }, { "core_id": 0, @@ -4657,7 +4789,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0178132 + "ts": 0.0185467 }, { "core_id": 0, @@ -4665,7 +4797,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0178286 + "ts": 0.0185621 }, { "core_id": 0, @@ -4673,7 +4805,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.017843825 + "ts": 0.018577425 }, { "core_id": 1, @@ -4683,7 +4815,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0186694 + "ts": 0.0194259 }, { "core_id": 1, @@ -4691,7 +4823,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.018682925 + "ts": 0.0194394 }, { "core_id": 1, @@ -4699,7 +4831,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.018698075 + "ts": 0.01945455 }, { "core_id": 0, @@ -4709,7 +4841,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0188132 + "ts": 0.0195467 }, { "core_id": 0, @@ -4717,7 +4849,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0188287 + "ts": 0.01956205 }, { "core_id": 0, @@ -4725,7 +4857,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.018843775 + "ts": 0.019577125 }, { "core_id": 1, @@ -4735,7 +4867,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0196694 + "ts": 0.0204259 }, { "core_id": 1, @@ -4743,7 +4875,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.019682925 + "ts": 0.0204394 }, { "core_id": 1, @@ -4751,7 +4883,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.019698325 + "ts": 0.020454675 }, { "core_id": 0, @@ -4761,7 +4893,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0198132 + "ts": 0.0205467 }, { "core_id": 0, @@ -4769,7 +4901,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0198287 + "ts": 0.02056205 }, { "core_id": 0, @@ -4777,7 +4909,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.019843775 + "ts": 0.02057715 }, { "core_id": 1, @@ -4787,7 +4919,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0206694 + "ts": 0.0214259 }, { "core_id": 1, @@ -4795,7 +4927,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0206872 + "ts": 0.02143945 }, { "core_id": 1, @@ -4803,7 +4935,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.020702325 + "ts": 0.0214546 }, { "core_id": 0, @@ -4813,7 +4945,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0208132 + "ts": 0.0215467 }, { "core_id": 0, @@ -4821,7 +4953,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0208287 + "ts": 0.02156205 }, { "core_id": 0, @@ -4829,7 +4961,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.020843775 + "ts": 0.021577125 }, { "core_id": 1, @@ -4839,7 +4971,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0216694 + "ts": 0.0224259 }, { "core_id": 1, @@ -4847,7 +4979,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.021682925 + "ts": 0.0224394 }, { "core_id": 1, @@ -4855,7 +4987,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.021698075 + "ts": 0.02245455 }, { "core_id": 0, @@ -4865,7 +4997,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0218132 + "ts": 0.0225467 }, { "core_id": 0, @@ -4873,7 +5005,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0218286 + "ts": 0.0225621 }, { "core_id": 0, @@ -4881,7 +5013,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.021843825 + "ts": 0.022577425 }, { "core_id": 1, @@ -4891,7 +5023,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0226694 + "ts": 0.0234259 }, { "core_id": 1, @@ -4899,7 +5031,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.022682925 + "ts": 0.0234394 }, { "core_id": 1, @@ -4907,7 +5039,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.022698075 + "ts": 0.02345455 }, { "core_id": 0, @@ -4917,7 +5049,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0228132 + "ts": 0.0235467 }, { "core_id": 0, @@ -4925,7 +5057,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0228287 + "ts": 0.02356205 }, { "core_id": 0, @@ -4933,7 +5065,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.022843775 + "ts": 0.023577125 }, { "core_id": 1, @@ -4943,7 +5075,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0236694 + "ts": 0.0244259 }, { "core_id": 1, @@ -4951,7 +5083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.023682925 + "ts": 0.024443675 }, { "core_id": 1, @@ -4959,7 +5091,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.023698325 + "ts": 0.024458825 }, { "core_id": 0, @@ -4969,7 +5101,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0238132 + "ts": 0.0245467 }, { "core_id": 0, @@ -4977,7 +5109,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0238287 + "ts": 0.02456205 }, { "core_id": 0, @@ -4985,7 +5117,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.023843775 + "ts": 0.024577125 }, { "core_id": 1, @@ -4995,7 +5127,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0246694 + "ts": 0.0254259 }, { "core_id": 1, @@ -5003,7 +5135,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.024682975 + "ts": 0.0254394 }, { "core_id": 1, @@ -5011,7 +5143,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0246981 + "ts": 0.02545455 }, { "core_id": 0, @@ -5021,7 +5153,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0248132 + "ts": 0.0255467 }, { "core_id": 0, @@ -5029,7 +5161,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0248287 + "ts": 0.0255621 }, { "core_id": 0, @@ -5037,7 +5169,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.024843775 + "ts": 0.025577425 }, { "core_id": 1, @@ -5047,7 +5179,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0256694 + "ts": 0.0264259 }, { "core_id": 1, @@ -5055,7 +5187,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.025682925 + "ts": 0.0264394 }, { "core_id": 1, @@ -5063,7 +5195,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.025698075 + "ts": 0.02645455 }, { "core_id": 0, @@ -5073,7 +5205,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0258132 + "ts": 0.0265467 }, { "core_id": 0, @@ -5081,7 +5213,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0258286 + "ts": 0.02656205 }, { "core_id": 0, @@ -5089,7 +5221,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.025843825 + "ts": 0.026577125 }, { "core_id": 1, @@ -5099,7 +5231,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0266694 + "ts": 0.0274259 }, { "core_id": 1, @@ -5107,7 +5239,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.026682925 + "ts": 0.0274394 }, { "core_id": 1, @@ -5115,7 +5247,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.026698075 + "ts": 0.027454675 }, { "core_id": 0, @@ -5125,7 +5257,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0268132 + "ts": 0.0275467 }, { "core_id": 0, @@ -5133,7 +5265,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0268287 + "ts": 0.02756205 }, { "core_id": 0, @@ -5141,7 +5273,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.026843775 + "ts": 0.02757715 }, { "core_id": 1, @@ -5151,7 +5283,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0276694 + "ts": 0.0284259 }, { "core_id": 1, @@ -5159,7 +5291,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.027682925 + "ts": 0.02843945 }, { "core_id": 1, @@ -5167,7 +5299,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.027698325 + "ts": 0.0284546 }, { "core_id": 0, @@ -5177,7 +5309,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0278132 + "ts": 0.0285467 }, { "core_id": 0, @@ -5185,7 +5317,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0278287 + "ts": 0.02856205 }, { "core_id": 0, @@ -5193,7 +5325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.027843775 + "ts": 0.028577125 }, { "core_id": 1, @@ -5203,7 +5335,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0286694 + "ts": 0.0294259 }, { "core_id": 1, @@ -5211,7 +5343,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.028682975 + "ts": 0.0294394 }, { "core_id": 1, @@ -5219,7 +5351,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0286981 + "ts": 0.02945455 }, { "core_id": 0, @@ -5229,7 +5361,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0288132 + "ts": 0.0295467 }, { "core_id": 0, @@ -5237,7 +5369,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0288287 + "ts": 0.0295621 }, { "core_id": 0, @@ -5245,7 +5377,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.028843775 + "ts": 0.029577425 }, { "core_id": 1, @@ -5255,7 +5387,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0296694 + "ts": 0.0304259 }, { "core_id": 1, @@ -5263,7 +5395,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.029682925 + "ts": 0.0304394 }, { "core_id": 1, @@ -5271,7 +5403,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.029698075 + "ts": 0.03045455 }, { "core_id": 0, @@ -5281,7 +5413,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0298132 + "ts": 0.0305467 }, { "core_id": 0, @@ -5289,7 +5421,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0298286 + "ts": 0.03056205 }, { "core_id": 0, @@ -5297,7 +5429,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.029843825 + "ts": 0.030577125 }, { "core_id": 1, @@ -5307,7 +5439,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0306694 + "ts": 0.0314259 }, { "core_id": 1, @@ -5315,7 +5447,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.030682925 + "ts": 0.0314394 }, { "core_id": 1, @@ -5323,7 +5455,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.030698075 + "ts": 0.031454675 }, { "core_id": 0, @@ -5333,7 +5465,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0308132 + "ts": 0.0315467 }, { "core_id": 0, @@ -5341,7 +5473,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0308287 + "ts": 0.03156205 }, { "core_id": 0, @@ -5349,7 +5481,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.030843775 + "ts": 0.03157715 }, { "core_id": 1, @@ -5359,7 +5491,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0316694 + "ts": 0.0324259 }, { "core_id": 1, @@ -5367,7 +5499,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.031682925 + "ts": 0.03243945 }, { "core_id": 1, @@ -5375,7 +5507,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.031698325 + "ts": 0.0324546 }, { "core_id": 0, @@ -5385,7 +5517,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0318132 + "ts": 0.0325467 }, { "core_id": 0, @@ -5393,9 +5525,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.031828325 + "ts": 0.03256165 }, { "core_id": 1, @@ -5403,9 +5535,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.031828325 + "ts": 0.03256165 }, { "core_id": 0, @@ -5413,7 +5545,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0318409 + "ts": 0.0325743 }, { "core_id": 0, @@ -5421,18 +5553,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0318604 + "ts": 0.032589975 }, { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5444,16 +5576,16 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.0318958 + "ts": 0.032626425 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5465,7 +5597,7 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.03193035 + "ts": 0.03266185 }, { "core_id": 0, @@ -5475,10 +5607,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.031947275 + "ts": 0.0326823 }, { "core_id": 0, @@ -5488,10 +5620,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.031963225 + "ts": 0.032698225 }, { "core_id": 0, @@ -5499,8 +5631,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738\n", - "ts": 0.0320275 + "msg": "I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00\n", + "ts": 0.032750775 }, { "core_id": 0, @@ -5508,8 +5640,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738\n", - "ts": 0.0320275 + "msg": "I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00\n", + "ts": 0.032750775 }, { "core_id": 0, @@ -5519,10 +5651,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.0320412 + "ts": 0.032764225 }, { "core_id": 0, @@ -5530,9 +5662,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.03205445 + "ts": 0.03277745 }, { "core_id": 1, @@ -5540,9 +5672,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.03205445 + "ts": 0.03277745 }, { "core_id": 1, @@ -5552,7 +5684,7 @@ "params": { "irq_num": 31 }, - "ts": 0.032070625 + "ts": 0.0327937 }, { "core_id": 0, @@ -5562,7 +5694,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.032081475 + "ts": 0.03280465 }, { "core_id": 1, @@ -5570,7 +5702,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.032092275 + "ts": 0.0328154 }, { "core_id": 0, @@ -5580,7 +5712,7 @@ "params": { "irq_num": 30 }, - "ts": 0.032106075 + "ts": 0.03282915 }, { "core_id": 1, @@ -5588,9 +5720,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.032116925 + "ts": 0.032839875 }, { "core_id": 0, @@ -5598,7 +5730,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.032127825 + "ts": 0.032850675 }, { "core_id": 1, @@ -5608,10 +5740,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.032139925 + "ts": 0.03286275 }, { "core_id": 0, @@ -5619,7 +5751,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0321505 + "ts": 0.03287395 }, { "core_id": 1, @@ -5629,10 +5761,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.032166625 + "ts": 0.0328912 }, { "core_id": 1, @@ -5642,10 +5774,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.032182825 + "ts": 0.032907525 }, { "core_id": 1, @@ -5653,8 +5785,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738\n", - "ts": 0.032246375 + "msg": "I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00\n", + "ts": 0.0329553 }, { "core_id": 1, @@ -5662,15 +5794,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738\n", - "ts": 0.032246375 + "msg": "I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00\n", + "ts": 0.0329553 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5684,7 +5816,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.032267375 + "ts": 0.032980775 }, { "core_id": 1, @@ -5694,7 +5826,7 @@ "params": { "irq_num": 31 }, - "ts": 0.03229425 + "ts": 0.0330082 }, { "core_id": 1, @@ -5702,7 +5834,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.032305725 + "ts": 0.0330196 }, { "core_id": 1, @@ -5710,7 +5842,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.032322425 + "ts": 0.033036175 }, { "core_id": 1, @@ -5720,7 +5852,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0326694 + "ts": 0.0334259 }, { "core_id": 1, @@ -5728,7 +5860,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03268285 + "ts": 0.03343945 }, { "core_id": 1, @@ -5736,7 +5868,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.032698425 + "ts": 0.03345515 }, { "core_id": 0, @@ -5746,7 +5878,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0328132 + "ts": 0.0335467 }, { "core_id": 0, @@ -5754,9 +5886,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.032828225 + "ts": 0.03356165 }, { "core_id": 1, @@ -5764,9 +5896,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.032828225 + "ts": 0.03356165 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.03357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.03357355 }, { "core_id": 0, @@ -5774,7 +5926,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03284085 + "ts": 0.0335861 }, { "core_id": 0, @@ -5782,18 +5934,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.032856525 + "ts": 0.033601775 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5805,16 +5957,16 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.0328917 + "ts": 0.033638 }, { - "addr": "0x3ffbb748", + "addr": "0x3ffbaf10", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5826,7 +5978,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.032926225 + "ts": 0.033673475 }, { "core_id": 0, @@ -5836,10 +5988,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.03294325 + "ts": 0.0336904 }, { "core_id": 0, @@ -5849,10 +6001,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.032963425 + "ts": 0.033706325 }, { "core_id": 0, @@ -5860,8 +6012,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748\n", - "ts": 0.033027675 + "msg": "I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10\n", + "ts": 0.033758875 }, { "core_id": 0, @@ -5869,8 +6021,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748\n", - "ts": 0.033027675 + "msg": "I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10\n", + "ts": 0.033758875 }, { "core_id": 0, @@ -5880,10 +6032,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.0330414 + "ts": 0.033776525 }, { "core_id": 0, @@ -5891,9 +6043,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.033054625 + "ts": 0.033789675 }, { "core_id": 1, @@ -5901,9 +6053,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.033054625 + "ts": 0.033789675 }, { "core_id": 1, @@ -5913,7 +6065,7 @@ "params": { "irq_num": 31 }, - "ts": 0.033070875 + "ts": 0.033806 }, { "core_id": 0, @@ -5923,7 +6075,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.033081725 + "ts": 0.03381685 }, { "core_id": 1, @@ -5931,7 +6083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.033092475 + "ts": 0.03382765 }, { "core_id": 0, @@ -5941,7 +6093,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0331062 + "ts": 0.0338417 }, { "core_id": 1, @@ -5949,9 +6101,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.033116975 + "ts": 0.0338535 }, { "core_id": 0, @@ -5959,7 +6111,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.033127725 + "ts": 0.03386475 }, { "core_id": 1, @@ -5969,18 +6121,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.033139725 + "ts": 0.033876675 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.033151025 + "params": { + "tid": 12296612 + }, + "ts": 0.033888475 }, { "core_id": 1, @@ -5990,10 +6144,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.033162675 + "ts": 0.03390125 }, { "core_id": 1, @@ -6003,158 +6157,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.033179 + "ts": 0.033919975 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748\n", - "ts": 0.033242525 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748\n", - "ts": 0.033242525 - }, - { - "addr": "0x3ffbb748", + "addr": "0x3ffbaf20", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.03326705 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.03329405 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.033305475 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.03332205 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0336694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.03368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.033698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0338132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.033828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.033828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.033840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.03385665 - }, - { - "addr": "0x3ffbb748", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -6166,16 +6181,34 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.033892175 + "ts": 0.033931975 }, { - "addr": "0x3ffbb758", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10\n", + "ts": 0.03397305 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10\n", + "ts": 0.03397305 + }, + { + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -6187,7 +6220,28 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.033926575 + "ts": 0.0339889 + }, + { + "addr": "0x3ffbaf10", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.0340032 }, { "core_id": 0, @@ -6197,10 +6251,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.033943475 + "ts": 0.034015625 }, { "core_id": 0, @@ -6210,61 +6264,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.03395945 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758\n", - "ts": 0.0340298 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758\n", - "ts": 0.0340298 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.034047625 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.03406085 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.03406085 + "ts": 0.034035675 }, { "core_id": 1, @@ -6274,7 +6277,84 @@ "params": { "irq_num": 31 }, - "ts": 0.03407715 + "ts": 0.0340466 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.034058125 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.0340761 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30\n", + "ts": 0.0340941 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30\n", + "ts": 0.0340941 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.034107525 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.034124925 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.034124925 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.034141275 }, { "core_id": 0, @@ -6284,7 +6364,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.034088 + "ts": 0.034152125 }, { "core_id": 1, @@ -6292,7 +6372,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.034098775 + "ts": 0.03416295 }, { "core_id": 0, @@ -6302,7 +6382,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0341125 + "ts": 0.03417675 }, { "core_id": 1, @@ -6310,9 +6390,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.034123375 + "ts": 0.0341875 }, { "core_id": 0, @@ -6320,7 +6400,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0341342 + "ts": 0.0341983 }, { "core_id": 1, @@ -6330,10 +6410,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.0341462 + "ts": 0.03421025 }, { "core_id": 0, @@ -6341,7 +6421,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03415645 + "ts": 0.034221475 }, { "core_id": 1, @@ -6351,10 +6431,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.03416785 + "ts": 0.0342333 }, { "core_id": 1, @@ -6364,10 +6444,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.034184225 + "ts": 0.03424955 }, { "core_id": 1, @@ -6375,8 +6455,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758\n", - "ts": 0.0342479 + "msg": "I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30\n", + "ts": 0.034297325 }, { "core_id": 1, @@ -6384,15 +6464,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758\n", - "ts": 0.0342479 + "msg": "I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30\n", + "ts": 0.034297325 }, { - "addr": "0x3ffbb758", + "addr": "0x3ffbaf30", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -6406,7 +6486,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0342691 + "ts": 0.0343187 }, { "core_id": 1, @@ -6416,7 +6496,7 @@ "params": { "irq_num": 31 }, - "ts": 0.034300025 + "ts": 0.034346125 }, { "core_id": 1, @@ -6424,7 +6504,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0343115 + "ts": 0.034357525 }, { "core_id": 1, @@ -6432,7 +6512,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0343282 + "ts": 0.0343741 }, { "core_id": 1, @@ -6442,7 +6522,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0346694 + "ts": 0.0344259 }, { "core_id": 1, @@ -6450,7 +6530,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03468285 + "ts": 0.03443945 }, { "core_id": 1, @@ -6458,7 +6538,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.034698425 + "ts": 0.03445515 }, { "core_id": 0, @@ -6468,7 +6548,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0348132 + "ts": 0.0345467 }, { "core_id": 0, @@ -6476,7 +6556,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0348286 + "ts": 0.03456205 }, { "core_id": 0, @@ -6484,7 +6564,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.034843825 + "ts": 0.034577125 }, { "core_id": 1, @@ -6494,7 +6574,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0356694 + "ts": 0.0354259 }, { "core_id": 1, @@ -6502,7 +6582,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.035682925 + "ts": 0.0354394 }, { "core_id": 1, @@ -6510,7 +6590,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.035698075 + "ts": 0.03545455 }, { "core_id": 0, @@ -6520,7 +6600,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0358132 + "ts": 0.0355467 }, { "core_id": 0, @@ -6528,7 +6608,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0358287 + "ts": 0.0355621 }, { "core_id": 0, @@ -6536,7 +6616,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.035843775 + "ts": 0.035577425 }, { "core_id": 1, @@ -6546,7 +6626,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0366694 + "ts": 0.0364259 }, { "core_id": 1, @@ -6554,7 +6634,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.036682925 + "ts": 0.0364394 }, { "core_id": 1, @@ -6562,7 +6642,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.036698325 + "ts": 0.03645455 }, { "core_id": 0, @@ -6572,7 +6652,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0368132 + "ts": 0.0365467 }, { "core_id": 0, @@ -6580,7 +6660,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0368287 + "ts": 0.03656635 }, { "core_id": 0, @@ -6588,7 +6668,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.036843775 + "ts": 0.03658155 }, { "core_id": 1, @@ -6598,7 +6678,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0376694 + "ts": 0.0374259 }, { "core_id": 1, @@ -6606,7 +6686,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.037682975 + "ts": 0.0374394 }, { "core_id": 1, @@ -6614,7 +6694,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0376981 + "ts": 0.03745455 }, { "core_id": 0, @@ -6624,7 +6704,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0378132 + "ts": 0.0375467 }, { "core_id": 0, @@ -6632,7 +6712,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0378287 + "ts": 0.03756205 }, { "core_id": 0, @@ -6640,7 +6720,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.037843775 + "ts": 0.037577125 }, { "core_id": 1, @@ -6650,7 +6730,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0386694 + "ts": 0.0384259 }, { "core_id": 1, @@ -6658,7 +6738,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.038682925 + "ts": 0.0384394 }, { "core_id": 1, @@ -6666,7 +6746,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.038698075 + "ts": 0.038454675 }, { "core_id": 0, @@ -6676,7 +6756,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0388132 + "ts": 0.0385467 }, { "core_id": 0, @@ -6684,7 +6764,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0388286 + "ts": 0.03856205 }, { "core_id": 0, @@ -6692,7 +6772,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.038843825 + "ts": 0.03857715 }, { "core_id": 1, @@ -6702,7 +6782,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0396694 + "ts": 0.0394259 }, { "core_id": 1, @@ -6710,7 +6790,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.039682925 + "ts": 0.03943945 }, { "core_id": 1, @@ -6718,7 +6798,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.039698075 + "ts": 0.0394546 }, { "core_id": 0, @@ -6728,7 +6808,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0398132 + "ts": 0.0395467 }, { "core_id": 0, @@ -6736,7 +6816,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0398287 + "ts": 0.03956205 }, { "core_id": 0, @@ -6744,7 +6824,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.039843775 + "ts": 0.039577125 }, { "core_id": 1, @@ -6754,7 +6834,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0406694 + "ts": 0.0404259 }, { "core_id": 1, @@ -6762,7 +6842,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.040682925 + "ts": 0.0404394 }, { "core_id": 1, @@ -6770,7 +6850,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.040698325 + "ts": 0.04045455 }, { "core_id": 0, @@ -6780,7 +6860,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0408132 + "ts": 0.0405467 }, { "core_id": 0, @@ -6788,7 +6868,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0408287 + "ts": 0.0405621 }, { "core_id": 0, @@ -6796,7 +6876,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.040843775 + "ts": 0.040577425 }, { "core_id": 1, @@ -6806,7 +6886,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0416694 + "ts": 0.0414259 }, { "core_id": 1, @@ -6814,7 +6894,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.041682975 + "ts": 0.0414394 }, { "core_id": 1, @@ -6822,7 +6902,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0416981 + "ts": 0.04145455 }, { "core_id": 0, @@ -6832,7 +6912,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0418132 + "ts": 0.0415467 }, { "core_id": 0, @@ -6840,7 +6920,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0418287 + "ts": 0.04156205 }, { "core_id": 0, @@ -6848,7 +6928,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.041843775 + "ts": 0.041577125 }, { "core_id": 1, @@ -6858,7 +6938,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0426694 + "ts": 0.0424259 }, { "core_id": 1, @@ -6866,7 +6946,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.042682925 + "ts": 0.0424394 }, { "core_id": 1, @@ -6874,7 +6954,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.042698075 + "ts": 0.042454675 }, { "core_id": 0, @@ -6884,7 +6964,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0428132 + "ts": 0.0425467 }, { "core_id": 0, @@ -6892,7 +6972,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0428286 + "ts": 0.04256205 }, { "core_id": 0, @@ -6900,7 +6980,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.042843825 + "ts": 0.04257715 }, { "core_id": 1, @@ -6910,7 +6990,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0436694 + "ts": 0.0434259 }, { "core_id": 1, @@ -6918,7 +6998,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.043682925 + "ts": 0.04343945 }, { "core_id": 1, @@ -6926,7 +7006,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.043698075 + "ts": 0.0434546 }, { "core_id": 0, @@ -6936,7 +7016,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0438132 + "ts": 0.0435467 }, { "core_id": 0, @@ -6944,7 +7024,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0438287 + "ts": 0.04356205 }, { "core_id": 0, @@ -6952,7 +7032,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.043843775 + "ts": 0.043577125 }, { "core_id": 1, @@ -6962,7 +7042,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0446694 + "ts": 0.0444259 }, { "core_id": 1, @@ -6970,7 +7050,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.044687175 + "ts": 0.0444394 }, { "core_id": 1, @@ -6978,7 +7058,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0447023 + "ts": 0.04445455 }, { "core_id": 0, @@ -6988,7 +7068,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0448132 + "ts": 0.0445467 }, { "core_id": 0, @@ -6996,7 +7076,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0448287 + "ts": 0.0445621 }, { "core_id": 0, @@ -7004,7 +7084,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.044843775 + "ts": 0.044577425 }, { "core_id": 1, @@ -7014,7 +7094,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0456694 + "ts": 0.0454259 }, { "core_id": 1, @@ -7022,7 +7102,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.045682925 + "ts": 0.0454394 }, { "core_id": 1, @@ -7030,7 +7110,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.045698075 + "ts": 0.04545455 }, { "core_id": 0, @@ -7040,7 +7120,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0458132 + "ts": 0.0455467 }, { "core_id": 0, @@ -7048,7 +7128,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0458286 + "ts": 0.04556205 }, { "core_id": 0, @@ -7056,7 +7136,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.045843825 + "ts": 0.045577125 }, { "core_id": 1, @@ -7066,7 +7146,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0466694 + "ts": 0.0464259 }, { "core_id": 1, @@ -7074,7 +7154,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.046682925 + "ts": 0.0464394 }, { "core_id": 1, @@ -7082,7 +7162,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.046698075 + "ts": 0.046454675 }, { "core_id": 0, @@ -7092,7 +7172,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0468132 + "ts": 0.0465467 }, { "core_id": 0, @@ -7100,7 +7180,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0468287 + "ts": 0.04656205 }, { "core_id": 0, @@ -7108,7 +7188,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.046843775 + "ts": 0.04657715 }, { "core_id": 1, @@ -7118,7 +7198,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0476694 + "ts": 0.0474259 }, { "core_id": 1, @@ -7126,7 +7206,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.047682925 + "ts": 0.04743945 }, { "core_id": 1, @@ -7134,7 +7214,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.047698325 + "ts": 0.0474546 }, { "core_id": 0, @@ -7144,7 +7224,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0478132 + "ts": 0.0475467 }, { "core_id": 0, @@ -7152,7 +7232,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0478287 + "ts": 0.04756205 }, { "core_id": 0, @@ -7160,7 +7240,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.047843775 + "ts": 0.047577125 }, { "core_id": 1, @@ -7170,7 +7250,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0486694 + "ts": 0.0484259 }, { "core_id": 1, @@ -7178,7 +7258,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.048682975 + "ts": 0.0484394 }, { "core_id": 1, @@ -7186,7 +7266,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0486981 + "ts": 0.04845455 }, { "core_id": 0, @@ -7196,7 +7276,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0488132 + "ts": 0.0485467 }, { "core_id": 0, @@ -7204,7 +7284,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0488287 + "ts": 0.048566325 }, { "core_id": 0, @@ -7212,7 +7292,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.048843775 + "ts": 0.04858155 }, { "core_id": 1, @@ -7222,7 +7302,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0496694 + "ts": 0.0494259 }, { "core_id": 1, @@ -7230,7 +7310,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.049682925 + "ts": 0.0494394 }, { "core_id": 1, @@ -7238,7 +7318,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.049698075 + "ts": 0.04945455 }, { "core_id": 0, @@ -7248,7 +7328,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0498132 + "ts": 0.0495467 }, { "core_id": 0, @@ -7256,7 +7336,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0498286 + "ts": 0.04956205 }, { "core_id": 0, @@ -7264,7 +7344,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.049843825 + "ts": 0.049577125 }, { "core_id": 1, @@ -7274,7 +7354,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0506694 + "ts": 0.0504259 }, { "core_id": 1, @@ -7282,7 +7362,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.050682925 + "ts": 0.0504394 }, { "core_id": 1, @@ -7290,7 +7370,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.050698075 + "ts": 0.050454675 }, { "core_id": 0, @@ -7300,7 +7380,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0508132 + "ts": 0.0505467 }, { "core_id": 0, @@ -7308,7 +7388,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0508287 + "ts": 0.05056205 }, { "core_id": 0, @@ -7316,7 +7396,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.050843775 + "ts": 0.05057715 }, { "core_id": 1, @@ -7326,7 +7406,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0516694 + "ts": 0.0514259 }, { "core_id": 1, @@ -7334,7 +7414,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.051682925 + "ts": 0.05143945 }, { "core_id": 1, @@ -7342,7 +7422,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.051698325 + "ts": 0.0514546 }, { "core_id": 0, @@ -7352,7 +7432,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0518132 + "ts": 0.0515467 }, { "core_id": 0, @@ -7360,7 +7440,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0518287 + "ts": 0.05156205 }, { "core_id": 0, @@ -7368,7 +7448,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.051843775 + "ts": 0.051577125 }, { "core_id": 1, @@ -7378,7 +7458,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0526694 + "ts": 0.0524259 }, { "core_id": 1, @@ -7386,7 +7466,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.052682975 + "ts": 0.0524394 }, { "core_id": 1, @@ -7394,7 +7474,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0526981 + "ts": 0.05245455 }, { "core_id": 0, @@ -7404,7 +7484,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0528132 + "ts": 0.0525467 }, { "core_id": 0, @@ -7412,7 +7492,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0528287 + "ts": 0.0525621 }, { "core_id": 0, @@ -7420,7 +7500,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.052843775 + "ts": 0.052577425 }, { "core_id": 1, @@ -7430,7 +7510,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0536694 + "ts": 0.0534259 }, { "core_id": 1, @@ -7438,7 +7518,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.053682925 + "ts": 0.0534394 }, { "core_id": 1, @@ -7446,7 +7526,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.053698075 + "ts": 0.05345455 }, { "core_id": 0, @@ -7456,7 +7536,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0538132 + "ts": 0.0535467 }, { "core_id": 0, @@ -7464,7 +7544,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0538286 + "ts": 0.05356205 }, { "core_id": 0, @@ -7472,7 +7552,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.053843825 + "ts": 0.053577125 }, { "core_id": 1, @@ -7482,7 +7562,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0546694 + "ts": 0.0544259 }, { "core_id": 1, @@ -7490,7 +7570,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.054682925 + "ts": 0.0544394 }, { "core_id": 1, @@ -7498,7 +7578,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.054698075 + "ts": 0.054454675 }, { "core_id": 0, @@ -7508,7 +7588,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0548132 + "ts": 0.0545467 }, { "core_id": 0, @@ -7516,7 +7596,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0548287 + "ts": 0.05456205 }, { "core_id": 0, @@ -7524,7 +7604,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.054843775 + "ts": 0.05457715 }, { "core_id": 1, @@ -7534,7 +7614,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0556694 + "ts": 0.0554259 }, { "core_id": 1, @@ -7542,7 +7622,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.055682925 + "ts": 0.05543945 }, { "core_id": 1, @@ -7550,7 +7630,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.055698325 + "ts": 0.0554546 }, { "core_id": 0, @@ -7560,7 +7640,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0558132 + "ts": 0.0555467 }, { "core_id": 0, @@ -7568,7 +7648,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0558287 + "ts": 0.05556205 }, { "core_id": 0, @@ -7576,7 +7656,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.055843775 + "ts": 0.055577125 }, { "core_id": 1, @@ -7586,7 +7666,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0566694 + "ts": 0.0564259 }, { "core_id": 1, @@ -7594,7 +7674,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0566872 + "ts": 0.0564394 }, { "core_id": 1, @@ -7602,7 +7682,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05670235 + "ts": 0.05645455 }, { "core_id": 0, @@ -7612,7 +7692,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0568132 + "ts": 0.0565467 }, { "core_id": 0, @@ -7620,7 +7700,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0568287 + "ts": 0.0565621 }, { "core_id": 0, @@ -7628,7 +7708,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.056843775 + "ts": 0.056577425 }, { "core_id": 1, @@ -7638,7 +7718,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0576694 + "ts": 0.0574259 }, { "core_id": 1, @@ -7646,7 +7726,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.057682925 + "ts": 0.0574394 }, { "core_id": 1, @@ -7654,7 +7734,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.057698075 + "ts": 0.05745455 }, { "core_id": 0, @@ -7664,7 +7744,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0578132 + "ts": 0.0575467 }, { "core_id": 0, @@ -7672,7 +7752,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0578286 + "ts": 0.05756205 }, { "core_id": 0, @@ -7680,7 +7760,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.057843825 + "ts": 0.057577125 }, { "core_id": 1, @@ -7690,7 +7770,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0586694 + "ts": 0.0584259 }, { "core_id": 1, @@ -7698,7 +7778,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.058682925 + "ts": 0.0584394 }, { "core_id": 1, @@ -7706,7 +7786,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.058698075 + "ts": 0.058454675 }, { "core_id": 0, @@ -7716,7 +7796,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0588132 + "ts": 0.0585467 }, { "core_id": 0, @@ -7724,7 +7804,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0588287 + "ts": 0.05856205 }, { "core_id": 0, @@ -7732,7 +7812,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.058843775 + "ts": 0.05857715 }, { "core_id": 1, @@ -7742,7 +7822,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0596694 + "ts": 0.0594259 }, { "core_id": 1, @@ -7750,7 +7830,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.059682925 + "ts": 0.05943945 }, { "core_id": 1, @@ -7758,7 +7838,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.059698325 + "ts": 0.0594546 }, { "core_id": 0, @@ -7768,7 +7848,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0598132 + "ts": 0.0595467 }, { "core_id": 0, @@ -7776,7 +7856,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0598287 + "ts": 0.05956205 }, { "core_id": 0, @@ -7784,7 +7864,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.059843775 + "ts": 0.059577125 }, { "core_id": 1, @@ -7794,7 +7874,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0606694 + "ts": 0.0604259 }, { "core_id": 1, @@ -7802,7 +7882,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.060682975 + "ts": 0.0604394 }, { "core_id": 1, @@ -7810,7 +7890,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0606981 + "ts": 0.06045455 }, { "core_id": 0, @@ -7820,7 +7900,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0608132 + "ts": 0.0605467 }, { "core_id": 0, @@ -7828,7 +7908,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0608287 + "ts": 0.060566325 }, { "core_id": 0, @@ -7836,7 +7916,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.060843775 + "ts": 0.06058155 }, { "core_id": 1, @@ -7846,7 +7926,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0616694 + "ts": 0.0614259 }, { "core_id": 1, @@ -7854,7 +7934,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.061682925 + "ts": 0.0614394 }, { "core_id": 1, @@ -7862,7 +7942,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.061698075 + "ts": 0.06145455 }, { "core_id": 0, @@ -7872,7 +7952,59 @@ "params": { "irq_num": 5 }, - "ts": 0.0618132 + "ts": 0.0615467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.06156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.061577125 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0624259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0624394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.062454675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0625467 }, { "core_id": 0, @@ -7880,9 +8012,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.061828225 + "ts": 0.062561675 }, { "core_id": 1, @@ -7890,9 +8022,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.061828225 + "ts": 0.062561675 }, { "core_id": 0, @@ -7900,7 +8032,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06184085 + "ts": 0.06257425 }, { "core_id": 0, @@ -7908,18 +8040,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.061856525 + "ts": 0.062589925 }, { - "addr": "0x3ffbb758", + "addr": "0x3ffbaf10", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7931,16 +8063,16 @@ "id": 512, "in_irq": false, "size": 3, - "ts": 0.06189185 + "ts": 0.062624925 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7952,7 +8084,7 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.061926275 + "ts": 0.062660425 }, { "core_id": 0, @@ -7962,10 +8094,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0619433 + "ts": 0.06267735 }, { "core_id": 0, @@ -7975,10 +8107,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.061959425 + "ts": 0.062693275 }, { "core_id": 0, @@ -7986,8 +8118,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768\n", - "ts": 0.062023675 + "msg": "I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30\n", + "ts": 0.062745825 }, { "core_id": 0, @@ -7995,8 +8127,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768\n", - "ts": 0.062023675 + "msg": "I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30\n", + "ts": 0.062745825 }, { "core_id": 0, @@ -8006,10 +8138,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.062041475 + "ts": 0.062759275 }, { "core_id": 0, @@ -8017,9 +8149,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0620546 + "ts": 0.0627725 }, { "core_id": 1, @@ -8027,9 +8159,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0620546 + "ts": 0.0627725 }, { "core_id": 1, @@ -8039,7 +8171,7 @@ "params": { "irq_num": 31 }, - "ts": 0.0620708 + "ts": 0.062792925 }, { "core_id": 0, @@ -8049,7 +8181,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.062081675 + "ts": 0.062803875 }, { "core_id": 1, @@ -8057,7 +8189,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06209245 + "ts": 0.06281465 }, { "core_id": 0, @@ -8067,7 +8199,7 @@ "params": { "irq_num": 30 }, - "ts": 0.062106525 + "ts": 0.06282855 }, { "core_id": 1, @@ -8075,9 +8207,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.06211735 + "ts": 0.06283935 }, { "core_id": 0, @@ -8085,7 +8217,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.062128225 + "ts": 0.062850075 }, { "core_id": 1, @@ -8095,10 +8227,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.0621401 + "ts": 0.0628623 }, { "core_id": 0, @@ -8106,7 +8238,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.062150525 + "ts": 0.062872475 }, { "core_id": 1, @@ -8116,10 +8248,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.062162975 + "ts": 0.062884375 }, { "core_id": 1, @@ -8129,10 +8261,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.062179175 + "ts": 0.06290065 }, { "core_id": 1, @@ -8140,8 +8272,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768\n", - "ts": 0.062242725 + "msg": "I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30\n", + "ts": 0.062948525 }, { "core_id": 1, @@ -8149,15 +8281,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768\n", - "ts": 0.062242725 + "msg": "I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30\n", + "ts": 0.062948525 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8171,7 +8303,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.062263725 + "ts": 0.06296975 }, { "core_id": 1, @@ -8181,7 +8313,7 @@ "params": { "irq_num": 31 }, - "ts": 0.062294025 + "ts": 0.062997025 }, { "core_id": 1, @@ -8189,7 +8321,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0623055 + "ts": 0.063008475 }, { "core_id": 1, @@ -8197,7 +8329,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0623222 + "ts": 0.063025175 }, { "core_id": 1, @@ -8207,7 +8339,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0626694 + "ts": 0.0634259 }, { "core_id": 1, @@ -8215,7 +8347,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06268285 + "ts": 0.06343945 }, { "core_id": 1, @@ -8223,7 +8355,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.062698425 + "ts": 0.06345515 }, { "core_id": 0, @@ -8233,7 +8365,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0628132 + "ts": 0.0635467 }, { "core_id": 0, @@ -8241,9 +8373,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.062828225 + "ts": 0.0635617 }, { "core_id": 1, @@ -8251,9 +8383,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.062828225 + "ts": 0.0635617 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.06357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.06357355 }, { "core_id": 0, @@ -8261,7 +8413,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06284085 + "ts": 0.06358605 }, { "core_id": 0, @@ -8269,18 +8421,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.062856525 + "ts": 0.063601725 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8292,16 +8444,16 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.06289185 + "ts": 0.06363815 }, { - "addr": "0x3ffbb778", + "addr": "0x3ffbaf40", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8313,7 +8465,7 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.062926275 + "ts": 0.0636778 }, { "core_id": 0, @@ -8323,10 +8475,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0629433 + "ts": 0.063694725 }, { "core_id": 0, @@ -8336,10 +8488,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.062959425 + "ts": 0.06371075 }, { "core_id": 0, @@ -8347,8 +8499,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778\n", - "ts": 0.0630259 + "msg": "I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40\n", + "ts": 0.063765475 }, { "core_id": 0, @@ -8356,8 +8508,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778\n", - "ts": 0.0630259 + "msg": "I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40\n", + "ts": 0.063765475 }, { "core_id": 0, @@ -8367,10 +8519,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.06303945 + "ts": 0.0637789 }, { "core_id": 0, @@ -8378,9 +8530,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.06305685 + "ts": 0.06379215 }, { "core_id": 1, @@ -8388,9 +8540,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.06305685 + "ts": 0.06379215 }, { "core_id": 1, @@ -8400,7 +8552,7 @@ "params": { "irq_num": 31 }, - "ts": 0.063073175 + "ts": 0.063808625 }, { "core_id": 0, @@ -8410,7 +8562,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.063084025 + "ts": 0.063819475 }, { "core_id": 1, @@ -8418,7 +8570,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.063094775 + "ts": 0.0638303 }, { "core_id": 0, @@ -8428,7 +8580,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0631085 + "ts": 0.0638441 }, { "core_id": 1, @@ -8436,9 +8588,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.06311935 + "ts": 0.0638558 }, { "core_id": 0, @@ -8446,7 +8598,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.063130175 + "ts": 0.063867475 }, { "core_id": 1, @@ -8456,18 +8608,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.063142025 + "ts": 0.06388035 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.0631523 + "params": { + "tid": 12296612 + }, + "ts": 0.06389215 }, { "core_id": 1, @@ -8477,10 +8631,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.063163775 + "ts": 0.06390475 }, { "core_id": 1, @@ -8490,158 +8644,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.063180075 + "ts": 0.06392635 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778\n", - "ts": 0.063243525 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778\n", - "ts": 0.063243525 - }, - { - "addr": "0x3ffbb778", + "addr": "0x3ffbaf50", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.063264675 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.063291675 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.0633031 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.063319675 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0636694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.06368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.063698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0638132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.063828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.063828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.063840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.06385665 - }, - { - "addr": "0x3ffbb778", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8653,16 +8668,34 @@ "id": 512, "in_irq": false, "size": 9, - "ts": 0.063892175 + "ts": 0.0639378 }, { - "addr": "0x3ffbb788", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40\n", + "ts": 0.0639792 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40\n", + "ts": 0.0639792 + }, + { + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8674,7 +8707,28 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.0639307 + "ts": 0.0639913 + }, + { + "addr": "0x3ffbaf40", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.064005175 }, { "core_id": 0, @@ -8684,74 +8738,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.063947725 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.0639637 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788\n", - "ts": 0.06403405 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788\n", - "ts": 0.06403405 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.06404765 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.064060875 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.064060875 + "ts": 0.0640176 }, { "core_id": 1, @@ -8761,7 +8751,97 @@ "params": { "irq_num": 31 }, - "ts": 0.064077175 + "ts": 0.0640365 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.064047725 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0640585 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.06407665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60\n", + "ts": 0.06410445 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60\n", + "ts": 0.06410445 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.06412205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0641353 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0641353 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.06415165 }, { "core_id": 0, @@ -8771,7 +8851,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.064088025 + "ts": 0.0641625 }, { "core_id": 1, @@ -8779,7 +8859,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0640988 + "ts": 0.064173325 }, { "core_id": 0, @@ -8789,7 +8869,7 @@ "params": { "irq_num": 30 }, - "ts": 0.064112775 + "ts": 0.06418725 }, { "core_id": 1, @@ -8797,9 +8877,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0641236 + "ts": 0.06419815 }, { "core_id": 0, @@ -8807,7 +8887,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.064134475 + "ts": 0.064209025 }, { "core_id": 1, @@ -8817,10 +8897,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.064146325 + "ts": 0.06422095 }, { "core_id": 0, @@ -8828,7 +8908,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.064157625 + "ts": 0.064232175 }, { "core_id": 1, @@ -8838,10 +8918,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.06416925 + "ts": 0.064244 }, { "core_id": 1, @@ -8851,10 +8931,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0641897 + "ts": 0.064260225 }, { "core_id": 1, @@ -8862,8 +8942,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788\n", - "ts": 0.06425325 + "msg": "I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60\n", + "ts": 0.0643081 }, { "core_id": 1, @@ -8871,15 +8951,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788\n", - "ts": 0.06425325 + "msg": "I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60\n", + "ts": 0.0643081 }, { - "addr": "0x3ffbb788", + "addr": "0x3ffbaf60", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -8893,7 +8973,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.06427445 + "ts": 0.0643295 }, { "core_id": 1, @@ -8903,7 +8983,7 @@ "params": { "irq_num": 31 }, - "ts": 0.06430135 + "ts": 0.06436085 }, { "core_id": 1, @@ -8911,7 +8991,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.064312775 + "ts": 0.0643723 }, { "core_id": 1, @@ -8919,7 +8999,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06432935 + "ts": 0.064389 }, { "core_id": 1, @@ -8929,7 +9009,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0646694 + "ts": 0.0644259 }, { "core_id": 1, @@ -8937,7 +9017,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06468295 + "ts": 0.06443945 }, { "core_id": 1, @@ -8945,7 +9025,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.064698525 + "ts": 0.06445515 }, { "core_id": 0, @@ -8955,7 +9035,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0648132 + "ts": 0.0645467 }, { "core_id": 0, @@ -8963,7 +9043,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0648287 + "ts": 0.0645621 }, { "core_id": 0, @@ -8971,7 +9051,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.064843775 + "ts": 0.064577425 }, { "core_id": 1, @@ -8981,7 +9061,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0656694 + "ts": 0.0654259 }, { "core_id": 1, @@ -8989,7 +9069,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.065682925 + "ts": 0.0654394 }, { "core_id": 1, @@ -8997,7 +9077,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.065698325 + "ts": 0.06545455 }, { "core_id": 0, @@ -9007,7 +9087,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0658132 + "ts": 0.0655467 }, { "core_id": 0, @@ -9015,7 +9095,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0658287 + "ts": 0.06556205 }, { "core_id": 0, @@ -9023,7 +9103,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.065843775 + "ts": 0.065577125 }, { "core_id": 1, @@ -9033,7 +9113,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0666694 + "ts": 0.0664259 }, { "core_id": 1, @@ -9041,7 +9121,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.066682975 + "ts": 0.0664394 }, { "core_id": 1, @@ -9049,7 +9129,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0666981 + "ts": 0.066454675 }, { "core_id": 0, @@ -9059,7 +9139,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0668132 + "ts": 0.0665467 }, { "core_id": 0, @@ -9067,7 +9147,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0668287 + "ts": 0.06656205 }, { "core_id": 0, @@ -9075,7 +9155,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.066843775 + "ts": 0.06657715 }, { "core_id": 1, @@ -9085,7 +9165,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0676694 + "ts": 0.0674259 }, { "core_id": 1, @@ -9093,7 +9173,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.067682925 + "ts": 0.06743945 }, { "core_id": 1, @@ -9101,7 +9181,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.067698075 + "ts": 0.0674546 }, { "core_id": 0, @@ -9111,7 +9191,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0678132 + "ts": 0.0675467 }, { "core_id": 0, @@ -9119,7 +9199,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0678286 + "ts": 0.06756205 }, { "core_id": 0, @@ -9127,7 +9207,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.067843825 + "ts": 0.067577125 }, { "core_id": 1, @@ -9137,7 +9217,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0686694 + "ts": 0.0684259 }, { "core_id": 1, @@ -9145,7 +9225,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.068682925 + "ts": 0.0684394 }, { "core_id": 1, @@ -9153,7 +9233,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.068698075 + "ts": 0.06845455 }, { "core_id": 0, @@ -9163,7 +9243,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0688132 + "ts": 0.0685467 }, { "core_id": 0, @@ -9171,7 +9251,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0688287 + "ts": 0.0685621 }, { "core_id": 0, @@ -9179,7 +9259,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.068843775 + "ts": 0.068577425 }, { "core_id": 1, @@ -9189,7 +9269,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0696694 + "ts": 0.0694259 }, { "core_id": 1, @@ -9197,7 +9277,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.069682925 + "ts": 0.0694394 }, { "core_id": 1, @@ -9205,7 +9285,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.069698325 + "ts": 0.06945455 }, { "core_id": 0, @@ -9215,7 +9295,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0698132 + "ts": 0.0695467 }, { "core_id": 0, @@ -9223,7 +9303,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0698287 + "ts": 0.06956205 }, { "core_id": 0, @@ -9231,7 +9311,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0698481 + "ts": 0.069577125 }, { "core_id": 1, @@ -9241,7 +9321,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0706694 + "ts": 0.0704259 }, { "core_id": 1, @@ -9249,7 +9329,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.070682925 + "ts": 0.0704394 }, { "core_id": 1, @@ -9257,7 +9337,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.070698075 + "ts": 0.070454675 }, { "core_id": 0, @@ -9267,7 +9347,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0708132 + "ts": 0.0705467 }, { "core_id": 0, @@ -9275,7 +9355,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0708287 + "ts": 0.07056205 }, { "core_id": 0, @@ -9283,7 +9363,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.070843775 + "ts": 0.07057715 }, { "core_id": 1, @@ -9293,7 +9373,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0716694 + "ts": 0.0714259 }, { "core_id": 1, @@ -9301,7 +9381,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.071682925 + "ts": 0.07143945 }, { "core_id": 1, @@ -9309,7 +9389,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.071698325 + "ts": 0.0714546 }, { "core_id": 0, @@ -9319,7 +9399,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0718132 + "ts": 0.0715467 }, { "core_id": 0, @@ -9327,7 +9407,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0718287 + "ts": 0.07156205 }, { "core_id": 0, @@ -9335,7 +9415,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.071843775 + "ts": 0.071577125 }, { "core_id": 1, @@ -9345,7 +9425,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0726694 + "ts": 0.0724259 }, { "core_id": 1, @@ -9353,7 +9433,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.072682975 + "ts": 0.0724394 }, { "core_id": 1, @@ -9361,7 +9441,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0726981 + "ts": 0.07245455 }, { "core_id": 0, @@ -9371,7 +9451,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0728132 + "ts": 0.0725467 }, { "core_id": 0, @@ -9379,7 +9459,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0728287 + "ts": 0.0725621 }, { "core_id": 0, @@ -9387,7 +9467,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.072843775 + "ts": 0.072577425 }, { "core_id": 1, @@ -9397,7 +9477,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0736694 + "ts": 0.0734259 }, { "core_id": 1, @@ -9405,7 +9485,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.073682925 + "ts": 0.0734394 }, { "core_id": 1, @@ -9413,7 +9493,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.073698075 + "ts": 0.07345455 }, { "core_id": 0, @@ -9423,7 +9503,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0738132 + "ts": 0.0735467 }, { "core_id": 0, @@ -9431,7 +9511,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0738286 + "ts": 0.07356205 }, { "core_id": 0, @@ -9439,7 +9519,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.073843825 + "ts": 0.073577125 }, { "core_id": 1, @@ -9449,7 +9529,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0746694 + "ts": 0.0744259 }, { "core_id": 1, @@ -9457,7 +9537,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.074682925 + "ts": 0.074443775 }, { "core_id": 1, @@ -9465,7 +9545,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.074698075 + "ts": 0.0744589 }, { "core_id": 0, @@ -9475,7 +9555,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0748132 + "ts": 0.0745467 }, { "core_id": 0, @@ -9483,7 +9563,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0748287 + "ts": 0.07456205 }, { "core_id": 0, @@ -9491,7 +9571,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.074843775 + "ts": 0.074577125 }, { "core_id": 1, @@ -9501,7 +9581,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0756694 + "ts": 0.0754259 }, { "core_id": 1, @@ -9509,7 +9589,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.075682925 + "ts": 0.0754394 }, { "core_id": 1, @@ -9517,7 +9597,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.075698325 + "ts": 0.07545455 }, { "core_id": 0, @@ -9527,7 +9607,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0758132 + "ts": 0.0755467 }, { "core_id": 0, @@ -9535,7 +9615,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0758287 + "ts": 0.0755621 }, { "core_id": 0, @@ -9543,7 +9623,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.075843775 + "ts": 0.075577425 }, { "core_id": 1, @@ -9553,7 +9633,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0766694 + "ts": 0.0764259 }, { "core_id": 1, @@ -9561,7 +9641,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.076682975 + "ts": 0.0764394 }, { "core_id": 1, @@ -9569,7 +9649,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0766981 + "ts": 0.07645455 }, { "core_id": 0, @@ -9579,7 +9659,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0768132 + "ts": 0.0765467 }, { "core_id": 0, @@ -9587,7 +9667,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0768287 + "ts": 0.07656205 }, { "core_id": 0, @@ -9595,7 +9675,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.076843775 + "ts": 0.076577125 }, { "core_id": 1, @@ -9605,7 +9685,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0776694 + "ts": 0.0774259 }, { "core_id": 1, @@ -9613,7 +9693,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.077682925 + "ts": 0.0774394 }, { "core_id": 1, @@ -9621,7 +9701,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.077698075 + "ts": 0.077454675 }, { "core_id": 0, @@ -9631,7 +9711,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0778132 + "ts": 0.0775467 }, { "core_id": 0, @@ -9639,7 +9719,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0778286 + "ts": 0.07756205 }, { "core_id": 0, @@ -9647,7 +9727,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.077843825 + "ts": 0.07757715 }, { "core_id": 1, @@ -9657,7 +9737,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0786694 + "ts": 0.0784259 }, { "core_id": 1, @@ -9665,7 +9745,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.078682925 + "ts": 0.07843945 }, { "core_id": 1, @@ -9673,7 +9753,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.078698075 + "ts": 0.0784546 }, { "core_id": 0, @@ -9683,7 +9763,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0788132 + "ts": 0.0785467 }, { "core_id": 0, @@ -9691,7 +9771,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0788287 + "ts": 0.07856205 }, { "core_id": 0, @@ -9699,7 +9779,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.078843775 + "ts": 0.078577125 }, { "core_id": 1, @@ -9709,7 +9789,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0796694 + "ts": 0.0794259 }, { "core_id": 1, @@ -9717,7 +9797,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.079682925 + "ts": 0.0794394 }, { "core_id": 1, @@ -9725,7 +9805,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.079698325 + "ts": 0.07945455 }, { "core_id": 0, @@ -9735,7 +9815,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0798132 + "ts": 0.0795467 }, { "core_id": 0, @@ -9743,7 +9823,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0798287 + "ts": 0.0795621 }, { "core_id": 0, @@ -9751,7 +9831,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.079843775 + "ts": 0.079577425 }, { "core_id": 1, @@ -9761,7 +9841,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0806694 + "ts": 0.0804259 }, { "core_id": 1, @@ -9769,7 +9849,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.080682975 + "ts": 0.0804394 }, { "core_id": 1, @@ -9777,7 +9857,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0806981 + "ts": 0.08045455 }, { "core_id": 0, @@ -9787,7 +9867,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0808132 + "ts": 0.0805467 }, { "core_id": 0, @@ -9795,7 +9875,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0808287 + "ts": 0.08056205 }, { "core_id": 0, @@ -9803,7 +9883,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.080843775 + "ts": 0.080577125 }, { "core_id": 1, @@ -9813,7 +9893,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0816694 + "ts": 0.0814259 }, { "core_id": 1, @@ -9821,7 +9901,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.081682925 + "ts": 0.0814394 }, { "core_id": 1, @@ -9829,7 +9909,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.081698075 + "ts": 0.081454675 }, { "core_id": 0, @@ -9839,7 +9919,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0818132 + "ts": 0.0815467 }, { "core_id": 0, @@ -9847,7 +9927,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0818286 + "ts": 0.08156205 }, { "core_id": 0, @@ -9855,7 +9935,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.081843825 + "ts": 0.08157715 }, { "core_id": 1, @@ -9865,7 +9945,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0826694 + "ts": 0.0824259 }, { "core_id": 1, @@ -9873,7 +9953,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.082682925 + "ts": 0.08243945 }, { "core_id": 1, @@ -9881,7 +9961,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.082698325 + "ts": 0.0824546 }, { "core_id": 0, @@ -9891,7 +9971,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0828132 + "ts": 0.0825467 }, { "core_id": 0, @@ -9899,7 +9979,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0828287 + "ts": 0.08256205 }, { "core_id": 0, @@ -9907,7 +9987,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.082843775 + "ts": 0.082577125 }, { "core_id": 1, @@ -9917,7 +9997,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0836694 + "ts": 0.0834259 }, { "core_id": 1, @@ -9925,7 +10005,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.083682975 + "ts": 0.0834394 }, { "core_id": 1, @@ -9933,7 +10013,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0836981 + "ts": 0.08345455 }, { "core_id": 0, @@ -9943,7 +10023,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0838132 + "ts": 0.0835467 }, { "core_id": 0, @@ -9951,7 +10031,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0838287 + "ts": 0.0835621 }, { "core_id": 0, @@ -9959,7 +10039,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.083843775 + "ts": 0.083577425 }, { "core_id": 1, @@ -9969,7 +10049,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0846694 + "ts": 0.0844259 }, { "core_id": 1, @@ -9977,7 +10057,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.084682925 + "ts": 0.0844394 }, { "core_id": 1, @@ -9985,7 +10065,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.084698075 + "ts": 0.08445455 }, { "core_id": 0, @@ -9995,7 +10075,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0848132 + "ts": 0.0845467 }, { "core_id": 0, @@ -10003,7 +10083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0848286 + "ts": 0.08456205 }, { "core_id": 0, @@ -10011,7 +10091,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.084843825 + "ts": 0.084577125 }, { "core_id": 1, @@ -10021,7 +10101,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0856694 + "ts": 0.0854259 }, { "core_id": 1, @@ -10029,7 +10109,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.085682925 + "ts": 0.0854394 }, { "core_id": 1, @@ -10037,7 +10117,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.085698075 + "ts": 0.085454675 }, { "core_id": 0, @@ -10047,7 +10127,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0858132 + "ts": 0.0855467 }, { "core_id": 0, @@ -10055,7 +10135,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0858287 + "ts": 0.08556205 }, { "core_id": 0, @@ -10063,7 +10143,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.085843775 + "ts": 0.08557715 }, { "core_id": 1, @@ -10073,7 +10153,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0866694 + "ts": 0.0864259 }, { "core_id": 1, @@ -10081,7 +10161,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.086682925 + "ts": 0.086443675 }, { "core_id": 1, @@ -10089,7 +10169,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.086698325 + "ts": 0.086458825 }, { "core_id": 0, @@ -10099,7 +10179,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0868132 + "ts": 0.0865467 }, { "core_id": 0, @@ -10107,7 +10187,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0868287 + "ts": 0.08656205 }, { "core_id": 0, @@ -10115,7 +10195,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.086843775 + "ts": 0.086577125 }, { "core_id": 1, @@ -10125,7 +10205,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0876694 + "ts": 0.0874259 }, { "core_id": 1, @@ -10133,7 +10213,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.087682975 + "ts": 0.0874394 }, { "core_id": 1, @@ -10141,7 +10221,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0876981 + "ts": 0.08745455 }, { "core_id": 0, @@ -10151,7 +10231,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0878132 + "ts": 0.0875467 }, { "core_id": 0, @@ -10159,7 +10239,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0878287 + "ts": 0.0875621 }, { "core_id": 0, @@ -10167,7 +10247,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.087843775 + "ts": 0.087577425 }, { "core_id": 1, @@ -10177,7 +10257,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0886694 + "ts": 0.0884259 }, { "core_id": 1, @@ -10185,7 +10265,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.088682925 + "ts": 0.0884394 }, { "core_id": 1, @@ -10193,7 +10273,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.088698075 + "ts": 0.08845455 }, { "core_id": 0, @@ -10203,7 +10283,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0888132 + "ts": 0.0885467 }, { "core_id": 0, @@ -10211,7 +10291,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0888286 + "ts": 0.08856205 }, { "core_id": 0, @@ -10219,7 +10299,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.088843825 + "ts": 0.088577125 }, { "core_id": 1, @@ -10229,7 +10309,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0896694 + "ts": 0.0894259 }, { "core_id": 1, @@ -10237,7 +10317,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.089682925 + "ts": 0.0894394 }, { "core_id": 1, @@ -10245,7 +10325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.089698075 + "ts": 0.089454675 }, { "core_id": 0, @@ -10255,7 +10335,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0898132 + "ts": 0.0895467 }, { "core_id": 0, @@ -10263,7 +10343,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0898287 + "ts": 0.08956205 }, { "core_id": 0, @@ -10271,7 +10351,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.089843775 + "ts": 0.08957715 }, { "core_id": 1, @@ -10281,7 +10361,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0906694 + "ts": 0.0904259 }, { "core_id": 1, @@ -10289,7 +10369,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.090682925 + "ts": 0.09043945 }, { "core_id": 1, @@ -10297,7 +10377,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.090698325 + "ts": 0.0904546 }, { "core_id": 0, @@ -10307,7 +10387,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0908132 + "ts": 0.0905467 }, { "core_id": 0, @@ -10315,7 +10395,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0908287 + "ts": 0.09056205 }, { "core_id": 0, @@ -10323,7 +10403,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.090843775 + "ts": 0.090577125 }, { "core_id": 1, @@ -10333,7 +10413,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0916694 + "ts": 0.0914259 }, { "core_id": 1, @@ -10341,7 +10421,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.091682975 + "ts": 0.0914394 }, { "core_id": 1, @@ -10349,7 +10429,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0916981 + "ts": 0.09145455 }, { "core_id": 0, @@ -10359,7 +10439,59 @@ "params": { "irq_num": 5 }, - "ts": 0.0918132 + "ts": 0.0915467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0915621 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.091577425 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0924259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0924394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.09245455 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0925467 }, { "core_id": 0, @@ -10367,9 +10499,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.091828325 + "ts": 0.09256165 }, { "core_id": 1, @@ -10377,9 +10509,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.091828325 + "ts": 0.09256165 }, { "core_id": 0, @@ -10387,7 +10519,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.091840975 + "ts": 0.0925743 }, { "core_id": 0, @@ -10395,18 +10527,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.09185665 + "ts": 0.092590225 }, { - "addr": "0x3ffbb788", + "addr": "0x3ffbaf40", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10418,16 +10550,16 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.091892175 + "ts": 0.0926253 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10439,7 +10571,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.09193 + "ts": 0.092660875 }, { "core_id": 0, @@ -10449,10 +10581,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0919469 + "ts": 0.09267785 }, { "core_id": 0, @@ -10462,10 +10594,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.091962875 + "ts": 0.092693825 }, { "core_id": 0, @@ -10473,8 +10605,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798\n", - "ts": 0.09202705 + "msg": "I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60\n", + "ts": 0.0927506 }, { "core_id": 0, @@ -10482,8 +10614,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798\n", - "ts": 0.09202705 + "msg": "I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60\n", + "ts": 0.0927506 }, { "core_id": 0, @@ -10493,10 +10625,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.092040625 + "ts": 0.09276405 }, { "core_id": 0, @@ -10504,9 +10636,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.09205375 + "ts": 0.092777275 }, { "core_id": 1, @@ -10514,9 +10646,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.09205375 + "ts": 0.092777275 }, { "core_id": 1, @@ -10526,7 +10658,7 @@ "params": { "irq_num": 31 }, - "ts": 0.09206995 + "ts": 0.092793525 }, { "core_id": 0, @@ -10536,7 +10668,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.092080825 + "ts": 0.092804475 }, { "core_id": 1, @@ -10544,7 +10676,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0920916 + "ts": 0.092815225 }, { "core_id": 0, @@ -10554,7 +10686,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0921055 + "ts": 0.092828975 }, { "core_id": 1, @@ -10562,9 +10694,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0921163 + "ts": 0.0928397 }, { "core_id": 0, @@ -10572,7 +10704,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09212715 + "ts": 0.0928505 }, { "core_id": 1, @@ -10582,10 +10714,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.09213905 + "ts": 0.0928625 }, { "core_id": 0, @@ -10593,7 +10725,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.092149275 + "ts": 0.092872725 }, { "core_id": 1, @@ -10603,10 +10735,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.092160725 + "ts": 0.092884475 }, { "core_id": 1, @@ -10616,10 +10748,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.092181 + "ts": 0.09290075 }, { "core_id": 1, @@ -10627,8 +10759,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798\n", - "ts": 0.09224455 + "msg": "I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60\n", + "ts": 0.092948525 }, { "core_id": 1, @@ -10636,15 +10768,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798\n", - "ts": 0.09224455 + "msg": "I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60\n", + "ts": 0.092948525 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10658,7 +10790,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.09226575 + "ts": 0.0929699 }, { "core_id": 1, @@ -10668,7 +10800,7 @@ "params": { "irq_num": 31 }, - "ts": 0.092292625 + "ts": 0.09300135 }, { "core_id": 1, @@ -10676,7 +10808,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09230405 + "ts": 0.0930128 }, { "core_id": 1, @@ -10684,7 +10816,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.092320625 + "ts": 0.0930295 }, { "core_id": 1, @@ -10694,7 +10826,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0926694 + "ts": 0.0934259 }, { "core_id": 1, @@ -10702,7 +10834,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09268295 + "ts": 0.09343945 }, { "core_id": 1, @@ -10710,7 +10842,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.092698525 + "ts": 0.09345515 }, { "core_id": 0, @@ -10720,7 +10852,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0928132 + "ts": 0.0935467 }, { "core_id": 0, @@ -10728,9 +10860,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.092828325 + "ts": 0.0935617 }, { "core_id": 1, @@ -10738,9 +10870,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.092828325 + "ts": 0.0935617 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.09357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.09357355 }, { "core_id": 0, @@ -10748,7 +10900,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.092840975 + "ts": 0.09358605 }, { "core_id": 0, @@ -10756,18 +10908,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.092856775 + "ts": 0.093601725 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10779,16 +10931,16 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.092892175 + "ts": 0.09363815 }, { - "addr": "0x3ffbb7a8", + "addr": "0x3ffbaf70", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10800,7 +10952,7 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.0929267 + "ts": 0.093673575 }, { "core_id": 0, @@ -10810,10 +10962,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09294365 + "ts": 0.093690525 }, { "core_id": 0, @@ -10823,10 +10975,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.092963825 + "ts": 0.093706525 }, { "core_id": 0, @@ -10834,8 +10986,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8\n", - "ts": 0.0930303 + "msg": "I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70\n", + "ts": 0.093761375 }, { "core_id": 0, @@ -10843,8 +10995,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8\n", - "ts": 0.0930303 + "msg": "I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70\n", + "ts": 0.093761375 }, { "core_id": 0, @@ -10854,10 +11006,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.09304395 + "ts": 0.093778675 }, { "core_id": 0, @@ -10865,9 +11017,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.093057125 + "ts": 0.093791925 }, { "core_id": 1, @@ -10875,9 +11027,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.093057125 + "ts": 0.093791925 }, { "core_id": 1, @@ -10887,7 +11039,7 @@ "params": { "irq_num": 31 }, - "ts": 0.09307345 + "ts": 0.093808275 }, { "core_id": 0, @@ -10897,7 +11049,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.0930843 + "ts": 0.093819125 }, { "core_id": 1, @@ -10905,7 +11057,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09309505 + "ts": 0.09382995 }, { "core_id": 0, @@ -10915,7 +11067,7 @@ "params": { "irq_num": 30 }, - "ts": 0.093108775 + "ts": 0.09384375 }, { "core_id": 1, @@ -10923,9 +11075,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.093119625 + "ts": 0.093855475 }, { "core_id": 0, @@ -10933,7 +11085,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09313045 + "ts": 0.09386685 }, { "core_id": 1, @@ -10943,18 +11095,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.0931423 + "ts": 0.09387885 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.093152575 + "params": { + "tid": 12296612 + }, + "ts": 0.093890525 }, { "core_id": 1, @@ -10964,10 +11118,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09316405 + "ts": 0.093903125 }, { "core_id": 1, @@ -10977,158 +11131,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.09318035 + "ts": 0.09392175 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8\n", - "ts": 0.0932438 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8\n", - "ts": 0.0932438 - }, - { - "addr": "0x3ffbb7a8", + "addr": "0x3ffbaf84", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.093268825 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.093295825 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.093307375 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.09332395 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0936694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.09368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.093698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0938132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.093828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.093828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.093840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.09385665 - }, - { - "addr": "0x3ffbb7a8", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11140,16 +11155,34 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.093892 + "ts": 0.09393375 }, { - "addr": "0x3ffbb7b8", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70\n", + "ts": 0.0939748 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70\n", + "ts": 0.0939748 + }, + { + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11161,7 +11194,28 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.0939264 + "ts": 0.09399075 + }, + { + "addr": "0x3ffbaf70", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.094005125 }, { "core_id": 0, @@ -11171,74 +11225,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0939433 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.093959425 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8\n", - "ts": 0.09402975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8\n", - "ts": 0.09402975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.094047575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.0940608 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.0940608 + "ts": 0.094017575 }, { "core_id": 1, @@ -11248,7 +11238,97 @@ "params": { "irq_num": 31 }, - "ts": 0.094077125 + "ts": 0.094036725 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.094047975 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.094058825 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.0940771 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94\n", + "ts": 0.09410495 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94\n", + "ts": 0.09410495 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.094118375 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.094135775 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.094135775 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.094152125 }, { "core_id": 0, @@ -11258,7 +11338,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.094087975 + "ts": 0.094162975 }, { "core_id": 1, @@ -11266,7 +11346,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.094098725 + "ts": 0.0941738 }, { "core_id": 0, @@ -11276,7 +11356,7 @@ "params": { "irq_num": 30 }, - "ts": 0.09411245 + "ts": 0.0941876 }, { "core_id": 1, @@ -11284,9 +11364,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.09412335 + "ts": 0.09419835 }, { "core_id": 0, @@ -11294,7 +11374,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.094134175 + "ts": 0.09420915 }, { "core_id": 1, @@ -11304,10 +11384,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.094146025 + "ts": 0.0942211 }, { "core_id": 0, @@ -11315,7 +11395,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094157325 + "ts": 0.094232325 }, { "core_id": 1, @@ -11325,10 +11405,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09416895 + "ts": 0.09424415 }, { "core_id": 1, @@ -11338,10 +11418,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.09418535 + "ts": 0.0942604 }, { "core_id": 1, @@ -11349,8 +11429,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8\n", - "ts": 0.0942489 + "msg": "I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94\n", + "ts": 0.094308175 }, { "core_id": 1, @@ -11358,15 +11438,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8\n", - "ts": 0.0942489 + "msg": "I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94\n", + "ts": 0.094308175 }, { - "addr": "0x3ffbb7b8", + "addr": "0x3ffbaf94", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11380,7 +11460,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0942701 + "ts": 0.09432955 }, { "core_id": 1, @@ -11390,7 +11470,7 @@ "params": { "irq_num": 31 }, - "ts": 0.0943011 + "ts": 0.094356975 }, { "core_id": 1, @@ -11398,7 +11478,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.094312575 + "ts": 0.094368375 }, { "core_id": 1, @@ -11406,7 +11486,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094329275 + "ts": 0.09438495 }, { "core_id": 1, @@ -11416,7 +11496,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0946694 + "ts": 0.0944259 }, { "core_id": 1, @@ -11424,7 +11504,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09468285 + "ts": 0.09443945 }, { "core_id": 1, @@ -11432,7 +11512,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094698425 + "ts": 0.09445515 }, { "core_id": 0, @@ -11442,7 +11522,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0948132 + "ts": 0.0945467 }, { "core_id": 0, @@ -11450,7 +11530,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0948286 + "ts": 0.09456205 }, { "core_id": 0, @@ -11458,7 +11538,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094843825 + "ts": 0.094577125 }, { "core_id": 1, @@ -11468,7 +11548,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0956694 + "ts": 0.0954259 }, { "core_id": 1, @@ -11476,7 +11556,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.095682925 + "ts": 0.0954394 }, { "core_id": 1, @@ -11484,7 +11564,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.095698075 + "ts": 0.09545455 }, { "core_id": 0, @@ -11494,7 +11574,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0958132 + "ts": 0.0955467 }, { "core_id": 0, @@ -11502,7 +11582,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0958287 + "ts": 0.0955621 }, { "core_id": 0, @@ -11510,7 +11590,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.095843775 + "ts": 0.095577425 }, { "core_id": 1, @@ -11520,7 +11600,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0966694 + "ts": 0.0964259 }, { "core_id": 1, @@ -11528,7 +11608,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.096682925 + "ts": 0.0964394 }, { "core_id": 1, @@ -11536,7 +11616,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.096698325 + "ts": 0.09645455 }, { "core_id": 0, @@ -11546,7 +11626,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0968132 + "ts": 0.0965467 }, { "core_id": 0, @@ -11554,7 +11634,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0968287 + "ts": 0.09656635 }, { "core_id": 0, @@ -11562,7 +11642,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.096843775 + "ts": 0.09658155 }, { "core_id": 1, @@ -11572,7 +11652,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0976694 + "ts": 0.0974259 }, { "core_id": 1, @@ -11580,7 +11660,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.097682975 + "ts": 0.0974394 }, { "core_id": 1, @@ -11588,7 +11668,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0976981 + "ts": 0.09745455 }, { "core_id": 0, @@ -11598,7 +11678,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0978132 + "ts": 0.0975467 }, { "core_id": 0, @@ -11606,7 +11686,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0978287 + "ts": 0.09756205 }, { "core_id": 0, @@ -11614,7 +11694,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.097843775 + "ts": 0.097577125 }, { "core_id": 1, @@ -11624,7 +11704,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0986694 + "ts": 0.0984259 }, { "core_id": 1, @@ -11632,7 +11712,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.098682925 + "ts": 0.0984394 }, { "core_id": 1, @@ -11640,7 +11720,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.098698075 + "ts": 0.098454675 }, { "core_id": 0, @@ -11650,7 +11730,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0988132 + "ts": 0.0985467 }, { "core_id": 0, @@ -11658,7 +11738,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0988286 + "ts": 0.09856205 }, { "core_id": 0, @@ -11666,7 +11746,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.098843825 + "ts": 0.09857715 }, { "core_id": 1, @@ -11676,7 +11756,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0996694 + "ts": 0.0994259 }, { "core_id": 1, @@ -11684,7 +11764,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.099682925 + "ts": 0.09943945 }, { "core_id": 1, @@ -11692,7 +11772,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.099698075 + "ts": 0.0994546 }, { "core_id": 0, @@ -11702,7 +11782,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0998132 + "ts": 0.0995467 }, { "core_id": 0, @@ -11710,7 +11790,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0998287 + "ts": 0.09956205 }, { "core_id": 0, @@ -11718,7 +11798,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.099843775 + "ts": 0.099577125 }, { "core_id": 1, @@ -11728,7 +11808,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1006694 + "ts": 0.1004259 }, { "core_id": 1, @@ -11736,7 +11816,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.100682925 + "ts": 0.1004394 }, { "core_id": 1, @@ -11744,7 +11824,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.100698325 + "ts": 0.10045455 }, { "core_id": 0, @@ -11754,7 +11834,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1008132 + "ts": 0.1005467 }, { "core_id": 0, @@ -11762,7 +11842,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1008287 + "ts": 0.1005621 }, { "core_id": 0, @@ -11770,7 +11850,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.100843775 + "ts": 0.100577425 }, { "core_id": 1, @@ -11780,7 +11860,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1016694 + "ts": 0.1014259 }, { "core_id": 1, @@ -11788,7 +11868,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.101682975 + "ts": 0.1014394 }, { "core_id": 1, @@ -11796,7 +11876,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1016981 + "ts": 0.10145455 }, { "core_id": 0, @@ -11806,7 +11886,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1018132 + "ts": 0.1015467 }, { "core_id": 0, @@ -11814,7 +11894,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1018287 + "ts": 0.10156205 }, { "core_id": 0, @@ -11822,7 +11902,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.101843775 + "ts": 0.101577125 }, { "core_id": 1, @@ -11832,7 +11912,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1026694 + "ts": 0.1024259 }, { "core_id": 1, @@ -11840,7 +11920,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.102682925 + "ts": 0.1024394 }, { "core_id": 1, @@ -11848,7 +11928,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.102698075 + "ts": 0.102454675 }, { "core_id": 0, @@ -11858,7 +11938,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1028132 + "ts": 0.1025467 }, { "core_id": 0, @@ -11866,7 +11946,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1028286 + "ts": 0.10256205 }, { "core_id": 0, @@ -11874,7 +11954,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.102843825 + "ts": 0.10257715 }, { "core_id": 1, @@ -11884,7 +11964,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1036694 + "ts": 0.1034259 }, { "core_id": 1, @@ -11892,7 +11972,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.103682925 + "ts": 0.10343945 }, { "core_id": 1, @@ -11900,7 +11980,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.103698075 + "ts": 0.1034546 }, { "core_id": 0, @@ -11910,7 +11990,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1038132 + "ts": 0.1035467 }, { "core_id": 0, @@ -11918,7 +11998,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1038287 + "ts": 0.10356205 }, { "core_id": 0, @@ -11926,7 +12006,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.103843775 + "ts": 0.103577125 }, { "core_id": 1, @@ -11936,7 +12016,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1046694 + "ts": 0.1044259 }, { "core_id": 1, @@ -11944,7 +12024,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.10468655 + "ts": 0.1044394 }, { "core_id": 1, @@ -11952,7 +12032,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.104701825 + "ts": 0.10445455 }, { "core_id": 0, @@ -11962,7 +12042,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1048132 + "ts": 0.1045467 }, { "core_id": 0, @@ -11970,7 +12050,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1048287 + "ts": 0.1045621 }, { "core_id": 0, @@ -11978,7 +12058,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.104843775 + "ts": 0.104577425 }, { "core_id": 1, @@ -11988,7 +12068,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1056694 + "ts": 0.1054259 }, { "core_id": 1, @@ -11996,7 +12076,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.105682925 + "ts": 0.1054394 }, { "core_id": 1, @@ -12004,7 +12084,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.105698075 + "ts": 0.10545455 }, { "core_id": 0, @@ -12014,7 +12094,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1058132 + "ts": 0.1055467 }, { "core_id": 0, @@ -12022,7 +12102,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1058286 + "ts": 0.10556205 }, { "core_id": 0, @@ -12030,7 +12110,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.105843825 + "ts": 0.105577125 }, { "core_id": 1, @@ -12040,7 +12120,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1066694 + "ts": 0.1064259 }, { "core_id": 1, @@ -12048,7 +12128,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.106682925 + "ts": 0.1064394 }, { "core_id": 1, @@ -12056,7 +12136,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.106698075 + "ts": 0.106454675 }, { "core_id": 0, @@ -12066,7 +12146,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1068132 + "ts": 0.1065467 }, { "core_id": 0, @@ -12074,7 +12154,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1068287 + "ts": 0.10656205 }, { "core_id": 0, @@ -12082,7 +12162,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.106843775 + "ts": 0.10657715 }, { "core_id": 1, @@ -12092,7 +12172,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1076694 + "ts": 0.1074259 }, { "core_id": 1, @@ -12100,7 +12180,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.107682925 + "ts": 0.10743945 }, { "core_id": 1, @@ -12108,7 +12188,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.107698325 + "ts": 0.1074546 }, { "core_id": 0, @@ -12118,7 +12198,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1078132 + "ts": 0.1075467 }, { "core_id": 0, @@ -12126,7 +12206,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1078287 + "ts": 0.10756205 }, { "core_id": 0, @@ -12134,7 +12214,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.107843775 + "ts": 0.107577125 }, { "core_id": 1, @@ -12144,7 +12224,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1086694 + "ts": 0.1084259 }, { "core_id": 1, @@ -12152,7 +12232,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.108682975 + "ts": 0.1084394 }, { "core_id": 1, @@ -12160,7 +12240,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1086981 + "ts": 0.10845455 }, { "core_id": 0, @@ -12170,7 +12250,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1088132 + "ts": 0.1085467 }, { "core_id": 0, @@ -12178,7 +12258,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1088287 + "ts": 0.108566325 }, { "core_id": 0, @@ -12186,7 +12266,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.108843775 + "ts": 0.10858155 }, { "core_id": 1, @@ -12196,7 +12276,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1096694 + "ts": 0.1094259 }, { "core_id": 1, @@ -12204,7 +12284,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.109682925 + "ts": 0.1094394 }, { "core_id": 1, @@ -12212,7 +12292,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.109698075 + "ts": 0.10945455 }, { "core_id": 0, @@ -12222,7 +12302,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1098132 + "ts": 0.1095467 }, { "core_id": 0, @@ -12230,7 +12310,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1098286 + "ts": 0.10956205 }, { "core_id": 0, @@ -12238,7 +12318,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.109843825 + "ts": 0.109577125 }, { "core_id": 1, @@ -12248,7 +12328,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1106694 + "ts": 0.1104259 }, { "core_id": 1, @@ -12256,7 +12336,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.110682925 + "ts": 0.1104394 }, { "core_id": 1, @@ -12264,7 +12344,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.110698075 + "ts": 0.110454675 }, { "core_id": 0, @@ -12274,7 +12354,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1108132 + "ts": 0.1105467 }, { "core_id": 0, @@ -12282,7 +12362,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1108287 + "ts": 0.11056205 }, { "core_id": 0, @@ -12290,7 +12370,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.110843775 + "ts": 0.11057715 }, { "core_id": 1, @@ -12300,7 +12380,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1116694 + "ts": 0.1114259 }, { "core_id": 1, @@ -12308,7 +12388,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.111682925 + "ts": 0.11143945 }, { "core_id": 1, @@ -12316,7 +12396,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.111698325 + "ts": 0.1114546 }, { "core_id": 0, @@ -12326,7 +12406,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1118132 + "ts": 0.1115467 }, { "core_id": 0, @@ -12334,7 +12414,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1118287 + "ts": 0.11156205 }, { "core_id": 0, @@ -12342,7 +12422,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.111843775 + "ts": 0.111577125 }, { "core_id": 1, @@ -12352,7 +12432,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1126694 + "ts": 0.1124259 }, { "core_id": 1, @@ -12360,7 +12440,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.112682975 + "ts": 0.1124394 }, { "core_id": 1, @@ -12368,7 +12448,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1126981 + "ts": 0.11245455 }, { "core_id": 0, @@ -12378,7 +12458,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1128132 + "ts": 0.1125467 }, { "core_id": 0, @@ -12386,7 +12466,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1128287 + "ts": 0.1125621 }, { "core_id": 0, @@ -12394,7 +12474,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.112843775 + "ts": 0.112577425 }, { "core_id": 1, @@ -12404,7 +12484,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1136694 + "ts": 0.1134259 }, { "core_id": 1, @@ -12412,7 +12492,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.113682925 + "ts": 0.1134394 }, { "core_id": 1, @@ -12420,7 +12500,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.113698075 + "ts": 0.11345455 }, { "core_id": 0, @@ -12430,7 +12510,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1138132 + "ts": 0.1135467 }, { "core_id": 0, @@ -12438,7 +12518,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1138286 + "ts": 0.11356205 }, { "core_id": 0, @@ -12446,7 +12526,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.113843825 + "ts": 0.113577125 }, { "core_id": 1, @@ -12456,7 +12536,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1146694 + "ts": 0.1144259 }, { "core_id": 1, @@ -12464,7 +12544,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.114682925 + "ts": 0.1144394 }, { "core_id": 1, @@ -12472,7 +12552,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.114698075 + "ts": 0.114454675 }, { "core_id": 0, @@ -12482,7 +12562,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1148132 + "ts": 0.1145467 }, { "core_id": 0, @@ -12490,7 +12570,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1148287 + "ts": 0.11456205 }, { "core_id": 0, @@ -12498,7 +12578,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.114843775 + "ts": 0.11457715 }, { "core_id": 1, @@ -12508,7 +12588,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1156694 + "ts": 0.1154259 }, { "core_id": 1, @@ -12516,7 +12596,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.115682925 + "ts": 0.11543945 }, { "core_id": 1, @@ -12524,7 +12604,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.115698325 + "ts": 0.1154546 }, { "core_id": 0, @@ -12534,7 +12614,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1158132 + "ts": 0.1155467 }, { "core_id": 0, @@ -12542,7 +12622,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1158287 + "ts": 0.11556205 }, { "core_id": 0, @@ -12550,7 +12630,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.115843775 + "ts": 0.115577125 }, { "core_id": 1, @@ -12560,7 +12640,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1166694 + "ts": 0.1164259 }, { "core_id": 1, @@ -12568,7 +12648,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1166872 + "ts": 0.1164394 }, { "core_id": 1, @@ -12576,7 +12656,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11670235 + "ts": 0.11645455 }, { "core_id": 0, @@ -12586,7 +12666,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1168132 + "ts": 0.1165467 }, { "core_id": 0, @@ -12594,7 +12674,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1168287 + "ts": 0.1165621 }, { "core_id": 0, @@ -12602,7 +12682,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.116843775 + "ts": 0.116577425 }, { "core_id": 1, @@ -12612,7 +12692,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1176694 + "ts": 0.1174259 }, { "core_id": 1, @@ -12620,7 +12700,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.117682925 + "ts": 0.1174394 }, { "core_id": 1, @@ -12628,7 +12708,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.117698075 + "ts": 0.11745455 }, { "core_id": 0, @@ -12638,7 +12718,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1178132 + "ts": 0.1175467 }, { "core_id": 0, @@ -12646,7 +12726,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1178286 + "ts": 0.11756205 }, { "core_id": 0, @@ -12654,7 +12734,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.117843825 + "ts": 0.117577125 }, { "core_id": 1, @@ -12664,7 +12744,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1186694 + "ts": 0.1184259 }, { "core_id": 1, @@ -12672,7 +12752,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.118682925 + "ts": 0.1184394 }, { "core_id": 1, @@ -12680,7 +12760,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.118698075 + "ts": 0.118454675 }, { "core_id": 0, @@ -12690,7 +12770,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1188132 + "ts": 0.1185467 }, { "core_id": 0, @@ -12698,7 +12778,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1188287 + "ts": 0.11856205 }, { "core_id": 0, @@ -12706,7 +12786,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.118843775 + "ts": 0.11857715 }, { "core_id": 1, @@ -12716,7 +12796,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1196694 + "ts": 0.1194259 }, { "core_id": 1, @@ -12724,7 +12804,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.119682925 + "ts": 0.11943945 }, { "core_id": 1, @@ -12732,7 +12812,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.119698325 + "ts": 0.1194546 }, { "core_id": 0, @@ -12742,7 +12822,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1198132 + "ts": 0.1195467 }, { "core_id": 0, @@ -12750,7 +12830,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1198287 + "ts": 0.11956205 }, { "core_id": 0, @@ -12758,7 +12838,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.119843775 + "ts": 0.119577125 }, { "core_id": 1, @@ -12768,7 +12848,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1206694 + "ts": 0.1204259 }, { "core_id": 1, @@ -12776,7 +12856,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.120682975 + "ts": 0.1204394 }, { "core_id": 1, @@ -12784,7 +12864,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1206981 + "ts": 0.12045455 }, { "core_id": 0, @@ -12794,7 +12874,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1208132 + "ts": 0.1205467 }, { "core_id": 0, @@ -12802,7 +12882,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1208287 + "ts": 0.120566325 }, { "core_id": 0, @@ -12810,7 +12890,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.120843775 + "ts": 0.12058155 }, { "core_id": 1, @@ -12820,7 +12900,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1216694 + "ts": 0.1214259 }, { "core_id": 1, @@ -12828,7 +12908,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.121682925 + "ts": 0.1214394 }, { "core_id": 1, @@ -12836,7 +12916,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.121698075 + "ts": 0.12145455 }, { "core_id": 0, @@ -12846,7 +12926,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1218132 + "ts": 0.1215467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.12156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.121577125 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1224259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1224394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.122454675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1225467 }, { "core_id": 0, @@ -12854,9 +12986,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.121828225 + "ts": 0.122561675 }, { "core_id": 1, @@ -12864,9 +12996,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.121828225 + "ts": 0.122561675 }, { "core_id": 0, @@ -12874,7 +13006,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12184085 + "ts": 0.12257425 }, { "core_id": 0, @@ -12882,18 +13014,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.121856525 + "ts": 0.122589925 }, { - "addr": "0x3ffbb7b8", + "addr": "0x3ffbaf70", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -12905,16 +13037,16 @@ "id": 512, "in_irq": false, "size": 5, - "ts": 0.12189185 + "ts": 0.122624925 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -12926,7 +13058,7 @@ "id": 512, "in_irq": false, "size": 10, - "ts": 0.121926275 + "ts": 0.122660425 }, { "core_id": 0, @@ -12936,10 +13068,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.1219433 + "ts": 0.12267735 }, { "core_id": 0, @@ -12949,10 +13081,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.121959425 + "ts": 0.122693275 }, { "core_id": 0, @@ -12960,8 +13092,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8\n", - "ts": 0.12202985 + "msg": "I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94\n", + "ts": 0.12274805 }, { "core_id": 0, @@ -12969,8 +13101,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8\n", - "ts": 0.12202985 + "msg": "I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94\n", + "ts": 0.12274805 }, { "core_id": 0, @@ -12980,10 +13112,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.122047575 + "ts": 0.12276155 }, { "core_id": 0, @@ -12991,9 +13123,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1220608 + "ts": 0.122778975 }, { "core_id": 1, @@ -13001,9 +13133,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1220608 + "ts": 0.122778975 }, { "core_id": 1, @@ -13013,7 +13145,7 @@ "params": { "irq_num": 31 }, - "ts": 0.12207705 + "ts": 0.12279525 }, { "core_id": 0, @@ -13023,7 +13155,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.1220879 + "ts": 0.1228061 }, { "core_id": 1, @@ -13031,7 +13163,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122098675 + "ts": 0.122816975 }, { "core_id": 0, @@ -13041,7 +13173,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1221125 + "ts": 0.1228308 }, { "core_id": 1, @@ -13049,9 +13181,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1221234 + "ts": 0.12284165 }, { "core_id": 0, @@ -13059,7 +13191,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122134225 + "ts": 0.1228525 }, { "core_id": 1, @@ -13069,10 +13201,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.122146175 + "ts": 0.1228645 }, { "core_id": 0, @@ -13080,7 +13212,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.122156425 + "ts": 0.1228748 }, { "core_id": 1, @@ -13090,10 +13222,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.12216785 + "ts": 0.122886425 }, { "core_id": 1, @@ -13103,10 +13235,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.1221842 + "ts": 0.12290275 }, { "core_id": 1, @@ -13114,8 +13246,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8\n", - "ts": 0.12224775 + "msg": "I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94\n", + "ts": 0.122950525 }, { "core_id": 1, @@ -13123,15 +13255,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8\n", - "ts": 0.12224775 + "msg": "I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94\n", + "ts": 0.122950525 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13145,7 +13277,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.12226895 + "ts": 0.1229719 }, { "core_id": 1, @@ -13155,7 +13287,7 @@ "params": { "irq_num": 31 }, - "ts": 0.122299975 + "ts": 0.122999325 }, { "core_id": 1, @@ -13163,7 +13295,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12231145 + "ts": 0.12301085 }, { "core_id": 1, @@ -13171,7 +13303,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12232815 + "ts": 0.123027425 }, { "core_id": 1, @@ -13181,7 +13313,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1226694 + "ts": 0.1234259 }, { "core_id": 1, @@ -13189,7 +13321,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12268285 + "ts": 0.12343945 }, { "core_id": 1, @@ -13197,7 +13329,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.122698425 + "ts": 0.12345515 }, { "core_id": 0, @@ -13207,7 +13339,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1228132 + "ts": 0.1235467 }, { "core_id": 0, @@ -13215,9 +13347,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.122828225 + "ts": 0.12356165 }, { "core_id": 1, @@ -13225,9 +13357,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.122828225 + "ts": 0.12356165 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.12357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.12357355 }, { "core_id": 0, @@ -13235,7 +13387,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12284085 + "ts": 0.1235861 }, { "core_id": 0, @@ -13243,18 +13395,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.122856525 + "ts": 0.123601775 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13266,16 +13418,16 @@ "id": 512, "in_irq": false, "size": 10, - "ts": 0.12289185 + "ts": 0.12363815 }, { - "addr": "0x3ffbb7d8", + "addr": "0x3ffbafa4", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13287,7 +13439,7 @@ "id": 512, "in_irq": false, "size": 20, - "ts": 0.122926275 + "ts": 0.12367715 }, { "core_id": 0, @@ -13297,10 +13449,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.1229433 + "ts": 0.123694075 }, { "core_id": 0, @@ -13310,10 +13462,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.122959425 + "ts": 0.1237101 }, { "core_id": 0, @@ -13321,8 +13473,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8\n", - "ts": 0.12302985 + "msg": "I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4\n", + "ts": 0.123764825 }, { "core_id": 0, @@ -13330,8 +13482,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8\n", - "ts": 0.12302985 + "msg": "I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4\n", + "ts": 0.123764825 }, { "core_id": 0, @@ -13341,10 +13493,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.1230434 + "ts": 0.12377825 }, { "core_id": 0, @@ -13352,9 +13504,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.123060825 + "ts": 0.1237915 }, { "core_id": 1, @@ -13362,9 +13514,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.123060825 + "ts": 0.1237915 }, { "core_id": 1, @@ -13374,7 +13526,7 @@ "params": { "irq_num": 31 }, - "ts": 0.123077125 + "ts": 0.12380785 }, { "core_id": 0, @@ -13384,7 +13536,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.123087975 + "ts": 0.1238187 }, { "core_id": 1, @@ -13392,7 +13544,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.123098725 + "ts": 0.123829525 }, { "core_id": 0, @@ -13402,7 +13554,7 @@ "params": { "irq_num": 30 }, - "ts": 0.12311245 + "ts": 0.123843325 }, { "core_id": 1, @@ -13410,9 +13562,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.1231233 + "ts": 0.12385525 }, { "core_id": 0, @@ -13420,7 +13572,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.123134125 + "ts": 0.123866325 }, { "core_id": 1, @@ -13430,18 +13582,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.123146 + "ts": 0.12387825 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.12315625 + "params": { + "tid": 12296612 + }, + "ts": 0.123889925 }, { "core_id": 1, @@ -13451,10 +13605,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.123167725 + "ts": 0.12390255 }, { "core_id": 1, @@ -13464,158 +13618,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.123184025 + "ts": 0.12392495 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8\n", - "ts": 0.123247475 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8\n", - "ts": 0.123247475 - }, - { - "addr": "0x3ffbb7d8", + "addr": "0x3ffbafbc", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.12326865 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.12329565 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.123307075 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.12332365 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1236694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.12368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.123698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1238132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.123828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.123828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.123840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.12385665 - }, - { - "addr": "0x3ffbb7d8", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13627,16 +13642,34 @@ "id": 512, "in_irq": false, "size": 15, - "ts": 0.123892175 + "ts": 0.1239364 }, { - "addr": "0x3ffbb7ec", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4\n", + "ts": 0.123977725 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4\n", + "ts": 0.123977725 + }, + { + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13648,7 +13681,28 @@ "id": 512, "in_irq": false, "size": 30, - "ts": 0.12393085 + "ts": 0.1239893 + }, + { + "addr": "0x3ffbafa4", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.124003525 }, { "core_id": 0, @@ -13658,10 +13712,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.12394775 + "ts": 0.1240161 }, { "core_id": 0, @@ -13671,61 +13725,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.123963725 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec\n", - "ts": 0.124034075 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec\n", - "ts": 0.124034075 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.1240478 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.124061025 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.124061025 + "ts": 0.12403595 }, { "core_id": 1, @@ -13735,7 +13738,84 @@ "params": { "irq_num": 31 }, - "ts": 0.124077325 + "ts": 0.124046875 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1240584 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.12407635 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0\n", + "ts": 0.1240941 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0\n", + "ts": 0.1240941 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.1241117 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.12412495 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.12412495 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.1241413 }, { "core_id": 0, @@ -13745,7 +13825,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.124088175 + "ts": 0.12415215 }, { "core_id": 1, @@ -13753,7 +13833,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12409895 + "ts": 0.124162975 }, { "core_id": 0, @@ -13763,7 +13843,7 @@ "params": { "irq_num": 30 }, - "ts": 0.124112675 + "ts": 0.1241768 }, { "core_id": 1, @@ -13771,9 +13851,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.124125 + "ts": 0.124187725 }, { "core_id": 0, @@ -13781,7 +13861,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.124135825 + "ts": 0.1241986 }, { "core_id": 1, @@ -13791,10 +13871,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.1241477 + "ts": 0.12421055 }, { "core_id": 0, @@ -13802,7 +13882,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.124158975 + "ts": 0.124221775 }, { "core_id": 1, @@ -13812,10 +13892,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.124170625 + "ts": 0.124233575 }, { "core_id": 1, @@ -13825,10 +13905,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.124190325 + "ts": 0.124249925 }, { "core_id": 1, @@ -13836,8 +13916,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec\n", - "ts": 0.124253875 + "msg": "I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0\n", + "ts": 0.1242978 }, { "core_id": 1, @@ -13845,15 +13925,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec\n", - "ts": 0.124253875 + "msg": "I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0\n", + "ts": 0.1242978 }, { - "addr": "0x3ffbb7ec", + "addr": "0x3ffbafd0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -13867,7 +13947,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.124275075 + "ts": 0.124319225 }, { "core_id": 1, @@ -13877,7 +13957,7 @@ "params": { "irq_num": 31 }, - "ts": 0.124301975 + "ts": 0.124349975 }, { "core_id": 1, @@ -13885,7 +13965,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1243134 + "ts": 0.124361425 }, { "core_id": 1, @@ -13893,7 +13973,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.124329975 + "ts": 0.124378125 }, { "core_id": 1, @@ -13903,7 +13983,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1246694 + "ts": 0.1244259 }, { "core_id": 1, @@ -13911,7 +13991,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12468295 + "ts": 0.12443945 }, { "core_id": 1, @@ -13919,7 +13999,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.124698525 + "ts": 0.12445515 }, { "core_id": 0, @@ -13929,7 +14009,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1248132 + "ts": 0.1245467 }, { "core_id": 0, @@ -13937,7 +14017,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1248287 + "ts": 0.1245621 }, { "core_id": 0, @@ -13945,7 +14025,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.124843775 + "ts": 0.124577425 }, { "core_id": 1, @@ -13955,7 +14035,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1256694 + "ts": 0.1254259 }, { "core_id": 1, @@ -13963,7 +14043,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.125682925 + "ts": 0.1254394 }, { "core_id": 1, @@ -13971,7 +14051,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.125698325 + "ts": 0.12545455 }, { "core_id": 0, @@ -13981,7 +14061,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1258132 + "ts": 0.1255467 }, { "core_id": 0, @@ -13989,7 +14069,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1258287 + "ts": 0.12556205 }, { "core_id": 0, @@ -13997,7 +14077,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.125843775 + "ts": 0.125577125 }, { "core_id": 1, @@ -14007,7 +14087,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1266694 + "ts": 0.1264259 }, { "core_id": 1, @@ -14015,7 +14095,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.126682975 + "ts": 0.1264394 }, { "core_id": 1, @@ -14023,7 +14103,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1266981 + "ts": 0.126454675 }, { "core_id": 0, @@ -14033,7 +14113,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1268132 + "ts": 0.1265467 }, { "core_id": 0, @@ -14041,7 +14121,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1268287 + "ts": 0.12656205 }, { "core_id": 0, @@ -14049,7 +14129,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.126843775 + "ts": 0.12657715 }, { "core_id": 1, @@ -14059,7 +14139,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1276694 + "ts": 0.1274259 }, { "core_id": 1, @@ -14067,7 +14147,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.127682925 + "ts": 0.12743945 }, { "core_id": 1, @@ -14075,7 +14155,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.127698075 + "ts": 0.1274546 }, { "core_id": 0, @@ -14085,7 +14165,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1278132 + "ts": 0.1275467 }, { "core_id": 0, @@ -14093,7 +14173,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1278286 + "ts": 0.12756205 }, { "core_id": 0, @@ -14101,7 +14181,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.127843825 + "ts": 0.127577125 }, { "core_id": 1, @@ -14111,7 +14191,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1286694 + "ts": 0.1284259 }, { "core_id": 1, @@ -14119,7 +14199,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.128682925 + "ts": 0.1284394 }, { "core_id": 1, @@ -14127,7 +14207,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.128698075 + "ts": 0.12845455 }, { "core_id": 0, @@ -14137,7 +14217,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1288132 + "ts": 0.1285467 }, { "core_id": 0, @@ -14145,7 +14225,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1288287 + "ts": 0.1285621 }, { "core_id": 0, @@ -14153,7 +14233,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.128843775 + "ts": 0.128577425 }, { "core_id": 1, @@ -14163,7 +14243,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1296694 + "ts": 0.1294259 }, { "core_id": 1, @@ -14171,7 +14251,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.129682925 + "ts": 0.1294394 }, { "core_id": 1, @@ -14179,7 +14259,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.129698325 + "ts": 0.12945455 }, { "core_id": 0, @@ -14189,7 +14269,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1298132 + "ts": 0.1295467 }, { "core_id": 0, @@ -14197,7 +14277,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1298287 + "ts": 0.12956205 }, { "core_id": 0, @@ -14205,7 +14285,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1298481 + "ts": 0.129577125 }, { "core_id": 1, @@ -14215,7 +14295,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1306694 + "ts": 0.1304259 }, { "core_id": 1, @@ -14223,7 +14303,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.130682925 + "ts": 0.1304394 }, { "core_id": 1, @@ -14231,7 +14311,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.130698075 + "ts": 0.130454675 }, { "core_id": 0, @@ -14241,7 +14321,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1308132 + "ts": 0.1305467 }, { "core_id": 0, @@ -14249,7 +14329,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1308287 + "ts": 0.13056205 }, { "core_id": 0, @@ -14257,7 +14337,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.130843775 + "ts": 0.13057715 }, { "core_id": 1, @@ -14267,7 +14347,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1316694 + "ts": 0.1314259 }, { "core_id": 1, @@ -14275,7 +14355,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.131682925 + "ts": 0.13143945 }, { "core_id": 1, @@ -14283,7 +14363,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.131698325 + "ts": 0.1314546 }, { "core_id": 0, @@ -14293,7 +14373,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1318132 + "ts": 0.1315467 }, { "core_id": 0, @@ -14301,7 +14381,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1318287 + "ts": 0.13156205 }, { "core_id": 0, @@ -14309,7 +14389,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.131843775 + "ts": 0.131577125 }, { "core_id": 1, @@ -14319,7 +14399,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1326694 + "ts": 0.1324259 }, { "core_id": 1, @@ -14327,7 +14407,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.132682975 + "ts": 0.1324394 }, { "core_id": 1, @@ -14335,7 +14415,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1326981 + "ts": 0.13245455 }, { "core_id": 0, @@ -14345,7 +14425,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1328132 + "ts": 0.1325467 }, { "core_id": 0, @@ -14353,7 +14433,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1328287 + "ts": 0.1325621 }, { "core_id": 0, @@ -14361,7 +14441,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.132843775 + "ts": 0.132577425 }, { "core_id": 1, @@ -14371,7 +14451,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1336694 + "ts": 0.1334259 }, { "core_id": 1, @@ -14379,7 +14459,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.133682925 + "ts": 0.1334394 }, { "core_id": 1, @@ -14387,7 +14467,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.133698075 + "ts": 0.13345455 }, { "core_id": 0, @@ -14397,7 +14477,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1338132 + "ts": 0.1335467 }, { "core_id": 0, @@ -14405,7 +14485,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1338286 + "ts": 0.13356205 }, { "core_id": 0, @@ -14413,7 +14493,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.133843825 + "ts": 0.133577125 }, { "core_id": 1, @@ -14423,7 +14503,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1346694 + "ts": 0.1344259 }, { "core_id": 1, @@ -14431,7 +14511,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.134682925 + "ts": 0.13444365 }, { "core_id": 1, @@ -14439,7 +14519,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.134698075 + "ts": 0.1344588 }, { "core_id": 0, @@ -14449,7 +14529,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1348132 + "ts": 0.1345467 }, { "core_id": 0, @@ -14457,7 +14537,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1348287 + "ts": 0.13456205 }, { "core_id": 0, @@ -14465,7 +14545,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.134843775 + "ts": 0.134577125 }, { "core_id": 1, @@ -14475,7 +14555,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1356694 + "ts": 0.1354259 }, { "core_id": 1, @@ -14483,7 +14563,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.135682925 + "ts": 0.1354394 }, { "core_id": 1, @@ -14491,7 +14571,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.135698325 + "ts": 0.13545455 }, { "core_id": 0, @@ -14501,7 +14581,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1358132 + "ts": 0.1355467 }, { "core_id": 0, @@ -14509,7 +14589,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1358287 + "ts": 0.1355621 }, { "core_id": 0, @@ -14517,7 +14597,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.135843775 + "ts": 0.135577425 }, { "core_id": 1, @@ -14527,7 +14607,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1366694 + "ts": 0.1364259 }, { "core_id": 1, @@ -14535,7 +14615,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.136682975 + "ts": 0.1364394 }, { "core_id": 1, @@ -14543,7 +14623,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1366981 + "ts": 0.13645455 }, { "core_id": 0, @@ -14553,7 +14633,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1368132 + "ts": 0.1365467 }, { "core_id": 0, @@ -14561,7 +14641,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1368287 + "ts": 0.13656205 }, { "core_id": 0, @@ -14569,7 +14649,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.136843775 + "ts": 0.136577125 }, { "core_id": 1, @@ -14579,7 +14659,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1376694 + "ts": 0.1374259 }, { "core_id": 1, @@ -14587,7 +14667,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.137682925 + "ts": 0.1374394 }, { "core_id": 1, @@ -14595,7 +14675,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.137698075 + "ts": 0.137454675 }, { "core_id": 0, @@ -14605,7 +14685,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1378132 + "ts": 0.1375467 }, { "core_id": 0, @@ -14613,7 +14693,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1378286 + "ts": 0.13756205 }, { "core_id": 0, @@ -14621,7 +14701,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.137843825 + "ts": 0.13757715 }, { "core_id": 1, @@ -14631,7 +14711,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1386694 + "ts": 0.1384259 }, { "core_id": 1, @@ -14639,7 +14719,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.138682925 + "ts": 0.13843945 }, { "core_id": 1, @@ -14647,7 +14727,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.138698075 + "ts": 0.1384546 }, { "core_id": 0, @@ -14657,7 +14737,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1388132 + "ts": 0.1385467 }, { "core_id": 0, @@ -14665,7 +14745,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1388287 + "ts": 0.13856205 }, { "core_id": 0, @@ -14673,7 +14753,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.138843775 + "ts": 0.138577125 }, { "core_id": 1, @@ -14683,7 +14763,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1396694 + "ts": 0.1394259 }, { "core_id": 1, @@ -14691,7 +14771,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.139682925 + "ts": 0.1394394 }, { "core_id": 1, @@ -14699,7 +14779,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.139698325 + "ts": 0.13945455 }, { "core_id": 0, @@ -14709,7 +14789,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1398132 + "ts": 0.1395467 }, { "core_id": 0, @@ -14717,7 +14797,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1398287 + "ts": 0.1395621 }, { "core_id": 0, @@ -14725,7 +14805,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.139843775 + "ts": 0.139577425 }, { "core_id": 1, @@ -14735,7 +14815,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1406694 + "ts": 0.1404259 }, { "core_id": 1, @@ -14743,7 +14823,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.140682975 + "ts": 0.1404394 }, { "core_id": 1, @@ -14751,7 +14831,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1406981 + "ts": 0.14045455 }, { "core_id": 0, @@ -14761,7 +14841,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1408132 + "ts": 0.1405467 }, { "core_id": 0, @@ -14769,7 +14849,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1408287 + "ts": 0.14056205 }, { "core_id": 0, @@ -14777,7 +14857,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.140843775 + "ts": 0.140577125 }, { "core_id": 1, @@ -14787,7 +14867,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1416694 + "ts": 0.1414259 }, { "core_id": 1, @@ -14795,7 +14875,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.141682925 + "ts": 0.1414394 }, { "core_id": 1, @@ -14803,7 +14883,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.141698075 + "ts": 0.141454675 }, { "core_id": 0, @@ -14813,7 +14893,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1418132 + "ts": 0.1415467 }, { "core_id": 0, @@ -14821,7 +14901,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1418286 + "ts": 0.14156205 }, { "core_id": 0, @@ -14829,7 +14909,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.141843825 + "ts": 0.14157715 }, { "core_id": 1, @@ -14839,7 +14919,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1426694 + "ts": 0.1424259 }, { "core_id": 1, @@ -14847,7 +14927,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.142682925 + "ts": 0.14243945 }, { "core_id": 1, @@ -14855,7 +14935,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.142698325 + "ts": 0.1424546 }, { "core_id": 0, @@ -14865,7 +14945,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1428132 + "ts": 0.1425467 }, { "core_id": 0, @@ -14873,7 +14953,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1428287 + "ts": 0.14256205 }, { "core_id": 0, @@ -14881,7 +14961,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.142843775 + "ts": 0.142577125 }, { "core_id": 1, @@ -14891,7 +14971,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1436694 + "ts": 0.1434259 }, { "core_id": 1, @@ -14899,7 +14979,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.143682975 + "ts": 0.1434394 }, { "core_id": 1, @@ -14907,7 +14987,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1436981 + "ts": 0.14345455 }, { "core_id": 0, @@ -14917,7 +14997,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1438132 + "ts": 0.1435467 }, { "core_id": 0, @@ -14925,7 +15005,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1438287 + "ts": 0.1435621 }, { "core_id": 0, @@ -14933,7 +15013,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.143843775 + "ts": 0.143577425 }, { "core_id": 1, @@ -14943,7 +15023,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1446694 + "ts": 0.1444259 }, { "core_id": 1, @@ -14951,7 +15031,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.144682925 + "ts": 0.1444394 }, { "core_id": 1, @@ -14959,7 +15039,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.144698075 + "ts": 0.14445455 }, { "core_id": 0, @@ -14969,7 +15049,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1448132 + "ts": 0.1445467 }, { "core_id": 0, @@ -14977,7 +15057,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1448286 + "ts": 0.14456205 }, { "core_id": 0, @@ -14985,7 +15065,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.144843825 + "ts": 0.144577125 }, { "core_id": 1, @@ -14995,7 +15075,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1456694 + "ts": 0.1454259 }, { "core_id": 1, @@ -15003,7 +15083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.145682925 + "ts": 0.1454394 }, { "core_id": 1, @@ -15011,7 +15091,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.145698075 + "ts": 0.145454675 }, { "core_id": 0, @@ -15021,7 +15101,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1458132 + "ts": 0.1455467 }, { "core_id": 0, @@ -15029,7 +15109,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1458287 + "ts": 0.14556205 }, { "core_id": 0, @@ -15037,7 +15117,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.145843775 + "ts": 0.14557715 }, { "core_id": 1, @@ -15047,7 +15127,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1466694 + "ts": 0.1464259 }, { "core_id": 1, @@ -15055,7 +15135,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.146682925 + "ts": 0.146443 }, { "core_id": 1, @@ -15063,7 +15143,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.146698325 + "ts": 0.146458125 }, { "core_id": 0, @@ -15073,7 +15153,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1468132 + "ts": 0.1465467 }, { "core_id": 0, @@ -15081,7 +15161,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1468287 + "ts": 0.14656205 }, { "core_id": 0, @@ -15089,7 +15169,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.146843775 + "ts": 0.146577125 }, { "core_id": 1, @@ -15099,7 +15179,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1476694 + "ts": 0.1474259 }, { "core_id": 1, @@ -15107,7 +15187,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.147682975 + "ts": 0.1474394 }, { "core_id": 1, @@ -15115,7 +15195,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1476981 + "ts": 0.14745455 }, { "core_id": 0, @@ -15125,7 +15205,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1478132 + "ts": 0.1475467 }, { "core_id": 0, @@ -15133,7 +15213,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1478287 + "ts": 0.1475621 }, { "core_id": 0, @@ -15141,7 +15221,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.147843775 + "ts": 0.147577425 }, { "core_id": 1, @@ -15151,7 +15231,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1486694 + "ts": 0.1484259 }, { "core_id": 1, @@ -15159,7 +15239,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.148682925 + "ts": 0.1484394 }, { "core_id": 1, @@ -15167,7 +15247,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.148698075 + "ts": 0.14845455 }, { "core_id": 0, @@ -15177,7 +15257,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1488132 + "ts": 0.1485467 }, { "core_id": 0, @@ -15185,7 +15265,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1488286 + "ts": 0.14856205 }, { "core_id": 0, @@ -15193,7 +15273,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.148843825 + "ts": 0.148577125 }, { "core_id": 1, @@ -15203,7 +15283,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1496694 + "ts": 0.1494259 }, { "core_id": 1, @@ -15211,7 +15291,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.149682925 + "ts": 0.1494394 }, { "core_id": 1, @@ -15219,7 +15299,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.149698075 + "ts": 0.149454675 }, { "core_id": 0, @@ -15229,7 +15309,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1498132 + "ts": 0.1495467 }, { "core_id": 0, @@ -15237,7 +15317,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1498287 + "ts": 0.14956205 }, { "core_id": 0, @@ -15245,7 +15325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.149843775 + "ts": 0.14957715 }, { "core_id": 1, @@ -15255,7 +15335,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1506694 + "ts": 0.1504259 }, { "core_id": 1, @@ -15263,7 +15343,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.150682925 + "ts": 0.15043945 }, { "core_id": 1, @@ -15271,7 +15351,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.150698325 + "ts": 0.1504546 }, { "core_id": 0, @@ -15281,7 +15361,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1508132 + "ts": 0.1505467 }, { "core_id": 0, @@ -15289,7 +15369,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1508287 + "ts": 0.15056205 }, { "core_id": 0, @@ -15297,7 +15377,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.150843775 + "ts": 0.150577125 }, { "core_id": 1, @@ -15307,7 +15387,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1516694 + "ts": 0.1514259 }, { "core_id": 1, @@ -15315,7 +15395,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.151682975 + "ts": 0.1514394 }, { "core_id": 1, @@ -15323,7 +15403,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1516981 + "ts": 0.15145455 }, { "core_id": 0, @@ -15333,7 +15413,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1518132 + "ts": 0.1515467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1515621 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.151577425 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1524259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1524394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.15245455 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1525467 }, { "core_id": 0, @@ -15341,9 +15473,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.151828325 + "ts": 0.15256165 }, { "core_id": 1, @@ -15351,9 +15483,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.151828325 + "ts": 0.15256165 }, { "core_id": 0, @@ -15361,7 +15493,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.151840975 + "ts": 0.1525743 }, { "core_id": 0, @@ -15369,18 +15501,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.15185665 + "ts": 0.152590225 }, { - "addr": "0x3ffbb7ec", + "addr": "0x3ffbafa4", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -15392,16 +15524,16 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.151892175 + "ts": 0.15262545 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -15413,7 +15545,7 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.15193065 + "ts": 0.15266115 }, { "core_id": 0, @@ -15423,10 +15555,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15194755 + "ts": 0.152678125 }, { "core_id": 0, @@ -15436,10 +15568,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.15196355 + "ts": 0.1526941 }, { "core_id": 0, @@ -15447,8 +15579,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc\n", - "ts": 0.152033875 + "msg": "I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0\n", + "ts": 0.1527531 }, { "core_id": 0, @@ -15456,8 +15588,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc\n", - "ts": 0.152033875 + "msg": "I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0\n", + "ts": 0.1527531 }, { "core_id": 0, @@ -15467,10 +15599,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.152047475 + "ts": 0.1527666 }, { "core_id": 0, @@ -15478,9 +15610,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1520607 + "ts": 0.15277975 }, { "core_id": 1, @@ -15488,9 +15620,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1520607 + "ts": 0.15277975 }, { "core_id": 1, @@ -15500,7 +15632,7 @@ "params": { "irq_num": 31 }, - "ts": 0.15207695 + "ts": 0.152795975 }, { "core_id": 0, @@ -15510,7 +15642,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.1520878 + "ts": 0.152806925 }, { "core_id": 1, @@ -15518,7 +15650,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.152098575 + "ts": 0.152817675 }, { "core_id": 0, @@ -15528,7 +15660,7 @@ "params": { "irq_num": 30 }, - "ts": 0.152112375 + "ts": 0.15283175 }, { "core_id": 1, @@ -15536,9 +15668,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.152123175 + "ts": 0.15284255 }, { "core_id": 0, @@ -15546,7 +15678,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.152134025 + "ts": 0.152853275 }, { "core_id": 1, @@ -15556,10 +15688,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.1521459 + "ts": 0.1528654 }, { "core_id": 0, @@ -15567,7 +15699,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1521562 + "ts": 0.152875575 }, { "core_id": 1, @@ -15577,10 +15709,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.152167725 + "ts": 0.15288735 }, { "core_id": 1, @@ -15590,10 +15722,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.15218815 + "ts": 0.152903675 }, { "core_id": 1, @@ -15601,8 +15733,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc\n", - "ts": 0.1522517 + "msg": "I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0\n", + "ts": 0.15295155 }, { "core_id": 1, @@ -15610,15 +15742,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc\n", - "ts": 0.1522517 + "msg": "I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0\n", + "ts": 0.15295155 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -15632,7 +15764,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.1522729 + "ts": 0.152972775 }, { "core_id": 1, @@ -15642,7 +15774,7 @@ "params": { "irq_num": 31 }, - "ts": 0.1522998 + "ts": 0.15300425 }, { "core_id": 1, @@ -15650,7 +15782,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.152311225 + "ts": 0.1530157 }, { "core_id": 1, @@ -15658,7 +15790,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1523278 + "ts": 0.1530324 }, { "core_id": 1, @@ -15668,7 +15800,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1526694 + "ts": 0.1534259 }, { "core_id": 1, @@ -15676,7 +15808,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15268295 + "ts": 0.15343945 }, { "core_id": 1, @@ -15684,7 +15816,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.152698525 + "ts": 0.15345515 }, { "core_id": 0, @@ -15694,7 +15826,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1528132 + "ts": 0.1535467 }, { "core_id": 0, @@ -15702,9 +15834,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.152828325 + "ts": 0.1535617 }, { "core_id": 1, @@ -15712,9 +15844,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.152828325 + "ts": 0.1535617 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.15357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.15357355 }, { "core_id": 0, @@ -15722,7 +15874,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.152840975 + "ts": 0.15358605 }, { "core_id": 0, @@ -15730,18 +15882,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.152856775 + "ts": 0.153601725 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -15753,16 +15905,16 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.152892175 + "ts": 0.15363815 }, { - "addr": "0x3ffbb80c", + "addr": "0x3ffbafe0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -15774,7 +15926,7 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.1529267 + "ts": 0.153673575 }, { "core_id": 0, @@ -15784,10 +15936,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15294365 + "ts": 0.153690525 }, { "core_id": 0, @@ -15797,10 +15949,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.152963825 + "ts": 0.153706525 }, { "core_id": 0, @@ -15808,8 +15960,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c\n", - "ts": 0.15303425 + "msg": "I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0\n", + "ts": 0.153761375 }, { "core_id": 0, @@ -15817,8 +15969,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c\n", - "ts": 0.15303425 + "msg": "I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0\n", + "ts": 0.153761375 }, { "core_id": 0, @@ -15828,10 +15980,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.1530479 + "ts": 0.153778675 }, { "core_id": 0, @@ -15839,9 +15991,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.153061075 + "ts": 0.153791925 }, { "core_id": 1, @@ -15849,9 +16001,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.153061075 + "ts": 0.153791925 }, { "core_id": 1, @@ -15861,7 +16013,7 @@ "params": { "irq_num": 31 }, - "ts": 0.1530774 + "ts": 0.153808275 }, { "core_id": 0, @@ -15871,7 +16023,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.15308825 + "ts": 0.153819125 }, { "core_id": 1, @@ -15879,7 +16031,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.153098975 + "ts": 0.15382995 }, { "core_id": 0, @@ -15889,7 +16041,7 @@ "params": { "irq_num": 30 }, - "ts": 0.15311275 + "ts": 0.15384375 }, { "core_id": 1, @@ -15897,9 +16049,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.1531237 + "ts": 0.153855475 }, { "core_id": 0, @@ -15907,7 +16059,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1531345 + "ts": 0.15386685 }, { "core_id": 1, @@ -15917,18 +16069,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.153146375 + "ts": 0.15387885 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.153156625 + "params": { + "tid": 12296612 + }, + "ts": 0.153890525 }, { "core_id": 1, @@ -15938,10 +16092,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.1531681 + "ts": 0.153903125 }, { "core_id": 1, @@ -15951,158 +16105,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.1531844 + "ts": 0.15392175 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c\n", - "ts": 0.15324785 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c\n", - "ts": 0.15324785 - }, - { - "addr": "0x3ffbb80c", + "addr": "0x3ffbaffc", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.1532729 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.1532999 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.153311325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.1533279 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1536694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.15368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.153698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1538132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.153828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.153828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.153840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.15385665 - }, - { - "addr": "0x3ffbb80c", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16114,16 +16129,34 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.153892175 + "ts": 0.15393375 }, { - "addr": "0x3ffbb824", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0\n", + "ts": 0.153974925 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0\n", + "ts": 0.153974925 + }, + { + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16135,7 +16168,28 @@ "id": 512, "in_irq": false, "size": 36, - "ts": 0.153926725 + "ts": 0.1539911 + }, + { + "addr": "0x3ffbafe0", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.154005475 }, { "core_id": 0, @@ -16145,10 +16199,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.153943625 + "ts": 0.154017925 }, { "core_id": 0, @@ -16158,61 +16212,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.153959625 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824\n", - "ts": 0.15402995 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824\n", - "ts": 0.15402995 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.154047775 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.154061125 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.154061125 + "ts": 0.154037825 }, { "core_id": 1, @@ -16222,7 +16225,84 @@ "params": { "irq_num": 31 }, - "ts": 0.15407745 + "ts": 0.15404875 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1540603 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.15407825 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014\n", + "ts": 0.15409625 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014\n", + "ts": 0.15409625 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.1541097 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.15412645 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.15412645 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.1541428 }, { "core_id": 0, @@ -16232,7 +16312,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.1540883 + "ts": 0.154153675 }, { "core_id": 1, @@ -16240,7 +16320,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15409905 + "ts": 0.154164475 }, { "core_id": 0, @@ -16250,7 +16330,7 @@ "params": { "irq_num": 30 }, - "ts": 0.154112775 + "ts": 0.1541783 }, { "core_id": 1, @@ -16258,9 +16338,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.154123675 + "ts": 0.154189225 }, { "core_id": 0, @@ -16268,7 +16348,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1541345 + "ts": 0.154200075 }, { "core_id": 1, @@ -16278,10 +16358,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.15414635 + "ts": 0.154212025 }, { "core_id": 0, @@ -16289,7 +16369,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15415765 + "ts": 0.15422325 }, { "core_id": 1, @@ -16299,10 +16379,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.154169275 + "ts": 0.15423505 }, { "core_id": 1, @@ -16312,10 +16392,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.154185675 + "ts": 0.154251325 }, { "core_id": 1, @@ -16323,8 +16403,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824\n", - "ts": 0.154249225 + "msg": "I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014\n", + "ts": 0.1542991 }, { "core_id": 1, @@ -16332,15 +16412,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824\n", - "ts": 0.154249225 + "msg": "I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014\n", + "ts": 0.1542991 }, { - "addr": "0x3ffbb824", + "addr": "0x3ffbb014", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16354,7 +16434,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.154270425 + "ts": 0.154320475 }, { "core_id": 1, @@ -16364,7 +16444,7 @@ "params": { "irq_num": 31 }, - "ts": 0.154301425 + "ts": 0.154347875 }, { "core_id": 1, @@ -16372,7 +16452,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1543129 + "ts": 0.1543593 }, { "core_id": 1, @@ -16380,7 +16460,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1543296 + "ts": 0.15437585 }, { "core_id": 1, @@ -16390,7 +16470,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1546694 + "ts": 0.1544259 }, { "core_id": 1, @@ -16398,7 +16478,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15468285 + "ts": 0.15443945 }, { "core_id": 1, @@ -16406,7 +16486,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.154698425 + "ts": 0.15445515 }, { "core_id": 0, @@ -16416,7 +16496,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1548132 + "ts": 0.1545467 }, { "core_id": 0, @@ -16424,7 +16504,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1548286 + "ts": 0.15456205 }, { "core_id": 0, @@ -16432,7 +16512,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.154843825 + "ts": 0.154577125 }, { "core_id": 1, @@ -16442,7 +16522,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1556694 + "ts": 0.1554259 }, { "core_id": 1, @@ -16450,7 +16530,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.155682925 + "ts": 0.1554394 }, { "core_id": 1, @@ -16458,7 +16538,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.155698075 + "ts": 0.15545455 }, { "core_id": 0, @@ -16468,7 +16548,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1558132 + "ts": 0.1555467 }, { "core_id": 0, @@ -16476,7 +16556,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1558287 + "ts": 0.1555621 }, { "core_id": 0, @@ -16484,7 +16564,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.155843775 + "ts": 0.155577425 }, { "core_id": 1, @@ -16494,7 +16574,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1566694 + "ts": 0.1564259 }, { "core_id": 1, @@ -16502,7 +16582,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.156682925 + "ts": 0.1564394 }, { "core_id": 1, @@ -16510,7 +16590,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.156698325 + "ts": 0.15645455 }, { "core_id": 0, @@ -16520,7 +16600,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1568132 + "ts": 0.1565467 }, { "core_id": 0, @@ -16528,7 +16608,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1568287 + "ts": 0.156565675 }, { "core_id": 0, @@ -16536,7 +16616,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.156843775 + "ts": 0.156580875 }, { "core_id": 1, @@ -16546,7 +16626,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1576694 + "ts": 0.1574259 }, { "core_id": 1, @@ -16554,7 +16634,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.157682975 + "ts": 0.1574394 }, { "core_id": 1, @@ -16562,7 +16642,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1576981 + "ts": 0.15745455 }, { "core_id": 0, @@ -16572,7 +16652,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1578132 + "ts": 0.1575467 }, { "core_id": 0, @@ -16580,7 +16660,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1578287 + "ts": 0.15756205 }, { "core_id": 0, @@ -16588,7 +16668,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.157843775 + "ts": 0.157577125 }, { "core_id": 1, @@ -16598,7 +16678,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1586694 + "ts": 0.1584259 }, { "core_id": 1, @@ -16606,7 +16686,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.158682925 + "ts": 0.1584394 }, { "core_id": 1, @@ -16614,7 +16694,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.158698075 + "ts": 0.158454675 }, { "core_id": 0, @@ -16624,7 +16704,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1588132 + "ts": 0.1585467 }, { "core_id": 0, @@ -16632,7 +16712,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1588286 + "ts": 0.15856205 }, { "core_id": 0, @@ -16640,7 +16720,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.158843825 + "ts": 0.15857715 }, { "core_id": 1, @@ -16650,7 +16730,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1596694 + "ts": 0.1594259 }, { "core_id": 1, @@ -16658,7 +16738,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.159682925 + "ts": 0.15943945 }, { "core_id": 1, @@ -16666,7 +16746,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.159698075 + "ts": 0.1594546 }, { "core_id": 0, @@ -16676,7 +16756,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1598132 + "ts": 0.1595467 }, { "core_id": 0, @@ -16684,7 +16764,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1598287 + "ts": 0.15956205 }, { "core_id": 0, @@ -16692,7 +16772,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.159843775 + "ts": 0.159577125 }, { "core_id": 1, @@ -16702,7 +16782,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1606694 + "ts": 0.1604259 }, { "core_id": 1, @@ -16710,7 +16790,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.160682925 + "ts": 0.1604394 }, { "core_id": 1, @@ -16718,7 +16798,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.160698325 + "ts": 0.16045455 }, { "core_id": 0, @@ -16728,7 +16808,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1608132 + "ts": 0.1605467 }, { "core_id": 0, @@ -16736,7 +16816,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1608287 + "ts": 0.1605621 }, { "core_id": 0, @@ -16744,7 +16824,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.160843775 + "ts": 0.160577425 }, { "core_id": 1, @@ -16754,7 +16834,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1616694 + "ts": 0.1614259 }, { "core_id": 1, @@ -16762,7 +16842,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.161682975 + "ts": 0.1614394 }, { "core_id": 1, @@ -16770,7 +16850,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1616981 + "ts": 0.16145455 }, { "core_id": 0, @@ -16780,7 +16860,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1618132 + "ts": 0.1615467 }, { "core_id": 0, @@ -16788,7 +16868,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1618287 + "ts": 0.16156205 }, { "core_id": 0, @@ -16796,7 +16876,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.161843775 + "ts": 0.161577125 }, { "core_id": 1, @@ -16806,7 +16886,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1626694 + "ts": 0.1624259 }, { "core_id": 1, @@ -16814,7 +16894,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.162682925 + "ts": 0.1624394 }, { "core_id": 1, @@ -16822,7 +16902,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.162698075 + "ts": 0.162454675 }, { "core_id": 0, @@ -16832,7 +16912,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1628132 + "ts": 0.1625467 }, { "core_id": 0, @@ -16840,7 +16920,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1628286 + "ts": 0.16256205 }, { "core_id": 0, @@ -16848,7 +16928,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.162843825 + "ts": 0.16257715 }, { "core_id": 1, @@ -16858,7 +16938,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1636694 + "ts": 0.1634259 }, { "core_id": 1, @@ -16866,7 +16946,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.163682925 + "ts": 0.16343945 }, { "core_id": 1, @@ -16874,7 +16954,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.163698075 + "ts": 0.1634546 }, { "core_id": 0, @@ -16884,7 +16964,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1638132 + "ts": 0.1635467 }, { "core_id": 0, @@ -16892,7 +16972,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1638287 + "ts": 0.16356205 }, { "core_id": 0, @@ -16900,7 +16980,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.163843775 + "ts": 0.163577125 }, { "core_id": 1, @@ -16910,7 +16990,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1646694 + "ts": 0.1644259 }, { "core_id": 1, @@ -16918,7 +16998,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.16468655 + "ts": 0.1644394 }, { "core_id": 1, @@ -16926,7 +17006,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.164701825 + "ts": 0.16445455 }, { "core_id": 0, @@ -16936,7 +17016,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1648132 + "ts": 0.1645467 }, { "core_id": 0, @@ -16944,7 +17024,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1648287 + "ts": 0.1645621 }, { "core_id": 0, @@ -16952,7 +17032,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.164843775 + "ts": 0.164577425 }, { "core_id": 1, @@ -16962,7 +17042,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1656694 + "ts": 0.1654259 }, { "core_id": 1, @@ -16970,7 +17050,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.165682925 + "ts": 0.1654394 }, { "core_id": 1, @@ -16978,7 +17058,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.165698075 + "ts": 0.16545455 }, { "core_id": 0, @@ -16988,7 +17068,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1658132 + "ts": 0.1655467 }, { "core_id": 0, @@ -16996,7 +17076,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1658286 + "ts": 0.16556205 }, { "core_id": 0, @@ -17004,7 +17084,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.165843825 + "ts": 0.165577125 }, { "core_id": 1, @@ -17014,7 +17094,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1666694 + "ts": 0.1664259 }, { "core_id": 1, @@ -17022,7 +17102,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.166682925 + "ts": 0.1664394 }, { "core_id": 1, @@ -17030,7 +17110,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.166698075 + "ts": 0.166454675 }, { "core_id": 0, @@ -17040,7 +17120,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1668132 + "ts": 0.1665467 }, { "core_id": 0, @@ -17048,7 +17128,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1668287 + "ts": 0.16656205 }, { "core_id": 0, @@ -17056,7 +17136,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.166843775 + "ts": 0.16657715 }, { "core_id": 1, @@ -17066,7 +17146,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1676694 + "ts": 0.1674259 }, { "core_id": 1, @@ -17074,7 +17154,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.167682925 + "ts": 0.16743945 }, { "core_id": 1, @@ -17082,7 +17162,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.167698325 + "ts": 0.1674546 }, { "core_id": 0, @@ -17092,7 +17172,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1678132 + "ts": 0.1675467 }, { "core_id": 0, @@ -17100,7 +17180,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1678287 + "ts": 0.16756205 }, { "core_id": 0, @@ -17108,7 +17188,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.167843775 + "ts": 0.167577125 }, { "core_id": 1, @@ -17118,7 +17198,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1686694 + "ts": 0.1684259 }, { "core_id": 1, @@ -17126,7 +17206,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.168682975 + "ts": 0.1684394 }, { "core_id": 1, @@ -17134,7 +17214,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1686981 + "ts": 0.16845455 }, { "core_id": 0, @@ -17144,7 +17224,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1688132 + "ts": 0.1685467 }, { "core_id": 0, @@ -17152,7 +17232,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1688287 + "ts": 0.168566325 }, { "core_id": 0, @@ -17160,7 +17240,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.168843775 + "ts": 0.16858155 }, { "core_id": 1, @@ -17170,7 +17250,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1696694 + "ts": 0.1694259 }, { "core_id": 1, @@ -17178,7 +17258,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.169682925 + "ts": 0.1694394 }, { "core_id": 1, @@ -17186,7 +17266,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.169698075 + "ts": 0.16945455 }, { "core_id": 0, @@ -17196,7 +17276,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1698132 + "ts": 0.1695467 }, { "core_id": 0, @@ -17204,7 +17284,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1698286 + "ts": 0.16956205 }, { "core_id": 0, @@ -17212,7 +17292,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.169843825 + "ts": 0.169577125 }, { "core_id": 1, @@ -17222,7 +17302,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1706694 + "ts": 0.1704259 }, { "core_id": 1, @@ -17230,7 +17310,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.170682925 + "ts": 0.1704394 }, { "core_id": 1, @@ -17238,7 +17318,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.170698075 + "ts": 0.170454675 }, { "core_id": 0, @@ -17248,7 +17328,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1708132 + "ts": 0.1705467 }, { "core_id": 0, @@ -17256,7 +17336,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1708287 + "ts": 0.17056205 }, { "core_id": 0, @@ -17264,7 +17344,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.170843775 + "ts": 0.17057715 }, { "core_id": 1, @@ -17274,7 +17354,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1716694 + "ts": 0.1714259 }, { "core_id": 1, @@ -17282,7 +17362,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.171682925 + "ts": 0.17143945 }, { "core_id": 1, @@ -17290,7 +17370,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.171698325 + "ts": 0.1714546 }, { "core_id": 0, @@ -17300,7 +17380,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1718132 + "ts": 0.1715467 }, { "core_id": 0, @@ -17308,7 +17388,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1718287 + "ts": 0.17156205 }, { "core_id": 0, @@ -17316,7 +17396,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.171843775 + "ts": 0.171577125 }, { "core_id": 1, @@ -17326,7 +17406,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1726694 + "ts": 0.1724259 }, { "core_id": 1, @@ -17334,7 +17414,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.172682975 + "ts": 0.1724394 }, { "core_id": 1, @@ -17342,7 +17422,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1726981 + "ts": 0.17245455 }, { "core_id": 0, @@ -17352,7 +17432,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1728132 + "ts": 0.1725467 }, { "core_id": 0, @@ -17360,7 +17440,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1728287 + "ts": 0.1725621 }, { "core_id": 0, @@ -17368,7 +17448,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.172843775 + "ts": 0.172577425 }, { "core_id": 1, @@ -17378,7 +17458,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1736694 + "ts": 0.1734259 }, { "core_id": 1, @@ -17386,7 +17466,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.173682925 + "ts": 0.1734394 }, { "core_id": 1, @@ -17394,7 +17474,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.173698075 + "ts": 0.17345455 }, { "core_id": 0, @@ -17404,7 +17484,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1738132 + "ts": 0.1735467 }, { "core_id": 0, @@ -17412,7 +17492,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1738286 + "ts": 0.17356205 }, { "core_id": 0, @@ -17420,7 +17500,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.173843825 + "ts": 0.173577125 }, { "core_id": 1, @@ -17430,7 +17510,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1746694 + "ts": 0.1744259 }, { "core_id": 1, @@ -17438,7 +17518,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.174682925 + "ts": 0.1744394 }, { "core_id": 1, @@ -17446,7 +17526,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.174698075 + "ts": 0.174454675 }, { "core_id": 0, @@ -17456,7 +17536,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1748132 + "ts": 0.1745467 }, { "core_id": 0, @@ -17464,7 +17544,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1748287 + "ts": 0.17456205 }, { "core_id": 0, @@ -17472,7 +17552,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.174843775 + "ts": 0.17457715 }, { "core_id": 1, @@ -17482,7 +17562,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1756694 + "ts": 0.1754259 }, { "core_id": 1, @@ -17490,7 +17570,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.175682925 + "ts": 0.17543945 }, { "core_id": 1, @@ -17498,7 +17578,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.175698325 + "ts": 0.1754546 }, { "core_id": 0, @@ -17508,7 +17588,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1758132 + "ts": 0.1755467 }, { "core_id": 0, @@ -17516,7 +17596,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1758287 + "ts": 0.17556205 }, { "core_id": 0, @@ -17524,7 +17604,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.175843775 + "ts": 0.175577125 }, { "core_id": 1, @@ -17534,7 +17614,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1766694 + "ts": 0.1764259 }, { "core_id": 1, @@ -17542,7 +17622,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1766872 + "ts": 0.1764394 }, { "core_id": 1, @@ -17550,7 +17630,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17670235 + "ts": 0.17645455 }, { "core_id": 0, @@ -17560,7 +17640,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1768132 + "ts": 0.1765467 }, { "core_id": 0, @@ -17568,7 +17648,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1768287 + "ts": 0.1765621 }, { "core_id": 0, @@ -17576,7 +17656,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.176843775 + "ts": 0.176577425 }, { "core_id": 1, @@ -17586,7 +17666,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1776694 + "ts": 0.1774259 }, { "core_id": 1, @@ -17594,7 +17674,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.177682925 + "ts": 0.1774394 }, { "core_id": 1, @@ -17602,7 +17682,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.177698075 + "ts": 0.17745455 }, { "core_id": 0, @@ -17612,7 +17692,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1778132 + "ts": 0.1775467 }, { "core_id": 0, @@ -17620,7 +17700,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1778286 + "ts": 0.17756205 }, { "core_id": 0, @@ -17628,7 +17708,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.177843825 + "ts": 0.177577125 }, { "core_id": 1, @@ -17638,7 +17718,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1786694 + "ts": 0.1784259 }, { "core_id": 1, @@ -17646,7 +17726,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.178682925 + "ts": 0.1784394 }, { "core_id": 1, @@ -17654,7 +17734,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.178698075 + "ts": 0.178454675 }, { "core_id": 0, @@ -17664,7 +17744,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1788132 + "ts": 0.1785467 }, { "core_id": 0, @@ -17672,7 +17752,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1788287 + "ts": 0.17856205 }, { "core_id": 0, @@ -17680,7 +17760,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.178843775 + "ts": 0.17857715 }, { "core_id": 1, @@ -17690,7 +17770,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1796694 + "ts": 0.1794259 }, { "core_id": 1, @@ -17698,7 +17778,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.179682925 + "ts": 0.17943945 }, { "core_id": 1, @@ -17706,7 +17786,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.179698325 + "ts": 0.1794546 }, { "core_id": 0, @@ -17716,7 +17796,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1798132 + "ts": 0.1795467 }, { "core_id": 0, @@ -17724,7 +17804,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1798287 + "ts": 0.17956205 }, { "core_id": 0, @@ -17732,7 +17812,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.179843775 + "ts": 0.179577125 }, { "core_id": 1, @@ -17742,7 +17822,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1806694 + "ts": 0.1804259 }, { "core_id": 1, @@ -17750,7 +17830,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.180682975 + "ts": 0.1804394 }, { "core_id": 1, @@ -17758,7 +17838,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1806981 + "ts": 0.18045455 }, { "core_id": 0, @@ -17768,7 +17848,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1808132 + "ts": 0.1805467 }, { "core_id": 0, @@ -17776,7 +17856,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1808287 + "ts": 0.180566325 }, { "core_id": 0, @@ -17784,7 +17864,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.180843775 + "ts": 0.18058155 }, { "core_id": 1, @@ -17794,7 +17874,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1816694 + "ts": 0.1814259 }, { "core_id": 1, @@ -17802,7 +17882,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.181682925 + "ts": 0.1814394 }, { "core_id": 1, @@ -17810,7 +17890,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.181698075 + "ts": 0.18145455 }, { "core_id": 0, @@ -17820,7 +17900,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1818132 + "ts": 0.1815467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.18156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.181577125 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1824259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1824394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.182454675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1825467 }, { "core_id": 0, @@ -17828,9 +17960,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.181828225 + "ts": 0.182561675 }, { "core_id": 1, @@ -17838,9 +17970,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.181828225 + "ts": 0.182561675 }, { "core_id": 0, @@ -17848,7 +17980,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18184085 + "ts": 0.18257425 }, { "core_id": 0, @@ -17856,18 +17988,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.181856525 + "ts": 0.182589925 }, { - "addr": "0x3ffbb824", + "addr": "0x3ffbafe0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -17879,16 +18011,16 @@ "id": 512, "in_irq": false, "size": 7, - "ts": 0.18189185 + "ts": 0.182624925 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -17900,7 +18032,7 @@ "id": 512, "in_irq": false, "size": 14, - "ts": 0.181926275 + "ts": 0.182660425 }, { "core_id": 0, @@ -17910,10 +18042,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.1819433 + "ts": 0.18267735 }, { "core_id": 0, @@ -17923,10 +18055,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.1819593 + "ts": 0.182693275 }, { "core_id": 0, @@ -17934,8 +18066,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834\n", - "ts": 0.182029725 + "msg": "I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014\n", + "ts": 0.18274805 }, { "core_id": 0, @@ -17943,8 +18075,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834\n", - "ts": 0.182029725 + "msg": "I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014\n", + "ts": 0.18274805 }, { "core_id": 0, @@ -17954,10 +18086,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.182047475 + "ts": 0.18276155 }, { "core_id": 0, @@ -17965,9 +18097,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1820607 + "ts": 0.182779025 }, { "core_id": 1, @@ -17975,9 +18107,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1820607 + "ts": 0.182779025 }, { "core_id": 1, @@ -17987,7 +18119,7 @@ "params": { "irq_num": 31 }, - "ts": 0.182076925 + "ts": 0.182795275 }, { "core_id": 0, @@ -17997,7 +18129,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.1820878 + "ts": 0.1828061 }, { "core_id": 1, @@ -18005,7 +18137,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18209855 + "ts": 0.182816975 }, { "core_id": 0, @@ -18015,7 +18147,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1821124 + "ts": 0.1828308 }, { "core_id": 1, @@ -18023,9 +18155,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.182123275 + "ts": 0.18284165 }, { "core_id": 0, @@ -18033,7 +18165,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18213415 + "ts": 0.1828525 }, { "core_id": 1, @@ -18043,10 +18175,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.182146025 + "ts": 0.1828645 }, { "core_id": 0, @@ -18054,7 +18186,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.182156325 + "ts": 0.1828748 }, { "core_id": 1, @@ -18064,10 +18196,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.18216785 + "ts": 0.182886425 }, { "core_id": 1, @@ -18077,10 +18209,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.18218415 + "ts": 0.18290275 }, { "core_id": 1, @@ -18088,8 +18220,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834\n", - "ts": 0.1822477 + "msg": "I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014\n", + "ts": 0.182950525 }, { "core_id": 1, @@ -18097,15 +18229,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834\n", - "ts": 0.1822477 + "msg": "I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014\n", + "ts": 0.182950525 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18119,7 +18251,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.1822689 + "ts": 0.1829719 }, { "core_id": 1, @@ -18129,7 +18261,7 @@ "params": { "irq_num": 31 }, - "ts": 0.18230005 + "ts": 0.182999325 }, { "core_id": 1, @@ -18137,7 +18269,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.182311525 + "ts": 0.18301085 }, { "core_id": 1, @@ -18145,7 +18277,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.182328225 + "ts": 0.183027425 }, { "core_id": 1, @@ -18155,7 +18287,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1826694 + "ts": 0.1834259 }, { "core_id": 1, @@ -18163,7 +18295,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18268285 + "ts": 0.18343945 }, { "core_id": 1, @@ -18171,7 +18303,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.182698425 + "ts": 0.18345515 }, { "core_id": 0, @@ -18181,7 +18313,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1828132 + "ts": 0.1835467 }, { "core_id": 0, @@ -18189,9 +18321,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.182828225 + "ts": 0.18356165 }, { "core_id": 1, @@ -18199,9 +18331,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.182828225 + "ts": 0.18356165 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.18357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.18357355 }, { "core_id": 0, @@ -18209,7 +18361,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18284085 + "ts": 0.1835861 }, { "core_id": 0, @@ -18217,18 +18369,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.182856525 + "ts": 0.183601775 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18240,16 +18392,16 @@ "id": 512, "in_irq": false, "size": 14, - "ts": 0.1828917 + "ts": 0.18363815 }, { - "addr": "0x3ffbb848", + "addr": "0x3ffbb028", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18261,7 +18413,7 @@ "id": 512, "in_irq": false, "size": 28, - "ts": 0.182926225 + "ts": 0.183677725 }, { "core_id": 0, @@ -18271,10 +18423,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.18294325 + "ts": 0.18369465 }, { "core_id": 0, @@ -18284,10 +18436,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.18295925 + "ts": 0.183710675 }, { "core_id": 0, @@ -18295,8 +18447,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848\n", - "ts": 0.183029675 + "msg": "I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028\n", + "ts": 0.1837654 }, { "core_id": 0, @@ -18304,8 +18456,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848\n", - "ts": 0.183029675 + "msg": "I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028\n", + "ts": 0.1837654 }, { "core_id": 0, @@ -18315,10 +18467,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.183043225 + "ts": 0.183778825 }, { "core_id": 0, @@ -18326,9 +18478,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.18306065 + "ts": 0.183792075 }, { "core_id": 1, @@ -18336,9 +18488,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.18306065 + "ts": 0.183792075 }, { "core_id": 1, @@ -18348,7 +18500,7 @@ "params": { "irq_num": 31 }, - "ts": 0.183076975 + "ts": 0.183808675 }, { "core_id": 0, @@ -18358,7 +18510,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.183087825 + "ts": 0.18381945 }, { "core_id": 1, @@ -18366,7 +18518,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.183098575 + "ts": 0.183830375 }, { "core_id": 0, @@ -18376,7 +18528,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1831123 + "ts": 0.183844225 }, { "core_id": 1, @@ -18384,9 +18536,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.18312315 + "ts": 0.18385615 }, { "core_id": 0, @@ -18394,7 +18546,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.183133975 + "ts": 0.183867325 }, { "core_id": 1, @@ -18404,18 +18556,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.183145825 + "ts": 0.18387925 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.1831561 + "params": { + "tid": 12296612 + }, + "ts": 0.183891 }, { "core_id": 1, @@ -18425,10 +18579,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.183167575 + "ts": 0.183903625 }, { "core_id": 1, @@ -18438,158 +18592,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.183183875 + "ts": 0.18392605 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848\n", - "ts": 0.183247325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848\n", - "ts": 0.183247325 - }, - { - "addr": "0x3ffbb848", + "addr": "0x3ffbb048", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.1832686 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.1832956 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.183307025 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.1833236 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1836694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.18368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.183698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1838132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.183828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.183828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.183840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.18385665 - }, - { - "addr": "0x3ffbb848", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18601,16 +18616,34 @@ "id": 512, "in_irq": false, "size": 21, - "ts": 0.183892175 + "ts": 0.1839375 }, { - "addr": "0x3ffbb864", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028\n", + "ts": 0.18397865 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028\n", + "ts": 0.18397865 + }, + { + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18622,7 +18655,28 @@ "id": 512, "in_irq": false, "size": 42, - "ts": 0.18393085 + "ts": 0.183990225 + }, + { + "addr": "0x3ffbb028", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.18400445 }, { "core_id": 0, @@ -18632,10 +18686,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.18394775 + "ts": 0.184017025 }, { "core_id": 0, @@ -18645,61 +18699,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.183963725 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864\n", - "ts": 0.184034075 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864\n", - "ts": 0.184034075 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.1840478 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.184061025 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.184061025 + "ts": 0.184036875 }, { "core_id": 1, @@ -18709,7 +18712,84 @@ "params": { "irq_num": 31 }, - "ts": 0.184077325 + "ts": 0.1840478 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.184059325 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.184077275 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064\n", + "ts": 0.18409505 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064\n", + "ts": 0.18409505 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.18411265 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.184126025 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.184126025 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.184142375 }, { "core_id": 0, @@ -18719,7 +18799,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.184088175 + "ts": 0.184153225 }, { "core_id": 1, @@ -18727,7 +18807,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18409895 + "ts": 0.18416405 }, { "core_id": 0, @@ -18737,7 +18817,7 @@ "params": { "irq_num": 30 }, - "ts": 0.184112675 + "ts": 0.18417785 }, { "core_id": 1, @@ -18745,9 +18825,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.184125 + "ts": 0.1841886 }, { "core_id": 0, @@ -18755,7 +18835,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.184135825 + "ts": 0.184199375 }, { "core_id": 1, @@ -18765,10 +18845,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.1841477 + "ts": 0.184211475 }, { "core_id": 0, @@ -18776,7 +18856,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.184158975 + "ts": 0.184222675 }, { "core_id": 1, @@ -18786,10 +18866,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.184170625 + "ts": 0.184235025 }, { "core_id": 1, @@ -18799,10 +18879,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.184190325 + "ts": 0.18425125 }, { "core_id": 1, @@ -18810,8 +18890,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864\n", - "ts": 0.184253875 + "msg": "I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064\n", + "ts": 0.18429925 }, { "core_id": 1, @@ -18819,15 +18899,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864\n", - "ts": 0.184253875 + "msg": "I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064\n", + "ts": 0.18429925 }, { - "addr": "0x3ffbb864", + "addr": "0x3ffbb064", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18841,7 +18921,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.184275075 + "ts": 0.184320675 }, { "core_id": 1, @@ -18851,7 +18931,7 @@ "params": { "irq_num": 31 }, - "ts": 0.184301975 + "ts": 0.1843521 }, { "core_id": 1, @@ -18859,7 +18939,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1843134 + "ts": 0.18436355 }, { "core_id": 1, @@ -18867,7 +18947,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.184329975 + "ts": 0.18438025 }, { "core_id": 1, @@ -18877,7 +18957,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1846694 + "ts": 0.1844259 }, { "core_id": 1, @@ -18885,7 +18965,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18468295 + "ts": 0.18443945 }, { "core_id": 1, @@ -18893,7 +18973,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.184698525 + "ts": 0.18445515 }, { "core_id": 0, @@ -18903,7 +18983,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1848132 + "ts": 0.1845467 }, { "core_id": 0, @@ -18911,7 +18991,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1848287 + "ts": 0.1845621 }, { "core_id": 0, @@ -18919,7 +18999,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.184843775 + "ts": 0.184577425 }, { "core_id": 1, @@ -18929,7 +19009,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1856694 + "ts": 0.1854259 }, { "core_id": 1, @@ -18937,7 +19017,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.185682925 + "ts": 0.1854394 }, { "core_id": 1, @@ -18945,7 +19025,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.185698325 + "ts": 0.18545455 }, { "core_id": 0, @@ -18955,7 +19035,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1858132 + "ts": 0.1855467 }, { "core_id": 0, @@ -18963,7 +19043,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1858287 + "ts": 0.18556205 }, { "core_id": 0, @@ -18971,7 +19051,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.185843775 + "ts": 0.185577125 }, { "core_id": 1, @@ -18981,7 +19061,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1866694 + "ts": 0.1864259 }, { "core_id": 1, @@ -18989,7 +19069,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.186682975 + "ts": 0.1864394 }, { "core_id": 1, @@ -18997,7 +19077,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1866981 + "ts": 0.186454675 }, { "core_id": 0, @@ -19007,7 +19087,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1868132 + "ts": 0.1865467 }, { "core_id": 0, @@ -19015,7 +19095,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1868287 + "ts": 0.18656205 }, { "core_id": 0, @@ -19023,7 +19103,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.186843775 + "ts": 0.18657715 }, { "core_id": 1, @@ -19033,7 +19113,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1876694 + "ts": 0.1874259 }, { "core_id": 1, @@ -19041,7 +19121,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.187682925 + "ts": 0.18743945 }, { "core_id": 1, @@ -19049,7 +19129,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.187698075 + "ts": 0.1874546 }, { "core_id": 0, @@ -19059,7 +19139,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1878132 + "ts": 0.1875467 }, { "core_id": 0, @@ -19067,7 +19147,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1878286 + "ts": 0.18756205 }, { "core_id": 0, @@ -19075,7 +19155,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.187843825 + "ts": 0.187577125 }, { "core_id": 1, @@ -19085,7 +19165,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1886694 + "ts": 0.1884259 }, { "core_id": 1, @@ -19093,7 +19173,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.188682925 + "ts": 0.1884394 }, { "core_id": 1, @@ -19101,7 +19181,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.188698075 + "ts": 0.18845455 }, { "core_id": 0, @@ -19111,7 +19191,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1888132 + "ts": 0.1885467 }, { "core_id": 0, @@ -19119,7 +19199,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1888287 + "ts": 0.1885621 }, { "core_id": 0, @@ -19127,7 +19207,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.188843775 + "ts": 0.188577425 }, { "core_id": 1, @@ -19137,7 +19217,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1896694 + "ts": 0.1894259 }, { "core_id": 1, @@ -19145,7 +19225,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.189682925 + "ts": 0.1894394 }, { "core_id": 1, @@ -19153,7 +19233,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.189698325 + "ts": 0.18945455 }, { "core_id": 0, @@ -19163,7 +19243,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1898132 + "ts": 0.1895467 }, { "core_id": 0, @@ -19171,7 +19251,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1898287 + "ts": 0.18956205 }, { "core_id": 0, @@ -19179,7 +19259,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1898481 + "ts": 0.189577125 }, { "core_id": 1, @@ -19189,7 +19269,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1906694 + "ts": 0.1904259 }, { "core_id": 1, @@ -19197,7 +19277,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.190682925 + "ts": 0.1904394 }, { "core_id": 1, @@ -19205,7 +19285,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.190698075 + "ts": 0.190454675 }, { "core_id": 0, @@ -19215,7 +19295,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1908132 + "ts": 0.1905467 }, { "core_id": 0, @@ -19223,7 +19303,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1908287 + "ts": 0.19056205 }, { "core_id": 0, @@ -19231,7 +19311,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.190843775 + "ts": 0.19057715 }, { "core_id": 1, @@ -19241,7 +19321,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1916694 + "ts": 0.1914259 }, { "core_id": 1, @@ -19249,7 +19329,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.191682925 + "ts": 0.19143945 }, { "core_id": 1, @@ -19257,7 +19337,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.191698325 + "ts": 0.1914546 }, { "core_id": 0, @@ -19267,7 +19347,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1918132 + "ts": 0.1915467 }, { "core_id": 0, @@ -19275,7 +19355,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1918287 + "ts": 0.19156205 }, { "core_id": 0, @@ -19283,7 +19363,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.191843775 + "ts": 0.191577125 }, { "core_id": 1, @@ -19293,7 +19373,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1926694 + "ts": 0.1924259 }, { "core_id": 1, @@ -19301,7 +19381,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.192682975 + "ts": 0.1924394 }, { "core_id": 1, @@ -19309,7 +19389,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1926981 + "ts": 0.19245455 }, { "core_id": 0, @@ -19319,7 +19399,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1928132 + "ts": 0.1925467 }, { "core_id": 0, @@ -19327,7 +19407,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1928287 + "ts": 0.1925621 }, { "core_id": 0, @@ -19335,7 +19415,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.192843775 + "ts": 0.192577425 }, { "core_id": 1, @@ -19345,7 +19425,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1936694 + "ts": 0.1934259 }, { "core_id": 1, @@ -19353,7 +19433,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.193682925 + "ts": 0.1934394 }, { "core_id": 1, @@ -19361,7 +19441,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.193698075 + "ts": 0.19345455 }, { "core_id": 0, @@ -19371,7 +19451,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1938132 + "ts": 0.1935467 }, { "core_id": 0, @@ -19379,7 +19459,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1938286 + "ts": 0.19356205 }, { "core_id": 0, @@ -19387,7 +19467,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.193843825 + "ts": 0.193577125 }, { "core_id": 1, @@ -19397,7 +19477,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1946694 + "ts": 0.1944259 }, { "core_id": 1, @@ -19405,7 +19485,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.194682925 + "ts": 0.19444365 }, { "core_id": 1, @@ -19413,7 +19493,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.194698075 + "ts": 0.1944588 }, { "core_id": 0, @@ -19423,7 +19503,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1948132 + "ts": 0.1945467 }, { "core_id": 0, @@ -19431,7 +19511,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1948287 + "ts": 0.19456205 }, { "core_id": 0, @@ -19439,7 +19519,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.194843775 + "ts": 0.194577125 }, { "core_id": 1, @@ -19449,7 +19529,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1956694 + "ts": 0.1954259 }, { "core_id": 1, @@ -19457,7 +19537,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.195682925 + "ts": 0.1954394 }, { "core_id": 1, @@ -19465,7 +19545,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.195698325 + "ts": 0.19545455 }, { "core_id": 0, @@ -19475,7 +19555,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1958132 + "ts": 0.1955467 }, { "core_id": 0, @@ -19483,7 +19563,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1958287 + "ts": 0.1955621 }, { "core_id": 0, @@ -19491,7 +19571,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.195843775 + "ts": 0.195577425 }, { "core_id": 1, @@ -19501,7 +19581,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1966694 + "ts": 0.1964259 }, { "core_id": 1, @@ -19509,7 +19589,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.196682975 + "ts": 0.1964394 }, { "core_id": 1, @@ -19517,7 +19597,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1966981 + "ts": 0.19645455 }, { "core_id": 0, @@ -19527,7 +19607,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1968132 + "ts": 0.1965467 }, { "core_id": 0, @@ -19535,7 +19615,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1968287 + "ts": 0.19656205 }, { "core_id": 0, @@ -19543,7 +19623,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.196843775 + "ts": 0.196577125 }, { "core_id": 1, @@ -19553,7 +19633,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1976694 + "ts": 0.1974259 }, { "core_id": 1, @@ -19561,7 +19641,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.197682925 + "ts": 0.1974394 }, { "core_id": 1, @@ -19569,7 +19649,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.197698075 + "ts": 0.197454675 }, { "core_id": 0, @@ -19579,7 +19659,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1978132 + "ts": 0.1975467 }, { "core_id": 0, @@ -19587,7 +19667,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1978286 + "ts": 0.19756205 }, { "core_id": 0, @@ -19595,7 +19675,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.197843825 + "ts": 0.19757715 }, { "core_id": 1, @@ -19605,7 +19685,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1986694 + "ts": 0.1984259 }, { "core_id": 1, @@ -19613,7 +19693,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.198682925 + "ts": 0.19843945 }, { "core_id": 1, @@ -19621,7 +19701,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.198698075 + "ts": 0.1984546 }, { "core_id": 0, @@ -19631,7 +19711,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1988132 + "ts": 0.1985467 }, { "core_id": 0, @@ -19639,7 +19719,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1988287 + "ts": 0.19856205 }, { "core_id": 0, @@ -19647,7 +19727,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.198843775 + "ts": 0.198577125 }, { "core_id": 1, @@ -19657,7 +19737,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1996694 + "ts": 0.1994259 }, { "core_id": 1, @@ -19665,7 +19745,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.199682925 + "ts": 0.1994394 }, { "core_id": 1, @@ -19673,7 +19753,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.199698325 + "ts": 0.19945455 }, { "core_id": 0, @@ -19683,7 +19763,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1998132 + "ts": 0.1995467 }, { "core_id": 0, @@ -19691,7 +19771,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1998287 + "ts": 0.1995621 }, { "core_id": 0, @@ -19699,7 +19779,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.199843775 + "ts": 0.199577425 }, { "core_id": 1, @@ -19709,7 +19789,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2006694 + "ts": 0.2004259 }, { "core_id": 1, @@ -19717,7 +19797,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.200682975 + "ts": 0.2004394 }, { "core_id": 1, @@ -19725,7 +19805,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2006981 + "ts": 0.20045455 }, { "core_id": 0, @@ -19735,7 +19815,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2008132 + "ts": 0.2005467 }, { "core_id": 0, @@ -19743,7 +19823,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2008287 + "ts": 0.20056205 }, { "core_id": 0, @@ -19751,7 +19831,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.200843775 + "ts": 0.200577125 }, { "core_id": 1, @@ -19761,7 +19841,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2016694 + "ts": 0.2014259 }, { "core_id": 1, @@ -19769,7 +19849,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.201682925 + "ts": 0.2014394 }, { "core_id": 1, @@ -19777,7 +19857,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.201698075 + "ts": 0.201454675 }, { "core_id": 0, @@ -19787,7 +19867,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2018132 + "ts": 0.2015467 }, { "core_id": 0, @@ -19795,7 +19875,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2018286 + "ts": 0.20156205 }, { "core_id": 0, @@ -19803,7 +19883,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.201843825 + "ts": 0.20157715 }, { "core_id": 1, @@ -19813,7 +19893,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2026694 + "ts": 0.2024259 }, { "core_id": 1, @@ -19821,7 +19901,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.202682925 + "ts": 0.20243945 }, { "core_id": 1, @@ -19829,7 +19909,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.202698325 + "ts": 0.2024546 }, { "core_id": 0, @@ -19839,7 +19919,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2028132 + "ts": 0.2025467 }, { "core_id": 0, @@ -19847,7 +19927,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2028287 + "ts": 0.20256205 }, { "core_id": 0, @@ -19855,7 +19935,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.202843775 + "ts": 0.202577125 }, { "core_id": 1, @@ -19865,7 +19945,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2036694 + "ts": 0.2034259 }, { "core_id": 1, @@ -19873,7 +19953,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.203682975 + "ts": 0.2034394 }, { "core_id": 1, @@ -19881,7 +19961,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2036981 + "ts": 0.20345455 }, { "core_id": 0, @@ -19891,7 +19971,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2038132 + "ts": 0.2035467 }, { "core_id": 0, @@ -19899,7 +19979,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2038287 + "ts": 0.2035621 }, { "core_id": 0, @@ -19907,7 +19987,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.203843775 + "ts": 0.203577425 }, { "core_id": 1, @@ -19917,7 +19997,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2046694 + "ts": 0.2044259 }, { "core_id": 1, @@ -19925,7 +20005,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.204682925 + "ts": 0.2044394 }, { "core_id": 1, @@ -19933,7 +20013,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.204698075 + "ts": 0.20445455 }, { "core_id": 0, @@ -19943,7 +20023,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2048132 + "ts": 0.2045467 }, { "core_id": 0, @@ -19951,7 +20031,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2048286 + "ts": 0.20456205 }, { "core_id": 0, @@ -19959,7 +20039,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.204843825 + "ts": 0.204577125 }, { "core_id": 1, @@ -19969,7 +20049,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2056694 + "ts": 0.2054259 }, { "core_id": 1, @@ -19977,7 +20057,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.205682925 + "ts": 0.2054394 }, { "core_id": 1, @@ -19985,7 +20065,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.205698075 + "ts": 0.205454675 }, { "core_id": 0, @@ -19995,7 +20075,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2058132 + "ts": 0.2055467 }, { "core_id": 0, @@ -20003,7 +20083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2058287 + "ts": 0.20556205 }, { "core_id": 0, @@ -20011,7 +20091,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.205843775 + "ts": 0.20557715 }, { "core_id": 1, @@ -20021,7 +20101,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2066694 + "ts": 0.2064259 }, { "core_id": 1, @@ -20029,7 +20109,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.206682925 + "ts": 0.206443675 }, { "core_id": 1, @@ -20037,7 +20117,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.206698325 + "ts": 0.206458925 }, { "core_id": 0, @@ -20047,7 +20127,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2068132 + "ts": 0.2065467 }, { "core_id": 0, @@ -20055,7 +20135,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2068287 + "ts": 0.20656205 }, { "core_id": 0, @@ -20063,7 +20143,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.206843775 + "ts": 0.206577125 }, { "core_id": 1, @@ -20073,7 +20153,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2076694 + "ts": 0.2074259 }, { "core_id": 1, @@ -20081,7 +20161,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.207682975 + "ts": 0.2074394 }, { "core_id": 1, @@ -20089,7 +20169,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2076981 + "ts": 0.20745455 }, { "core_id": 0, @@ -20099,7 +20179,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2078132 + "ts": 0.2075467 }, { "core_id": 0, @@ -20107,7 +20187,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2078287 + "ts": 0.2075621 }, { "core_id": 0, @@ -20115,7 +20195,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.207843775 + "ts": 0.207577425 }, { "core_id": 1, @@ -20125,7 +20205,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2086694 + "ts": 0.2084259 }, { "core_id": 1, @@ -20133,7 +20213,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.208682925 + "ts": 0.2084394 }, { "core_id": 1, @@ -20141,7 +20221,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.208698075 + "ts": 0.20845455 }, { "core_id": 0, @@ -20151,7 +20231,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2088132 + "ts": 0.2085467 }, { "core_id": 0, @@ -20159,7 +20239,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2088286 + "ts": 0.20856205 }, { "core_id": 0, @@ -20167,7 +20247,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.208843825 + "ts": 0.208577125 }, { "core_id": 1, @@ -20177,7 +20257,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2096694 + "ts": 0.2094259 }, { "core_id": 1, @@ -20185,7 +20265,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.209682925 + "ts": 0.2094394 }, { "core_id": 1, @@ -20193,7 +20273,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.209698075 + "ts": 0.209454675 }, { "core_id": 0, @@ -20203,7 +20283,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2098132 + "ts": 0.2095467 }, { "core_id": 0, @@ -20211,7 +20291,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2098287 + "ts": 0.20956205 }, { "core_id": 0, @@ -20219,7 +20299,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.209843775 + "ts": 0.20957715 }, { "core_id": 1, @@ -20229,7 +20309,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2106694 + "ts": 0.2104259 }, { "core_id": 1, @@ -20237,7 +20317,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.210682925 + "ts": 0.21043945 }, { "core_id": 1, @@ -20245,7 +20325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.210698325 + "ts": 0.2104546 }, { "core_id": 0, @@ -20255,7 +20335,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2108132 + "ts": 0.2105467 }, { "core_id": 0, @@ -20263,7 +20343,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2108287 + "ts": 0.21056205 }, { "core_id": 0, @@ -20271,7 +20351,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.210843775 + "ts": 0.210577125 }, { "core_id": 1, @@ -20281,7 +20361,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2116694 + "ts": 0.2114259 }, { "core_id": 1, @@ -20289,7 +20369,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.211682975 + "ts": 0.2114394 }, { "core_id": 1, @@ -20297,7 +20377,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2116981 + "ts": 0.21145455 }, { "core_id": 0, @@ -20307,7 +20387,59 @@ "params": { "irq_num": 5 }, - "ts": 0.2118132 + "ts": 0.2115467 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2115621 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.211577425 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2124259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2124394 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.21245455 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2125467 }, { "core_id": 0, @@ -20315,9 +20447,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.211828325 + "ts": 0.21256165 }, { "core_id": 1, @@ -20325,9 +20457,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.211828325 + "ts": 0.21256165 }, { "core_id": 0, @@ -20335,7 +20467,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.211840975 + "ts": 0.2125743 }, { "core_id": 0, @@ -20343,18 +20475,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.21185665 + "ts": 0.212590225 }, { - "addr": "0x3ffbb864", + "addr": "0x3ffbb028", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -20366,16 +20498,16 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.211892175 + "ts": 0.212626475 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -20387,7 +20519,7 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.21193065 + "ts": 0.21266205 }, { "core_id": 0, @@ -20397,10 +20529,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21194755 + "ts": 0.212679025 }, { "core_id": 0, @@ -20410,10 +20542,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21196355 + "ts": 0.212695 }, { "core_id": 0, @@ -20421,8 +20553,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874\n", - "ts": 0.212033875 + "msg": "I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064\n", + "ts": 0.2127534 }, { "core_id": 0, @@ -20430,8 +20562,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874\n", - "ts": 0.212033875 + "msg": "I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064\n", + "ts": 0.2127534 }, { "core_id": 0, @@ -20441,10 +20573,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.212047475 + "ts": 0.2127669 }, { "core_id": 0, @@ -20452,9 +20584,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.2120607 + "ts": 0.21278005 }, { "core_id": 1, @@ -20462,9 +20594,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.2120607 + "ts": 0.21278005 }, { "core_id": 1, @@ -20474,7 +20606,7 @@ "params": { "irq_num": 31 }, - "ts": 0.21207695 + "ts": 0.212796275 }, { "core_id": 0, @@ -20484,7 +20616,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.2120878 + "ts": 0.2128071 }, { "core_id": 1, @@ -20492,7 +20624,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.212098575 + "ts": 0.212817975 }, { "core_id": 0, @@ -20502,7 +20634,7 @@ "params": { "irq_num": 30 }, - "ts": 0.212112375 + "ts": 0.212831875 }, { "core_id": 1, @@ -20510,9 +20642,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.212123175 + "ts": 0.212842675 }, { "core_id": 0, @@ -20520,7 +20652,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.212134025 + "ts": 0.2128534 }, { "core_id": 1, @@ -20530,10 +20662,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.2121459 + "ts": 0.212865525 }, { "core_id": 0, @@ -20541,7 +20673,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2121562 + "ts": 0.212875725 }, { "core_id": 1, @@ -20551,10 +20683,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.212167725 + "ts": 0.212887475 }, { "core_id": 1, @@ -20564,10 +20696,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21218815 + "ts": 0.212903825 }, { "core_id": 1, @@ -20575,8 +20707,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874\n", - "ts": 0.2122517 + "msg": "I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064\n", + "ts": 0.2129517 }, { "core_id": 1, @@ -20584,15 +20716,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874\n", - "ts": 0.2122517 + "msg": "I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064\n", + "ts": 0.2129517 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -20606,7 +20738,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.2122729 + "ts": 0.2129729 }, { "core_id": 1, @@ -20616,7 +20748,7 @@ "params": { "irq_num": 31 }, - "ts": 0.2122998 + "ts": 0.213004375 }, { "core_id": 1, @@ -20624,7 +20756,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.212311225 + "ts": 0.213015825 }, { "core_id": 1, @@ -20632,7 +20764,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2123278 + "ts": 0.213032525 }, { "core_id": 1, @@ -20642,7 +20774,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2126694 + "ts": 0.2134259 }, { "core_id": 1, @@ -20650,7 +20782,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21268295 + "ts": 0.21343945 }, { "core_id": 1, @@ -20658,7 +20790,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.212698525 + "ts": 0.21345515 }, { "core_id": 0, @@ -20668,7 +20800,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2128132 + "ts": 0.2135467 }, { "core_id": 0, @@ -20676,9 +20808,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.212828325 + "ts": 0.2135617 }, { "core_id": 1, @@ -20686,9 +20818,29 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.212828325 + "ts": 0.2135617 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.21357355 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.21357355 }, { "core_id": 0, @@ -20696,7 +20848,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.212840975 + "ts": 0.21358605 }, { "core_id": 0, @@ -20704,18 +20856,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.212856775 + "ts": 0.213601725 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -20727,16 +20879,16 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.212892175 + "ts": 0.21363815 }, { - "addr": "0x3ffbb888", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -20748,7 +20900,7 @@ "id": 512, "in_irq": false, "size": 32, - "ts": 0.212926875 + "ts": 0.213673775 }, { "core_id": 0, @@ -20758,10 +20910,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2129438 + "ts": 0.2136907 }, { "core_id": 0, @@ -20771,10 +20923,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.212963975 + "ts": 0.213706725 }, { "core_id": 0, @@ -20782,8 +20934,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888\n", - "ts": 0.213034425 + "msg": "I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078\n", + "ts": 0.21376145 }, { "core_id": 0, @@ -20791,8 +20943,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888\n", - "ts": 0.213034425 + "msg": "I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078\n", + "ts": 0.21376145 }, { "core_id": 0, @@ -20802,10 +20954,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.21304805 + "ts": 0.21377875 }, { "core_id": 0, @@ -20813,9 +20965,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.21306125 + "ts": 0.213792 }, { "core_id": 1, @@ -20823,9 +20975,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.21306125 + "ts": 0.213792 }, { "core_id": 1, @@ -20835,7 +20987,7 @@ "params": { "irq_num": 31 }, - "ts": 0.21307755 + "ts": 0.21380835 }, { "core_id": 0, @@ -20845,7 +20997,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.2130884 + "ts": 0.2138192 }, { "core_id": 1, @@ -20853,7 +21005,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21309915 + "ts": 0.213830025 }, { "core_id": 0, @@ -20863,7 +21015,7 @@ "params": { "irq_num": 30 }, - "ts": 0.213112875 + "ts": 0.2138438 }, { "core_id": 1, @@ -20871,9 +21023,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.213123725 + "ts": 0.21385575 }, { "core_id": 0, @@ -20881,7 +21033,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21313455 + "ts": 0.2138669 }, { "core_id": 1, @@ -20891,18 +21043,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.213146575 + "ts": 0.21387885 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.21315695 + "params": { + "tid": 12296612 + }, + "ts": 0.2138905 }, { "core_id": 1, @@ -20912,10 +21066,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21316835 + "ts": 0.2139022 }, { "core_id": 1, @@ -20925,158 +21079,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21318475 + "ts": 0.2139208 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888\n", - "ts": 0.2132482 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888\n", - "ts": 0.2132482 - }, - { - "addr": "0x3ffbb888", + "addr": "0x3ffbb09c", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.213273225 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.213300225 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.21331165 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.213328225 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2136694 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.21368295 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.213698525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2138132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.213828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.213828325 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.213840975 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.21385665 - }, - { - "addr": "0x3ffbb888", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21088,16 +21103,34 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.213892175 + "ts": 0.213933875 }, { - "addr": "0x3ffbb8a4", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078\n", + "ts": 0.21397465 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078\n", + "ts": 0.21397465 + }, + { + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21109,7 +21142,28 @@ "id": 512, "in_irq": false, "size": 48, - "ts": 0.213926725 + "ts": 0.2139905 + }, + { + "addr": "0x3ffbb078", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.2140048 }, { "core_id": 0, @@ -21119,10 +21173,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.213943625 + "ts": 0.214017225 }, { "core_id": 0, @@ -21132,61 +21186,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.213959625 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4\n", - "ts": 0.21402995 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4\n", - "ts": 0.21402995 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.21405045 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.214063675 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.214063675 + "ts": 0.21403725 }, { "core_id": 1, @@ -21196,7 +21199,184 @@ "params": { "irq_num": 31 }, - "ts": 0.21408 + "ts": 0.214048175 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.214059725 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.214077675 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8\n", + "ts": 0.214095675 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8\n", + "ts": 0.214095675 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.214109125 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.21565445 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.215666025 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12299660 + }, + "ts": 0.215666025 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215683825 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.21569495 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.21570585 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2157175 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215728 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.215738875 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.2157498 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.21576155 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2157723 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.21578375 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.215801425 }, { "core_id": 0, @@ -21206,43 +21386,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.21409085 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.2141016 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.2141155 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.214126375 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.2141372 + "ts": 0.21581525 }, { "core_id": 1, @@ -21252,18 +21396,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.21414905 + "ts": 0.215827525 }, { "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.21416035 + "ctx_name": "FROM_CPU0", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 30 + }, + "ts": 0.215838975 }, { "core_id": 1, @@ -21273,10 +21419,18 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.214171975 + "ts": 0.21585105 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2158621 }, { "core_id": 1, @@ -21286,10 +21440,18 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.214188375 + "ts": 0.2158743 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.215885925 }, { "core_id": 1, @@ -21297,8 +21459,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4\n", - "ts": 0.214251925 + "msg": "I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.21593595 }, { "core_id": 1, @@ -21306,15 +21468,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4\n", - "ts": 0.214251925 + "msg": "I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.21593595 }, { - "addr": "0x3ffbb8a4", + "addr": "0x3ffbb0b8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21328,7 +21490,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.214273125 + "ts": 0.215957325 }, { "core_id": 1, @@ -21338,7 +21500,7 @@ "params": { "irq_num": 31 }, - "ts": 0.21430345 + "ts": 0.21598475 }, { "core_id": 1, @@ -21346,7 +21508,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.214314925 + "ts": 0.21599615 }, { "core_id": 1, @@ -21354,7 +21516,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.214331625 + "ts": 0.216012725 }, { "core_id": 1, @@ -21364,7 +21526,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2146694 + "ts": 0.2164259 }, { "core_id": 1, @@ -21372,7 +21534,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21468285 + "ts": 0.2164394 }, { "core_id": 1, @@ -21380,7 +21542,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.214698425 + "ts": 0.216454975 }, { "core_id": 0, @@ -21390,7 +21552,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2148132 + "ts": 0.2165467 }, { "core_id": 0, @@ -21398,7 +21560,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2148286 + "ts": 0.2165621 }, { "core_id": 0, @@ -21406,7 +21568,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.214843825 + "ts": 0.216577425 }, { "core_id": 1, @@ -21416,7 +21578,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2156694 + "ts": 0.2174259 }, { "core_id": 1, @@ -21424,7 +21586,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.215682925 + "ts": 0.2174394 }, { "core_id": 1, @@ -21432,7 +21594,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.215698075 + "ts": 0.217454675 }, { "core_id": 0, @@ -21442,7 +21604,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2158132 + "ts": 0.2175467 }, { "core_id": 0, @@ -21450,7 +21612,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2158287 + "ts": 0.21756205 }, { "core_id": 0, @@ -21458,7 +21620,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.215843775 + "ts": 0.21757715 }, { "core_id": 1, @@ -21468,7 +21630,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2166694 + "ts": 0.2184259 }, { "core_id": 1, @@ -21476,7 +21638,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.216682925 + "ts": 0.21843945 }, { "core_id": 1, @@ -21484,7 +21646,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.216698325 + "ts": 0.2184546 }, { "core_id": 0, @@ -21494,7 +21656,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2168132 + "ts": 0.2185467 }, { "core_id": 0, @@ -21502,7 +21664,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2168287 + "ts": 0.21856205 }, { "core_id": 0, @@ -21510,7 +21672,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.216843775 + "ts": 0.218577125 }, { "core_id": 1, @@ -21520,7 +21682,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2176694 + "ts": 0.2194259 }, { "core_id": 1, @@ -21528,7 +21690,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.217682975 + "ts": 0.2194394 }, { "core_id": 1, @@ -21536,7 +21698,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2176981 + "ts": 0.21945455 }, { "core_id": 0, @@ -21546,7 +21708,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2178132 + "ts": 0.2195467 }, { "core_id": 0, @@ -21554,7 +21716,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2178287 + "ts": 0.2195621 }, { "core_id": 0, @@ -21562,7 +21724,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.217843775 + "ts": 0.219577425 }, { "core_id": 1, @@ -21572,7 +21734,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2186694 + "ts": 0.2204259 }, { "core_id": 1, @@ -21580,7 +21742,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.218682925 + "ts": 0.2204394 }, { "core_id": 1, @@ -21588,7 +21750,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.218698075 + "ts": 0.22045455 }, { "core_id": 0, @@ -21598,7 +21760,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2188132 + "ts": 0.2205467 }, { "core_id": 0, @@ -21606,7 +21768,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2188286 + "ts": 0.22056205 }, { "core_id": 0, @@ -21614,7 +21776,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.218843825 + "ts": 0.220577125 }, { "core_id": 1, @@ -21624,7 +21786,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2196694 + "ts": 0.2214259 }, { "core_id": 1, @@ -21632,7 +21794,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.219682925 + "ts": 0.2214394 }, { "core_id": 1, @@ -21640,7 +21802,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.219698075 + "ts": 0.221454675 }, { "core_id": 0, @@ -21650,7 +21812,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2198132 + "ts": 0.2215467 }, { "core_id": 0, @@ -21658,7 +21820,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2198287 + "ts": 0.22156205 }, { "core_id": 0, @@ -21666,7 +21828,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.219843775 + "ts": 0.22157715 }, { "core_id": 1, @@ -21676,7 +21838,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2206694 + "ts": 0.2224259 }, { "core_id": 1, @@ -21684,7 +21846,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.220682925 + "ts": 0.22243945 }, { "core_id": 1, @@ -21692,7 +21854,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.220698325 + "ts": 0.2224546 }, { "core_id": 0, @@ -21702,7 +21864,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2208132 + "ts": 0.2225467 }, { "core_id": 0, @@ -21710,7 +21872,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2208287 + "ts": 0.22256205 }, { "core_id": 0, @@ -21718,7 +21880,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.220843775 + "ts": 0.222577125 }, { "core_id": 1, @@ -21728,7 +21890,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2216694 + "ts": 0.2234259 }, { "core_id": 1, @@ -21736,7 +21898,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.221682975 + "ts": 0.2234394 }, { "core_id": 1, @@ -21744,7 +21906,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2216981 + "ts": 0.22345455 }, { "core_id": 0, @@ -21754,7 +21916,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2218132 + "ts": 0.2235467 }, { "core_id": 0, @@ -21762,7 +21924,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2218287 + "ts": 0.2235621 }, { "core_id": 0, @@ -21770,7 +21932,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.221843775 + "ts": 0.223577425 }, { "core_id": 1, @@ -21780,7 +21942,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2226694 + "ts": 0.2244259 }, { "core_id": 1, @@ -21788,7 +21950,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.222682925 + "ts": 0.2244394 }, { "core_id": 1, @@ -21796,7 +21958,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.222698075 + "ts": 0.22445455 }, { "core_id": 0, @@ -21806,7 +21968,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2228132 + "ts": 0.2245467 }, { "core_id": 0, @@ -21814,7 +21976,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2228286 + "ts": 0.22456205 }, { "core_id": 0, @@ -21822,7 +21984,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.222843825 + "ts": 0.224577125 }, { "core_id": 1, @@ -21832,7 +21994,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2236694 + "ts": 0.2254259 }, { "core_id": 1, @@ -21840,7 +22002,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.223682925 + "ts": 0.2254394 }, { "core_id": 1, @@ -21848,7 +22010,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.223698075 + "ts": 0.225454675 }, { "core_id": 0, @@ -21858,7 +22020,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2238132 + "ts": 0.2255467 }, { "core_id": 0, @@ -21866,7 +22028,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2238287 + "ts": 0.22556205 }, { "core_id": 0, @@ -21874,7 +22036,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.223843775 + "ts": 0.22557715 }, { "core_id": 1, @@ -21884,7 +22046,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2246694 + "ts": 0.2264259 }, { "core_id": 1, @@ -21892,7 +22054,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.224687175 + "ts": 0.22643945 }, { "core_id": 1, @@ -21900,7 +22062,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.224702325 + "ts": 0.2264546 }, { "core_id": 0, @@ -21910,7 +22072,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2248132 + "ts": 0.2265467 }, { "core_id": 0, @@ -21918,7 +22080,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2248287 + "ts": 0.22656205 }, { "core_id": 0, @@ -21926,7 +22088,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.224843775 + "ts": 0.226577125 }, { "core_id": 1, @@ -21936,7 +22098,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2256694 + "ts": 0.2274259 }, { "core_id": 1, @@ -21944,7 +22106,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.225682925 + "ts": 0.2274394 }, { "core_id": 1, @@ -21952,7 +22114,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.225698075 + "ts": 0.22745455 }, { "core_id": 0, @@ -21962,7 +22124,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2258132 + "ts": 0.2275467 }, { "core_id": 0, @@ -21970,7 +22132,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2258286 + "ts": 0.2275621 }, { "core_id": 0, @@ -21978,7 +22140,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.225843825 + "ts": 0.227577425 }, { "core_id": 1, @@ -21988,7 +22150,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2266694 + "ts": 0.2284259 }, { "core_id": 1, @@ -21996,7 +22158,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.226682925 + "ts": 0.2284394 }, { "core_id": 1, @@ -22004,7 +22166,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.226698075 + "ts": 0.22845455 }, { "core_id": 0, @@ -22014,7 +22176,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2268132 + "ts": 0.2285467 }, { "core_id": 0, @@ -22022,7 +22184,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2268287 + "ts": 0.22856205 }, { "core_id": 0, @@ -22030,7 +22192,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.226843775 + "ts": 0.228577125 }, { "core_id": 1, @@ -22040,7 +22202,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2276694 + "ts": 0.2294259 }, { "core_id": 1, @@ -22048,7 +22210,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.227682925 + "ts": 0.229443675 }, { "core_id": 1, @@ -22056,7 +22218,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.227698325 + "ts": 0.229458825 }, { "core_id": 0, @@ -22066,7 +22228,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2278132 + "ts": 0.2295467 }, { "core_id": 0, @@ -22074,7 +22236,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2278287 + "ts": 0.22956205 }, { "core_id": 0, @@ -22082,7 +22244,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.227843775 + "ts": 0.229577125 }, { "core_id": 1, @@ -22092,7 +22254,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2286694 + "ts": 0.2304259 }, { "core_id": 1, @@ -22100,7 +22262,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.228682975 + "ts": 0.2304394 }, { "core_id": 1, @@ -22108,7 +22270,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2286981 + "ts": 0.23045455 }, { "core_id": 0, @@ -22118,7 +22280,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2288132 + "ts": 0.2305467 }, { "core_id": 0, @@ -22126,7 +22288,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2288287 + "ts": 0.2305621 }, { "core_id": 0, @@ -22134,7 +22296,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.228843775 + "ts": 0.230577425 }, { "core_id": 1, @@ -22144,7 +22306,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2296694 + "ts": 0.2314259 }, { "core_id": 1, @@ -22152,7 +22314,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.229682925 + "ts": 0.2314394 }, { "core_id": 1, @@ -22160,7 +22322,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.229698075 + "ts": 0.23145455 }, { "core_id": 0, @@ -22170,7 +22332,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2298132 + "ts": 0.2315467 }, { "core_id": 0, @@ -22178,7 +22340,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2298286 + "ts": 0.23156205 }, { "core_id": 0, @@ -22186,7 +22348,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.229843825 + "ts": 0.231577125 }, { "core_id": 1, @@ -22196,7 +22358,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2306694 + "ts": 0.2324259 }, { "core_id": 1, @@ -22204,7 +22366,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.230682925 + "ts": 0.2324394 }, { "core_id": 1, @@ -22212,7 +22374,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.230698075 + "ts": 0.232454675 }, { "core_id": 0, @@ -22222,7 +22384,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2308132 + "ts": 0.2325467 }, { "core_id": 0, @@ -22230,7 +22392,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2308287 + "ts": 0.23256205 }, { "core_id": 0, @@ -22238,7 +22400,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.230843775 + "ts": 0.23257715 }, { "core_id": 1, @@ -22248,7 +22410,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2316694 + "ts": 0.2334259 }, { "core_id": 1, @@ -22256,7 +22418,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.231682925 + "ts": 0.23343945 }, { "core_id": 1, @@ -22264,7 +22426,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.231698325 + "ts": 0.2334546 }, { "core_id": 0, @@ -22274,7 +22436,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2318132 + "ts": 0.2335467 }, { "core_id": 0, @@ -22282,7 +22444,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2318287 + "ts": 0.23356205 }, { "core_id": 0, @@ -22290,7 +22452,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.231843775 + "ts": 0.233577125 }, { "core_id": 1, @@ -22300,7 +22462,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2326694 + "ts": 0.2344259 }, { "core_id": 1, @@ -22308,7 +22470,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.232682975 + "ts": 0.2344394 }, { "core_id": 1, @@ -22316,7 +22478,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2326981 + "ts": 0.23445455 }, { "core_id": 0, @@ -22326,7 +22488,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2328132 + "ts": 0.2345467 }, { "core_id": 0, @@ -22334,7 +22496,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2328287 + "ts": 0.2345621 }, { "core_id": 0, @@ -22342,7 +22504,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.232843775 + "ts": 0.234577425 }, { "core_id": 1, @@ -22352,7 +22514,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2336694 + "ts": 0.2354259 }, { "core_id": 1, @@ -22360,7 +22522,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.233682925 + "ts": 0.2354394 }, { "core_id": 1, @@ -22368,7 +22530,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.233698075 + "ts": 0.23545455 }, { "core_id": 0, @@ -22378,7 +22540,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2338132 + "ts": 0.2355467 }, { "core_id": 0, @@ -22386,7 +22548,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2338286 + "ts": 0.23556205 }, { "core_id": 0, @@ -22394,7 +22556,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.233843825 + "ts": 0.235577125 }, { "core_id": 1, @@ -22404,7 +22566,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2346694 + "ts": 0.2364259 }, { "core_id": 1, @@ -22412,7 +22574,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.234682925 + "ts": 0.2364394 }, { "core_id": 1, @@ -22420,7 +22582,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.234698075 + "ts": 0.236454675 }, { "core_id": 0, @@ -22430,7 +22592,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2348132 + "ts": 0.2365467 }, { "core_id": 0, @@ -22438,7 +22600,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2348287 + "ts": 0.23656205 }, { "core_id": 0, @@ -22446,7 +22608,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.234843775 + "ts": 0.23657715 }, { "core_id": 1, @@ -22456,7 +22618,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2356694 + "ts": 0.2374259 }, { "core_id": 1, @@ -22464,7 +22626,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.235682925 + "ts": 0.23743945 }, { "core_id": 1, @@ -22472,7 +22634,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.235698325 + "ts": 0.2374546 }, { "core_id": 0, @@ -22482,7 +22644,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2358132 + "ts": 0.2375467 }, { "core_id": 0, @@ -22490,7 +22652,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2358287 + "ts": 0.23756205 }, { "core_id": 0, @@ -22498,7 +22660,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.235843775 + "ts": 0.237577125 }, { "core_id": 1, @@ -22508,7 +22670,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2366694 + "ts": 0.2384259 }, { "core_id": 1, @@ -22516,7 +22678,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.236686525 + "ts": 0.2384394 }, { "core_id": 1, @@ -22524,7 +22686,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23670165 + "ts": 0.23845455 }, { "core_id": 0, @@ -22534,7 +22696,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2368132 + "ts": 0.2385467 }, { "core_id": 0, @@ -22542,7 +22704,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2368287 + "ts": 0.2385621 }, { "core_id": 0, @@ -22550,7 +22712,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.236843775 + "ts": 0.238577425 }, { "core_id": 1, @@ -22560,7 +22722,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2376694 + "ts": 0.2394259 }, { "core_id": 1, @@ -22568,7 +22730,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.237682925 + "ts": 0.2394394 }, { "core_id": 1, @@ -22576,7 +22738,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.237698075 + "ts": 0.23945455 }, { "core_id": 0, @@ -22586,7 +22748,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2378132 + "ts": 0.2395467 }, { "core_id": 0, @@ -22594,7 +22756,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2378286 + "ts": 0.23956205 }, { "core_id": 0, @@ -22602,7 +22764,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.237843825 + "ts": 0.239577125 }, { "core_id": 1, @@ -22612,7 +22774,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2386694 + "ts": 0.2404259 }, { "core_id": 1, @@ -22620,7 +22782,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.238682925 + "ts": 0.2404394 }, { "core_id": 1, @@ -22628,7 +22790,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.238698075 + "ts": 0.240454675 }, { "core_id": 0, @@ -22638,7 +22800,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2388132 + "ts": 0.2405467 }, { "core_id": 0, @@ -22646,7 +22808,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2388287 + "ts": 0.24056205 }, { "core_id": 0, @@ -22654,7 +22816,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.238843775 + "ts": 0.24057715 }, { "core_id": 1, @@ -22664,7 +22826,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2396694 + "ts": 0.2414259 }, { "core_id": 1, @@ -22672,7 +22834,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.239682925 + "ts": 0.241443 }, { "core_id": 1, @@ -22680,7 +22842,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.239698325 + "ts": 0.241458125 }, { "core_id": 0, @@ -22690,7 +22852,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2398132 + "ts": 0.2415467 }, { "core_id": 0, @@ -22698,7 +22860,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2398287 + "ts": 0.24156205 }, { "core_id": 0, @@ -22706,7 +22868,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.239843775 + "ts": 0.241577125 }, { "core_id": 1, @@ -22716,7 +22878,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2406694 + "ts": 0.2424259 }, { "core_id": 1, @@ -22724,7 +22886,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.240682975 + "ts": 0.2424394 }, { "core_id": 1, @@ -22732,7 +22894,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2406981 + "ts": 0.24245455 }, { "core_id": 0, @@ -22742,59 +22904,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2408132 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.2408287 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.240843775 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2416694 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.241682925 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.241698075 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2418132 + "ts": 0.2425467 }, { "core_id": 0, @@ -22802,9 +22912,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.241828225 + "ts": 0.2425617 }, { "core_id": 1, @@ -22812,9 +22922,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.241828225 + "ts": 0.2425617 }, { "core_id": 0, @@ -22822,7 +22932,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24184085 + "ts": 0.2425743 }, { "core_id": 0, @@ -22830,18 +22940,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.241856525 + "ts": 0.242589975 }, { - "addr": "0x3ffbb8a4", + "addr": "0x3ffbb038", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -22853,16 +22963,16 @@ "id": 512, "in_irq": false, "size": 9, - "ts": 0.24189185 + "ts": 0.2426251 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -22874,7 +22984,7 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.241926275 + "ts": 0.24265935 }, { "core_id": 0, @@ -22884,10 +22994,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2419433 + "ts": 0.2426764 }, { "core_id": 0, @@ -22897,10 +23007,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.2419593 + "ts": 0.242692425 }, { "core_id": 0, @@ -22908,8 +23018,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4\n", - "ts": 0.242029725 + "msg": "I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078\n", + "ts": 0.24274725 }, { "core_id": 0, @@ -22917,8 +23027,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4\n", - "ts": 0.242029725 + "msg": "I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078\n", + "ts": 0.24274725 }, { "core_id": 0, @@ -22928,10 +23038,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.24204755 + "ts": 0.242760625 }, { "core_id": 0, @@ -22939,9 +23049,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.242060775 + "ts": 0.242774025 }, { "core_id": 1, @@ -22949,9 +23059,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.242060775 + "ts": 0.242774025 }, { "core_id": 1, @@ -22961,7 +23071,7 @@ "params": { "irq_num": 31 }, - "ts": 0.242077 + "ts": 0.2427902 }, { "core_id": 0, @@ -22971,7 +23081,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.242087875 + "ts": 0.2428061 }, { "core_id": 1, @@ -22979,7 +23089,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.242098625 + "ts": 0.2428168 }, { "core_id": 0, @@ -22989,7 +23099,7 @@ "params": { "irq_num": 30 }, - "ts": 0.242112475 + "ts": 0.242830525 }, { "core_id": 1, @@ -22997,9 +23107,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.24212335 + "ts": 0.2428413 }, { "core_id": 0, @@ -23007,7 +23117,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.242134175 + "ts": 0.24285205 }, { "core_id": 1, @@ -23017,10 +23127,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.24214615 + "ts": 0.2428643 }, { "core_id": 0, @@ -23028,7 +23138,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2421564 + "ts": 0.24287555 }, { "core_id": 1, @@ -23038,10 +23148,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2421678 + "ts": 0.2428928 }, { "core_id": 1, @@ -23051,10 +23161,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.242184175 + "ts": 0.24290905 }, { "core_id": 1, @@ -23062,8 +23172,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4\n", - "ts": 0.242247725 + "msg": "I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078\n", + "ts": 0.242956925 }, { "core_id": 1, @@ -23071,15 +23181,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4\n", - "ts": 0.242247725 + "msg": "I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078\n", + "ts": 0.242956925 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23093,7 +23203,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.242268925 + "ts": 0.242978325 }, { "core_id": 1, @@ -23103,7 +23213,7 @@ "params": { "irq_num": 31 }, - "ts": 0.242299925 + "ts": 0.2430048 }, { "core_id": 1, @@ -23111,7 +23221,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2423114 + "ts": 0.2430162 }, { "core_id": 1, @@ -23119,7 +23229,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2423281 + "ts": 0.243032775 }, { "core_id": 1, @@ -23129,7 +23239,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2426694 + "ts": 0.2434259 }, { "core_id": 1, @@ -23137,7 +23247,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24268285 + "ts": 0.24343945 }, { "core_id": 1, @@ -23145,7 +23255,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.242698425 + "ts": 0.24345515 }, { "core_id": 0, @@ -23155,7 +23265,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2428132 + "ts": 0.2435467 }, { "core_id": 0, @@ -23163,9 +23273,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.242828225 + "ts": 0.24356165 }, { "core_id": 1, @@ -23173,9 +23283,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.242828225 + "ts": 0.24356165 }, { "core_id": 0, @@ -23183,7 +23293,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24284085 + "ts": 0.2435743 }, { "core_id": 0, @@ -23191,18 +23301,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.242856525 + "ts": 0.243590225 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23214,16 +23324,16 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.24289185 + "ts": 0.24362545 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23235,7 +23345,7 @@ "id": 512, "in_irq": false, "size": 36, - "ts": 0.242926425 + "ts": 0.2436612 }, { "core_id": 0, @@ -23245,10 +23355,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.24294345 + "ts": 0.24368235 }, { "core_id": 0, @@ -23258,10 +23368,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.24295945 + "ts": 0.2436983 }, { "core_id": 0, @@ -23269,8 +23379,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc\n", - "ts": 0.243029875 + "msg": "I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8\n", + "ts": 0.243753075 }, { "core_id": 0, @@ -23278,8 +23388,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc\n", - "ts": 0.243029875 + "msg": "I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8\n", + "ts": 0.243753075 }, { "core_id": 0, @@ -23289,10 +23399,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.243043425 + "ts": 0.24376655 }, { "core_id": 0, @@ -23300,9 +23410,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.24306025 + "ts": 0.243779725 }, { "core_id": 1, @@ -23310,9 +23420,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.24306025 + "ts": 0.243779725 }, { "core_id": 1, @@ -23322,7 +23432,7 @@ "params": { "irq_num": 31 }, - "ts": 0.24307655 + "ts": 0.243796025 }, { "core_id": 0, @@ -23332,7 +23442,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.2430874 + "ts": 0.243806875 }, { "core_id": 1, @@ -23340,7 +23450,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24309815 + "ts": 0.2438177 }, { "core_id": 0, @@ -23350,7 +23460,7 @@ "params": { "irq_num": 30 }, - "ts": 0.243111875 + "ts": 0.243831575 }, { "core_id": 1, @@ -23358,9 +23468,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.243122725 + "ts": 0.243842375 }, { "core_id": 0, @@ -23368,7 +23478,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24313355 + "ts": 0.2438531 }, { "core_id": 1, @@ -23378,10 +23488,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.243145575 + "ts": 0.243865225 }, { "core_id": 0, @@ -23389,7 +23499,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24315595 + "ts": 0.243876425 }, { "core_id": 1, @@ -23399,10 +23509,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.24316735 + "ts": 0.24388815 }, { "core_id": 1, @@ -23412,10 +23522,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.24318375 + "ts": 0.24390455 }, { "core_id": 1, @@ -23423,8 +23533,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc\n", - "ts": 0.2432472 + "msg": "I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.243952425 }, { "core_id": 1, @@ -23432,15 +23542,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc\n", - "ts": 0.2432472 + "msg": "I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.243952425 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23454,7 +23564,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.24326835 + "ts": 0.24397795 }, { "core_id": 1, @@ -23464,7 +23574,7 @@ "params": { "irq_num": 31 }, - "ts": 0.24329535 + "ts": 0.24400535 }, { "core_id": 1, @@ -23472,7 +23582,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.243306775 + "ts": 0.244016775 }, { "core_id": 1, @@ -23480,7 +23590,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24332335 + "ts": 0.244033325 }, { "core_id": 1, @@ -23490,7 +23600,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2436694 + "ts": 0.2444259 }, { "core_id": 1, @@ -23498,7 +23608,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24368295 + "ts": 0.24443945 }, { "core_id": 1, @@ -23506,7 +23616,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.243698525 + "ts": 0.24445515 }, { "core_id": 0, @@ -23516,27 +23626,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2438132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.243828325 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.243828325 + "ts": 0.2445467 }, { "core_id": 0, @@ -23544,7 +23634,79 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.243840975 + "ts": 0.24456205 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.244577125 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2454259 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2454394 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.24545455 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2455467 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.2455617 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.2455617 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2455743 }, { "core_id": 0, @@ -23552,18 +23714,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.24385665 + "ts": 0.245589975 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23575,16 +23737,16 @@ "id": 512, "in_irq": false, "size": 27, - "ts": 0.243892175 + "ts": 0.245626175 }, { - "addr": "0x3ffbb8ec", + "addr": "0x3ffbb0d8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23596,7 +23758,7 @@ "id": 512, "in_irq": false, "size": 54, - "ts": 0.24393085 + "ts": 0.2456618 }, { "core_id": 0, @@ -23606,10 +23768,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.24394775 + "ts": 0.24567885 }, { "core_id": 0, @@ -23619,10 +23781,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.243963875 + "ts": 0.245699 }, { "core_id": 0, @@ -23630,8 +23792,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec\n", - "ts": 0.244034325 + "msg": "I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8\n", + "ts": 0.245753825 }, { "core_id": 0, @@ -23639,8 +23801,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec\n", - "ts": 0.244034325 + "msg": "I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8\n", + "ts": 0.245753825 }, { "core_id": 0, @@ -23650,10 +23812,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 0 }, - "ts": 0.244047925 + "ts": 0.245767425 }, { "core_id": 0, @@ -23661,9 +23823,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.24406115 + "ts": 0.245780625 }, { "core_id": 1, @@ -23671,9 +23833,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.24406115 + "ts": 0.245780625 }, { "core_id": 1, @@ -23683,7 +23845,7 @@ "params": { "irq_num": 31 }, - "ts": 0.244077475 + "ts": 0.245796975 }, { "core_id": 0, @@ -23693,7 +23855,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.244088325 + "ts": 0.24580785 }, { "core_id": 1, @@ -23701,7 +23863,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244099075 + "ts": 0.24581865 }, { "core_id": 0, @@ -23711,7 +23873,7 @@ "params": { "irq_num": 30 }, - "ts": 0.2441128 + "ts": 0.24583235 }, { "core_id": 1, @@ -23719,9 +23881,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.2441237 + "ts": 0.2458432 }, { "core_id": 0, @@ -23729,7 +23891,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244134525 + "ts": 0.245854025 }, { "core_id": 1, @@ -23739,10 +23901,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.244146375 + "ts": 0.245865975 }, { "core_id": 0, @@ -23750,7 +23912,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.244157675 + "ts": 0.245877175 }, { "core_id": 1, @@ -23760,10 +23922,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2441693 + "ts": 0.245889575 }, { "core_id": 1, @@ -23773,10 +23935,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.24418975 + "ts": 0.245905825 }, { "core_id": 1, @@ -23784,8 +23946,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec\n", - "ts": 0.2442533 + "msg": "I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8\n", + "ts": 0.2459536 }, { "core_id": 1, @@ -23793,15 +23955,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec\n", - "ts": 0.2442533 + "msg": "I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8\n", + "ts": 0.2459536 }, { - "addr": "0x3ffbb8ec", + "addr": "0x3ffbb0d8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -23815,7 +23977,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.2442745 + "ts": 0.24597885 }, { "core_id": 1, @@ -23825,7 +23987,7 @@ "params": { "irq_num": 31 }, - "ts": 0.2443014 + "ts": 0.24600625 }, { "core_id": 1, @@ -23833,7 +23995,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244312825 + "ts": 0.246017675 }, { "core_id": 1, @@ -23841,7 +24003,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2443294 + "ts": 0.246034225 }, { "core_id": 1, @@ -23851,7 +24013,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2446694 + "ts": 0.2464259 }, { "core_id": 1, @@ -23859,7 +24021,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24468295 + "ts": 0.24643945 }, { "core_id": 1, @@ -23867,7 +24029,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.244698525 + "ts": 0.24645515 }, { "core_id": 0, @@ -23877,7 +24039,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2448132 + "ts": 0.2465467 }, { "core_id": 0, @@ -23885,7 +24047,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2448287 + "ts": 0.24656205 }, { "core_id": 0, @@ -23893,7 +24055,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.244843775 + "ts": 0.246577125 }, { "core_id": 1, @@ -23903,7 +24065,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2456694 + "ts": 0.2474259 }, { "core_id": 1, @@ -23911,7 +24073,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.245682925 + "ts": 0.2474394 }, { "core_id": 1, @@ -23919,7 +24081,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.245698325 + "ts": 0.24745455 }, { "core_id": 0, @@ -23929,7 +24091,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2458132 + "ts": 0.2475467 }, { "core_id": 0, @@ -23937,7 +24099,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2458287 + "ts": 0.2475621 }, { "core_id": 0, @@ -23945,7 +24107,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.245843775 + "ts": 0.247577425 }, { "core_id": 1, @@ -23955,7 +24117,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2466694 + "ts": 0.2484259 }, { "core_id": 1, @@ -23963,7 +24125,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.246682975 + "ts": 0.2484394 }, { "core_id": 1, @@ -23971,7 +24133,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2466981 + "ts": 0.24845455 }, { "core_id": 0, @@ -23981,7 +24143,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2468132 + "ts": 0.2485467 }, { "core_id": 0, @@ -23989,7 +24151,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2468287 + "ts": 0.24856205 }, { "core_id": 0, @@ -23997,7 +24159,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.246843775 + "ts": 0.248577125 }, { "core_id": 1, @@ -24007,7 +24169,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2476694 + "ts": 0.2494259 }, { "core_id": 1, @@ -24015,7 +24177,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.247682925 + "ts": 0.2494394 }, { "core_id": 1, @@ -24023,7 +24185,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.247698075 + "ts": 0.249454675 }, { "core_id": 0, @@ -24033,7 +24195,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2478132 + "ts": 0.2495467 }, { "core_id": 0, @@ -24041,7 +24203,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2478286 + "ts": 0.24956205 }, { "core_id": 0, @@ -24049,7 +24211,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.247843825 + "ts": 0.24957715 }, { "core_id": 1, @@ -24059,7 +24221,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2486694 + "ts": 0.2504259 }, { "core_id": 1, @@ -24067,7 +24229,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.248682925 + "ts": 0.25043945 }, { "core_id": 1, @@ -24075,7 +24237,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.248698075 + "ts": 0.2504546 }, { "core_id": 0, @@ -24085,7 +24247,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2488132 + "ts": 0.2505467 }, { "core_id": 0, @@ -24093,7 +24255,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2488287 + "ts": 0.25056205 }, { "core_id": 0, @@ -24101,7 +24263,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.248843775 + "ts": 0.250577125 }, { "core_id": 1, @@ -24111,7 +24273,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2496694 + "ts": 0.2514259 }, { "core_id": 1, @@ -24119,7 +24281,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.249682925 + "ts": 0.2514394 }, { "core_id": 1, @@ -24127,7 +24289,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.249698325 + "ts": 0.25145455 }, { "core_id": 0, @@ -24137,7 +24299,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2498132 + "ts": 0.2515467 }, { "core_id": 0, @@ -24145,7 +24307,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2498287 + "ts": 0.2515621 }, { "core_id": 0, @@ -24153,7 +24315,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.249848325 + "ts": 0.251577425 }, { "core_id": 1, @@ -24163,7 +24325,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2506694 + "ts": 0.2524259 }, { "core_id": 1, @@ -24171,7 +24333,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.250682925 + "ts": 0.2524394 }, { "core_id": 1, @@ -24179,7 +24341,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.250698075 + "ts": 0.25245455 }, { "core_id": 0, @@ -24189,7 +24351,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2508132 + "ts": 0.2525467 }, { "core_id": 0, @@ -24197,7 +24359,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2508287 + "ts": 0.25256205 }, { "core_id": 0, @@ -24205,7 +24367,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.250843775 + "ts": 0.252577125 }, { "core_id": 1, @@ -24215,7 +24377,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2516694 + "ts": 0.2534259 }, { "core_id": 1, @@ -24223,7 +24385,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.251682925 + "ts": 0.253443075 }, { "core_id": 1, @@ -24231,7 +24393,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.251698325 + "ts": 0.2534582 }, { "core_id": 0, @@ -24241,7 +24403,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2518132 + "ts": 0.2535467 }, { "core_id": 0, @@ -24249,7 +24411,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2518287 + "ts": 0.25356205 }, { "core_id": 0, @@ -24257,7 +24419,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.251843775 + "ts": 0.253577125 }, { "core_id": 1, @@ -24267,7 +24429,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2526694 + "ts": 0.2544259 }, { "core_id": 1, @@ -24275,7 +24437,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.252682975 + "ts": 0.2544394 }, { "core_id": 1, @@ -24283,7 +24445,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2526981 + "ts": 0.25445455 }, { "core_id": 0, @@ -24293,7 +24455,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2528132 + "ts": 0.2545467 }, { "core_id": 0, @@ -24301,7 +24463,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2528287 + "ts": 0.2545621 }, { "core_id": 0, @@ -24309,7 +24471,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.252843775 + "ts": 0.254577425 }, { "core_id": 1, @@ -24319,7 +24481,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2536694 + "ts": 0.2554259 }, { "core_id": 1, @@ -24327,7 +24489,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.253682925 + "ts": 0.2554394 }, { "core_id": 1, @@ -24335,7 +24497,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.253698075 + "ts": 0.25545455 }, { "core_id": 0, @@ -24345,7 +24507,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2538132 + "ts": 0.2555467 }, { "core_id": 0, @@ -24353,7 +24515,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2538286 + "ts": 0.25556205 }, { "core_id": 0, @@ -24361,7 +24523,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.253843825 + "ts": 0.255577125 }, { "core_id": 1, @@ -24371,7 +24533,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2546694 + "ts": 0.2564259 }, { "core_id": 1, @@ -24379,7 +24541,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.254682925 + "ts": 0.2564394 }, { "core_id": 1, @@ -24387,7 +24549,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.254698075 + "ts": 0.256454675 }, { "core_id": 0, @@ -24397,7 +24559,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2548132 + "ts": 0.2565467 }, { "core_id": 0, @@ -24405,7 +24567,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2548287 + "ts": 0.25656205 }, { "core_id": 0, @@ -24413,7 +24575,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.254843775 + "ts": 0.25657715 }, { "core_id": 1, @@ -24423,7 +24585,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2556694 + "ts": 0.2574259 }, { "core_id": 1, @@ -24431,7 +24593,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.255682925 + "ts": 0.25743945 }, { "core_id": 1, @@ -24439,7 +24601,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.255698325 + "ts": 0.2574546 }, { "core_id": 0, @@ -24449,7 +24611,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2558132 + "ts": 0.2575467 }, { "core_id": 0, @@ -24457,7 +24619,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2558287 + "ts": 0.25756205 }, { "core_id": 0, @@ -24465,7 +24627,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.255843775 + "ts": 0.257577125 }, { "core_id": 1, @@ -24475,7 +24637,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2566694 + "ts": 0.2584259 }, { "core_id": 1, @@ -24483,7 +24645,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.256682975 + "ts": 0.2584394 }, { "core_id": 1, @@ -24491,7 +24653,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2566981 + "ts": 0.25845455 }, { "core_id": 0, @@ -24501,7 +24663,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2568132 + "ts": 0.2585467 }, { "core_id": 0, @@ -24509,7 +24671,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2568287 + "ts": 0.2585621 }, { "core_id": 0, @@ -24517,7 +24679,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.256843775 + "ts": 0.258577425 }, { "core_id": 1, @@ -24527,7 +24689,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2576694 + "ts": 0.2594259 }, { "core_id": 1, @@ -24535,7 +24697,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.257682925 + "ts": 0.2594394 }, { "core_id": 1, @@ -24543,7 +24705,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.257698075 + "ts": 0.25945455 }, { "core_id": 0, @@ -24553,7 +24715,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2578132 + "ts": 0.2595467 }, { "core_id": 0, @@ -24561,7 +24723,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2578286 + "ts": 0.25956205 }, { "core_id": 0, @@ -24569,7 +24731,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.257843825 + "ts": 0.259577125 }, { "core_id": 1, @@ -24579,7 +24741,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2586694 + "ts": 0.2604259 }, { "core_id": 1, @@ -24587,7 +24749,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.258682925 + "ts": 0.2604394 }, { "core_id": 1, @@ -24595,7 +24757,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.258698075 + "ts": 0.260454675 }, { "core_id": 0, @@ -24605,7 +24767,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2588132 + "ts": 0.2605467 }, { "core_id": 0, @@ -24613,7 +24775,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2588287 + "ts": 0.26056205 }, { "core_id": 0, @@ -24621,7 +24783,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.258843775 + "ts": 0.26057715 }, { "core_id": 1, @@ -24631,7 +24793,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2596694 + "ts": 0.2614259 }, { "core_id": 1, @@ -24639,7 +24801,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.259682925 + "ts": 0.26143945 }, { "core_id": 1, @@ -24647,7 +24809,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.259698325 + "ts": 0.2614546 }, { "core_id": 0, @@ -24657,7 +24819,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2598132 + "ts": 0.2615467 }, { "core_id": 0, @@ -24665,7 +24827,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2598287 + "ts": 0.26156205 }, { "core_id": 0, @@ -24673,7 +24835,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.259843775 + "ts": 0.261577125 }, { "core_id": 1, @@ -24683,7 +24845,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2606694 + "ts": 0.2624259 }, { "core_id": 1, @@ -24691,7 +24853,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.260682975 + "ts": 0.2624394 }, { "core_id": 1, @@ -24699,7 +24861,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2606981 + "ts": 0.26245455 }, { "core_id": 0, @@ -24709,7 +24871,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2608132 + "ts": 0.2625467 }, { "core_id": 0, @@ -24717,7 +24879,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2608287 + "ts": 0.2625621 }, { "core_id": 0, @@ -24725,7 +24887,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.260843775 + "ts": 0.262577425 }, { "core_id": 1, @@ -24735,7 +24897,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2616694 + "ts": 0.2634259 }, { "core_id": 1, @@ -24743,7 +24905,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.261682925 + "ts": 0.2634394 }, { "core_id": 1, @@ -24751,7 +24913,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.261698075 + "ts": 0.26345455 }, { "core_id": 0, @@ -24761,7 +24923,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2618132 + "ts": 0.2635467 }, { "core_id": 0, @@ -24769,7 +24931,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2618286 + "ts": 0.26356205 }, { "core_id": 0, @@ -24777,7 +24939,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.261843825 + "ts": 0.263577125 }, { "core_id": 1, @@ -24787,7 +24949,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2626694 + "ts": 0.2644259 }, { "core_id": 1, @@ -24795,7 +24957,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.262682925 + "ts": 0.2644394 }, { "core_id": 1, @@ -24803,7 +24965,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.262698325 + "ts": 0.264454675 }, { "core_id": 0, @@ -24813,7 +24975,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2628132 + "ts": 0.2645467 }, { "core_id": 0, @@ -24821,7 +24983,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2628287 + "ts": 0.26456205 }, { "core_id": 0, @@ -24829,7 +24991,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.262843775 + "ts": 0.26457715 }, { "core_id": 1, @@ -24839,7 +25001,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2636694 + "ts": 0.2654259 }, { "core_id": 1, @@ -24847,7 +25009,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.263682975 + "ts": 0.265443675 }, { "core_id": 1, @@ -24855,7 +25017,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2636981 + "ts": 0.265458825 }, { "core_id": 0, @@ -24865,7 +25027,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2638132 + "ts": 0.2655467 }, { "core_id": 0, @@ -24873,7 +25035,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2638287 + "ts": 0.26556205 }, { "core_id": 0, @@ -24881,7 +25043,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.263843775 + "ts": 0.265577125 }, { "core_id": 1, @@ -24891,7 +25053,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2646694 + "ts": 0.2664259 }, { "core_id": 1, @@ -24899,7 +25061,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.264682925 + "ts": 0.2664394 }, { "core_id": 1, @@ -24907,7 +25069,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.264698075 + "ts": 0.26645455 }, { "core_id": 0, @@ -24917,7 +25079,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2648132 + "ts": 0.2665467 }, { "core_id": 0, @@ -24925,7 +25087,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2648286 + "ts": 0.2665621 }, { "core_id": 0, @@ -24933,7 +25095,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.264843825 + "ts": 0.266577425 }, { "core_id": 1, @@ -24943,7 +25105,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2656694 + "ts": 0.2674259 }, { "core_id": 1, @@ -24951,7 +25113,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.265682925 + "ts": 0.2674394 }, { "core_id": 1, @@ -24959,7 +25121,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.265698075 + "ts": 0.26745455 }, { "core_id": 0, @@ -24969,7 +25131,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2658132 + "ts": 0.2675467 }, { "core_id": 0, @@ -24977,7 +25139,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2658287 + "ts": 0.26756205 }, { "core_id": 0, @@ -24985,7 +25147,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.265843775 + "ts": 0.267577125 }, { "core_id": 1, @@ -24995,7 +25157,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2666694 + "ts": 0.2684259 }, { "core_id": 1, @@ -25003,7 +25165,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.266682925 + "ts": 0.2684394 }, { "core_id": 1, @@ -25011,7 +25173,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.266698325 + "ts": 0.268454675 }, { "core_id": 0, @@ -25021,7 +25183,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2668132 + "ts": 0.2685467 }, { "core_id": 0, @@ -25029,7 +25191,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2668287 + "ts": 0.26856205 }, { "core_id": 0, @@ -25037,7 +25199,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.266843775 + "ts": 0.26857715 }, { "core_id": 1, @@ -25047,7 +25209,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2676694 + "ts": 0.2694259 }, { "core_id": 1, @@ -25055,7 +25217,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.267682975 + "ts": 0.26943945 }, { "core_id": 1, @@ -25063,7 +25225,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2676981 + "ts": 0.2694546 }, { "core_id": 0, @@ -25073,7 +25235,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2678132 + "ts": 0.2695467 }, { "core_id": 0, @@ -25081,7 +25243,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2678287 + "ts": 0.26956205 }, { "core_id": 0, @@ -25089,7 +25251,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.267843775 + "ts": 0.269577125 }, { "core_id": 1, @@ -25099,7 +25261,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2686694 + "ts": 0.2704259 }, { "core_id": 1, @@ -25107,7 +25269,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.268682925 + "ts": 0.2704394 }, { "core_id": 1, @@ -25115,7 +25277,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.268698075 + "ts": 0.27045455 }, { "core_id": 0, @@ -25125,7 +25287,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2688132 + "ts": 0.2705467 }, { "core_id": 0, @@ -25133,7 +25295,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2688286 + "ts": 0.2705621 }, { "core_id": 0, @@ -25141,7 +25303,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.268843825 + "ts": 0.270577425 }, { "core_id": 1, @@ -25151,7 +25313,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2696694 + "ts": 0.2714259 }, { "core_id": 1, @@ -25159,7 +25321,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.269682925 + "ts": 0.2714394 }, { "core_id": 1, @@ -25167,7 +25329,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.269698075 + "ts": 0.27145455 }, { "core_id": 0, @@ -25177,7 +25339,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2698132 + "ts": 0.2715467 }, { "core_id": 0, @@ -25185,7 +25347,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2698287 + "ts": 0.27156205 }, { "core_id": 0, @@ -25193,7 +25355,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.269843775 + "ts": 0.271577125 }, { "core_id": 1, @@ -25203,7 +25365,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2706694 + "ts": 0.2724259 }, { "core_id": 1, @@ -25211,7 +25373,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.270682925 + "ts": 0.2724394 }, { "core_id": 1, @@ -25219,7 +25381,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.270698325 + "ts": 0.272454675 }, { "core_id": 0, @@ -25229,59 +25391,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2708132 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.2708287 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.270843775 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2716694 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.271682975 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.2716981 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2718132 + "ts": 0.2725467 }, { "core_id": 0, @@ -25289,9 +25399,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.271828325 + "ts": 0.272561675 }, { "core_id": 1, @@ -25299,9 +25409,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.271828325 + "ts": 0.272561675 }, { "core_id": 0, @@ -25309,7 +25419,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.271840975 + "ts": 0.27257425 }, { "core_id": 0, @@ -25317,9 +25427,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.27185665 + "ts": 0.272589925 }, { "core_id": 0, @@ -25330,9 +25440,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.27187515 + "ts": 0.2726081 }, { "core_id": 0, @@ -25340,9 +25450,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.271886225 + "ts": 0.272619125 }, { "core_id": 1, @@ -25350,9 +25460,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.271886225 + "ts": 0.272619125 }, { "core_id": 0, @@ -25362,7 +25472,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.271899375 + "ts": 0.272632225 }, { "core_id": 0, @@ -25372,7 +25482,7 @@ "params": { "irq_num": 30 }, - "ts": 0.271915925 + "ts": 0.272648775 }, { "core_id": 0, @@ -25380,7 +25490,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2719273 + "ts": 0.27266015 }, { "core_id": 0, @@ -25388,9 +25498,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.27194425 + "ts": 0.2726771 }, { "core_id": 0, @@ -25401,7 +25511,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.271962125 + "ts": 0.27269085 }, { "core_id": 0, @@ -25411,10 +25521,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.271978075 + "ts": 0.272706775 }, { "core_id": 0, @@ -25424,10 +25534,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.271993975 + "ts": 0.2727228 }, { "core_id": 0, @@ -25435,8 +25545,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Got notify val 1\n", - "ts": 0.2720432 + "msg": "I (568) example: Got notify val 1\n", + "ts": 0.272764375 }, { "core_id": 0, @@ -25444,8 +25554,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Got notify val 1\n", - "ts": 0.2720432 + "msg": "I (568) example: Got notify val 1\n", + "ts": 0.272764375 }, { "core_id": 0, @@ -25455,10 +25565,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2720595 + "ts": 0.272784725 }, { "core_id": 0, @@ -25468,10 +25578,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.27207545 + "ts": 0.27280065 }, { "core_id": 0, @@ -25479,8 +25589,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Wait notify 1\n", - "ts": 0.2721198 + "msg": "I (568) example: Wait notify 1\n", + "ts": 0.2728372 }, { "core_id": 0, @@ -25488,8 +25598,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Wait notify 1\n", - "ts": 0.2721198 + "msg": "I (568) example: Wait notify 1\n", + "ts": 0.2728372 }, { "core_id": 0, @@ -25499,7 +25609,7 @@ "params": { "irq_num": 30 }, - "ts": 0.272138175 + "ts": 0.272855425 }, { "core_id": 0, @@ -25507,7 +25617,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.272149575 + "ts": 0.272866775 }, { "core_id": 0, @@ -25515,7 +25625,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.272165625 + "ts": 0.2728827 }, { "core_id": 1, @@ -25525,7 +25635,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2726694 + "ts": 0.2734259 }, { "core_id": 1, @@ -25533,7 +25643,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.272682925 + "ts": 0.2734394 }, { "core_id": 1, @@ -25541,7 +25651,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.272698075 + "ts": 0.273454675 }, { "core_id": 0, @@ -25551,7 +25661,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2728132 + "ts": 0.2735467 }, { "core_id": 0, @@ -25559,9 +25669,9 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.272828325 + "ts": 0.273561675 }, { "core_id": 1, @@ -25569,9 +25679,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.272828325 + "ts": 0.273561675 }, { "core_id": 0, @@ -25579,7 +25689,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.272840975 + "ts": 0.27357425 }, { "core_id": 0, @@ -25587,9 +25697,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.272856775 + "ts": 0.273589925 }, { "core_id": 0, @@ -25600,9 +25710,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.2728712 + "ts": 0.2736043 }, { "core_id": 0, @@ -25610,9 +25720,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.2728822 + "ts": 0.273615325 }, { "core_id": 1, @@ -25620,9 +25730,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.2728822 + "ts": 0.273615325 }, { "core_id": 0, @@ -25632,7 +25742,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.272895325 + "ts": 0.273628425 }, { "core_id": 0, @@ -25642,7 +25752,7 @@ "params": { "irq_num": 30 }, - "ts": 0.272911925 + "ts": 0.273644975 }, { "core_id": 0, @@ -25650,7 +25760,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2729233 + "ts": 0.27365635 }, { "core_id": 0, @@ -25658,9 +25768,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.27294025 + "ts": 0.2736733 }, { "core_id": 0, @@ -25671,7 +25781,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.27295395 + "ts": 0.27368705 }, { "core_id": 0, @@ -25681,10 +25791,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.272969875 + "ts": 0.273702975 }, { "core_id": 0, @@ -25694,10 +25804,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.272985925 + "ts": 0.273719 }, { "core_id": 0, @@ -25705,8 +25815,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Got notify val 1\n", - "ts": 0.273035525 + "msg": "I (569) example: Got notify val 1\n", + "ts": 0.273756475 }, { "core_id": 0, @@ -25714,8 +25824,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Got notify val 1\n", - "ts": 0.273035525 + "msg": "I (569) example: Got notify val 1\n", + "ts": 0.273756475 }, { "core_id": 0, @@ -25725,10 +25835,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.273051825 + "ts": 0.27377665 }, { "core_id": 0, @@ -25738,10 +25848,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.273067775 + "ts": 0.273792575 }, { "core_id": 0, @@ -25749,8 +25859,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Wait notify 2\n", - "ts": 0.27311225 + "msg": "I (569) example: Wait notify 2\n", + "ts": 0.273829125 }, { "core_id": 0, @@ -25758,8 +25868,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Wait notify 2\n", - "ts": 0.27311225 + "msg": "I (569) example: Wait notify 2\n", + "ts": 0.273829125 }, { "core_id": 0, @@ -25769,7 +25879,7 @@ "params": { "irq_num": 30 }, - "ts": 0.273130625 + "ts": 0.27384735 }, { "core_id": 0, @@ -25777,7 +25887,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273142025 + "ts": 0.2738587 }, { "core_id": 0, @@ -25785,7 +25895,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.273158075 + "ts": 0.273874625 }, { "core_id": 1, @@ -25795,7 +25905,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2736694 + "ts": 0.2744259 }, { "core_id": 1, @@ -25803,7 +25913,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273682925 + "ts": 0.2744394 }, { "core_id": 1, @@ -25811,7 +25921,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.273698075 + "ts": 0.274454675 }, { "core_id": 0, @@ -25821,27 +25931,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2738132 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.273828325 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.273828325 + "ts": 0.2745467 }, { "core_id": 0, @@ -25849,7 +25939,79 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273840975 + "ts": 0.27456205 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.27457715 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2754259 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.27543945 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.2754546 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2755467 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.27556165 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.27556165 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.2755743 }, { "core_id": 0, @@ -25857,9 +26019,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.273856775 + "ts": 0.275589975 }, { "core_id": 0, @@ -25870,9 +26032,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.2738712 + "ts": 0.2756044 }, { "core_id": 0, @@ -25880,9 +26042,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.2738822 + "ts": 0.2756154 }, { "core_id": 1, @@ -25890,9 +26052,9 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.2738822 + "ts": 0.2756154 }, { "core_id": 0, @@ -25902,7 +26064,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.273895325 + "ts": 0.27562855 }, { "core_id": 0, @@ -25912,7 +26074,7 @@ "params": { "irq_num": 30 }, - "ts": 0.273911925 + "ts": 0.275645125 }, { "core_id": 0, @@ -25920,7 +26082,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2739233 + "ts": 0.275656475 }, { "core_id": 0, @@ -25928,9 +26090,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.27394025 + "ts": 0.275673425 }, { "core_id": 0, @@ -25941,7 +26103,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.27395395 + "ts": 0.27568725 }, { "core_id": 0, @@ -25951,10 +26113,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.273969875 + "ts": 0.27570325 }, { "core_id": 0, @@ -25964,10 +26126,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.273985925 + "ts": 0.275719275 }, { "core_id": 0, @@ -25975,8 +26137,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (582) example: Got notify val 1\n", - "ts": 0.274031175 + "msg": "I (571) example: Got notify val 1\n", + "ts": 0.27575685 }, { "core_id": 0, @@ -25984,8 +26146,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (582) example: Got notify val 1\n", - "ts": 0.274031175 + "msg": "I (571) example: Got notify val 1\n", + "ts": 0.27575685 }, { "core_id": 0, @@ -25995,10 +26157,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.329656225 + "ts": 0.329911225 }, { "core_id": 0, @@ -26006,7 +26168,7 @@ "id": 11, "in_irq": false, "params": {}, - "ts": 0.32966495 + "ts": 0.32991995 }, { "core_id": 1, @@ -26014,7 +26176,7 @@ "id": 11, "in_irq": false, "params": {}, - "ts": 0.32966495 + "ts": 0.32991995 } ], "streams": { @@ -26141,12 +26303,13 @@ "xTimerPendFunctionCallFromISR": 163 }, "system": { + "SYS_DATA_SAMPLE": 23, "SYS_IDLE": 17, "SYS_INIT": 24, "SYS_ISR_ENTER": 2, "SYS_ISR_EXIT": 3, "SYS_ISR_TO_SCHEDULER": 18, - "SYS_MODULEDESC": 24, + "SYS_MODULEDESC": 22, "SYS_NAME_RESOURCE": 25, "SYS_NOP": 0, "SYS_NUMMODULES": 27, diff --git a/tools/esp_app_trace/test/sysview/expected_output_mcore b/tools/esp_app_trace/test/sysview/expected_output_mcore index 7e621cef33e..aade7f94cc1 100644 --- a/tools/esp_app_trace/test/sysview/expected_output_mcore +++ b/tools/esp_app_trace/test/sysview/expected_output_mcore @@ -1,3562 +1,3749 @@ -EVENT[0]: 0.000000000 - core[0].svTraceStart(10), plen 0: [] -EVENT[1]: 0.000006625 - core[0].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] -EVENT[2]: 0.000018550 - core[0].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] -EVENT[3]: 0.000027675 - core[0].svSysDesc(14), plen 0: [desc: I#5=SysTick] -EVENT[4]: 0.000049775 - core[0].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] -EVENT[5]: 0.000063875 - core[0].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] -EVENT[6]: 0.000073800 - core[0].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] -EVENT[7]: 0.000087500 - core[0].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] -EVENT[8]: 0.000101550 - core[0].svSysDesc(14), plen 0: [desc: I#10=BT_BB] -EVENT[9]: 0.000112375 - core[0].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] -EVENT[10]: 0.000122300 - core[0].svSysDesc(14), plen 0: [desc: I#12=RWBT] -EVENT[11]: 0.000132275 - core[0].svSysDesc(14), plen 0: [desc: I#13=RWBLE] -EVENT[12]: 0.000146800 - core[0].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] -EVENT[13]: 0.000157600 - core[0].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] -EVENT[14]: 0.000171875 - core[0].svSysDesc(14), plen 0: [desc: I#16=SLC0] -EVENT[15]: 0.000189525 - core[0].svSysDesc(14), plen 0: [desc: I#17=SLC1] -EVENT[16]: 0.000199650 - core[0].svSysDesc(14), plen 0: [desc: I#18=UHCI0] -EVENT[17]: 0.000209600 - core[0].svSysDesc(14), plen 0: [desc: I#19=UHCI1] -EVENT[18]: 0.000224875 - core[0].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] -EVENT[19]: 0.000236275 - core[0].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] -EVENT[20]: 0.000251975 - core[0].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] -EVENT[21]: 0.000263750 - core[0].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] -EVENT[22]: 0.000279150 - core[0].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] -EVENT[23]: 0.000294550 - core[0].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] -EVENT[24]: 0.000310125 - core[0].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] -EVENT[25]: 0.000322075 - core[0].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] -EVENT[26]: 0.000331975 - core[0].svSysDesc(14), plen 0: [desc: I#28=GPIO] -EVENT[27]: 0.000350900 - core[0].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] -EVENT[28]: 0.000361800 - core[0].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] -EVENT[29]: 0.000376500 - core[0].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] -EVENT[30]: 0.000387300 - core[0].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] -EVENT[31]: 0.000402000 - core[0].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] -EVENT[32]: 0.000415750 - core[0].svSysDesc(14), plen 0: [desc: I#34=SPI0] -EVENT[33]: 0.000425500 - core[0].svSysDesc(14), plen 0: [desc: I#35=SPI1] -EVENT[34]: 0.000435275 - core[0].svSysDesc(14), plen 0: [desc: I#36=SPI2] -EVENT[35]: 0.000445025 - core[0].svSysDesc(14), plen 0: [desc: I#37=SPI3] -EVENT[36]: 0.000458825 - core[0].svSysDesc(14), plen 0: [desc: I#38=I2S0] -EVENT[37]: 0.000468575 - core[0].svSysDesc(14), plen 0: [desc: I#39=I2S1] -EVENT[38]: 0.000478575 - core[0].svSysDesc(14), plen 0: [desc: I#40=UART0] -EVENT[39]: 0.000492500 - core[0].svSysDesc(14), plen 0: [desc: I#41=UART1] -EVENT[40]: 0.000506375 - core[0].svSysDesc(14), plen 0: [desc: I#42=UART2] -EVENT[41]: 0.000517125 - core[0].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] -EVENT[42]: 0.000527475 - core[0].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] -EVENT[43]: 0.000541600 - core[0].svSysDesc(14), plen 0: [desc: I#45=PWM0] -EVENT[44]: 0.000555300 - core[0].svSysDesc(14), plen 0: [desc: I#46=PWM1] -EVENT[45]: 0.000565950 - core[0].svSysDesc(14), plen 0: [desc: I#47=RESERVED] -EVENT[46]: 0.000576550 - core[0].svSysDesc(14), plen 0: [desc: I#48=RESERVED] -EVENT[47]: 0.000590325 - core[0].svSysDesc(14), plen 0: [desc: I#49=LEDC] -EVENT[48]: 0.000604225 - core[0].svSysDesc(14), plen 0: [desc: I#50=EFUSE] -EVENT[49]: 0.000618075 - core[0].svSysDesc(14), plen 0: [desc: I#51=TWAI] -EVENT[50]: 0.000628650 - core[0].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] -EVENT[51]: 0.000638225 - core[0].svSysDesc(14), plen 0: [desc: I#53=RMT] -EVENT[52]: 0.000648075 - core[0].svSysDesc(14), plen 0: [desc: I#54=PCNT] -EVENT[53]: 0.000663050 - core[0].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] -EVENT[54]: 0.000675200 - core[0].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] -EVENT[55]: 0.000690175 - core[0].svSysDesc(14), plen 0: [desc: I#57=RSA] -EVENT[56]: 0.000705900 - core[0].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] -EVENT[57]: 0.000718025 - core[0].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] -EVENT[58]: 0.000730375 - core[0].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] -EVENT[59]: 0.000741300 - core[0].svSysDesc(14), plen 0: [desc: I#61=WDT] -EVENT[60]: 0.000761650 - core[0].svSysDesc(14), plen 0: [desc: I#62=TIMER1] -EVENT[61]: 0.000773525 - core[0].svSysDesc(14), plen 0: [desc: I#63=TIMER2] -EVENT[62]: 0.000786275 - core[0].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] -EVENT[63]: 0.000806925 - core[0].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] -EVENT[64]: 0.000819950 - core[0].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] -EVENT[65]: 0.000837025 - core[0].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] -EVENT[66]: 0.000850025 - core[0].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] -EVENT[67]: 0.000863125 - core[0].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] -EVENT[68]: 0.000880425 - core[0].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] -EVENT[69]: 0.000893750 - core[0].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] -EVENT[70]: 0.000909350 - core[0].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] -EVENT[71]: 0.000925000 - core[0].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] -EVENT[72]: 0.000937125 - core[0].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] -EVENT[73]: 0.000945400 - core[0].svSysTimeUs(13), plen 0: [time: 10000] -EVENT[74]: 0.001060300 - core[0].svTaskInfo(9), plen 0: [tid: 12253204, prio: 24, name: ipc0] -EVENT[75]: 0.001065550 - core[0].svStackInfo(21), plen 0: [tid: 12253204, base: 1073410064, sz: 1344, unused: 0] -EVENT[76]: 0.001174450 - core[0].svTaskInfo(9), plen 0: [tid: 12253560, prio: 24, name: ipc1] -EVENT[77]: 0.001179775 - core[0].svStackInfo(21), plen 0: [tid: 12253560, base: 1073431024, sz: 1344, unused: 0] -EVENT[78]: 0.001331775 - core[0].svTaskInfo(9), plen 0: [tid: 12254080, prio: 1, name: main] -EVENT[79]: 0.001337150 - core[0].svStackInfo(21), plen 0: [tid: 12254080, base: 1073433076, sz: 1916, unused: 0] -EVENT[80]: 0.001344450 - core[0].svNumModules(27), plen 1: [mod_cnt: 0] -EVENT[81]: 0.001351275 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[82]: 0.001362850 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[83]: 0.001373800 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[84]: 0.001384750 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[85]: 0.001399850 - core[0].svIsrExit(3), plen 0: [] -EVENT[86]: 0.001410650 - core[1].svIdle(17), plen 0: [] -EVENT[87]: 0.001422175 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[88]: 0.001433675 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[89]: 0.001450025 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[90]: 0.001476900 - core[0].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] -EVENT[91]: 0.001532525 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073443032, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001532525] HEAP: Allocated 8 bytes @ 0x3ffb70d8 from task "main" on core 0 by: +EVENT[0]: 0.000000000 - core[0].svNop(0), plen 0: [] +EVENT[1]: 0.000000000 - core[0].svNop(0), plen 0: [] +EVENT[2]: 0.000000000 - core[0].svNop(0), plen 0: [] +EVENT[3]: 0.000000000 - core[0].svNop(0), plen 0: [] +EVENT[4]: 0.000000000 - core[0].svNop(0), plen 0: [] +EVENT[5]: 0.000000000 - core[0].svTraceStart(10), plen 0: [] +EVENT[6]: 0.000000000 - core[1].svNop(0), plen 0: [] +EVENT[7]: 0.000000000 - core[1].svNop(0), plen 0: [] +EVENT[8]: 0.000000000 - core[1].svNop(0), plen 0: [] +EVENT[9]: 0.000000000 - core[1].svNop(0), plen 0: [] +EVENT[10]: 0.000000000 - core[1].svNop(0), plen 0: [] +EVENT[11]: 0.000000000 - core[1].svTraceStart(10), plen 0: [] +EVENT[12]: 0.000006650 - core[0].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] +EVENT[13]: 0.000006650 - core[1].svInit(24), plen 14: [sys_freq: 40000000, cpu_freq: 160000000, ram_base: 1061158912, id_shift: 0] +EVENT[14]: 0.000018600 - core[0].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] +EVENT[15]: 0.000018600 - core[1].svSysDesc(14), plen 0: [desc: N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS] +EVENT[16]: 0.000027750 - core[0].svSysDesc(14), plen 0: [desc: I#5=SysTick] +EVENT[17]: 0.000027750 - core[1].svSysDesc(14), plen 0: [desc: I#5=SysTick] +EVENT[18]: 0.000045900 - core[0].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] +EVENT[19]: 0.000045900 - core[1].svSysDesc(14), plen 0: [desc: I#6=WIFI_MAC] +EVENT[20]: 0.000060025 - core[0].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] +EVENT[21]: 0.000060025 - core[1].svSysDesc(14), plen 0: [desc: I#7=WIFI_NMI] +EVENT[22]: 0.000069975 - core[0].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] +EVENT[23]: 0.000069975 - core[1].svSysDesc(14), plen 0: [desc: I#8=WIFI_BB] +EVENT[24]: 0.000079725 - core[0].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] +EVENT[25]: 0.000079725 - core[1].svSysDesc(14), plen 0: [desc: I#9=BT_MAC] +EVENT[26]: 0.000093800 - core[0].svSysDesc(14), plen 0: [desc: I#10=BT_BB] +EVENT[27]: 0.000093800 - core[1].svSysDesc(14), plen 0: [desc: I#10=BT_BB] +EVENT[28]: 0.000108600 - core[0].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] +EVENT[29]: 0.000108600 - core[1].svSysDesc(14), plen 0: [desc: I#11=BT_BB_NMI] +EVENT[30]: 0.000118550 - core[0].svSysDesc(14), plen 0: [desc: I#12=RWBT] +EVENT[31]: 0.000118550 - core[1].svSysDesc(14), plen 0: [desc: I#12=RWBT] +EVENT[32]: 0.000128550 - core[0].svSysDesc(14), plen 0: [desc: I#13=RWBLE] +EVENT[33]: 0.000128550 - core[1].svSysDesc(14), plen 0: [desc: I#13=RWBLE] +EVENT[34]: 0.000143075 - core[0].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] +EVENT[35]: 0.000143075 - core[1].svSysDesc(14), plen 0: [desc: I#14=RWBT_NMI] +EVENT[36]: 0.000153900 - core[0].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] +EVENT[37]: 0.000153900 - core[1].svSysDesc(14), plen 0: [desc: I#15=RWBLE_NMI] +EVENT[38]: 0.000168200 - core[0].svSysDesc(14), plen 0: [desc: I#16=SLC0] +EVENT[39]: 0.000168200 - core[1].svSysDesc(14), plen 0: [desc: I#16=SLC0] +EVENT[40]: 0.000181925 - core[0].svSysDesc(14), plen 0: [desc: I#17=SLC1] +EVENT[41]: 0.000181925 - core[1].svSysDesc(14), plen 0: [desc: I#17=SLC1] +EVENT[42]: 0.000195875 - core[0].svSysDesc(14), plen 0: [desc: I#18=UHCI0] +EVENT[43]: 0.000195875 - core[1].svSysDesc(14), plen 0: [desc: I#18=UHCI0] +EVENT[44]: 0.000205850 - core[0].svSysDesc(14), plen 0: [desc: I#19=UHCI1] +EVENT[45]: 0.000205850 - core[1].svSysDesc(14), plen 0: [desc: I#19=UHCI1] +EVENT[46]: 0.000221150 - core[0].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] +EVENT[47]: 0.000221150 - core[1].svSysDesc(14), plen 0: [desc: I#20=TG0_T0_LEVEL] +EVENT[48]: 0.000232575 - core[0].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] +EVENT[49]: 0.000232575 - core[1].svSysDesc(14), plen 0: [desc: I#21=TG0_T1_LEVEL] +EVENT[50]: 0.000248275 - core[0].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] +EVENT[51]: 0.000248275 - core[1].svSysDesc(14), plen 0: [desc: I#22=TG0_WDT_LEVEL] +EVENT[52]: 0.000260075 - core[0].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] +EVENT[53]: 0.000260075 - core[1].svSysDesc(14), plen 0: [desc: I#23=TG0_LACT_LEVEL] +EVENT[54]: 0.000275525 - core[0].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] +EVENT[55]: 0.000275525 - core[1].svSysDesc(14), plen 0: [desc: I#24=TG1_T0_LEVEL] +EVENT[56]: 0.000287000 - core[0].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] +EVENT[57]: 0.000287000 - core[1].svSysDesc(14), plen 0: [desc: I#25=TG1_T1_LEVEL] +EVENT[58]: 0.000306525 - core[0].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] +EVENT[59]: 0.000306525 - core[1].svSysDesc(14), plen 0: [desc: I#26=TG1_WDT_LEVEL] +EVENT[60]: 0.000318500 - core[0].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] +EVENT[61]: 0.000318500 - core[1].svSysDesc(14), plen 0: [desc: I#27=TG1_LACT_LEVEL] +EVENT[62]: 0.000328425 - core[0].svSysDesc(14), plen 0: [desc: I#28=GPIO] +EVENT[63]: 0.000328425 - core[1].svSysDesc(14), plen 0: [desc: I#28=GPIO] +EVENT[64]: 0.000347375 - core[0].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] +EVENT[65]: 0.000347375 - core[1].svSysDesc(14), plen 0: [desc: I#29=GPIO_NMI] +EVENT[66]: 0.000358275 - core[0].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] +EVENT[67]: 0.000358275 - core[1].svSysDesc(14), plen 0: [desc: I#30=FROM_CPU0] +EVENT[68]: 0.000369025 - core[0].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] +EVENT[69]: 0.000369025 - core[1].svSysDesc(14), plen 0: [desc: I#31=FROM_CPU1] +EVENT[70]: 0.000383800 - core[0].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] +EVENT[71]: 0.000383800 - core[1].svSysDesc(14), plen 0: [desc: I#32=FROM_CPU2] +EVENT[72]: 0.000394550 - core[0].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] +EVENT[73]: 0.000394550 - core[1].svSysDesc(14), plen 0: [desc: I#33=FROM_CPU3] +EVENT[74]: 0.000408325 - core[0].svSysDesc(14), plen 0: [desc: I#34=SPI0] +EVENT[75]: 0.000408325 - core[1].svSysDesc(14), plen 0: [desc: I#34=SPI0] +EVENT[76]: 0.000422050 - core[0].svSysDesc(14), plen 0: [desc: I#35=SPI1] +EVENT[77]: 0.000422050 - core[1].svSysDesc(14), plen 0: [desc: I#35=SPI1] +EVENT[78]: 0.000431850 - core[0].svSysDesc(14), plen 0: [desc: I#36=SPI2] +EVENT[79]: 0.000431850 - core[1].svSysDesc(14), plen 0: [desc: I#36=SPI2] +EVENT[80]: 0.000441625 - core[0].svSysDesc(14), plen 0: [desc: I#37=SPI3] +EVENT[81]: 0.000441625 - core[1].svSysDesc(14), plen 0: [desc: I#37=SPI3] +EVENT[82]: 0.000452800 - core[0].svSysDesc(14), plen 0: [desc: I#38=I2S0] +EVENT[83]: 0.000452800 - core[1].svSysDesc(14), plen 0: [desc: I#38=I2S0] +EVENT[84]: 0.000468025 - core[0].svSysDesc(14), plen 0: [desc: I#39=I2S1] +EVENT[85]: 0.000468025 - core[1].svSysDesc(14), plen 0: [desc: I#39=I2S1] +EVENT[86]: 0.000479250 - core[0].svSysDesc(14), plen 0: [desc: I#40=UART0] +EVENT[87]: 0.000479250 - core[1].svSysDesc(14), plen 0: [desc: I#40=UART0] +EVENT[88]: 0.000490675 - core[0].svSysDesc(14), plen 0: [desc: I#41=UART1] +EVENT[89]: 0.000490675 - core[1].svSysDesc(14), plen 0: [desc: I#41=UART1] +EVENT[90]: 0.000506125 - core[0].svSysDesc(14), plen 0: [desc: I#42=UART2] +EVENT[91]: 0.000506125 - core[1].svSysDesc(14), plen 0: [desc: I#42=UART2] +EVENT[92]: 0.000522400 - core[0].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] +EVENT[93]: 0.000522400 - core[1].svSysDesc(14), plen 0: [desc: I#43=SDIO_HOST] +EVENT[94]: 0.000534425 - core[0].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] +EVENT[95]: 0.000534425 - core[1].svSysDesc(14), plen 0: [desc: I#44=ETH_MAC] +EVENT[96]: 0.000550275 - core[0].svSysDesc(14), plen 0: [desc: I#45=PWM0] +EVENT[97]: 0.000550275 - core[1].svSysDesc(14), plen 0: [desc: I#45=PWM0] +EVENT[98]: 0.000565375 - core[0].svSysDesc(14), plen 0: [desc: I#46=PWM1] +EVENT[99]: 0.000565375 - core[1].svSysDesc(14), plen 0: [desc: I#46=PWM1] +EVENT[100]: 0.000577225 - core[0].svSysDesc(14), plen 0: [desc: I#47=RESERVED] +EVENT[101]: 0.000577225 - core[1].svSysDesc(14), plen 0: [desc: I#47=RESERVED] +EVENT[102]: 0.000589025 - core[0].svSysDesc(14), plen 0: [desc: I#48=RESERVED] +EVENT[103]: 0.000589025 - core[1].svSysDesc(14), plen 0: [desc: I#48=RESERVED] +EVENT[104]: 0.000600050 - core[0].svSysDesc(14), plen 0: [desc: I#49=LEDC] +EVENT[105]: 0.000600050 - core[1].svSysDesc(14), plen 0: [desc: I#49=LEDC] +EVENT[106]: 0.000619275 - core[0].svSysDesc(14), plen 0: [desc: I#50=EFUSE] +EVENT[107]: 0.000619275 - core[1].svSysDesc(14), plen 0: [desc: I#50=EFUSE] +EVENT[108]: 0.000630775 - core[0].svSysDesc(14), plen 0: [desc: I#51=TWAI] +EVENT[109]: 0.000630775 - core[1].svSysDesc(14), plen 0: [desc: I#51=TWAI] +EVENT[110]: 0.000646650 - core[0].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] +EVENT[111]: 0.000646650 - core[1].svSysDesc(14), plen 0: [desc: I#52=RTC_CORE] +EVENT[112]: 0.000657625 - core[0].svSysDesc(14), plen 0: [desc: I#53=RMT] +EVENT[113]: 0.000657625 - core[1].svSysDesc(14), plen 0: [desc: I#53=RMT] +EVENT[114]: 0.000668850 - core[0].svSysDesc(14), plen 0: [desc: I#54=PCNT] +EVENT[115]: 0.000668850 - core[1].svSysDesc(14), plen 0: [desc: I#54=PCNT] +EVENT[116]: 0.000685000 - core[0].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] +EVENT[117]: 0.000685000 - core[1].svSysDesc(14), plen 0: [desc: I#55=I2C_EXT0] +EVENT[118]: 0.000696775 - core[0].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] +EVENT[119]: 0.000696775 - core[1].svSysDesc(14), plen 0: [desc: I#56=I2C_EXT1] +EVENT[120]: 0.000707625 - core[0].svSysDesc(14), plen 0: [desc: I#57=RSA] +EVENT[121]: 0.000707625 - core[1].svSysDesc(14), plen 0: [desc: I#57=RSA] +EVENT[122]: 0.000723625 - core[0].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] +EVENT[123]: 0.000723625 - core[1].svSysDesc(14), plen 0: [desc: I#58=SPI1_DMA] +EVENT[124]: 0.000739800 - core[0].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] +EVENT[125]: 0.000739800 - core[1].svSysDesc(14), plen 0: [desc: I#59=SPI2_DMA] +EVENT[126]: 0.000752125 - core[0].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] +EVENT[127]: 0.000752125 - core[1].svSysDesc(14), plen 0: [desc: I#60=SPI3_DMA] +EVENT[128]: 0.000763075 - core[0].svSysDesc(14), plen 0: [desc: I#61=WDT] +EVENT[129]: 0.000763075 - core[1].svSysDesc(14), plen 0: [desc: I#61=WDT] +EVENT[130]: 0.000783475 - core[0].svSysDesc(14), plen 0: [desc: I#62=TIMER1] +EVENT[131]: 0.000783475 - core[1].svSysDesc(14), plen 0: [desc: I#62=TIMER1] +EVENT[132]: 0.000795000 - core[0].svSysDesc(14), plen 0: [desc: I#63=TIMER2] +EVENT[133]: 0.000795000 - core[1].svSysDesc(14), plen 0: [desc: I#63=TIMER2] +EVENT[134]: 0.000808000 - core[0].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] +EVENT[135]: 0.000808000 - core[1].svSysDesc(14), plen 0: [desc: I#64=TG0_T0_EDGE] +EVENT[136]: 0.000824900 - core[0].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] +EVENT[137]: 0.000824900 - core[1].svSysDesc(14), plen 0: [desc: I#65=TG0_T1_EDGE] +EVENT[138]: 0.000841650 - core[0].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] +EVENT[139]: 0.000841650 - core[1].svSysDesc(14), plen 0: [desc: I#66=TG0_WDT_EDGE] +EVENT[140]: 0.000858925 - core[0].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] +EVENT[141]: 0.000858925 - core[1].svSysDesc(14), plen 0: [desc: I#67=TG0_LACT_EDGE] +EVENT[142]: 0.000871750 - core[0].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] +EVENT[143]: 0.000871750 - core[1].svSysDesc(14), plen 0: [desc: I#68=TG1_T0_EDGE] +EVENT[144]: 0.000884400 - core[0].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] +EVENT[145]: 0.000884400 - core[1].svSysDesc(14), plen 0: [desc: I#69=TG1_T1_EDGE] +EVENT[146]: 0.000901550 - core[0].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] +EVENT[147]: 0.000901550 - core[1].svSysDesc(14), plen 0: [desc: I#70=TG1_WDT_EDGE] +EVENT[148]: 0.000914850 - core[0].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] +EVENT[149]: 0.000914850 - core[1].svSysDesc(14), plen 0: [desc: I#71=TG1_LACT_EDGE] +EVENT[150]: 0.000930350 - core[0].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] +EVENT[151]: 0.000930350 - core[1].svSysDesc(14), plen 0: [desc: I#72=MMU_IA] +EVENT[152]: 0.000941925 - core[0].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] +EVENT[153]: 0.000941925 - core[1].svSysDesc(14), plen 0: [desc: I#73=MPU_IA] +EVENT[154]: 0.000958150 - core[0].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] +EVENT[155]: 0.000958150 - core[1].svSysDesc(14), plen 0: [desc: I#74=CACHE_IA] +EVENT[156]: 0.000968650 - core[0].svSysTimeCycles(12), plen 0: [cycles: 2739609] +EVENT[157]: 0.000968650 - core[1].svSysTimeCycles(12), plen 0: [cycles: 2739609] +EVENT[158]: 0.001084500 - core[0].svTaskInfo(9), plen 0: [tid: 12252316, prio: 24, name: ipc0] +EVENT[159]: 0.001084500 - core[1].svTaskInfo(9), plen 0: [tid: 12252316, prio: 24, name: ipc0] +EVENT[160]: 0.001089775 - core[0].svStackInfo(21), plen 0: [tid: 12252316, base: 1073409176, sz: 1352, unused: 0] +EVENT[161]: 0.001089775 - core[1].svStackInfo(21), plen 0: [tid: 12252316, base: 1073409176, sz: 1352, unused: 0] +EVENT[162]: 0.001195350 - core[0].svTaskInfo(9), plen 0: [tid: 12254724, prio: 24, name: ipc1] +EVENT[163]: 0.001195350 - core[1].svTaskInfo(9), plen 0: [tid: 12254724, prio: 24, name: ipc1] +EVENT[164]: 0.001200800 - core[0].svStackInfo(21), plen 0: [tid: 12254724, base: 1073411584, sz: 1344, unused: 0] +EVENT[165]: 0.001200800 - core[1].svStackInfo(21), plen 0: [tid: 12254724, base: 1073411584, sz: 1344, unused: 0] +EVENT[166]: 0.001388725 - core[0].svTaskInfo(9), plen 0: [tid: 12274964, prio: 1, name: main] +EVENT[167]: 0.001388725 - core[1].svTaskInfo(9), plen 0: [tid: 12274964, prio: 1, name: main] +EVENT[168]: 0.001394000 - core[0].svStackInfo(21), plen 0: [tid: 12274964, base: 1073429776, sz: 2400, unused: 0] +EVENT[169]: 0.001394000 - core[1].svStackInfo(21), plen 0: [tid: 12274964, base: 1073429776, sz: 2400, unused: 0] +EVENT[170]: 0.001401225 - core[0].svNumModules(27), plen 1: [mod_cnt: 0] +EVENT[171]: 0.001401225 - core[1].svNumModules(27), plen 1: [mod_cnt: 0] +EVENT[172]: 0.001407975 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[173]: 0.001419700 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[174]: 0.001430725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[175]: 0.001441675 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[176]: 0.001441675 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[177]: 0.001456950 - core[0].svIsrExit(3), plen 0: [] +EVENT[178]: 0.001467975 - core[1].svIdle(17), plen 0: [] +EVENT[179]: 0.001479225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[180]: 0.001490125 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[181]: 0.001501375 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[182]: 0.001512375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[183]: 0.001523775 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[184]: 0.001554300 - core[0].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] +EVENT[185]: 0.001554300 - core[1].svModuleDesc(22), plen 0: [mod_id: 0, evt_off: 512, desc: M=ESP32 SystemView Heap Tracing Module] +EVENT[186]: 0.001566225 - core[1].svIdle(17), plen 0: [] +EVENT[187]: 0.001577550 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[188]: 0.001593250 - core[0].svIsrExit(3), plen 0: [] +EVENT[189]: 0.001650800 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073440928, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001650800] HEAP: Allocated 8 bytes @ 0x3ffb68a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[92]: 0.001666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[93]: 0.001679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[94]: 0.001696525 - core[1].svIdle(17), plen 0: [] -EVENT[95]: 0.001833550 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[96]: 0.001848925 - core[0].svIsrExit(3), plen 0: [] -EVENT[97]: 0.001870025 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073443048, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001870025] HEAP: Allocated 2500 bytes @ 0x3ffb70e8 from task "main" on core 0 by: +EVENT[190]: 0.001952550 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073440944, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001952550] HEAP: Allocated 2500 bytes @ 0x3ffb68b0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[98]: 0.001909875 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073445612, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.001909875] HEAP: Allocated 340 bytes @ 0x3ffb7aec from task "main" on core 0 by: +EVENT[191]: 0.001993450 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073443508, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.001993450] HEAP: Allocated 340 bytes @ 0x3ffb72b4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[99]: 0.001932550 - core[0].svTaskCreate(8), plen 0: [tid: 12286700] -EVENT[100]: 0.001945175 - core[0].svTaskInfo(9), plen 0: [tid: 12286700, prio: 5, name: alloc0] -EVENT[101]: 0.001954275 - core[0].svStackInfo(21), plen 0: [tid: 12286700, base: 1073443048, sz: 4294965096, unused: 0] -EVENT[102]: 0.001964975 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[103]: 0.001980675 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[104]: 0.001992175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[105]: 0.002008650 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[106]: 0.002044025 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073445968, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.002044025] HEAP: Allocated 124 bytes @ 0x3ffb7c50 from task "alloc0" on core 0 by: +EVENT[192]: 0.002024125 - core[0].svTaskCreate(8), plen 0: [tid: 12284596] +EVENT[193]: 0.002036775 - core[0].svTaskInfo(9), plen 0: [tid: 12284596, prio: 5, name: alloc0] +EVENT[194]: 0.002036775 - core[1].svTaskInfo(9), plen 0: [tid: 12284596, prio: 5, name: alloc0] +EVENT[195]: 0.002045900 - core[0].svStackInfo(21), plen 0: [tid: 12284596, base: 1073440944, sz: 4294965088, unused: 0] +EVENT[196]: 0.002045900 - core[1].svStackInfo(21), plen 0: [tid: 12284596, base: 1073440944, sz: 4294965088, unused: 0] +EVENT[197]: 0.002056625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[198]: 0.002056625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[199]: 0.002072325 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[200]: 0.002083675 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[201]: 0.002100025 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[202]: 0.002144425 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073443864, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.002144425] HEAP: Allocated 124 bytes @ 0x3ffb7418 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[107]: 0.002058325 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[108]: 0.002113550 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073446096, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.002113550] HEAP: Allocated 2500 bytes @ 0x3ffb7cd0 from task "alloc0" on core 0 by: +EVENT[203]: 0.002158725 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[204]: 0.002218950 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073443992, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.002218950] HEAP: Allocated 2500 bytes @ 0x3ffb7498 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[109]: 0.002147950 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073448660, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.002147950] HEAP: Allocated 340 bytes @ 0x3ffb86d4 from task "alloc0" on core 0 by: +EVENT[205]: 0.002254400 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073446556, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.002254400] HEAP: Allocated 340 bytes @ 0x3ffb7e9c from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[110]: 0.002174650 - core[0].svTaskCreate(8), plen 0: [tid: 12289748] -EVENT[111]: 0.002187150 - core[0].svTaskInfo(9), plen 0: [tid: 12289748, prio: 5, name: free0] -EVENT[112]: 0.002196300 - core[0].svStackInfo(21), plen 0: [tid: 12289748, base: 1073446096, sz: 4294965088, unused: 0] -EVENT[113]: 0.002207125 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[114]: 0.002222500 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[115]: 0.002235400 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[116]: 0.002251800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449016, size: 1, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.002251800] HEAP: Allocated 1 bytes @ 0x3ffb8838 from task "alloc0" on core 0 by: +EVENT[206]: 0.002281100 - core[0].svTaskCreate(8), plen 0: [tid: 12287644] +EVENT[207]: 0.002293625 - core[0].svTaskInfo(9), plen 0: [tid: 12287644, prio: 5, name: free0] +EVENT[208]: 0.002293625 - core[1].svTaskInfo(9), plen 0: [tid: 12287644, prio: 5, name: free0] +EVENT[209]: 0.002302800 - core[0].svStackInfo(21), plen 0: [tid: 12287644, base: 1073443992, sz: 4294965096, unused: 0] +EVENT[210]: 0.002302800 - core[1].svStackInfo(21), plen 0: [tid: 12287644, base: 1073443992, sz: 4294965096, unused: 0] +EVENT[211]: 0.002313650 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[212]: 0.002313650 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[213]: 0.002329000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[214]: 0.002342325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[215]: 0.002359325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073446912, size: 1, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.002359325] HEAP: Allocated 1 bytes @ 0x3ffb8000 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[117]: 0.002263100 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[118]: 0.002293125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[119]: 0.002304050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.002304050] HEAP: Allocated 2 bytes @ 0x3ffb8848 from task "alloc0" on core 0 by: +EVENT[216]: 0.002370750 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[217]: 0.002400875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[218]: 0.002412175 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073446928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.002412175] HEAP: Allocated 2 bytes @ 0x3ffb8010 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[120]: 0.002315125 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[121]: 0.002327775 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[122]: 0.002338225 - core[1].svIdle(17), plen 0: [] -EVENT[123]: 0.002372400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[124]: 0.002611675 - core[0].svPrint(26), plen 69: [msg: I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848 +EVENT[219]: 0.002423750 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[220]: 0.002436000 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[221]: 0.002447000 - core[1].svIdle(17), plen 0: [] +EVENT[222]: 0.002462975 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[223]: 0.002476525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[224]: 0.002487925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[225]: 0.002499075 - core[1].svIdle(17), plen 0: [] +EVENT[226]: 0.002748650 - core[0].svPrint(26), plen 69: [msg: I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010 , lvl: 0, unused: 0] -[0.002611675] LOG: I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848 -EVENT[125]: 0.002633250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[126]: 0.002646375 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[127]: 0.002662575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[128]: 0.002673450 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[129]: 0.002684225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[130]: 0.002698400 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[131]: 0.002709150 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[132]: 0.002720075 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[133]: 0.002731625 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[134]: 0.002742100 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[135]: 0.002759600 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[136]: 0.002776550 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[137]: 0.002788050 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073449048, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002788050] HEAP: Allocated 8 bytes @ 0x3ffb8858 from task "main" on core 0 by: +[0.002748650] LOG: I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010 +EVENT[227]: 0.002765925 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[228]: 0.002781300 - core[0].svIsrExit(3), plen 0: [] +EVENT[229]: 0.002795350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[230]: 0.002808550 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[231]: 0.002808550 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[232]: 0.002824800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[233]: 0.002835750 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[234]: 0.002846450 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[235]: 0.002860225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[236]: 0.002870975 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[237]: 0.002881775 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[238]: 0.002893725 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[239]: 0.002904450 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[240]: 0.002943850 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073446944, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.002943850] HEAP: Allocated 8 bytes @ 0x3ffb8020 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[138]: 0.002824000 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[139]: 0.002835875 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[140]: 0.002851250 - core[0].svIsrExit(3), plen 0: [] -EVENT[141]: 0.002863625 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073449064, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002863625] HEAP: Allocated 2500 bytes @ 0x3ffb8868 from task "main" on core 0 by: +EVENT[241]: 0.002956000 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[242]: 0.002990650 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073446960, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.002990650] HEAP: Allocated 2500 bytes @ 0x3ffb8030 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[142]: 0.002878375 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[143]: 0.002905675 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073451628, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.002905675] HEAP: Allocated 340 bytes @ 0x3ffb926c from task "main" on core 0 by: +EVENT[243]: 0.003010625 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[244]: 0.003033925 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073449524, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003033925] HEAP: Allocated 340 bytes @ 0x3ffb8a34 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[144]: 0.002928325 - core[0].svTaskCreate(8), plen 0: [tid: 12292716] -EVENT[145]: 0.002941000 - core[0].svTaskInfo(9), plen 0: [tid: 12292716, prio: 5, name: alloc1] -EVENT[146]: 0.002950000 - core[0].svStackInfo(21), plen 0: [tid: 12292716, base: 1073449064, sz: 4294965096, unused: 0] -EVENT[147]: 0.002960900 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[148]: 0.002976625 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[149]: 0.002988000 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[150]: 0.003004850 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[151]: 0.003040300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073451984, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.003040300] HEAP: Allocated 124 bytes @ 0x3ffb93d0 from task "alloc1" on core 0 by: +EVENT[245]: 0.003056650 - core[0].svTaskCreate(8), plen 0: [tid: 12290612] +EVENT[246]: 0.003069350 - core[0].svTaskInfo(9), plen 0: [tid: 12290612, prio: 5, name: alloc1] +EVENT[247]: 0.003069350 - core[1].svTaskInfo(9), plen 0: [tid: 12290612, prio: 5, name: alloc1] +EVENT[248]: 0.003078400 - core[0].svStackInfo(21), plen 0: [tid: 12290612, base: 1073446960, sz: 4294965088, unused: 0] +EVENT[249]: 0.003078400 - core[1].svStackInfo(21), plen 0: [tid: 12290612, base: 1073446960, sz: 4294965088, unused: 0] +EVENT[250]: 0.003089300 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[251]: 0.003089300 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[252]: 0.003104950 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[253]: 0.003116300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[254]: 0.003132675 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[255]: 0.003169150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073449880, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.003169150] HEAP: Allocated 124 bytes @ 0x3ffb8b98 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[152]: 0.003054600 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[153]: 0.003093950 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073452112, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003093950] HEAP: Allocated 2500 bytes @ 0x3ffb9450 from task "alloc1" on core 0 by: +EVENT[256]: 0.003183450 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[257]: 0.003223850 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073450008, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.003223850] HEAP: Allocated 2500 bytes @ 0x3ffb8c18 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[154]: 0.003128350 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073454676, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003128350] HEAP: Allocated 340 bytes @ 0x3ffb9e54 from task "alloc1" on core 0 by: +EVENT[258]: 0.003259400 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073452572, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.003259400] HEAP: Allocated 340 bytes @ 0x3ffb961c from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[155]: 0.003155100 - core[0].svTaskCreate(8), plen 0: [tid: 12295764] -EVENT[156]: 0.003167600 - core[0].svTaskInfo(9), plen 0: [tid: 12295764, prio: 5, name: free1] -EVENT[157]: 0.003176775 - core[0].svStackInfo(21), plen 0: [tid: 12295764, base: 1073452112, sz: 4294965088, unused: 0] -EVENT[158]: 0.003187575 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[159]: 0.003223700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.003223700] HEAP: Allocated 2 bytes @ 0x3ffb9fb8 from task "alloc1" on core 0 by: +EVENT[259]: 0.003286175 - core[0].svTaskCreate(8), plen 0: [tid: 12293660] +EVENT[260]: 0.003298675 - core[0].svTaskInfo(9), plen 0: [tid: 12293660, prio: 5, name: free1] +EVENT[261]: 0.003298675 - core[1].svTaskInfo(9), plen 0: [tid: 12293660, prio: 5, name: free1] +EVENT[262]: 0.003307875 - core[0].svStackInfo(21), plen 0: [tid: 12293660, base: 1073450008, sz: 4294965096, unused: 0] +EVENT[263]: 0.003307875 - core[1].svStackInfo(21), plen 0: [tid: 12293660, base: 1073450008, sz: 4294965096, unused: 0] +EVENT[264]: 0.003318700 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[265]: 0.003318700 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[266]: 0.003355850 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.003355850] HEAP: Allocated 2 bytes @ 0x3ffb9780 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[160]: 0.003258100 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.003258100] HEAP: Allocated 4 bytes @ 0x3ffb9fc8 from task "alloc1" on core 0 by: +EVENT[267]: 0.003391275 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.003391275] HEAP: Allocated 4 bytes @ 0x3ffb9790 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[161]: 0.003275000 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[162]: 0.003296925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[163]: 0.003339650 - core[1].svPrint(26), plen 63: [msg: I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848 +EVENT[268]: 0.003408225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[269]: 0.003428300 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[270]: 0.003484300 - core[1].svPrint(26), plen 63: [msg: I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010 , lvl: 0, unused: 0] -[0.003339650] LOG: I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848 -EVENT[164]: 0.003359800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[165]: 0.003371250 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[166]: 0.003388225 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[167]: 0.003407050 - core[0].svPrint(26), plen 69: [msg: I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8 +[0.003484300] LOG: I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010 +EVENT[271]: 0.003503800 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[272]: 0.003517225 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[273]: 0.003529075 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[274]: 0.003548800 - core[0].svPrint(26), plen 69: [msg: I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790 , lvl: 0, unused: 0] -[0.003407050] LOG: I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8 -EVENT[168]: 0.003421150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[169]: 0.003434300 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073449032, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.003434300] HEAP: Freed bytes @ 0x3ffb8848 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.003548800] LOG: I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790 +EVENT[275]: 0.003560325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[276]: 0.003571875 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[277]: 0.003582750 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[278]: 0.003598000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[279]: 0.003614550 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[280]: 0.003626250 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073446928, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.003626250] HEAP: Freed bytes @ 0x3ffb8010 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[170]: 0.003446125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[171]: 0.003464800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[172]: 0.003478750 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[173]: 0.003492825 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[174]: 0.003504725 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[175]: 0.003515600 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[176]: 0.003534850 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[177]: 0.003547175 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073449032, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621423, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003547175] HEAP: Allocated 8 bytes @ 0x3ffb8848 from task "main" on core 0 by: +EVENT[281]: 0.003637375 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[282]: 0.003651350 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[283]: 0.003671100 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[284]: 0.003685125 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[285]: 0.003699025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[286]: 0.003710900 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[287]: 0.003721925 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[288]: 0.003741250 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[289]: 0.003754850 - core[0].esp_sysview_heap_trace_alloc(512), plen 40: [addr: 1073446928, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609327, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003754850] HEAP: Allocated 8 bytes @ 0x3ffb8010 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[178]: 0.003564225 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[179]: 0.003582900 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[180]: 0.003600675 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073455064, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003600675] HEAP: Allocated 2500 bytes @ 0x3ffb9fd8 from task "main" on core 0 by: +EVENT[290]: 0.003771850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[291]: 0.003790150 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[292]: 0.003809225 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[293]: 0.003820975 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073452960, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003820975] HEAP: Allocated 2500 bytes @ 0x3ffb97a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[181]: 0.003613400 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[182]: 0.003639925 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073457628, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621496, 1074686267, 1074302356, 0, 0, 0, 0]] -[0.003639925] HEAP: Allocated 340 bytes @ 0x3ffba9dc from task "main" on core 0 by: +EVENT[294]: 0.003862100 - core[1].svPrint(26), plen 63: [msg: I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790 +, lvl: 0, unused: 0] +[0.003862100] LOG: I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790 +EVENT[295]: 0.003874025 - core[0].esp_sysview_heap_trace_alloc(512), plen 41: [addr: 1073455524, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609400, 1074673816, 1074299100, 0, 0, 0, 0]] +[0.003874025] HEAP: Allocated 340 bytes @ 0x3ffba1a4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[183]: 0.003663425 - core[1].svPrint(26), plen 63: [msg: I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8 -, lvl: 0, unused: 0] -[0.003663425] LOG: I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8 -EVENT[184]: 0.003674800 - core[0].svTaskCreate(8), plen 0: [tid: 12298716] -EVENT[185]: 0.003691000 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[186]: 0.003703775 - core[0].svTaskInfo(9), plen 0: [tid: 12298716, prio: 5, name: alloc2] -EVENT[187]: 0.003714750 - core[0].svStackInfo(21), plen 0: [tid: 12298716, base: 1073455064, sz: 4294965096, unused: 0] -EVENT[188]: 0.003727650 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[189]: 0.003745100 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[190]: 0.003755950 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[191]: 0.003766625 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[192]: 0.003777475 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[193]: 0.003792825 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073455048, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.003792825] HEAP: Freed bytes @ 0x3ffb9fc8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[296]: 0.003887625 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073452944, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.003887625] HEAP: Freed bytes @ 0x3ffb9790 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[194]: 0.003804450 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[195]: 0.003827350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[196]: 0.003839325 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[197]: 0.003850500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[198]: 0.003862175 - core[0].svIsrExit(3), plen 0: [] -EVENT[199]: 0.003872050 - core[1].svIdle(17), plen 0: [] -EVENT[200]: 0.003888100 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073457984, size: 124, callers: [1074274287, 1074304020, 1074300537, 1074621092, 1074302356, 0, 0, 0, 0, 0]] -[0.003888100] HEAP: Allocated 124 bytes @ 0x3ffbab40 from task "alloc2" on core 0 by: +EVENT[297]: 0.003903450 - core[0].svTaskCreate(8), plen 0: [tid: 12296612] +EVENT[298]: 0.003918375 - core[0].svTaskInfo(9), plen 0: [tid: 12296612, prio: 5, name: alloc2] +EVENT[299]: 0.003918375 - core[1].svTaskInfo(9), plen 0: [tid: 12296612, prio: 5, name: alloc2] +EVENT[300]: 0.003929550 - core[0].svStackInfo(21), plen 0: [tid: 12296612, base: 1073452960, sz: 4294965088, unused: 0] +EVENT[301]: 0.003929550 - core[1].svStackInfo(21), plen 0: [tid: 12296612, base: 1073452960, sz: 4294965088, unused: 0] +EVENT[302]: 0.003942575 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[303]: 0.003942575 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[304]: 0.003961250 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[305]: 0.003975150 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[306]: 0.003989000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[307]: 0.003999875 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[308]: 0.004011000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[309]: 0.004033050 - core[1].svIdle(17), plen 0: [] +EVENT[310]: 0.004044725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455880, size: 124, callers: [1074274047, 1074300704, 1074297281, 1074608996, 1074299100, 0, 0, 0, 0, 0]] +[0.004044725] HEAP: Allocated 124 bytes @ 0x3ffba308 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[201]: 0.003902475 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] -EVENT[202]: 0.003941825 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073458112, size: 2500, callers: [1074274287, 1074304020, 1074311940, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003941825] HEAP: Allocated 2500 bytes @ 0x3ffbabc0 from task "alloc2" on core 0 by: +EVENT[311]: 0.004059250 - core[0].xQueueGenericCreate(47), plen 3: [uxQueueLength: 10, uxItemSize: 4, ucQueueType: 0] +EVENT[312]: 0.004099675 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073456008, size: 2500, callers: [1074274047, 1074300704, 1074308624, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.004099675] HEAP: Allocated 2500 bytes @ 0x3ffba388 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[203]: 0.003976225 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073460676, size: 340, callers: [1074274287, 1074304020, 1074311951, 1074621152, 1074302356, 0, 0, 0, 0, 0]] -[0.003976225] HEAP: Allocated 340 bytes @ 0x3ffbb5c4 from task "alloc2" on core 0 by: +EVENT[313]: 0.004135150 - core[0].esp_sysview_heap_trace_alloc(512), plen 37: [addr: 1073458572, size: 340, callers: [1074274047, 1074300704, 1074308635, 1074609056, 1074299100, 0, 0, 0, 0, 0]] +[0.004135150] HEAP: Allocated 340 bytes @ 0x3ffbad8c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[204]: 0.004002200 - core[0].svTaskCreate(8), plen 0: [tid: 12301764] -EVENT[205]: 0.004014700 - core[0].svTaskInfo(9), plen 0: [tid: 12301764, prio: 5, name: free2] -EVENT[206]: 0.004023875 - core[0].svStackInfo(21), plen 0: [tid: 12301764, base: 1073458112, sz: 4294965088, unused: 0] -EVENT[207]: 0.004034675 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[208]: 0.004050925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[209]: 0.004063775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[210]: 0.004075450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073455048, size: 3, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.004075450] HEAP: Allocated 3 bytes @ 0x3ffb9fc8 from task "alloc2" on core 0 by: +EVENT[314]: 0.004157725 - core[0].svTaskCreate(8), plen 0: [tid: 12299660] +EVENT[315]: 0.004170300 - core[0].svTaskInfo(9), plen 0: [tid: 12299660, prio: 5, name: free2] +EVENT[316]: 0.004170300 - core[1].svTaskInfo(9), plen 0: [tid: 12299660, prio: 5, name: free2] +EVENT[317]: 0.004183575 - core[0].svStackInfo(21), plen 0: [tid: 12299660, base: 1073456008, sz: 4294965096, unused: 0] +EVENT[318]: 0.004183575 - core[1].svStackInfo(21), plen 0: [tid: 12299660, base: 1073456008, sz: 4294965096, unused: 0] +EVENT[319]: 0.004194300 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[320]: 0.004194300 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[321]: 0.004210400 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[322]: 0.004223275 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[323]: 0.004235500 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073452944, size: 3, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.004235500] HEAP: Allocated 3 bytes @ 0x3ffb9790 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[211]: 0.004086900 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[212]: 0.004113275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[213]: 0.004125025 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461032, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.004125025] HEAP: Allocated 6 bytes @ 0x3ffbb728 from task "alloc2" on core 0 by: +EVENT[324]: 0.004248275 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[325]: 0.004274675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[326]: 0.004286525 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458928, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.004286525] HEAP: Allocated 6 bytes @ 0x3ffbaef0 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[214]: 0.004136450 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[215]: 0.004148425 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[216]: 0.004158700 - core[1].svIdle(17), plen 0: [] -EVENT[217]: 0.004177100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[218]: 0.004229400 - core[0].svPrint(26), plen 69: [msg: I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728 +EVENT[327]: 0.004297700 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[328]: 0.004309925 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[329]: 0.004320700 - core[1].svIdle(17), plen 0: [] +EVENT[330]: 0.004339100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[331]: 0.004391650 - core[0].svPrint(26), plen 69: [msg: I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0 , lvl: 0, unused: 0] -[0.004229400] LOG: I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728 -EVENT[219]: 0.004246400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[220]: 0.004259550 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[221]: 0.004275825 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[222]: 0.004286675 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[223]: 0.004297450 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[224]: 0.004311325 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[225]: 0.004322125 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[226]: 0.004332975 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[227]: 0.004344875 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[228]: 0.004355450 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[229]: 0.004367625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[230]: 0.004394675 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[231]: 0.004405525 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[232]: 0.004417200 - core[1].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[233]: 0.004428550 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[234]: 0.004446675 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[235]: 0.004461000 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[236]: 0.004477875 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[237]: 0.004496725 - core[1].svPrint(26), plen 63: [msg: I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728 +[0.004391650] LOG: I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0 +EVENT[332]: 0.004405100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[333]: 0.004418325 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[334]: 0.004418325 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[335]: 0.004438850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[336]: 0.004449700 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[337]: 0.004460525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[338]: 0.004474625 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[339]: 0.004485350 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[340]: 0.004496325 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[341]: 0.004507800 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[342]: 0.004518275 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[343]: 0.004535000 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[344]: 0.004547200 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[345]: 0.004559125 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[346]: 0.004570475 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[347]: 0.004581575 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[348]: 0.004581575 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[349]: 0.004595225 - core[1].vTaskPriorityInherit(39), plen 5: [pxMutexHolder: 1073433876] +EVENT[350]: 0.004610300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[351]: 0.004620875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[352]: 0.004631850 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[353]: 0.004642525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[354]: 0.004654100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[355]: 0.004665575 - core[1].svIdle(17), plen 0: [] +EVENT[356]: 0.004680075 - core[0].xTaskPriorityDisinherit(42), plen 5: [pxMutexHolder: 1073433876] +EVENT[357]: 0.004690775 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[358]: 0.004690775 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[359]: 0.004704550 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[360]: 0.004704550 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[361]: 0.004720275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[362]: 0.004731750 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[363]: 0.004748350 - core[0].svPrint(26), plen 34: [msg: I (299) example: Wait notify 0 , lvl: 0, unused: 0] -[0.004496725] LOG: I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728 -EVENT[238]: 0.004524000 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461032, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.004524000] HEAP: Freed bytes @ 0x3ffbb728 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.004748350] LOG: I (299) example: Wait notify 0 +EVENT[364]: 0.004759525 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[365]: 0.004776775 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[366]: 0.004787675 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[367]: 0.004800000 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[368]: 0.004810750 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[369]: 0.004828350 - core[0].svIdle(17), plen 0: [] +EVENT[370]: 0.004849600 - core[1].svPrint(26), plen 63: [msg: I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0 +, lvl: 0, unused: 0] +[0.004849600] LOG: I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0 +EVENT[371]: 0.004875275 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458928, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.004875275] HEAP: Freed bytes @ 0x3ffbaef0 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[239]: 0.004538425 - core[0].svPrint(26), plen 34: [msg: I (312) example: Wait notify 0 -, lvl: 0, unused: 0] -[0.004538425] LOG: I (312) example: Wait notify 0 -EVENT[240]: 0.004553625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[241]: 0.004567700 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[242]: 0.004581650 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[243]: 0.004592100 - core[1].svIdle(17), plen 0: [] -EVENT[244]: 0.004603225 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[245]: 0.004619375 - core[0].svIdle(17), plen 0: [] -EVENT[246]: 0.004666675 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[247]: 0.004680100 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[248]: 0.004695250 - core[1].svIdle(17), plen 0: [] -EVENT[249]: 0.004833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[250]: 0.004849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[251]: 0.004864250 - core[0].svIdle(17), plen 0: [] -EVENT[252]: 0.005666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[253]: 0.005680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[254]: 0.005695225 - core[1].svIdle(17), plen 0: [] -EVENT[255]: 0.005833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[256]: 0.005849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[257]: 0.005864425 - core[0].svIdle(17), plen 0: [] -EVENT[258]: 0.006666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[259]: 0.006679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[260]: 0.006695100 - core[1].svIdle(17), plen 0: [] -EVENT[261]: 0.006833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[262]: 0.006849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[263]: 0.006864250 - core[0].svIdle(17), plen 0: [] -EVENT[264]: 0.007666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[265]: 0.007680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[266]: 0.007695350 - core[1].svIdle(17), plen 0: [] -EVENT[267]: 0.007833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[268]: 0.007849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[269]: 0.007864250 - core[0].svIdle(17), plen 0: [] -EVENT[270]: 0.008666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[271]: 0.008680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[272]: 0.008695125 - core[1].svIdle(17), plen 0: [] -EVENT[273]: 0.008833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[274]: 0.008849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[275]: 0.008868000 - core[0].svIdle(17), plen 0: [] -EVENT[276]: 0.009666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[277]: 0.009679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[278]: 0.009695100 - core[1].svIdle(17), plen 0: [] -EVENT[279]: 0.009833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[280]: 0.009849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[281]: 0.009864250 - core[0].svIdle(17), plen 0: [] -EVENT[282]: 0.010666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[283]: 0.010680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[284]: 0.010695350 - core[1].svIdle(17), plen 0: [] -EVENT[285]: 0.010833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[286]: 0.010849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[287]: 0.010864250 - core[0].svIdle(17), plen 0: [] -EVENT[288]: 0.011666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[289]: 0.011680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[290]: 0.011695125 - core[1].svIdle(17), plen 0: [] -EVENT[291]: 0.011833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[292]: 0.011849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[293]: 0.011864250 - core[0].svIdle(17), plen 0: [] -EVENT[294]: 0.012666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[295]: 0.012680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[296]: 0.012695225 - core[1].svIdle(17), plen 0: [] -EVENT[297]: 0.012833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[298]: 0.012849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[299]: 0.012864425 - core[0].svIdle(17), plen 0: [] -EVENT[300]: 0.013666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[301]: 0.013679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[302]: 0.013695100 - core[1].svIdle(17), plen 0: [] -EVENT[303]: 0.013833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[304]: 0.013849400 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[305]: 0.013864500 - core[0].svIdle(17), plen 0: [] -EVENT[306]: 0.014666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[307]: 0.014680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[308]: 0.014695350 - core[1].svIdle(17), plen 0: [] -EVENT[309]: 0.014833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[310]: 0.014849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[311]: 0.014864250 - core[0].svIdle(17), plen 0: [] -EVENT[312]: 0.015666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[313]: 0.015680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[314]: 0.015695125 - core[1].svIdle(17), plen 0: [] -EVENT[315]: 0.015833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[316]: 0.015849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[317]: 0.015864250 - core[0].svIdle(17), plen 0: [] -EVENT[318]: 0.016666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[319]: 0.016680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[320]: 0.016695225 - core[1].svIdle(17), plen 0: [] -EVENT[321]: 0.016833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[322]: 0.016849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[323]: 0.016864425 - core[0].svIdle(17), plen 0: [] -EVENT[324]: 0.017666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[325]: 0.017679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[326]: 0.017695100 - core[1].svIdle(17), plen 0: [] -EVENT[327]: 0.017833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[328]: 0.017849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[329]: 0.017864250 - core[0].svIdle(17), plen 0: [] -EVENT[330]: 0.018666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[331]: 0.018680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[332]: 0.018695350 - core[1].svIdle(17), plen 0: [] -EVENT[333]: 0.018833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[334]: 0.018849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[335]: 0.018864250 - core[0].svIdle(17), plen 0: [] -EVENT[336]: 0.019666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[337]: 0.019680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[338]: 0.019695125 - core[1].svIdle(17), plen 0: [] -EVENT[339]: 0.019833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[340]: 0.019849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[341]: 0.019864250 - core[0].svIdle(17), plen 0: [] -EVENT[342]: 0.020666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[343]: 0.020680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[344]: 0.020695225 - core[1].svIdle(17), plen 0: [] -EVENT[345]: 0.020833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[346]: 0.020849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[347]: 0.020864425 - core[0].svIdle(17), plen 0: [] -EVENT[348]: 0.021666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[349]: 0.021680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[350]: 0.021695350 - core[1].svIdle(17), plen 0: [] -EVENT[351]: 0.021833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[352]: 0.021849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[353]: 0.021864250 - core[0].svIdle(17), plen 0: [] -EVENT[354]: 0.022666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[355]: 0.022680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[356]: 0.022695125 - core[1].svIdle(17), plen 0: [] -EVENT[357]: 0.022833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[358]: 0.022849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[359]: 0.022864250 - core[0].svIdle(17), plen 0: [] -EVENT[360]: 0.023666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[361]: 0.023680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[362]: 0.023695225 - core[1].svIdle(17), plen 0: [] -EVENT[363]: 0.023833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[364]: 0.023849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[365]: 0.023864425 - core[0].svIdle(17), plen 0: [] -EVENT[366]: 0.024666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[367]: 0.024679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[368]: 0.024695100 - core[1].svIdle(17), plen 0: [] -EVENT[369]: 0.024833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[370]: 0.024849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[371]: 0.024864250 - core[0].svIdle(17), plen 0: [] -EVENT[372]: 0.025666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[373]: 0.025680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[374]: 0.025695350 - core[1].svIdle(17), plen 0: [] -EVENT[375]: 0.025833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[376]: 0.025849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[377]: 0.025864250 - core[0].svIdle(17), plen 0: [] -EVENT[378]: 0.026666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[379]: 0.026680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[380]: 0.026695125 - core[1].svIdle(17), plen 0: [] -EVENT[381]: 0.026833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[382]: 0.026849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[383]: 0.026864250 - core[0].svIdle(17), plen 0: [] -EVENT[384]: 0.027666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[385]: 0.027680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[386]: 0.027695225 - core[1].svIdle(17), plen 0: [] -EVENT[387]: 0.027833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[388]: 0.027849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[389]: 0.027864425 - core[0].svIdle(17), plen 0: [] -EVENT[390]: 0.028666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[391]: 0.028679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[392]: 0.028695100 - core[1].svIdle(17), plen 0: [] -EVENT[393]: 0.028833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[394]: 0.028849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[395]: 0.028864250 - core[0].svIdle(17), plen 0: [] -EVENT[396]: 0.029666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[397]: 0.029680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[398]: 0.029695350 - core[1].svIdle(17), plen 0: [] -EVENT[399]: 0.029833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[400]: 0.029849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[401]: 0.029864250 - core[0].svIdle(17), plen 0: [] -EVENT[402]: 0.030666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[403]: 0.030680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[404]: 0.030695125 - core[1].svIdle(17), plen 0: [] -EVENT[405]: 0.030833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[406]: 0.030849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[407]: 0.030864250 - core[0].svIdle(17), plen 0: [] -EVENT[408]: 0.031666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[409]: 0.031680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[410]: 0.031695225 - core[1].svIdle(17), plen 0: [] -EVENT[411]: 0.031833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[412]: 0.031848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[413]: 0.031861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[414]: 0.031877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[415]: 0.031912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461032, size: 2, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.031912575] HEAP: Allocated 2 bytes @ 0x3ffbb728 from task "alloc0" on core 0 by: +EVENT[372]: 0.004903000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[373]: 0.004914400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[374]: 0.004930975 - core[1].svIdle(17), plen 0: [] +EVENT[375]: 0.005448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[376]: 0.005461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[377]: 0.005477300 - core[1].svIdle(17), plen 0: [] +EVENT[378]: 0.005546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[379]: 0.005562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[380]: 0.005577275 - core[0].svIdle(17), plen 0: [] +EVENT[381]: 0.006448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[382]: 0.006461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[383]: 0.006476850 - core[1].svIdle(17), plen 0: [] +EVENT[384]: 0.006546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[385]: 0.006562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[386]: 0.006577075 - core[0].svIdle(17), plen 0: [] +EVENT[387]: 0.007448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[388]: 0.007461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[389]: 0.007476975 - core[1].svIdle(17), plen 0: [] +EVENT[390]: 0.007546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[391]: 0.007562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[392]: 0.007577225 - core[0].svIdle(17), plen 0: [] +EVENT[393]: 0.008448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[394]: 0.008461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[395]: 0.008476900 - core[1].svIdle(17), plen 0: [] +EVENT[396]: 0.008546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[397]: 0.008562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[398]: 0.008577075 - core[0].svIdle(17), plen 0: [] +EVENT[399]: 0.009448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[400]: 0.009461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[401]: 0.009476850 - core[1].svIdle(17), plen 0: [] +EVENT[402]: 0.009546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[403]: 0.009562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[404]: 0.009577275 - core[0].svIdle(17), plen 0: [] +EVENT[405]: 0.010448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[406]: 0.010461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[407]: 0.010476850 - core[1].svIdle(17), plen 0: [] +EVENT[408]: 0.010546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[409]: 0.010562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[410]: 0.010577075 - core[0].svIdle(17), plen 0: [] +EVENT[411]: 0.011448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[412]: 0.011461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[413]: 0.011476975 - core[1].svIdle(17), plen 0: [] +EVENT[414]: 0.011546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[415]: 0.011562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[416]: 0.011577225 - core[0].svIdle(17), plen 0: [] +EVENT[417]: 0.012448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[418]: 0.012461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[419]: 0.012476975 - core[1].svIdle(17), plen 0: [] +EVENT[420]: 0.012546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[421]: 0.012562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[422]: 0.012577225 - core[0].svIdle(17), plen 0: [] +EVENT[423]: 0.013448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[424]: 0.013461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[425]: 0.013476900 - core[1].svIdle(17), plen 0: [] +EVENT[426]: 0.013546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[427]: 0.013562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[428]: 0.013577075 - core[0].svIdle(17), plen 0: [] +EVENT[429]: 0.014448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[430]: 0.014461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[431]: 0.014476850 - core[1].svIdle(17), plen 0: [] +EVENT[432]: 0.014546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[433]: 0.014562300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[434]: 0.014577500 - core[0].svIdle(17), plen 0: [] +EVENT[435]: 0.015448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[436]: 0.015461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[437]: 0.015476850 - core[1].svIdle(17), plen 0: [] +EVENT[438]: 0.015546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[439]: 0.015562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[440]: 0.015577075 - core[0].svIdle(17), plen 0: [] +EVENT[441]: 0.016448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[442]: 0.016461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[443]: 0.016476975 - core[1].svIdle(17), plen 0: [] +EVENT[444]: 0.016546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[445]: 0.016562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[446]: 0.016577225 - core[0].svIdle(17), plen 0: [] +EVENT[447]: 0.017448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[448]: 0.017461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[449]: 0.017476900 - core[1].svIdle(17), plen 0: [] +EVENT[450]: 0.017546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[451]: 0.017562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[452]: 0.017577075 - core[0].svIdle(17), plen 0: [] +EVENT[453]: 0.018448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[454]: 0.018461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[455]: 0.018476850 - core[1].svIdle(17), plen 0: [] +EVENT[456]: 0.018546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[457]: 0.018562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[458]: 0.018577275 - core[0].svIdle(17), plen 0: [] +EVENT[459]: 0.019448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[460]: 0.019461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[461]: 0.019476850 - core[1].svIdle(17), plen 0: [] +EVENT[462]: 0.019546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[463]: 0.019562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[464]: 0.019577075 - core[0].svIdle(17), plen 0: [] +EVENT[465]: 0.020448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[466]: 0.020461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[467]: 0.020476975 - core[1].svIdle(17), plen 0: [] +EVENT[468]: 0.020546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[469]: 0.020562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[470]: 0.020577225 - core[0].svIdle(17), plen 0: [] +EVENT[471]: 0.021448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[472]: 0.021461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[473]: 0.021476900 - core[1].svIdle(17), plen 0: [] +EVENT[474]: 0.021546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[475]: 0.021562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[476]: 0.021577075 - core[0].svIdle(17), plen 0: [] +EVENT[477]: 0.022448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[478]: 0.022461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[479]: 0.022476850 - core[1].svIdle(17), plen 0: [] +EVENT[480]: 0.022546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[481]: 0.022562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[482]: 0.022577275 - core[0].svIdle(17), plen 0: [] +EVENT[483]: 0.023448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[484]: 0.023461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[485]: 0.023476850 - core[1].svIdle(17), plen 0: [] +EVENT[486]: 0.023546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[487]: 0.023562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[488]: 0.023577075 - core[0].svIdle(17), plen 0: [] +EVENT[489]: 0.024448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[490]: 0.024465975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[491]: 0.024481125 - core[1].svIdle(17), plen 0: [] +EVENT[492]: 0.024546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[493]: 0.024562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[494]: 0.024577075 - core[0].svIdle(17), plen 0: [] +EVENT[495]: 0.025448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[496]: 0.025461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[497]: 0.025476850 - core[1].svIdle(17), plen 0: [] +EVENT[498]: 0.025546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[499]: 0.025562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[500]: 0.025577275 - core[0].svIdle(17), plen 0: [] +EVENT[501]: 0.026448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[502]: 0.026461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[503]: 0.026476850 - core[1].svIdle(17), plen 0: [] +EVENT[504]: 0.026546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[505]: 0.026562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[506]: 0.026577075 - core[0].svIdle(17), plen 0: [] +EVENT[507]: 0.027448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[508]: 0.027461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[509]: 0.027476975 - core[1].svIdle(17), plen 0: [] +EVENT[510]: 0.027546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[511]: 0.027562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[512]: 0.027577225 - core[0].svIdle(17), plen 0: [] +EVENT[513]: 0.028448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[514]: 0.028461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[515]: 0.028476900 - core[1].svIdle(17), plen 0: [] +EVENT[516]: 0.028546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[517]: 0.028562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[518]: 0.028577075 - core[0].svIdle(17), plen 0: [] +EVENT[519]: 0.029448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[520]: 0.029461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[521]: 0.029476850 - core[1].svIdle(17), plen 0: [] +EVENT[522]: 0.029546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[523]: 0.029562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[524]: 0.029577275 - core[0].svIdle(17), plen 0: [] +EVENT[525]: 0.030448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[526]: 0.030461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[527]: 0.030476850 - core[1].svIdle(17), plen 0: [] +EVENT[528]: 0.030546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[529]: 0.030562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[530]: 0.030577075 - core[0].svIdle(17), plen 0: [] +EVENT[531]: 0.031448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[532]: 0.031461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[533]: 0.031476975 - core[1].svIdle(17), plen 0: [] +EVENT[534]: 0.031546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[535]: 0.031562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[536]: 0.031577225 - core[0].svIdle(17), plen 0: [] +EVENT[537]: 0.032448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[538]: 0.032461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[539]: 0.032476900 - core[1].svIdle(17), plen 0: [] +EVENT[540]: 0.032546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[541]: 0.032561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[542]: 0.032561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[543]: 0.032574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[544]: 0.032589950 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[545]: 0.032626375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458928, size: 2, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.032626375] HEAP: Allocated 2 bytes @ 0x3ffbaef0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[416]: 0.031951200 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.031951200] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc0" on core 0 by: +EVENT[546]: 0.032661800 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.032661800] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[417]: 0.031968100 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[418]: 0.031984075 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[419]: 0.032048250 - core[0].svPrint(26), plen 69: [msg: I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738 +EVENT[547]: 0.032682850 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[548]: 0.032698775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[549]: 0.032751325 - core[0].svPrint(26), plen 69: [msg: I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00 , lvl: 0, unused: 0] -[0.032048250] LOG: I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738 -EVENT[420]: 0.032061825 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[421]: 0.032074950 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[422]: 0.032091150 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[423]: 0.032102025 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[424]: 0.032112800 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[425]: 0.032126700 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[426]: 0.032137500 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[427]: 0.032148350 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[428]: 0.032160325 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[429]: 0.032170550 - core[0].svIdle(17), plen 0: [] -EVENT[430]: 0.032182025 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[431]: 0.032202300 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[432]: 0.032265850 - core[1].svPrint(26), plen 63: [msg: I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738 +[0.032751325] LOG: I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00 +EVENT[550]: 0.032764775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[551]: 0.032778000 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[552]: 0.032778000 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[553]: 0.032794250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[554]: 0.032805200 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[555]: 0.032815950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[556]: 0.032829700 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[557]: 0.032840425 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[558]: 0.032851225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[559]: 0.032863225 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[560]: 0.032873450 - core[0].svIdle(17), plen 0: [] +EVENT[561]: 0.032885200 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[562]: 0.032901475 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[563]: 0.032949375 - core[1].svPrint(26), plen 63: [msg: I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00 , lvl: 0, unused: 0] -[0.032265850] LOG: I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738 -EVENT[433]: 0.032287050 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461048, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.032287050] HEAP: Freed bytes @ 0x3ffbb738 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.032949375] LOG: I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00 +EVENT[564]: 0.032975100 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458944, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.032975100] HEAP: Freed bytes @ 0x3ffbaf00 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[434]: 0.032313925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[435]: 0.032325350 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[436]: 0.032342050 - core[1].svIdle(17), plen 0: [] -EVENT[437]: 0.032666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[438]: 0.032679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[439]: 0.032695550 - core[1].svIdle(17), plen 0: [] -EVENT[440]: 0.032833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[441]: 0.032848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[442]: 0.032861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[443]: 0.032877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[444]: 0.032912600 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461048, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.032912600] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc1" on core 0 by: +EVENT[565]: 0.033002525 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[566]: 0.033013925 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[567]: 0.033030500 - core[1].svIdle(17), plen 0: [] +EVENT[568]: 0.033448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[569]: 0.033461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[570]: 0.033477300 - core[1].svIdle(17), plen 0: [] +EVENT[571]: 0.033546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[572]: 0.033561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[573]: 0.033561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[574]: 0.033573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[575]: 0.033573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[576]: 0.033586000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[577]: 0.033601675 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[578]: 0.033637950 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458944, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.033637950] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[445]: 0.032947150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461064, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.032947150] HEAP: Allocated 8 bytes @ 0x3ffbb748 from task "alloc1" on core 0 by: +EVENT[579]: 0.033673375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458960, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.033673375] HEAP: Allocated 8 bytes @ 0x3ffbaf10 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[446]: 0.032964075 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[447]: 0.032984250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[448]: 0.033048500 - core[0].svPrint(26), plen 69: [msg: I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748 +EVENT[580]: 0.033690325 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[581]: 0.033706325 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[582]: 0.033762425 - core[0].svPrint(26), plen 69: [msg: I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10 , lvl: 0, unused: 0] -[0.033048500] LOG: I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748 -EVENT[449]: 0.033062225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[450]: 0.033075450 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[451]: 0.033091700 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[452]: 0.033102550 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[453]: 0.033113300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[454]: 0.033127025 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[455]: 0.033137800 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[456]: 0.033148550 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[457]: 0.033160550 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[458]: 0.033171875 - core[0].svIdle(17), plen 0: [] -EVENT[459]: 0.033184100 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[460]: 0.033200475 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[461]: 0.033263975 - core[1].svPrint(26), plen 63: [msg: I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748 -, lvl: 0, unused: 0] -[0.033263975] LOG: I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748 -EVENT[462]: 0.033288500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461064, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.033288500] HEAP: Freed bytes @ 0x3ffbb748 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[463]: 0.033315625 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[464]: 0.033327050 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[465]: 0.033343625 - core[1].svIdle(17), plen 0: [] -EVENT[466]: 0.033666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[467]: 0.033679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[468]: 0.033695550 - core[1].svIdle(17), plen 0: [] -EVENT[469]: 0.033833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[470]: 0.033848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[471]: 0.033861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[472]: 0.033877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[473]: 0.033912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461064, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.033912650] HEAP: Allocated 6 bytes @ 0x3ffbb748 from task "alloc2" on core 0 by: +[0.033762425] LOG: I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10 +EVENT[583]: 0.033775900 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[584]: 0.033789100 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[585]: 0.033789100 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[586]: 0.033805450 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[587]: 0.033816325 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[588]: 0.033827125 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[589]: 0.033840925 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[590]: 0.033852750 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[591]: 0.033864000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[592]: 0.033875950 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[593]: 0.033887525 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[594]: 0.033900150 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[595]: 0.033918850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[596]: 0.033930825 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458976, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.033930825] HEAP: Allocated 6 bytes @ 0x3ffbaf20 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[474]: 0.033947050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461080, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.033947050] HEAP: Allocated 12 bytes @ 0x3ffbb758 from task "alloc2" on core 0 by: +EVENT[597]: 0.033971825 - core[1].svPrint(26), plen 63: [msg: I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10 +, lvl: 0, unused: 0] +[0.033971825] LOG: I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10 +EVENT[598]: 0.033987775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.033987775] HEAP: Allocated 12 bytes @ 0x3ffbaf30 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[475]: 0.033963950 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[476]: 0.033980050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[477]: 0.034050525 - core[0].svPrint(26), plen 70: [msg: I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758 -, lvl: 0, unused: 0] -[0.034050525] LOG: I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758 -EVENT[478]: 0.034068350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[479]: 0.034081575 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[480]: 0.034097875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[481]: 0.034108725 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[482]: 0.034119500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[483]: 0.034133225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[484]: 0.034144100 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[485]: 0.034154925 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[486]: 0.034166800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[487]: 0.034178075 - core[0].svIdle(17), plen 0: [] -EVENT[488]: 0.034189725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[489]: 0.034206100 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[490]: 0.034269650 - core[1].svPrint(26), plen 63: [msg: I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758 -, lvl: 0, unused: 0] -[0.034269650] LOG: I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758 -EVENT[491]: 0.034290850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461080, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.034290850] HEAP: Freed bytes @ 0x3ffbb758 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[599]: 0.034002150 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458960, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.034002150] HEAP: Freed bytes @ 0x3ffbaf10 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[492]: 0.034321900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[493]: 0.034333375 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[494]: 0.034350075 - core[1].svIdle(17), plen 0: [] -EVENT[495]: 0.034666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[496]: 0.034679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[497]: 0.034695450 - core[1].svIdle(17), plen 0: [] -EVENT[498]: 0.034833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[499]: 0.034849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[500]: 0.034864425 - core[0].svIdle(17), plen 0: [] -EVENT[501]: 0.035666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[502]: 0.035679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[503]: 0.035695100 - core[1].svIdle(17), plen 0: [] -EVENT[504]: 0.035833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[505]: 0.035849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[506]: 0.035864250 - core[0].svIdle(17), plen 0: [] -EVENT[507]: 0.036666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[508]: 0.036680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[509]: 0.036695350 - core[1].svIdle(17), plen 0: [] -EVENT[510]: 0.036833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[511]: 0.036849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[512]: 0.036864250 - core[0].svIdle(17), plen 0: [] -EVENT[513]: 0.037666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[514]: 0.037680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[515]: 0.037695125 - core[1].svIdle(17), plen 0: [] -EVENT[516]: 0.037833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[517]: 0.037849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[518]: 0.037864250 - core[0].svIdle(17), plen 0: [] -EVENT[519]: 0.038666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[520]: 0.038680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[521]: 0.038695225 - core[1].svIdle(17), plen 0: [] -EVENT[522]: 0.038833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[523]: 0.038849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[524]: 0.038864425 - core[0].svIdle(17), plen 0: [] -EVENT[525]: 0.039666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[526]: 0.039679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[527]: 0.039695100 - core[1].svIdle(17), plen 0: [] -EVENT[528]: 0.039833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[529]: 0.039849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[530]: 0.039864250 - core[0].svIdle(17), plen 0: [] -EVENT[531]: 0.040666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[532]: 0.040680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[533]: 0.040695350 - core[1].svIdle(17), plen 0: [] -EVENT[534]: 0.040833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[535]: 0.040849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[536]: 0.040864250 - core[0].svIdle(17), plen 0: [] -EVENT[537]: 0.041666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[538]: 0.041680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[539]: 0.041695125 - core[1].svIdle(17), plen 0: [] -EVENT[540]: 0.041833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[541]: 0.041849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[542]: 0.041864250 - core[0].svIdle(17), plen 0: [] -EVENT[543]: 0.042666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[544]: 0.042680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[545]: 0.042695225 - core[1].svIdle(17), plen 0: [] -EVENT[546]: 0.042833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[547]: 0.042849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[548]: 0.042864425 - core[0].svIdle(17), plen 0: [] -EVENT[549]: 0.043666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[550]: 0.043679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[551]: 0.043695100 - core[1].svIdle(17), plen 0: [] -EVENT[552]: 0.043833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[553]: 0.043849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[554]: 0.043864250 - core[0].svIdle(17), plen 0: [] -EVENT[555]: 0.044666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[556]: 0.044684200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[557]: 0.044699325 - core[1].svIdle(17), plen 0: [] -EVENT[558]: 0.044833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[559]: 0.044849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[560]: 0.044864250 - core[0].svIdle(17), plen 0: [] -EVENT[561]: 0.045666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[562]: 0.045680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[563]: 0.045695225 - core[1].svIdle(17), plen 0: [] -EVENT[564]: 0.045833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[565]: 0.045849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[566]: 0.045864425 - core[0].svIdle(17), plen 0: [] -EVENT[567]: 0.046666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[568]: 0.046679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[569]: 0.046695100 - core[1].svIdle(17), plen 0: [] -EVENT[570]: 0.046833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[571]: 0.046849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[572]: 0.046864250 - core[0].svIdle(17), plen 0: [] -EVENT[573]: 0.047666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[574]: 0.047680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[575]: 0.047695350 - core[1].svIdle(17), plen 0: [] -EVENT[576]: 0.047833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[577]: 0.047849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[578]: 0.047864250 - core[0].svIdle(17), plen 0: [] -EVENT[579]: 0.048666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[580]: 0.048680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[581]: 0.048695125 - core[1].svIdle(17), plen 0: [] -EVENT[582]: 0.048833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[583]: 0.048849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[584]: 0.048864250 - core[0].svIdle(17), plen 0: [] -EVENT[585]: 0.049666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[586]: 0.049680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[587]: 0.049695225 - core[1].svIdle(17), plen 0: [] -EVENT[588]: 0.049833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[589]: 0.049849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[590]: 0.049864425 - core[0].svIdle(17), plen 0: [] -EVENT[591]: 0.050666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[592]: 0.050679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[593]: 0.050695100 - core[1].svIdle(17), plen 0: [] -EVENT[594]: 0.050833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[595]: 0.050849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[596]: 0.050864250 - core[0].svIdle(17), plen 0: [] -EVENT[597]: 0.051666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[598]: 0.051680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[599]: 0.051695350 - core[1].svIdle(17), plen 0: [] -EVENT[600]: 0.051833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[601]: 0.051849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[602]: 0.051864250 - core[0].svIdle(17), plen 0: [] -EVENT[603]: 0.052666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[604]: 0.052680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[605]: 0.052695125 - core[1].svIdle(17), plen 0: [] -EVENT[606]: 0.052833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[607]: 0.052849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[608]: 0.052864250 - core[0].svIdle(17), plen 0: [] -EVENT[609]: 0.053666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[610]: 0.053680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[611]: 0.053695225 - core[1].svIdle(17), plen 0: [] -EVENT[612]: 0.053833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[613]: 0.053849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[614]: 0.053864425 - core[0].svIdle(17), plen 0: [] -EVENT[615]: 0.054666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[616]: 0.054679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[617]: 0.054695100 - core[1].svIdle(17), plen 0: [] -EVENT[618]: 0.054833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[619]: 0.054849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[620]: 0.054864250 - core[0].svIdle(17), plen 0: [] -EVENT[621]: 0.055666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[622]: 0.055680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[623]: 0.055695350 - core[1].svIdle(17), plen 0: [] -EVENT[624]: 0.055833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[625]: 0.055849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[626]: 0.055864250 - core[0].svIdle(17), plen 0: [] -EVENT[627]: 0.056666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[628]: 0.056684225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[629]: 0.056699375 - core[1].svIdle(17), plen 0: [] -EVENT[630]: 0.056833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[631]: 0.056849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[632]: 0.056864250 - core[0].svIdle(17), plen 0: [] -EVENT[633]: 0.057666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[634]: 0.057680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[635]: 0.057695225 - core[1].svIdle(17), plen 0: [] -EVENT[636]: 0.057833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[637]: 0.057849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[638]: 0.057864425 - core[0].svIdle(17), plen 0: [] -EVENT[639]: 0.058666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[640]: 0.058679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[641]: 0.058695100 - core[1].svIdle(17), plen 0: [] -EVENT[642]: 0.058833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[643]: 0.058849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[644]: 0.058864250 - core[0].svIdle(17), plen 0: [] -EVENT[645]: 0.059666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[646]: 0.059680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[647]: 0.059695350 - core[1].svIdle(17), plen 0: [] -EVENT[648]: 0.059833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[649]: 0.059849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[650]: 0.059864250 - core[0].svIdle(17), plen 0: [] -EVENT[651]: 0.060666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[652]: 0.060680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[653]: 0.060695125 - core[1].svIdle(17), plen 0: [] -EVENT[654]: 0.060833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[655]: 0.060849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[656]: 0.060864250 - core[0].svIdle(17), plen 0: [] -EVENT[657]: 0.061666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[658]: 0.061680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[659]: 0.061695225 - core[1].svIdle(17), plen 0: [] -EVENT[660]: 0.061833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[661]: 0.061848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[662]: 0.061861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[663]: 0.061877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[664]: 0.061912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461080, size: 3, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.061912575] HEAP: Allocated 3 bytes @ 0x3ffbb758 from task "alloc0" on core 0 by: +EVENT[600]: 0.034014600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[601]: 0.034034500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[602]: 0.034045425 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[603]: 0.034056975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[604]: 0.034074925 - core[1].svIdle(17), plen 0: [] +EVENT[605]: 0.034092925 - core[0].svPrint(26), plen 70: [msg: I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30 +, lvl: 0, unused: 0] +[0.034092925] LOG: I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30 +EVENT[606]: 0.034106375 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[607]: 0.034123750 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[608]: 0.034123750 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[609]: 0.034140100 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[610]: 0.034150975 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[611]: 0.034161775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[612]: 0.034175600 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[613]: 0.034186525 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[614]: 0.034197375 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[615]: 0.034209325 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[616]: 0.034220550 - core[0].svIdle(17), plen 0: [] +EVENT[617]: 0.034232350 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[618]: 0.034248625 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[619]: 0.034296400 - core[1].svPrint(26), plen 63: [msg: I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30 +, lvl: 0, unused: 0] +[0.034296400] LOG: I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30 +EVENT[620]: 0.034317775 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458992, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.034317775] HEAP: Freed bytes @ 0x3ffbaf30 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[621]: 0.034345175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[622]: 0.034356600 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[623]: 0.034373150 - core[1].svIdle(17), plen 0: [] +EVENT[624]: 0.034448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[625]: 0.034461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[626]: 0.034477200 - core[1].svIdle(17), plen 0: [] +EVENT[627]: 0.034546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[628]: 0.034562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[629]: 0.034577075 - core[0].svIdle(17), plen 0: [] +EVENT[630]: 0.035448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[631]: 0.035461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[632]: 0.035476850 - core[1].svIdle(17), plen 0: [] +EVENT[633]: 0.035546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[634]: 0.035562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[635]: 0.035577275 - core[0].svIdle(17), plen 0: [] +EVENT[636]: 0.036448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[637]: 0.036461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[638]: 0.036476850 - core[1].svIdle(17), plen 0: [] +EVENT[639]: 0.036546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[640]: 0.036566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[641]: 0.036581525 - core[0].svIdle(17), plen 0: [] +EVENT[642]: 0.037448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[643]: 0.037461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[644]: 0.037476850 - core[1].svIdle(17), plen 0: [] +EVENT[645]: 0.037546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[646]: 0.037562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[647]: 0.037577075 - core[0].svIdle(17), plen 0: [] +EVENT[648]: 0.038448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[649]: 0.038461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[650]: 0.038476975 - core[1].svIdle(17), plen 0: [] +EVENT[651]: 0.038546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[652]: 0.038562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[653]: 0.038577225 - core[0].svIdle(17), plen 0: [] +EVENT[654]: 0.039448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[655]: 0.039461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[656]: 0.039476900 - core[1].svIdle(17), plen 0: [] +EVENT[657]: 0.039546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[658]: 0.039562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[659]: 0.039577075 - core[0].svIdle(17), plen 0: [] +EVENT[660]: 0.040448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[661]: 0.040461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[662]: 0.040476850 - core[1].svIdle(17), plen 0: [] +EVENT[663]: 0.040546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[664]: 0.040562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[665]: 0.040577275 - core[0].svIdle(17), plen 0: [] +EVENT[666]: 0.041448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[667]: 0.041461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[668]: 0.041476850 - core[1].svIdle(17), plen 0: [] +EVENT[669]: 0.041546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[670]: 0.041562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[671]: 0.041577075 - core[0].svIdle(17), plen 0: [] +EVENT[672]: 0.042448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[673]: 0.042461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[674]: 0.042476975 - core[1].svIdle(17), plen 0: [] +EVENT[675]: 0.042546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[676]: 0.042562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[677]: 0.042577225 - core[0].svIdle(17), plen 0: [] +EVENT[678]: 0.043448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[679]: 0.043461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[680]: 0.043476900 - core[1].svIdle(17), plen 0: [] +EVENT[681]: 0.043546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[682]: 0.043562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[683]: 0.043577075 - core[0].svIdle(17), plen 0: [] +EVENT[684]: 0.044448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[685]: 0.044461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[686]: 0.044476850 - core[1].svIdle(17), plen 0: [] +EVENT[687]: 0.044546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[688]: 0.044562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[689]: 0.044577275 - core[0].svIdle(17), plen 0: [] +EVENT[690]: 0.045448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[691]: 0.045461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[692]: 0.045476850 - core[1].svIdle(17), plen 0: [] +EVENT[693]: 0.045546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[694]: 0.045562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[695]: 0.045577075 - core[0].svIdle(17), plen 0: [] +EVENT[696]: 0.046448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[697]: 0.046461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[698]: 0.046476975 - core[1].svIdle(17), plen 0: [] +EVENT[699]: 0.046546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[700]: 0.046562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[701]: 0.046577225 - core[0].svIdle(17), plen 0: [] +EVENT[702]: 0.047448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[703]: 0.047461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[704]: 0.047476900 - core[1].svIdle(17), plen 0: [] +EVENT[705]: 0.047546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[706]: 0.047562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[707]: 0.047577075 - core[0].svIdle(17), plen 0: [] +EVENT[708]: 0.048448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[709]: 0.048461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[710]: 0.048476850 - core[1].svIdle(17), plen 0: [] +EVENT[711]: 0.048546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[712]: 0.048566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[713]: 0.048581500 - core[0].svIdle(17), plen 0: [] +EVENT[714]: 0.049448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[715]: 0.049461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[716]: 0.049476850 - core[1].svIdle(17), plen 0: [] +EVENT[717]: 0.049546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[718]: 0.049562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[719]: 0.049577075 - core[0].svIdle(17), plen 0: [] +EVENT[720]: 0.050448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[721]: 0.050461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[722]: 0.050476975 - core[1].svIdle(17), plen 0: [] +EVENT[723]: 0.050546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[724]: 0.050562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[725]: 0.050577225 - core[0].svIdle(17), plen 0: [] +EVENT[726]: 0.051448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[727]: 0.051461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[728]: 0.051476900 - core[1].svIdle(17), plen 0: [] +EVENT[729]: 0.051546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[730]: 0.051562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[731]: 0.051577075 - core[0].svIdle(17), plen 0: [] +EVENT[732]: 0.052448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[733]: 0.052461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[734]: 0.052476850 - core[1].svIdle(17), plen 0: [] +EVENT[735]: 0.052546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[736]: 0.052562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[737]: 0.052577275 - core[0].svIdle(17), plen 0: [] +EVENT[738]: 0.053448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[739]: 0.053461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[740]: 0.053476850 - core[1].svIdle(17), plen 0: [] +EVENT[741]: 0.053546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[742]: 0.053562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[743]: 0.053577075 - core[0].svIdle(17), plen 0: [] +EVENT[744]: 0.054448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[745]: 0.054461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[746]: 0.054476975 - core[1].svIdle(17), plen 0: [] +EVENT[747]: 0.054546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[748]: 0.054562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[749]: 0.054577225 - core[0].svIdle(17), plen 0: [] +EVENT[750]: 0.055448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[751]: 0.055461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[752]: 0.055476900 - core[1].svIdle(17), plen 0: [] +EVENT[753]: 0.055546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[754]: 0.055562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[755]: 0.055577075 - core[0].svIdle(17), plen 0: [] +EVENT[756]: 0.056448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[757]: 0.056461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[758]: 0.056476850 - core[1].svIdle(17), plen 0: [] +EVENT[759]: 0.056546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[760]: 0.056562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[761]: 0.056577275 - core[0].svIdle(17), plen 0: [] +EVENT[762]: 0.057448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[763]: 0.057461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[764]: 0.057476850 - core[1].svIdle(17), plen 0: [] +EVENT[765]: 0.057546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[766]: 0.057562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[767]: 0.057577075 - core[0].svIdle(17), plen 0: [] +EVENT[768]: 0.058448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[769]: 0.058461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[770]: 0.058476975 - core[1].svIdle(17), plen 0: [] +EVENT[771]: 0.058546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[772]: 0.058562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[773]: 0.058577225 - core[0].svIdle(17), plen 0: [] +EVENT[774]: 0.059448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[775]: 0.059461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[776]: 0.059476900 - core[1].svIdle(17), plen 0: [] +EVENT[777]: 0.059546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[778]: 0.059562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[779]: 0.059577075 - core[0].svIdle(17), plen 0: [] +EVENT[780]: 0.060448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[781]: 0.060461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[782]: 0.060476850 - core[1].svIdle(17), plen 0: [] +EVENT[783]: 0.060546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[784]: 0.060566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[785]: 0.060581500 - core[0].svIdle(17), plen 0: [] +EVENT[786]: 0.061448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[787]: 0.061461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[788]: 0.061476850 - core[1].svIdle(17), plen 0: [] +EVENT[789]: 0.061546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[790]: 0.061562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[791]: 0.061577075 - core[0].svIdle(17), plen 0: [] +EVENT[792]: 0.062448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[793]: 0.062461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[794]: 0.062476975 - core[1].svIdle(17), plen 0: [] +EVENT[795]: 0.062546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[796]: 0.062561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[797]: 0.062561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[798]: 0.062574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[799]: 0.062589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[800]: 0.062624900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458960, size: 3, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.062624900] HEAP: Allocated 3 bytes @ 0x3ffbaf10 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[665]: 0.061947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461096, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.061947000] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc0" on core 0 by: +EVENT[801]: 0.062660375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.062660375] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[666]: 0.061964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[667]: 0.061980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[668]: 0.062044275 - core[0].svPrint(26), plen 69: [msg: I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768 +EVENT[802]: 0.062677300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[803]: 0.062693250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[804]: 0.062745775 - core[0].svPrint(26), plen 69: [msg: I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30 , lvl: 0, unused: 0] -[0.062044275] LOG: I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768 -EVENT[669]: 0.062062075 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[670]: 0.062075200 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[671]: 0.062091350 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[672]: 0.062102400 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[673]: 0.062113150 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[674]: 0.062127150 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[675]: 0.062138000 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[676]: 0.062148875 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[677]: 0.062160875 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[678]: 0.062171200 - core[0].svIdle(17), plen 0: [] -EVENT[679]: 0.062183675 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[680]: 0.062199850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[681]: 0.062263400 - core[1].svPrint(26), plen 63: [msg: I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768 +[0.062745775] LOG: I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30 +EVENT[805]: 0.062759250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[806]: 0.062772450 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[807]: 0.062772450 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[808]: 0.062792900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[809]: 0.062803850 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[810]: 0.062814600 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[811]: 0.062828500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[812]: 0.062839300 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[813]: 0.062850025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[814]: 0.062862150 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[815]: 0.062872350 - core[0].svIdle(17), plen 0: [] +EVENT[816]: 0.062884100 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[817]: 0.062900450 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[818]: 0.062948325 - core[1].svPrint(26), plen 63: [msg: I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30 , lvl: 0, unused: 0] -[0.062263400] LOG: I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768 -EVENT[682]: 0.062284400 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461096, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.062284400] HEAP: Freed bytes @ 0x3ffbb768 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.062948325] LOG: I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30 +EVENT[819]: 0.062969525 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073458992, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.062969525] HEAP: Freed bytes @ 0x3ffbaf30 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[683]: 0.062314725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[684]: 0.062326200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[685]: 0.062342900 - core[1].svIdle(17), plen 0: [] -EVENT[686]: 0.062666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[687]: 0.062679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[688]: 0.062695450 - core[1].svIdle(17), plen 0: [] -EVENT[689]: 0.062833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[690]: 0.062848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[691]: 0.062861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[692]: 0.062877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[693]: 0.062912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461096, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.062912575] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc1" on core 0 by: +EVENT[820]: 0.062996800 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[821]: 0.063008250 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[822]: 0.063024950 - core[1].svIdle(17), plen 0: [] +EVENT[823]: 0.063448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[824]: 0.063461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[825]: 0.063477300 - core[1].svIdle(17), plen 0: [] +EVENT[826]: 0.063546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[827]: 0.063561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[828]: 0.063561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[829]: 0.063573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[830]: 0.063573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[831]: 0.063585975 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[832]: 0.063601625 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[833]: 0.063638000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073458992, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.063638000] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[694]: 0.062947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461112, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.062947000] HEAP: Allocated 12 bytes @ 0x3ffbb778 from task "alloc1" on core 0 by: +EVENT[834]: 0.063677550 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459008, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.063677550] HEAP: Allocated 12 bytes @ 0x3ffbaf40 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[695]: 0.062964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[696]: 0.062980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[697]: 0.063046500 - core[0].svPrint(26), plen 70: [msg: I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778 +EVENT[835]: 0.063694500 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[836]: 0.063710500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[837]: 0.063765225 - core[0].svPrint(26), plen 70: [msg: I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40 , lvl: 0, unused: 0] -[0.063046500] LOG: I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778 -EVENT[698]: 0.063060050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[699]: 0.063077450 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[700]: 0.063093775 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[701]: 0.063104625 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[702]: 0.063115375 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[703]: 0.063129100 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[704]: 0.063139950 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[705]: 0.063150775 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[706]: 0.063162625 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[707]: 0.063172900 - core[0].svIdle(17), plen 0: [] -EVENT[708]: 0.063184375 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[709]: 0.063200675 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[710]: 0.063264125 - core[1].svPrint(26), plen 63: [msg: I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778 -, lvl: 0, unused: 0] -[0.063264125] LOG: I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778 -EVENT[711]: 0.063285275 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461112, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.063285275] HEAP: Freed bytes @ 0x3ffbb778 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[712]: 0.063312400 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[713]: 0.063323825 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[714]: 0.063340400 - core[1].svIdle(17), plen 0: [] -EVENT[715]: 0.063666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[716]: 0.063679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[717]: 0.063695550 - core[1].svIdle(17), plen 0: [] -EVENT[718]: 0.063833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[719]: 0.063848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[720]: 0.063861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[721]: 0.063877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[722]: 0.063912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461112, size: 9, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.063912650] HEAP: Allocated 9 bytes @ 0x3ffbb778 from task "alloc2" on core 0 by: +[0.063765225] LOG: I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40 +EVENT[838]: 0.063778675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[839]: 0.063791925 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[840]: 0.063791925 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[841]: 0.063808275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[842]: 0.063819125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[843]: 0.063830100 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[844]: 0.063844100 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[845]: 0.063855800 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[846]: 0.063867200 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[847]: 0.063879175 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[848]: 0.063890875 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[849]: 0.063903475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[850]: 0.063925875 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[851]: 0.063937325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459024, size: 9, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.063937325] HEAP: Allocated 9 bytes @ 0x3ffbaf50 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[723]: 0.063951300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461128, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.063951300] HEAP: Allocated 18 bytes @ 0x3ffbb788 from task "alloc2" on core 0 by: +EVENT[852]: 0.063978425 - core[1].svPrint(26), plen 63: [msg: I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40 +, lvl: 0, unused: 0] +[0.063978425] LOG: I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40 +EVENT[853]: 0.063989600 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.063989600] HEAP: Allocated 18 bytes @ 0x3ffbaf60 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[724]: 0.063968200 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[725]: 0.063984175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[726]: 0.064054525 - core[0].svPrint(26), plen 70: [msg: I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788 -, lvl: 0, unused: 0] -[0.064054525] LOG: I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788 -EVENT[727]: 0.064068125 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[728]: 0.064081350 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[729]: 0.064097650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[730]: 0.064108500 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[731]: 0.064119275 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[732]: 0.064133000 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[733]: 0.064143875 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[734]: 0.064154700 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[735]: 0.064166575 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[736]: 0.064177850 - core[0].svIdle(17), plen 0: [] -EVENT[737]: 0.064189500 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[738]: 0.064209950 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[739]: 0.064273500 - core[1].svPrint(26), plen 63: [msg: I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788 -, lvl: 0, unused: 0] -[0.064273500] LOG: I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788 -EVENT[740]: 0.064294700 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461128, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.064294700] HEAP: Freed bytes @ 0x3ffbb788 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[854]: 0.064003900 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459008, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.064003900] HEAP: Freed bytes @ 0x3ffbaf40 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[741]: 0.064321575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[742]: 0.064333000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[743]: 0.064349575 - core[1].svIdle(17), plen 0: [] -EVENT[744]: 0.064666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[745]: 0.064679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[746]: 0.064695550 - core[1].svIdle(17), plen 0: [] -EVENT[747]: 0.064833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[748]: 0.064849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[749]: 0.064864250 - core[0].svIdle(17), plen 0: [] -EVENT[750]: 0.065666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[751]: 0.065680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[752]: 0.065695350 - core[1].svIdle(17), plen 0: [] -EVENT[753]: 0.065833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[754]: 0.065849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[755]: 0.065864250 - core[0].svIdle(17), plen 0: [] -EVENT[756]: 0.066666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[757]: 0.066680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[758]: 0.066695125 - core[1].svIdle(17), plen 0: [] -EVENT[759]: 0.066833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[760]: 0.066849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[761]: 0.066864250 - core[0].svIdle(17), plen 0: [] -EVENT[762]: 0.067666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[763]: 0.067680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[764]: 0.067695225 - core[1].svIdle(17), plen 0: [] -EVENT[765]: 0.067833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[766]: 0.067849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[767]: 0.067864425 - core[0].svIdle(17), plen 0: [] -EVENT[768]: 0.068666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[769]: 0.068679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[770]: 0.068695100 - core[1].svIdle(17), plen 0: [] -EVENT[771]: 0.068833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[772]: 0.068849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[773]: 0.068864250 - core[0].svIdle(17), plen 0: [] -EVENT[774]: 0.069666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[775]: 0.069680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[776]: 0.069695350 - core[1].svIdle(17), plen 0: [] -EVENT[777]: 0.069833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[778]: 0.069849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[779]: 0.069868575 - core[0].svIdle(17), plen 0: [] -EVENT[780]: 0.070666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[781]: 0.070679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[782]: 0.070695100 - core[1].svIdle(17), plen 0: [] -EVENT[783]: 0.070833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[784]: 0.070849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[785]: 0.070864250 - core[0].svIdle(17), plen 0: [] -EVENT[786]: 0.071666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[787]: 0.071680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[788]: 0.071695350 - core[1].svIdle(17), plen 0: [] -EVENT[789]: 0.071833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[790]: 0.071849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[791]: 0.071864250 - core[0].svIdle(17), plen 0: [] -EVENT[792]: 0.072666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[793]: 0.072680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[794]: 0.072695125 - core[1].svIdle(17), plen 0: [] -EVENT[795]: 0.072833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[796]: 0.072849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[797]: 0.072864250 - core[0].svIdle(17), plen 0: [] -EVENT[798]: 0.073666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[799]: 0.073680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[800]: 0.073695225 - core[1].svIdle(17), plen 0: [] -EVENT[801]: 0.073833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[802]: 0.073849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[803]: 0.073864425 - core[0].svIdle(17), plen 0: [] -EVENT[804]: 0.074666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[805]: 0.074679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[806]: 0.074695100 - core[1].svIdle(17), plen 0: [] -EVENT[807]: 0.074833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[808]: 0.074849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[809]: 0.074864250 - core[0].svIdle(17), plen 0: [] -EVENT[810]: 0.075666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[811]: 0.075680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[812]: 0.075695350 - core[1].svIdle(17), plen 0: [] -EVENT[813]: 0.075833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[814]: 0.075849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[815]: 0.075864250 - core[0].svIdle(17), plen 0: [] -EVENT[816]: 0.076666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[817]: 0.076680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[818]: 0.076695125 - core[1].svIdle(17), plen 0: [] -EVENT[819]: 0.076833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[820]: 0.076849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[821]: 0.076864250 - core[0].svIdle(17), plen 0: [] -EVENT[822]: 0.077666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[823]: 0.077680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[824]: 0.077695225 - core[1].svIdle(17), plen 0: [] -EVENT[825]: 0.077833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[826]: 0.077849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[827]: 0.077864425 - core[0].svIdle(17), plen 0: [] -EVENT[828]: 0.078666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[829]: 0.078679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[830]: 0.078695100 - core[1].svIdle(17), plen 0: [] -EVENT[831]: 0.078833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[832]: 0.078849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[833]: 0.078864250 - core[0].svIdle(17), plen 0: [] -EVENT[834]: 0.079666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[835]: 0.079680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[836]: 0.079695350 - core[1].svIdle(17), plen 0: [] -EVENT[837]: 0.079833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[838]: 0.079849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[839]: 0.079864250 - core[0].svIdle(17), plen 0: [] -EVENT[840]: 0.080666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[841]: 0.080680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[842]: 0.080695125 - core[1].svIdle(17), plen 0: [] -EVENT[843]: 0.080833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[844]: 0.080849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[845]: 0.080864250 - core[0].svIdle(17), plen 0: [] -EVENT[846]: 0.081666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[847]: 0.081680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[848]: 0.081695225 - core[1].svIdle(17), plen 0: [] -EVENT[849]: 0.081833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[850]: 0.081849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[851]: 0.081864425 - core[0].svIdle(17), plen 0: [] -EVENT[852]: 0.082666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[853]: 0.082680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[854]: 0.082695350 - core[1].svIdle(17), plen 0: [] -EVENT[855]: 0.082833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[856]: 0.082849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[857]: 0.082864250 - core[0].svIdle(17), plen 0: [] -EVENT[858]: 0.083666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[859]: 0.083680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[860]: 0.083695125 - core[1].svIdle(17), plen 0: [] -EVENT[861]: 0.083833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[862]: 0.083849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[863]: 0.083864250 - core[0].svIdle(17), plen 0: [] -EVENT[864]: 0.084666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[865]: 0.084680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[866]: 0.084695225 - core[1].svIdle(17), plen 0: [] -EVENT[867]: 0.084833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[868]: 0.084849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[869]: 0.084864425 - core[0].svIdle(17), plen 0: [] -EVENT[870]: 0.085666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[871]: 0.085679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[872]: 0.085695100 - core[1].svIdle(17), plen 0: [] -EVENT[873]: 0.085833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[874]: 0.085849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[875]: 0.085864250 - core[0].svIdle(17), plen 0: [] -EVENT[876]: 0.086666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[877]: 0.086680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[878]: 0.086695350 - core[1].svIdle(17), plen 0: [] -EVENT[879]: 0.086833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[880]: 0.086849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[881]: 0.086864250 - core[0].svIdle(17), plen 0: [] -EVENT[882]: 0.087666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[883]: 0.087680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[884]: 0.087695125 - core[1].svIdle(17), plen 0: [] -EVENT[885]: 0.087833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[886]: 0.087849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[887]: 0.087864250 - core[0].svIdle(17), plen 0: [] -EVENT[888]: 0.088666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[889]: 0.088680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[890]: 0.088695225 - core[1].svIdle(17), plen 0: [] -EVENT[891]: 0.088833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[892]: 0.088849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[893]: 0.088864425 - core[0].svIdle(17), plen 0: [] -EVENT[894]: 0.089666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[895]: 0.089679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[896]: 0.089695100 - core[1].svIdle(17), plen 0: [] -EVENT[897]: 0.089833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[898]: 0.089849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[899]: 0.089864250 - core[0].svIdle(17), plen 0: [] -EVENT[900]: 0.090666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[901]: 0.090680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[902]: 0.090695350 - core[1].svIdle(17), plen 0: [] -EVENT[903]: 0.090833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[904]: 0.090849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[905]: 0.090864250 - core[0].svIdle(17), plen 0: [] -EVENT[906]: 0.091666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[907]: 0.091680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[908]: 0.091695125 - core[1].svIdle(17), plen 0: [] -EVENT[909]: 0.091833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[910]: 0.091848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[911]: 0.091861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[912]: 0.091877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[913]: 0.091912475 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461128, size: 4, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.091912475] HEAP: Allocated 4 bytes @ 0x3ffbb788 from task "alloc0" on core 0 by: +EVENT[855]: 0.064017000 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[856]: 0.064035500 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[857]: 0.064046775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[858]: 0.064057575 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[859]: 0.064075725 - core[1].svIdle(17), plen 0: [] +EVENT[860]: 0.064103500 - core[0].svPrint(26), plen 70: [msg: I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60 +, lvl: 0, unused: 0] +[0.064103500] LOG: I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60 +EVENT[861]: 0.064121100 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[862]: 0.064134350 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[863]: 0.064134350 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[864]: 0.064150700 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[865]: 0.064161550 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[866]: 0.064172375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[867]: 0.064186200 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[868]: 0.064196950 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[869]: 0.064207700 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[870]: 0.064219800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[871]: 0.064231025 - core[0].svIdle(17), plen 0: [] +EVENT[872]: 0.064243350 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[873]: 0.064259600 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[874]: 0.064307475 - core[1].svPrint(26), plen 63: [msg: I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60 +, lvl: 0, unused: 0] +[0.064307475] LOG: I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60 +EVENT[875]: 0.064328875 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459040, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.064328875] HEAP: Freed bytes @ 0x3ffbaf60 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[876]: 0.064359750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[877]: 0.064371325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[878]: 0.064388025 - core[1].svIdle(17), plen 0: [] +EVENT[879]: 0.064448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[880]: 0.064461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[881]: 0.064477200 - core[1].svIdle(17), plen 0: [] +EVENT[882]: 0.064546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[883]: 0.064562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[884]: 0.064577275 - core[0].svIdle(17), plen 0: [] +EVENT[885]: 0.065448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[886]: 0.065461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[887]: 0.065476850 - core[1].svIdle(17), plen 0: [] +EVENT[888]: 0.065546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[889]: 0.065562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[890]: 0.065577075 - core[0].svIdle(17), plen 0: [] +EVENT[891]: 0.066448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[892]: 0.066461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[893]: 0.066476975 - core[1].svIdle(17), plen 0: [] +EVENT[894]: 0.066546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[895]: 0.066562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[896]: 0.066577225 - core[0].svIdle(17), plen 0: [] +EVENT[897]: 0.067448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[898]: 0.067461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[899]: 0.067476900 - core[1].svIdle(17), plen 0: [] +EVENT[900]: 0.067546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[901]: 0.067562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[902]: 0.067577075 - core[0].svIdle(17), plen 0: [] +EVENT[903]: 0.068448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[904]: 0.068461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[905]: 0.068476850 - core[1].svIdle(17), plen 0: [] +EVENT[906]: 0.068546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[907]: 0.068562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[908]: 0.068577275 - core[0].svIdle(17), plen 0: [] +EVENT[909]: 0.069448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[910]: 0.069461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[911]: 0.069476850 - core[1].svIdle(17), plen 0: [] +EVENT[912]: 0.069546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[913]: 0.069562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[914]: 0.069577075 - core[0].svIdle(17), plen 0: [] +EVENT[915]: 0.070448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[916]: 0.070461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[917]: 0.070476975 - core[1].svIdle(17), plen 0: [] +EVENT[918]: 0.070546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[919]: 0.070562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[920]: 0.070577225 - core[0].svIdle(17), plen 0: [] +EVENT[921]: 0.071448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[922]: 0.071461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[923]: 0.071476900 - core[1].svIdle(17), plen 0: [] +EVENT[924]: 0.071546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[925]: 0.071562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[926]: 0.071577075 - core[0].svIdle(17), plen 0: [] +EVENT[927]: 0.072448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[928]: 0.072461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[929]: 0.072476850 - core[1].svIdle(17), plen 0: [] +EVENT[930]: 0.072546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[931]: 0.072562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[932]: 0.072577275 - core[0].svIdle(17), plen 0: [] +EVENT[933]: 0.073448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[934]: 0.073461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[935]: 0.073476850 - core[1].svIdle(17), plen 0: [] +EVENT[936]: 0.073546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[937]: 0.073562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[938]: 0.073577075 - core[0].svIdle(17), plen 0: [] +EVENT[939]: 0.074448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[940]: 0.074465975 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[941]: 0.074481225 - core[1].svIdle(17), plen 0: [] +EVENT[942]: 0.074546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[943]: 0.074562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[944]: 0.074577075 - core[0].svIdle(17), plen 0: [] +EVENT[945]: 0.075448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[946]: 0.075461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[947]: 0.075476850 - core[1].svIdle(17), plen 0: [] +EVENT[948]: 0.075546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[949]: 0.075562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[950]: 0.075577275 - core[0].svIdle(17), plen 0: [] +EVENT[951]: 0.076448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[952]: 0.076461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[953]: 0.076476850 - core[1].svIdle(17), plen 0: [] +EVENT[954]: 0.076546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[955]: 0.076562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[956]: 0.076577075 - core[0].svIdle(17), plen 0: [] +EVENT[957]: 0.077448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[958]: 0.077461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[959]: 0.077476975 - core[1].svIdle(17), plen 0: [] +EVENT[960]: 0.077546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[961]: 0.077562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[962]: 0.077577225 - core[0].svIdle(17), plen 0: [] +EVENT[963]: 0.078448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[964]: 0.078461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[965]: 0.078476900 - core[1].svIdle(17), plen 0: [] +EVENT[966]: 0.078546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[967]: 0.078562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[968]: 0.078577075 - core[0].svIdle(17), plen 0: [] +EVENT[969]: 0.079448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[970]: 0.079461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[971]: 0.079476850 - core[1].svIdle(17), plen 0: [] +EVENT[972]: 0.079546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[973]: 0.079562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[974]: 0.079577275 - core[0].svIdle(17), plen 0: [] +EVENT[975]: 0.080448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[976]: 0.080461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[977]: 0.080476850 - core[1].svIdle(17), plen 0: [] +EVENT[978]: 0.080546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[979]: 0.080562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[980]: 0.080577075 - core[0].svIdle(17), plen 0: [] +EVENT[981]: 0.081448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[982]: 0.081461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[983]: 0.081476975 - core[1].svIdle(17), plen 0: [] +EVENT[984]: 0.081546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[985]: 0.081562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[986]: 0.081577225 - core[0].svIdle(17), plen 0: [] +EVENT[987]: 0.082448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[988]: 0.082461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[989]: 0.082476900 - core[1].svIdle(17), plen 0: [] +EVENT[990]: 0.082546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[991]: 0.082562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[992]: 0.082577075 - core[0].svIdle(17), plen 0: [] +EVENT[993]: 0.083448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[994]: 0.083461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[995]: 0.083476850 - core[1].svIdle(17), plen 0: [] +EVENT[996]: 0.083546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[997]: 0.083562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[998]: 0.083577275 - core[0].svIdle(17), plen 0: [] +EVENT[999]: 0.084448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1000]: 0.084461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1001]: 0.084476850 - core[1].svIdle(17), plen 0: [] +EVENT[1002]: 0.084546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1003]: 0.084562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1004]: 0.084577075 - core[0].svIdle(17), plen 0: [] +EVENT[1005]: 0.085448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1006]: 0.085461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1007]: 0.085476975 - core[1].svIdle(17), plen 0: [] +EVENT[1008]: 0.085546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1009]: 0.085562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1010]: 0.085577225 - core[0].svIdle(17), plen 0: [] +EVENT[1011]: 0.086448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1012]: 0.086465300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1013]: 0.086480450 - core[1].svIdle(17), plen 0: [] +EVENT[1014]: 0.086546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1015]: 0.086562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1016]: 0.086577075 - core[0].svIdle(17), plen 0: [] +EVENT[1017]: 0.087448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1018]: 0.087461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1019]: 0.087476850 - core[1].svIdle(17), plen 0: [] +EVENT[1020]: 0.087546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1021]: 0.087562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1022]: 0.087577275 - core[0].svIdle(17), plen 0: [] +EVENT[1023]: 0.088448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1024]: 0.088461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1025]: 0.088476850 - core[1].svIdle(17), plen 0: [] +EVENT[1026]: 0.088546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1027]: 0.088562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1028]: 0.088577075 - core[0].svIdle(17), plen 0: [] +EVENT[1029]: 0.089448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1030]: 0.089461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1031]: 0.089476975 - core[1].svIdle(17), plen 0: [] +EVENT[1032]: 0.089546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1033]: 0.089562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1034]: 0.089577225 - core[0].svIdle(17), plen 0: [] +EVENT[1035]: 0.090448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1036]: 0.090461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1037]: 0.090476900 - core[1].svIdle(17), plen 0: [] +EVENT[1038]: 0.090546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1039]: 0.090562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1040]: 0.090577075 - core[0].svIdle(17), plen 0: [] +EVENT[1041]: 0.091448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1042]: 0.091461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1043]: 0.091476850 - core[1].svIdle(17), plen 0: [] +EVENT[1044]: 0.091546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1045]: 0.091562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1046]: 0.091577275 - core[0].svIdle(17), plen 0: [] +EVENT[1047]: 0.092448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1048]: 0.092461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1049]: 0.092476850 - core[1].svIdle(17), plen 0: [] +EVENT[1050]: 0.092546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1051]: 0.092561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1052]: 0.092561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1053]: 0.092574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1054]: 0.092590075 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1055]: 0.092625125 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459008, size: 4, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.092625125] HEAP: Allocated 4 bytes @ 0x3ffbaf40 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[914]: 0.091950300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461144, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.091950300] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc0" on core 0 by: +EVENT[1056]: 0.092660700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.092660700] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[915]: 0.091967200 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[916]: 0.091983200 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[917]: 0.092047350 - core[0].svPrint(26), plen 69: [msg: I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798 +EVENT[1057]: 0.092677675 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1058]: 0.092693775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1059]: 0.092750550 - core[0].svPrint(26), plen 69: [msg: I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60 , lvl: 0, unused: 0] -[0.092047350] LOG: I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798 -EVENT[918]: 0.092060925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[919]: 0.092074075 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[920]: 0.092090275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[921]: 0.092101125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[922]: 0.092111925 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[923]: 0.092125800 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[924]: 0.092136625 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[925]: 0.092147475 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[926]: 0.092159350 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[927]: 0.092169575 - core[0].svIdle(17), plen 0: [] -EVENT[928]: 0.092181050 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[929]: 0.092201300 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[930]: 0.092264850 - core[1].svPrint(26), plen 63: [msg: I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798 +[0.092750550] LOG: I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60 +EVENT[1060]: 0.092764000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1061]: 0.092777225 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1062]: 0.092777225 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1063]: 0.092793475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1064]: 0.092804425 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1065]: 0.092815175 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1066]: 0.092828925 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1067]: 0.092839650 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1068]: 0.092850450 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1069]: 0.092862450 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1070]: 0.092872675 - core[0].svIdle(17), plen 0: [] +EVENT[1071]: 0.092884425 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1072]: 0.092900700 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1073]: 0.092948475 - core[1].svPrint(26), plen 63: [msg: I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60 , lvl: 0, unused: 0] -[0.092264850] LOG: I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798 -EVENT[931]: 0.092286050 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461144, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.092286050] HEAP: Freed bytes @ 0x3ffbb798 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.092948475] LOG: I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60 +EVENT[1074]: 0.092969850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459040, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.092969850] HEAP: Freed bytes @ 0x3ffbaf60 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[932]: 0.092312950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[933]: 0.092324500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[934]: 0.092341075 - core[1].svIdle(17), plen 0: [] -EVENT[935]: 0.092666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[936]: 0.092679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[937]: 0.092695550 - core[1].svIdle(17), plen 0: [] -EVENT[938]: 0.092833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[939]: 0.092848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[940]: 0.092861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[941]: 0.092877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[942]: 0.092912775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461144, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.092912775] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc1" on core 0 by: +EVENT[1075]: 0.093001300 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1076]: 0.093012750 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1077]: 0.093029450 - core[1].svIdle(17), plen 0: [] +EVENT[1078]: 0.093448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1079]: 0.093461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1080]: 0.093477300 - core[1].svIdle(17), plen 0: [] +EVENT[1081]: 0.093546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1082]: 0.093561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1083]: 0.093561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1084]: 0.093573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1085]: 0.093573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1086]: 0.093585975 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1087]: 0.093601625 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1088]: 0.093638000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459040, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.093638000] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[943]: 0.092947300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461160, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.092947300] HEAP: Allocated 16 bytes @ 0x3ffbb7a8 from task "alloc1" on core 0 by: +EVENT[1089]: 0.093673450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459056, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.093673450] HEAP: Allocated 16 bytes @ 0x3ffbaf70 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[944]: 0.092964250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[945]: 0.092984425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[946]: 0.093050900 - core[0].svPrint(26), plen 70: [msg: I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8 +EVENT[1090]: 0.093690500 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1091]: 0.093706525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1092]: 0.093761350 - core[0].svPrint(26), plen 70: [msg: I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70 , lvl: 0, unused: 0] -[0.093050900] LOG: I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8 -EVENT[947]: 0.093064550 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[948]: 0.093077850 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[949]: 0.093094175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[950]: 0.093105025 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[951]: 0.093115775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[952]: 0.093129500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[953]: 0.093140350 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[954]: 0.093151175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[955]: 0.093163025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[956]: 0.093173300 - core[0].svIdle(17), plen 0: [] -EVENT[957]: 0.093184775 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[958]: 0.093201075 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[959]: 0.093264525 - core[1].svPrint(26), plen 63: [msg: I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8 -, lvl: 0, unused: 0] -[0.093264525] LOG: I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8 -EVENT[960]: 0.093289550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461160, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.093289550] HEAP: Freed bytes @ 0x3ffbb7a8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[961]: 0.093316550 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[962]: 0.093327975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[963]: 0.093344550 - core[1].svIdle(17), plen 0: [] -EVENT[964]: 0.093666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[965]: 0.093679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[966]: 0.093695550 - core[1].svIdle(17), plen 0: [] -EVENT[967]: 0.093833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[968]: 0.093848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[969]: 0.093861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[970]: 0.093877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[971]: 0.093912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461160, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.093912650] HEAP: Allocated 12 bytes @ 0x3ffbb7a8 from task "alloc2" on core 0 by: +[0.093761350] LOG: I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70 +EVENT[1093]: 0.093778125 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1094]: 0.093791500 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1095]: 0.093791500 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1096]: 0.093807850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1097]: 0.093818700 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1098]: 0.093829525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1099]: 0.093843300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1100]: 0.093855250 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1101]: 0.093866400 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1102]: 0.093878350 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1103]: 0.093890000 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1104]: 0.093901700 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1105]: 0.093920300 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1106]: 0.093933400 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459076, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.093933400] HEAP: Allocated 12 bytes @ 0x3ffbaf84 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[972]: 0.093947050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461176, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.093947050] HEAP: Allocated 24 bytes @ 0x3ffbb7b8 from task "alloc2" on core 0 by: +EVENT[1107]: 0.093973950 - core[1].svPrint(26), plen 63: [msg: I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70 +, lvl: 0, unused: 0] +[0.093973950] LOG: I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70 +EVENT[1108]: 0.093989825 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.093989825] HEAP: Allocated 24 bytes @ 0x3ffbaf94 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[973]: 0.093963950 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[974]: 0.093980050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[975]: 0.094050525 - core[0].svPrint(26), plen 70: [msg: I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8 -, lvl: 0, unused: 0] -[0.094050525] LOG: I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8 -EVENT[976]: 0.094068350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[977]: 0.094081575 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[978]: 0.094097875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[979]: 0.094108725 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[980]: 0.094119500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[981]: 0.094133225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[982]: 0.094144100 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[983]: 0.094154925 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[984]: 0.094166800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[985]: 0.094178075 - core[0].svIdle(17), plen 0: [] -EVENT[986]: 0.094189725 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[987]: 0.094206100 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[988]: 0.094269650 - core[1].svPrint(26), plen 63: [msg: I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8 -, lvl: 0, unused: 0] -[0.094269650] LOG: I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8 -EVENT[989]: 0.094290850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461176, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.094290850] HEAP: Freed bytes @ 0x3ffbb7b8 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1109]: 0.094004125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459056, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.094004125] HEAP: Freed bytes @ 0x3ffbaf70 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[990]: 0.094321875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[991]: 0.094333350 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[992]: 0.094350050 - core[1].svIdle(17), plen 0: [] -EVENT[993]: 0.094666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[994]: 0.094679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[995]: 0.094695450 - core[1].svIdle(17), plen 0: [] -EVENT[996]: 0.094833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[997]: 0.094849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[998]: 0.094864425 - core[0].svIdle(17), plen 0: [] -EVENT[999]: 0.095666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1000]: 0.095679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1001]: 0.095695100 - core[1].svIdle(17), plen 0: [] -EVENT[1002]: 0.095833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1003]: 0.095849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1004]: 0.095864250 - core[0].svIdle(17), plen 0: [] -EVENT[1005]: 0.096666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1006]: 0.096680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1007]: 0.096695350 - core[1].svIdle(17), plen 0: [] -EVENT[1008]: 0.096833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1009]: 0.096849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1010]: 0.096864250 - core[0].svIdle(17), plen 0: [] -EVENT[1011]: 0.097666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1012]: 0.097680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1013]: 0.097695125 - core[1].svIdle(17), plen 0: [] -EVENT[1014]: 0.097833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1015]: 0.097849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1016]: 0.097864250 - core[0].svIdle(17), plen 0: [] -EVENT[1017]: 0.098666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1018]: 0.098680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1019]: 0.098695225 - core[1].svIdle(17), plen 0: [] -EVENT[1020]: 0.098833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1021]: 0.098849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1022]: 0.098864425 - core[0].svIdle(17), plen 0: [] -EVENT[1023]: 0.099666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1024]: 0.099679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1025]: 0.099695100 - core[1].svIdle(17), plen 0: [] -EVENT[1026]: 0.099833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1027]: 0.099849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1028]: 0.099864250 - core[0].svIdle(17), plen 0: [] -EVENT[1029]: 0.100666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1030]: 0.100680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1031]: 0.100695350 - core[1].svIdle(17), plen 0: [] -EVENT[1032]: 0.100833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1033]: 0.100849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1034]: 0.100864250 - core[0].svIdle(17), plen 0: [] -EVENT[1035]: 0.101666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1036]: 0.101680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1037]: 0.101695125 - core[1].svIdle(17), plen 0: [] -EVENT[1038]: 0.101833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1039]: 0.101849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1040]: 0.101864250 - core[0].svIdle(17), plen 0: [] -EVENT[1041]: 0.102666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1042]: 0.102680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1043]: 0.102695225 - core[1].svIdle(17), plen 0: [] -EVENT[1044]: 0.102833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1045]: 0.102849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1046]: 0.102864425 - core[0].svIdle(17), plen 0: [] -EVENT[1047]: 0.103666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1048]: 0.103679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1049]: 0.103695100 - core[1].svIdle(17), plen 0: [] -EVENT[1050]: 0.103833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1051]: 0.103849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1052]: 0.103864250 - core[0].svIdle(17), plen 0: [] -EVENT[1053]: 0.104666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1054]: 0.104683575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1055]: 0.104698725 - core[1].svIdle(17), plen 0: [] -EVENT[1056]: 0.104833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1057]: 0.104849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1058]: 0.104864250 - core[0].svIdle(17), plen 0: [] -EVENT[1059]: 0.105666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1060]: 0.105680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1061]: 0.105695225 - core[1].svIdle(17), plen 0: [] -EVENT[1062]: 0.105833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1063]: 0.105849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1064]: 0.105864425 - core[0].svIdle(17), plen 0: [] -EVENT[1065]: 0.106666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1066]: 0.106679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1067]: 0.106695100 - core[1].svIdle(17), plen 0: [] -EVENT[1068]: 0.106833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1069]: 0.106849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1070]: 0.106864250 - core[0].svIdle(17), plen 0: [] -EVENT[1071]: 0.107666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1072]: 0.107680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1073]: 0.107695350 - core[1].svIdle(17), plen 0: [] -EVENT[1074]: 0.107833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1075]: 0.107849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1076]: 0.107864250 - core[0].svIdle(17), plen 0: [] -EVENT[1077]: 0.108666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1078]: 0.108680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1079]: 0.108695125 - core[1].svIdle(17), plen 0: [] -EVENT[1080]: 0.108833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1081]: 0.108849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1082]: 0.108864250 - core[0].svIdle(17), plen 0: [] -EVENT[1083]: 0.109666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1084]: 0.109680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1085]: 0.109695225 - core[1].svIdle(17), plen 0: [] -EVENT[1086]: 0.109833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1087]: 0.109849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1088]: 0.109864425 - core[0].svIdle(17), plen 0: [] -EVENT[1089]: 0.110666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1090]: 0.110679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1091]: 0.110695100 - core[1].svIdle(17), plen 0: [] -EVENT[1092]: 0.110833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1093]: 0.110849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1094]: 0.110864250 - core[0].svIdle(17), plen 0: [] -EVENT[1095]: 0.111666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1096]: 0.111680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1097]: 0.111695350 - core[1].svIdle(17), plen 0: [] -EVENT[1098]: 0.111833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1099]: 0.111849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1100]: 0.111864250 - core[0].svIdle(17), plen 0: [] -EVENT[1101]: 0.112666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1102]: 0.112680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1103]: 0.112695125 - core[1].svIdle(17), plen 0: [] -EVENT[1104]: 0.112833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1105]: 0.112849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1106]: 0.112864250 - core[0].svIdle(17), plen 0: [] -EVENT[1107]: 0.113666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1108]: 0.113680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1109]: 0.113695225 - core[1].svIdle(17), plen 0: [] -EVENT[1110]: 0.113833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1111]: 0.113849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1112]: 0.113864425 - core[0].svIdle(17), plen 0: [] -EVENT[1113]: 0.114666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1114]: 0.114679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1115]: 0.114695100 - core[1].svIdle(17), plen 0: [] -EVENT[1116]: 0.114833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1117]: 0.114849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1118]: 0.114864250 - core[0].svIdle(17), plen 0: [] -EVENT[1119]: 0.115666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1120]: 0.115680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1121]: 0.115695350 - core[1].svIdle(17), plen 0: [] -EVENT[1122]: 0.115833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1123]: 0.115849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1124]: 0.115864250 - core[0].svIdle(17), plen 0: [] -EVENT[1125]: 0.116666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1126]: 0.116684225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1127]: 0.116699375 - core[1].svIdle(17), plen 0: [] -EVENT[1128]: 0.116833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1129]: 0.116849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1130]: 0.116864250 - core[0].svIdle(17), plen 0: [] -EVENT[1131]: 0.117666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1132]: 0.117680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1133]: 0.117695225 - core[1].svIdle(17), plen 0: [] -EVENT[1134]: 0.117833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1135]: 0.117849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1136]: 0.117864425 - core[0].svIdle(17), plen 0: [] -EVENT[1137]: 0.118666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1138]: 0.118679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1139]: 0.118695100 - core[1].svIdle(17), plen 0: [] -EVENT[1140]: 0.118833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1141]: 0.118849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1142]: 0.118864250 - core[0].svIdle(17), plen 0: [] -EVENT[1143]: 0.119666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1144]: 0.119680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1145]: 0.119695350 - core[1].svIdle(17), plen 0: [] -EVENT[1146]: 0.119833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1147]: 0.119849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1148]: 0.119864250 - core[0].svIdle(17), plen 0: [] -EVENT[1149]: 0.120666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1150]: 0.120680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1151]: 0.120695125 - core[1].svIdle(17), plen 0: [] -EVENT[1152]: 0.120833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1153]: 0.120849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1154]: 0.120864250 - core[0].svIdle(17), plen 0: [] -EVENT[1155]: 0.121666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1156]: 0.121680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1157]: 0.121695225 - core[1].svIdle(17), plen 0: [] -EVENT[1158]: 0.121833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1159]: 0.121848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1160]: 0.121861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1161]: 0.121877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1162]: 0.121912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461176, size: 5, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.121912575] HEAP: Allocated 5 bytes @ 0x3ffbb7b8 from task "alloc0" on core 0 by: +EVENT[1110]: 0.094016550 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1111]: 0.094036600 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1112]: 0.094047525 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1113]: 0.094059050 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1114]: 0.094077025 - core[1].svIdle(17), plen 0: [] +EVENT[1115]: 0.094095025 - core[0].svPrint(26), plen 70: [msg: I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94 +, lvl: 0, unused: 0] +[0.094095025] LOG: I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94 +EVENT[1116]: 0.094108450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1117]: 0.094125225 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1118]: 0.094125225 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1119]: 0.094141575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1120]: 0.094152425 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1121]: 0.094163250 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1122]: 0.094177050 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1123]: 0.094187800 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1124]: 0.094198600 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1125]: 0.094210550 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1126]: 0.094221775 - core[0].svIdle(17), plen 0: [] +EVENT[1127]: 0.094233600 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1128]: 0.094249850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1129]: 0.094297625 - core[1].svPrint(26), plen 63: [msg: I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94 +, lvl: 0, unused: 0] +[0.094297625] LOG: I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94 +EVENT[1130]: 0.094319000 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459092, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.094319000] HEAP: Freed bytes @ 0x3ffbaf94 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1131]: 0.094346425 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1132]: 0.094357825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1133]: 0.094374400 - core[1].svIdle(17), plen 0: [] +EVENT[1134]: 0.094448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1135]: 0.094461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1136]: 0.094477200 - core[1].svIdle(17), plen 0: [] +EVENT[1137]: 0.094546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1138]: 0.094562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1139]: 0.094577075 - core[0].svIdle(17), plen 0: [] +EVENT[1140]: 0.095448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1141]: 0.095461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1142]: 0.095476850 - core[1].svIdle(17), plen 0: [] +EVENT[1143]: 0.095546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1144]: 0.095562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1145]: 0.095577275 - core[0].svIdle(17), plen 0: [] +EVENT[1146]: 0.096448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1147]: 0.096461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1148]: 0.096476850 - core[1].svIdle(17), plen 0: [] +EVENT[1149]: 0.096546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1150]: 0.096565625 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1151]: 0.096580850 - core[0].svIdle(17), plen 0: [] +EVENT[1152]: 0.097448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1153]: 0.097461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1154]: 0.097476850 - core[1].svIdle(17), plen 0: [] +EVENT[1155]: 0.097546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1156]: 0.097562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1157]: 0.097577075 - core[0].svIdle(17), plen 0: [] +EVENT[1158]: 0.098448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1159]: 0.098461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1160]: 0.098476975 - core[1].svIdle(17), plen 0: [] +EVENT[1161]: 0.098546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1162]: 0.098562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1163]: 0.098577225 - core[0].svIdle(17), plen 0: [] +EVENT[1164]: 0.099448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1165]: 0.099461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1166]: 0.099476900 - core[1].svIdle(17), plen 0: [] +EVENT[1167]: 0.099546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1168]: 0.099562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1169]: 0.099577075 - core[0].svIdle(17), plen 0: [] +EVENT[1170]: 0.100448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1171]: 0.100461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1172]: 0.100476850 - core[1].svIdle(17), plen 0: [] +EVENT[1173]: 0.100546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1174]: 0.100562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1175]: 0.100577275 - core[0].svIdle(17), plen 0: [] +EVENT[1176]: 0.101448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1177]: 0.101461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1178]: 0.101476850 - core[1].svIdle(17), plen 0: [] +EVENT[1179]: 0.101546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1180]: 0.101562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1181]: 0.101577075 - core[0].svIdle(17), plen 0: [] +EVENT[1182]: 0.102448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1183]: 0.102461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1184]: 0.102476975 - core[1].svIdle(17), plen 0: [] +EVENT[1185]: 0.102546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1186]: 0.102562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1187]: 0.102577225 - core[0].svIdle(17), plen 0: [] +EVENT[1188]: 0.103448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1189]: 0.103461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1190]: 0.103476900 - core[1].svIdle(17), plen 0: [] +EVENT[1191]: 0.103546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1192]: 0.103562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1193]: 0.103577075 - core[0].svIdle(17), plen 0: [] +EVENT[1194]: 0.104448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1195]: 0.104461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1196]: 0.104476850 - core[1].svIdle(17), plen 0: [] +EVENT[1197]: 0.104546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1198]: 0.104562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1199]: 0.104577275 - core[0].svIdle(17), plen 0: [] +EVENT[1200]: 0.105448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1201]: 0.105461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1202]: 0.105476850 - core[1].svIdle(17), plen 0: [] +EVENT[1203]: 0.105546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1204]: 0.105562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1205]: 0.105577075 - core[0].svIdle(17), plen 0: [] +EVENT[1206]: 0.106448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1207]: 0.106461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1208]: 0.106476975 - core[1].svIdle(17), plen 0: [] +EVENT[1209]: 0.106546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1210]: 0.106562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1211]: 0.106577225 - core[0].svIdle(17), plen 0: [] +EVENT[1212]: 0.107448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1213]: 0.107461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1214]: 0.107476900 - core[1].svIdle(17), plen 0: [] +EVENT[1215]: 0.107546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1216]: 0.107562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1217]: 0.107577075 - core[0].svIdle(17), plen 0: [] +EVENT[1218]: 0.108448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1219]: 0.108461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1220]: 0.108476850 - core[1].svIdle(17), plen 0: [] +EVENT[1221]: 0.108546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1222]: 0.108566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1223]: 0.108581500 - core[0].svIdle(17), plen 0: [] +EVENT[1224]: 0.109448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1225]: 0.109461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1226]: 0.109476850 - core[1].svIdle(17), plen 0: [] +EVENT[1227]: 0.109546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1228]: 0.109562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1229]: 0.109577075 - core[0].svIdle(17), plen 0: [] +EVENT[1230]: 0.110448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1231]: 0.110461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1232]: 0.110476975 - core[1].svIdle(17), plen 0: [] +EVENT[1233]: 0.110546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1234]: 0.110562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1235]: 0.110577225 - core[0].svIdle(17), plen 0: [] +EVENT[1236]: 0.111448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1237]: 0.111461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1238]: 0.111476900 - core[1].svIdle(17), plen 0: [] +EVENT[1239]: 0.111546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1240]: 0.111562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1241]: 0.111577075 - core[0].svIdle(17), plen 0: [] +EVENT[1242]: 0.112448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1243]: 0.112461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1244]: 0.112476850 - core[1].svIdle(17), plen 0: [] +EVENT[1245]: 0.112546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1246]: 0.112562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1247]: 0.112577275 - core[0].svIdle(17), plen 0: [] +EVENT[1248]: 0.113448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1249]: 0.113461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1250]: 0.113476850 - core[1].svIdle(17), plen 0: [] +EVENT[1251]: 0.113546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1252]: 0.113562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1253]: 0.113577075 - core[0].svIdle(17), plen 0: [] +EVENT[1254]: 0.114448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1255]: 0.114461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1256]: 0.114476975 - core[1].svIdle(17), plen 0: [] +EVENT[1257]: 0.114546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1258]: 0.114562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1259]: 0.114577225 - core[0].svIdle(17), plen 0: [] +EVENT[1260]: 0.115448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1261]: 0.115461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1262]: 0.115476900 - core[1].svIdle(17), plen 0: [] +EVENT[1263]: 0.115546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1264]: 0.115562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1265]: 0.115577075 - core[0].svIdle(17), plen 0: [] +EVENT[1266]: 0.116448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1267]: 0.116461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1268]: 0.116476850 - core[1].svIdle(17), plen 0: [] +EVENT[1269]: 0.116546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1270]: 0.116562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1271]: 0.116577275 - core[0].svIdle(17), plen 0: [] +EVENT[1272]: 0.117448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1273]: 0.117461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1274]: 0.117476850 - core[1].svIdle(17), plen 0: [] +EVENT[1275]: 0.117546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1276]: 0.117562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1277]: 0.117577075 - core[0].svIdle(17), plen 0: [] +EVENT[1278]: 0.118448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1279]: 0.118461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1280]: 0.118476975 - core[1].svIdle(17), plen 0: [] +EVENT[1281]: 0.118546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1282]: 0.118562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1283]: 0.118577225 - core[0].svIdle(17), plen 0: [] +EVENT[1284]: 0.119448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1285]: 0.119461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1286]: 0.119476900 - core[1].svIdle(17), plen 0: [] +EVENT[1287]: 0.119546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1288]: 0.119562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1289]: 0.119577075 - core[0].svIdle(17), plen 0: [] +EVENT[1290]: 0.120448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1291]: 0.120461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1292]: 0.120476850 - core[1].svIdle(17), plen 0: [] +EVENT[1293]: 0.120546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1294]: 0.120566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1295]: 0.120581500 - core[0].svIdle(17), plen 0: [] +EVENT[1296]: 0.121448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1297]: 0.121461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1298]: 0.121476850 - core[1].svIdle(17), plen 0: [] +EVENT[1299]: 0.121546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1300]: 0.121562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1301]: 0.121577075 - core[0].svIdle(17), plen 0: [] +EVENT[1302]: 0.122448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1303]: 0.122461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1304]: 0.122476975 - core[1].svIdle(17), plen 0: [] +EVENT[1305]: 0.122546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1306]: 0.122561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1307]: 0.122561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1308]: 0.122574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1309]: 0.122589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1310]: 0.122624900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459056, size: 5, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.122624900] HEAP: Allocated 5 bytes @ 0x3ffbaf70 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1163]: 0.121947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461192, size: 10, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.121947000] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc0" on core 0 by: +EVENT[1311]: 0.122660375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 10, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.122660375] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1164]: 0.121964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1165]: 0.121980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1166]: 0.122050450 - core[0].svPrint(26), plen 70: [msg: I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8 +EVENT[1312]: 0.122677300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1313]: 0.122693250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1314]: 0.122748025 - core[0].svPrint(26), plen 70: [msg: I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94 , lvl: 0, unused: 0] -[0.122050450] LOG: I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8 -EVENT[1167]: 0.122068175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1168]: 0.122081400 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1169]: 0.122097650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1170]: 0.122108500 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1171]: 0.122119275 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1172]: 0.122133100 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1173]: 0.122144000 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1174]: 0.122154825 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1175]: 0.122166775 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1176]: 0.122177025 - core[0].svIdle(17), plen 0: [] -EVENT[1177]: 0.122188450 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1178]: 0.122204800 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1179]: 0.122268350 - core[1].svPrint(26), plen 63: [msg: I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8 +[0.122748025] LOG: I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94 +EVENT[1315]: 0.122761500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1316]: 0.122778850 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1317]: 0.122778850 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1318]: 0.122795100 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1319]: 0.122806050 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1320]: 0.122816825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1321]: 0.122830550 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1322]: 0.122841300 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1323]: 0.122852100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1324]: 0.122864075 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1325]: 0.122874325 - core[0].svIdle(17), plen 0: [] +EVENT[1326]: 0.122886075 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1327]: 0.122902350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1328]: 0.122950125 - core[1].svPrint(26), plen 63: [msg: I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94 , lvl: 0, unused: 0] -[0.122268350] LOG: I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8 -EVENT[1180]: 0.122289550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461192, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.122289550] HEAP: Freed bytes @ 0x3ffbb7c8 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.122950125] LOG: I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94 +EVENT[1329]: 0.122971500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459092, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.122971500] HEAP: Freed bytes @ 0x3ffbaf94 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1181]: 0.122320575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1182]: 0.122332175 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1183]: 0.122348875 - core[1].svIdle(17), plen 0: [] -EVENT[1184]: 0.122666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1185]: 0.122679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1186]: 0.122695450 - core[1].svIdle(17), plen 0: [] -EVENT[1187]: 0.122833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1188]: 0.122848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1189]: 0.122861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1190]: 0.122877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1191]: 0.122912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461192, size: 10, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.122912575] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc1" on core 0 by: +EVENT[1330]: 0.122998900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1331]: 0.123010325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1332]: 0.123026875 - core[1].svIdle(17), plen 0: [] +EVENT[1333]: 0.123448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1334]: 0.123461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1335]: 0.123477300 - core[1].svIdle(17), plen 0: [] +EVENT[1336]: 0.123546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1337]: 0.123561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1338]: 0.123561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1339]: 0.123573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1340]: 0.123573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1341]: 0.123586000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1342]: 0.123601675 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1343]: 0.123638125 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459092, size: 10, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.123638125] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1192]: 0.122947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461208, size: 20, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.122947000] HEAP: Allocated 20 bytes @ 0x3ffbb7d8 from task "alloc1" on core 0 by: +EVENT[1344]: 0.123677700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459108, size: 20, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.123677700] HEAP: Allocated 20 bytes @ 0x3ffbafa4 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1193]: 0.122964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1194]: 0.122980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1195]: 0.123050450 - core[0].svPrint(26), plen 70: [msg: I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8 +EVENT[1345]: 0.123694650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1346]: 0.123710775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1347]: 0.123765500 - core[0].svPrint(26), plen 70: [msg: I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4 , lvl: 0, unused: 0] -[0.123050450] LOG: I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8 -EVENT[1196]: 0.123064000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1197]: 0.123081425 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1198]: 0.123097725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1199]: 0.123108575 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1200]: 0.123119325 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1201]: 0.123133050 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1202]: 0.123143900 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1203]: 0.123154725 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1204]: 0.123166600 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1205]: 0.123176850 - core[0].svIdle(17), plen 0: [] -EVENT[1206]: 0.123188325 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1207]: 0.123204625 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1208]: 0.123268075 - core[1].svPrint(26), plen 63: [msg: I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8 -, lvl: 0, unused: 0] -[0.123268075] LOG: I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8 -EVENT[1209]: 0.123289250 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461208, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.123289250] HEAP: Freed bytes @ 0x3ffbb7d8 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1210]: 0.123316250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1211]: 0.123327675 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1212]: 0.123344250 - core[1].svIdle(17), plen 0: [] -EVENT[1213]: 0.123666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1214]: 0.123679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1215]: 0.123695550 - core[1].svIdle(17), plen 0: [] -EVENT[1216]: 0.123833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1217]: 0.123848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1218]: 0.123861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1219]: 0.123877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1220]: 0.123912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461208, size: 15, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.123912650] HEAP: Allocated 15 bytes @ 0x3ffbb7d8 from task "alloc2" on core 0 by: +[0.123765500] LOG: I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4 +EVENT[1348]: 0.123778950 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1349]: 0.123792325 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1350]: 0.123792325 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1351]: 0.123808675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1352]: 0.123819525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1353]: 0.123830350 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1354]: 0.123844125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1355]: 0.123856075 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1356]: 0.123867225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1357]: 0.123879175 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1358]: 0.123890825 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1359]: 0.123902525 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1360]: 0.123924350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1361]: 0.123936825 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459132, size: 15, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.123936825] HEAP: Allocated 15 bytes @ 0x3ffbafbc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1221]: 0.123951325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461228, size: 30, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.123951325] HEAP: Allocated 30 bytes @ 0x3ffbb7ec from task "alloc2" on core 0 by: +EVENT[1362]: 0.123977900 - core[1].svPrint(26), plen 63: [msg: I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4 +, lvl: 0, unused: 0] +[0.123977900] LOG: I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4 +EVENT[1363]: 0.123989450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 30, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.123989450] HEAP: Allocated 30 bytes @ 0x3ffbafd0 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1222]: 0.123968225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1223]: 0.123984200 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1224]: 0.124054550 - core[0].svPrint(26), plen 70: [msg: I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec -, lvl: 0, unused: 0] -[0.124054550] LOG: I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec -EVENT[1225]: 0.124068150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1226]: 0.124081375 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1227]: 0.124097675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1228]: 0.124108525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1229]: 0.124119300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1230]: 0.124133175 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1231]: 0.124144050 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1232]: 0.124154875 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1233]: 0.124166750 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1234]: 0.124178025 - core[0].svIdle(17), plen 0: [] -EVENT[1235]: 0.124189675 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1236]: 0.124209375 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1237]: 0.124272925 - core[1].svPrint(26), plen 63: [msg: I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec -, lvl: 0, unused: 0] -[0.124272925] LOG: I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec -EVENT[1238]: 0.124294125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461228, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.124294125] HEAP: Freed bytes @ 0x3ffbb7ec from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1364]: 0.124003700 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459108, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.124003700] HEAP: Freed bytes @ 0x3ffbafa4 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1239]: 0.124321025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1240]: 0.124332575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1241]: 0.124349150 - core[1].svIdle(17), plen 0: [] -EVENT[1242]: 0.124666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1243]: 0.124679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1244]: 0.124695550 - core[1].svIdle(17), plen 0: [] -EVENT[1245]: 0.124833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1246]: 0.124849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1247]: 0.124864250 - core[0].svIdle(17), plen 0: [] -EVENT[1248]: 0.125666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1249]: 0.125680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1250]: 0.125695350 - core[1].svIdle(17), plen 0: [] -EVENT[1251]: 0.125833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1252]: 0.125849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1253]: 0.125864250 - core[0].svIdle(17), plen 0: [] -EVENT[1254]: 0.126666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1255]: 0.126680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1256]: 0.126695125 - core[1].svIdle(17), plen 0: [] -EVENT[1257]: 0.126833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1258]: 0.126849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1259]: 0.126864250 - core[0].svIdle(17), plen 0: [] -EVENT[1260]: 0.127666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1261]: 0.127680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1262]: 0.127695225 - core[1].svIdle(17), plen 0: [] -EVENT[1263]: 0.127833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1264]: 0.127849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1265]: 0.127864425 - core[0].svIdle(17), plen 0: [] -EVENT[1266]: 0.128666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1267]: 0.128679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1268]: 0.128695100 - core[1].svIdle(17), plen 0: [] -EVENT[1269]: 0.128833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1270]: 0.128849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1271]: 0.128864250 - core[0].svIdle(17), plen 0: [] -EVENT[1272]: 0.129666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1273]: 0.129680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1274]: 0.129695350 - core[1].svIdle(17), plen 0: [] -EVENT[1275]: 0.129833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1276]: 0.129849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1277]: 0.129868575 - core[0].svIdle(17), plen 0: [] -EVENT[1278]: 0.130666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1279]: 0.130679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1280]: 0.130695100 - core[1].svIdle(17), plen 0: [] -EVENT[1281]: 0.130833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1282]: 0.130849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1283]: 0.130864250 - core[0].svIdle(17), plen 0: [] -EVENT[1284]: 0.131666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1285]: 0.131680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1286]: 0.131695350 - core[1].svIdle(17), plen 0: [] -EVENT[1287]: 0.131833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1288]: 0.131849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1289]: 0.131864250 - core[0].svIdle(17), plen 0: [] -EVENT[1290]: 0.132666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1291]: 0.132680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1292]: 0.132695125 - core[1].svIdle(17), plen 0: [] -EVENT[1293]: 0.132833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1294]: 0.132849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1295]: 0.132864250 - core[0].svIdle(17), plen 0: [] -EVENT[1296]: 0.133666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1297]: 0.133680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1298]: 0.133695225 - core[1].svIdle(17), plen 0: [] -EVENT[1299]: 0.133833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1300]: 0.133849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1301]: 0.133864425 - core[0].svIdle(17), plen 0: [] -EVENT[1302]: 0.134666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1303]: 0.134679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1304]: 0.134695100 - core[1].svIdle(17), plen 0: [] -EVENT[1305]: 0.134833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1306]: 0.134849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1307]: 0.134864250 - core[0].svIdle(17), plen 0: [] -EVENT[1308]: 0.135666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1309]: 0.135680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1310]: 0.135695350 - core[1].svIdle(17), plen 0: [] -EVENT[1311]: 0.135833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1312]: 0.135849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1313]: 0.135864250 - core[0].svIdle(17), plen 0: [] -EVENT[1314]: 0.136666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1315]: 0.136680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1316]: 0.136695125 - core[1].svIdle(17), plen 0: [] -EVENT[1317]: 0.136833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1318]: 0.136849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1319]: 0.136864250 - core[0].svIdle(17), plen 0: [] -EVENT[1320]: 0.137666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1321]: 0.137680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1322]: 0.137695225 - core[1].svIdle(17), plen 0: [] -EVENT[1323]: 0.137833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1324]: 0.137849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1325]: 0.137864425 - core[0].svIdle(17), plen 0: [] -EVENT[1326]: 0.138666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1327]: 0.138679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1328]: 0.138695100 - core[1].svIdle(17), plen 0: [] -EVENT[1329]: 0.138833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1330]: 0.138849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1331]: 0.138864250 - core[0].svIdle(17), plen 0: [] -EVENT[1332]: 0.139666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1333]: 0.139680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1334]: 0.139695350 - core[1].svIdle(17), plen 0: [] -EVENT[1335]: 0.139833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1336]: 0.139849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1337]: 0.139864250 - core[0].svIdle(17), plen 0: [] -EVENT[1338]: 0.140666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1339]: 0.140680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1340]: 0.140695125 - core[1].svIdle(17), plen 0: [] -EVENT[1341]: 0.140833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1342]: 0.140849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1343]: 0.140864250 - core[0].svIdle(17), plen 0: [] -EVENT[1344]: 0.141666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1345]: 0.141680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1346]: 0.141695225 - core[1].svIdle(17), plen 0: [] -EVENT[1347]: 0.141833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1348]: 0.141849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1349]: 0.141864425 - core[0].svIdle(17), plen 0: [] -EVENT[1350]: 0.142666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1351]: 0.142680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1352]: 0.142695350 - core[1].svIdle(17), plen 0: [] -EVENT[1353]: 0.142833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1354]: 0.142849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1355]: 0.142864250 - core[0].svIdle(17), plen 0: [] -EVENT[1356]: 0.143666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1357]: 0.143680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1358]: 0.143695125 - core[1].svIdle(17), plen 0: [] -EVENT[1359]: 0.143833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1360]: 0.143849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1361]: 0.143864250 - core[0].svIdle(17), plen 0: [] -EVENT[1362]: 0.144666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1363]: 0.144680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1364]: 0.144695225 - core[1].svIdle(17), plen 0: [] -EVENT[1365]: 0.144833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1366]: 0.144849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1367]: 0.144864425 - core[0].svIdle(17), plen 0: [] -EVENT[1368]: 0.145666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1369]: 0.145679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1370]: 0.145695100 - core[1].svIdle(17), plen 0: [] -EVENT[1371]: 0.145833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1372]: 0.145849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1373]: 0.145864250 - core[0].svIdle(17), plen 0: [] -EVENT[1374]: 0.146666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1375]: 0.146680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1376]: 0.146695350 - core[1].svIdle(17), plen 0: [] -EVENT[1377]: 0.146833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1378]: 0.146849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1379]: 0.146864250 - core[0].svIdle(17), plen 0: [] -EVENT[1380]: 0.147666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1381]: 0.147680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1382]: 0.147695125 - core[1].svIdle(17), plen 0: [] -EVENT[1383]: 0.147833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1384]: 0.147849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1385]: 0.147864250 - core[0].svIdle(17), plen 0: [] -EVENT[1386]: 0.148666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1387]: 0.148680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1388]: 0.148695225 - core[1].svIdle(17), plen 0: [] -EVENT[1389]: 0.148833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1390]: 0.148849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1391]: 0.148864425 - core[0].svIdle(17), plen 0: [] -EVENT[1392]: 0.149666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1393]: 0.149679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1394]: 0.149695100 - core[1].svIdle(17), plen 0: [] -EVENT[1395]: 0.149833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1396]: 0.149849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1397]: 0.149864250 - core[0].svIdle(17), plen 0: [] -EVENT[1398]: 0.150666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1399]: 0.150680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1400]: 0.150695350 - core[1].svIdle(17), plen 0: [] -EVENT[1401]: 0.150833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1402]: 0.150849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1403]: 0.150864250 - core[0].svIdle(17), plen 0: [] -EVENT[1404]: 0.151666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1405]: 0.151680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1406]: 0.151695125 - core[1].svIdle(17), plen 0: [] -EVENT[1407]: 0.151833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1408]: 0.151848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1409]: 0.151861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1410]: 0.151877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1411]: 0.151912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461228, size: 6, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.151912650] HEAP: Allocated 6 bytes @ 0x3ffbb7ec from task "alloc0" on core 0 by: +EVENT[1365]: 0.124016225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1366]: 0.124035575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1367]: 0.124046775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1368]: 0.124057550 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1369]: 0.124075700 - core[1].svIdle(17), plen 0: [] +EVENT[1370]: 0.124103475 - core[0].svPrint(26), plen 70: [msg: I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0 +, lvl: 0, unused: 0] +[0.124103475] LOG: I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0 +EVENT[1371]: 0.124121075 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1372]: 0.124134325 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1373]: 0.124134325 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1374]: 0.124150675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1375]: 0.124161525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1376]: 0.124172350 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1377]: 0.124186175 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1378]: 0.124196925 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1379]: 0.124207675 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1380]: 0.124219775 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1381]: 0.124231000 - core[0].svIdle(17), plen 0: [] +EVENT[1382]: 0.124243325 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1383]: 0.124259575 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1384]: 0.124307450 - core[1].svPrint(26), plen 63: [msg: I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0 +, lvl: 0, unused: 0] +[0.124307450] LOG: I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0 +EVENT[1385]: 0.124328850 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459152, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.124328850] HEAP: Freed bytes @ 0x3ffbafd0 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1386]: 0.124360200 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1387]: 0.124371650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1388]: 0.124388350 - core[1].svIdle(17), plen 0: [] +EVENT[1389]: 0.124448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1390]: 0.124461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1391]: 0.124477200 - core[1].svIdle(17), plen 0: [] +EVENT[1392]: 0.124546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1393]: 0.124562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1394]: 0.124577275 - core[0].svIdle(17), plen 0: [] +EVENT[1395]: 0.125448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1396]: 0.125461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1397]: 0.125476850 - core[1].svIdle(17), plen 0: [] +EVENT[1398]: 0.125546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1399]: 0.125562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1400]: 0.125577075 - core[0].svIdle(17), plen 0: [] +EVENT[1401]: 0.126448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1402]: 0.126461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1403]: 0.126476975 - core[1].svIdle(17), plen 0: [] +EVENT[1404]: 0.126546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1405]: 0.126562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1406]: 0.126577225 - core[0].svIdle(17), plen 0: [] +EVENT[1407]: 0.127448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1408]: 0.127461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1409]: 0.127476900 - core[1].svIdle(17), plen 0: [] +EVENT[1410]: 0.127546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1411]: 0.127562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1412]: 0.127577075 - core[0].svIdle(17), plen 0: [] +EVENT[1413]: 0.128448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1414]: 0.128461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1415]: 0.128476850 - core[1].svIdle(17), plen 0: [] +EVENT[1416]: 0.128546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1417]: 0.128562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1418]: 0.128577275 - core[0].svIdle(17), plen 0: [] +EVENT[1419]: 0.129448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1420]: 0.129461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1421]: 0.129476850 - core[1].svIdle(17), plen 0: [] +EVENT[1422]: 0.129546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1423]: 0.129562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1424]: 0.129577075 - core[0].svIdle(17), plen 0: [] +EVENT[1425]: 0.130448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1426]: 0.130461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1427]: 0.130476975 - core[1].svIdle(17), plen 0: [] +EVENT[1428]: 0.130546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1429]: 0.130562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1430]: 0.130577225 - core[0].svIdle(17), plen 0: [] +EVENT[1431]: 0.131448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1432]: 0.131461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1433]: 0.131476900 - core[1].svIdle(17), plen 0: [] +EVENT[1434]: 0.131546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1435]: 0.131562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1436]: 0.131577075 - core[0].svIdle(17), plen 0: [] +EVENT[1437]: 0.132448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1438]: 0.132461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1439]: 0.132476850 - core[1].svIdle(17), plen 0: [] +EVENT[1440]: 0.132546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1441]: 0.132562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1442]: 0.132577275 - core[0].svIdle(17), plen 0: [] +EVENT[1443]: 0.133448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1444]: 0.133461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1445]: 0.133476850 - core[1].svIdle(17), plen 0: [] +EVENT[1446]: 0.133546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1447]: 0.133562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1448]: 0.133577075 - core[0].svIdle(17), plen 0: [] +EVENT[1449]: 0.134448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1450]: 0.134465950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1451]: 0.134481100 - core[1].svIdle(17), plen 0: [] +EVENT[1452]: 0.134546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1453]: 0.134562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1454]: 0.134577075 - core[0].svIdle(17), plen 0: [] +EVENT[1455]: 0.135448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1456]: 0.135461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1457]: 0.135476850 - core[1].svIdle(17), plen 0: [] +EVENT[1458]: 0.135546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1459]: 0.135562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1460]: 0.135577275 - core[0].svIdle(17), plen 0: [] +EVENT[1461]: 0.136448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1462]: 0.136461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1463]: 0.136476850 - core[1].svIdle(17), plen 0: [] +EVENT[1464]: 0.136546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1465]: 0.136562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1466]: 0.136577075 - core[0].svIdle(17), plen 0: [] +EVENT[1467]: 0.137448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1468]: 0.137461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1469]: 0.137476975 - core[1].svIdle(17), plen 0: [] +EVENT[1470]: 0.137546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1471]: 0.137562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1472]: 0.137577225 - core[0].svIdle(17), plen 0: [] +EVENT[1473]: 0.138448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1474]: 0.138461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1475]: 0.138476900 - core[1].svIdle(17), plen 0: [] +EVENT[1476]: 0.138546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1477]: 0.138562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1478]: 0.138577075 - core[0].svIdle(17), plen 0: [] +EVENT[1479]: 0.139448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1480]: 0.139461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1481]: 0.139476850 - core[1].svIdle(17), plen 0: [] +EVENT[1482]: 0.139546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1483]: 0.139562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1484]: 0.139577275 - core[0].svIdle(17), plen 0: [] +EVENT[1485]: 0.140448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1486]: 0.140461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1487]: 0.140476850 - core[1].svIdle(17), plen 0: [] +EVENT[1488]: 0.140546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1489]: 0.140562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1490]: 0.140577075 - core[0].svIdle(17), plen 0: [] +EVENT[1491]: 0.141448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1492]: 0.141461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1493]: 0.141476975 - core[1].svIdle(17), plen 0: [] +EVENT[1494]: 0.141546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1495]: 0.141562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1496]: 0.141577225 - core[0].svIdle(17), plen 0: [] +EVENT[1497]: 0.142448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1498]: 0.142461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1499]: 0.142476900 - core[1].svIdle(17), plen 0: [] +EVENT[1500]: 0.142546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1501]: 0.142562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1502]: 0.142577075 - core[0].svIdle(17), plen 0: [] +EVENT[1503]: 0.143448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1504]: 0.143461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1505]: 0.143476850 - core[1].svIdle(17), plen 0: [] +EVENT[1506]: 0.143546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1507]: 0.143562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1508]: 0.143577275 - core[0].svIdle(17), plen 0: [] +EVENT[1509]: 0.144448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1510]: 0.144461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1511]: 0.144476850 - core[1].svIdle(17), plen 0: [] +EVENT[1512]: 0.144546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1513]: 0.144562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1514]: 0.144577075 - core[0].svIdle(17), plen 0: [] +EVENT[1515]: 0.145448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1516]: 0.145461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1517]: 0.145476975 - core[1].svIdle(17), plen 0: [] +EVENT[1518]: 0.145546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1519]: 0.145562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1520]: 0.145577225 - core[0].svIdle(17), plen 0: [] +EVENT[1521]: 0.146448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1522]: 0.146466000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1523]: 0.146481125 - core[1].svIdle(17), plen 0: [] +EVENT[1524]: 0.146546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1525]: 0.146562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1526]: 0.146577075 - core[0].svIdle(17), plen 0: [] +EVENT[1527]: 0.147448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1528]: 0.147461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1529]: 0.147476850 - core[1].svIdle(17), plen 0: [] +EVENT[1530]: 0.147546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1531]: 0.147562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1532]: 0.147577275 - core[0].svIdle(17), plen 0: [] +EVENT[1533]: 0.148448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1534]: 0.148461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1535]: 0.148476850 - core[1].svIdle(17), plen 0: [] +EVENT[1536]: 0.148546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1537]: 0.148562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1538]: 0.148577075 - core[0].svIdle(17), plen 0: [] +EVENT[1539]: 0.149448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1540]: 0.149461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1541]: 0.149476975 - core[1].svIdle(17), plen 0: [] +EVENT[1542]: 0.149546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1543]: 0.149562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1544]: 0.149577225 - core[0].svIdle(17), plen 0: [] +EVENT[1545]: 0.150448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1546]: 0.150461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1547]: 0.150476900 - core[1].svIdle(17), plen 0: [] +EVENT[1548]: 0.150546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1549]: 0.150562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1550]: 0.150577075 - core[0].svIdle(17), plen 0: [] +EVENT[1551]: 0.151448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1552]: 0.151461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1553]: 0.151476850 - core[1].svIdle(17), plen 0: [] +EVENT[1554]: 0.151546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1555]: 0.151562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1556]: 0.151577275 - core[0].svIdle(17), plen 0: [] +EVENT[1557]: 0.152448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1558]: 0.152461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1559]: 0.152476850 - core[1].svIdle(17), plen 0: [] +EVENT[1560]: 0.152546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1561]: 0.152561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1562]: 0.152561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1563]: 0.152574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1564]: 0.152590075 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1565]: 0.152625125 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459108, size: 6, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.152625125] HEAP: Allocated 6 bytes @ 0x3ffbafa4 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1412]: 0.151951250 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461244, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.151951250] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc0" on core 0 by: +EVENT[1566]: 0.152660700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.152660700] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1413]: 0.151968150 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1414]: 0.151984150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1415]: 0.152054475 - core[0].svPrint(26), plen 70: [msg: I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc +EVENT[1567]: 0.152677675 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1568]: 0.152693775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1569]: 0.152752800 - core[0].svPrint(26), plen 70: [msg: I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0 , lvl: 0, unused: 0] -[0.152054475] LOG: I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc -EVENT[1416]: 0.152068075 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1417]: 0.152081300 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1418]: 0.152097675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1419]: 0.152108525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1420]: 0.152119300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1421]: 0.152133125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1422]: 0.152144025 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1423]: 0.152154850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1424]: 0.152166800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1425]: 0.152177050 - core[0].svIdle(17), plen 0: [] -EVENT[1426]: 0.152188475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1427]: 0.152208850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1428]: 0.152272400 - core[1].svPrint(26), plen 63: [msg: I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc +[0.152752800] LOG: I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0 +EVENT[1570]: 0.152766275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1571]: 0.152779450 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1572]: 0.152779450 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1573]: 0.152795650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1574]: 0.152806600 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1575]: 0.152817375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1576]: 0.152831275 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1577]: 0.152842075 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1578]: 0.152852800 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1579]: 0.152864925 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1580]: 0.152875100 - core[0].svIdle(17), plen 0: [] +EVENT[1581]: 0.152886875 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1582]: 0.152903200 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1583]: 0.152951075 - core[1].svPrint(26), plen 63: [msg: I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0 , lvl: 0, unused: 0] -[0.152272400] LOG: I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc -EVENT[1429]: 0.152293600 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461244, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.152293600] HEAP: Freed bytes @ 0x3ffbb7fc from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.152951075] LOG: I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0 +EVENT[1584]: 0.152972300 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459152, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.152972300] HEAP: Freed bytes @ 0x3ffbafd0 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1430]: 0.152320475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1431]: 0.152331900 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1432]: 0.152348475 - core[1].svIdle(17), plen 0: [] -EVENT[1433]: 0.152666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1434]: 0.152679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1435]: 0.152695550 - core[1].svIdle(17), plen 0: [] -EVENT[1436]: 0.152833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1437]: 0.152848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1438]: 0.152861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1439]: 0.152877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1440]: 0.152912775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461244, size: 12, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.152912775] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc1" on core 0 by: +EVENT[1585]: 0.153003750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1586]: 0.153015325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1587]: 0.153032025 - core[1].svIdle(17), plen 0: [] +EVENT[1588]: 0.153448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1589]: 0.153461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1590]: 0.153477300 - core[1].svIdle(17), plen 0: [] +EVENT[1591]: 0.153546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1592]: 0.153561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1593]: 0.153561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1594]: 0.153573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1595]: 0.153573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1596]: 0.153585975 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1597]: 0.153601625 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1598]: 0.153638000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459152, size: 12, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.153638000] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1441]: 0.152947300 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461260, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.152947300] HEAP: Allocated 24 bytes @ 0x3ffbb80c from task "alloc1" on core 0 by: +EVENT[1599]: 0.153673450 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459168, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.153673450] HEAP: Allocated 24 bytes @ 0x3ffbafe0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1442]: 0.152964250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1443]: 0.152984425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1444]: 0.153054850 - core[0].svPrint(26), plen 70: [msg: I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c +EVENT[1600]: 0.153690500 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1601]: 0.153706525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1602]: 0.153761350 - core[0].svPrint(26), plen 70: [msg: I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0 , lvl: 0, unused: 0] -[0.153054850] LOG: I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c -EVENT[1445]: 0.153068500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1446]: 0.153081675 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1447]: 0.153097875 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1448]: 0.153108925 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1449]: 0.153119675 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1450]: 0.153133400 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1451]: 0.153144350 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1452]: 0.153155150 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1453]: 0.153167000 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1454]: 0.153177275 - core[0].svIdle(17), plen 0: [] -EVENT[1455]: 0.153188750 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1456]: 0.153205050 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1457]: 0.153268500 - core[1].svPrint(26), plen 63: [msg: I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c -, lvl: 0, unused: 0] -[0.153268500] LOG: I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c -EVENT[1458]: 0.153293525 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461260, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.153293525] HEAP: Freed bytes @ 0x3ffbb80c from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1459]: 0.153320525 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1460]: 0.153331950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1461]: 0.153348525 - core[1].svIdle(17), plen 0: [] -EVENT[1462]: 0.153666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1463]: 0.153679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1464]: 0.153695550 - core[1].svIdle(17), plen 0: [] -EVENT[1465]: 0.153833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1466]: 0.153848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1467]: 0.153861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1468]: 0.153877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1469]: 0.153912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461260, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.153912650] HEAP: Allocated 18 bytes @ 0x3ffbb80c from task "alloc2" on core 0 by: +[0.153761350] LOG: I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0 +EVENT[1603]: 0.153778125 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1604]: 0.153791500 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1605]: 0.153791500 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1606]: 0.153807850 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1607]: 0.153818700 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1608]: 0.153829525 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1609]: 0.153843300 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1610]: 0.153855250 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1611]: 0.153866400 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1612]: 0.153878350 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1613]: 0.153890000 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1614]: 0.153901700 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1615]: 0.153920300 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1616]: 0.153933400 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459196, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.153933400] HEAP: Allocated 18 bytes @ 0x3ffbaffc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1470]: 0.153947200 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461284, size: 36, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.153947200] HEAP: Allocated 36 bytes @ 0x3ffbb824 from task "alloc2" on core 0 by: +EVENT[1617]: 0.153973975 - core[1].svPrint(26), plen 63: [msg: I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0 +, lvl: 0, unused: 0] +[0.153973975] LOG: I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0 +EVENT[1618]: 0.153989950 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 36, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.153989950] HEAP: Allocated 36 bytes @ 0x3ffbb014 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1471]: 0.153964350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1472]: 0.153980350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1473]: 0.154050675 - core[0].svPrint(26), plen 70: [msg: I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824 -, lvl: 0, unused: 0] -[0.154050675] LOG: I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824 -EVENT[1474]: 0.154068500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1475]: 0.154081850 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1476]: 0.154098175 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1477]: 0.154109025 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1478]: 0.154119775 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1479]: 0.154133500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1480]: 0.154144400 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1481]: 0.154155225 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1482]: 0.154167075 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1483]: 0.154178375 - core[0].svIdle(17), plen 0: [] -EVENT[1484]: 0.154190000 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1485]: 0.154206400 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1486]: 0.154269950 - core[1].svPrint(26), plen 63: [msg: I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824 -, lvl: 0, unused: 0] -[0.154269950] LOG: I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824 -EVENT[1487]: 0.154291150 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461284, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.154291150] HEAP: Freed bytes @ 0x3ffbb824 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1619]: 0.154004325 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459168, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.154004325] HEAP: Freed bytes @ 0x3ffbafe0 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1488]: 0.154322150 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1489]: 0.154333625 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1490]: 0.154350325 - core[1].svIdle(17), plen 0: [] -EVENT[1491]: 0.154666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1492]: 0.154679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1493]: 0.154695450 - core[1].svIdle(17), plen 0: [] -EVENT[1494]: 0.154833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1495]: 0.154849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1496]: 0.154864425 - core[0].svIdle(17), plen 0: [] -EVENT[1497]: 0.155666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1498]: 0.155679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1499]: 0.155695100 - core[1].svIdle(17), plen 0: [] -EVENT[1500]: 0.155833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1501]: 0.155849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1502]: 0.155864250 - core[0].svIdle(17), plen 0: [] -EVENT[1503]: 0.156666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1504]: 0.156680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1505]: 0.156695350 - core[1].svIdle(17), plen 0: [] -EVENT[1506]: 0.156833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1507]: 0.156849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1508]: 0.156864250 - core[0].svIdle(17), plen 0: [] -EVENT[1509]: 0.157666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1510]: 0.157680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1511]: 0.157695125 - core[1].svIdle(17), plen 0: [] -EVENT[1512]: 0.157833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1513]: 0.157849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1514]: 0.157864250 - core[0].svIdle(17), plen 0: [] -EVENT[1515]: 0.158666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1516]: 0.158680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1517]: 0.158695225 - core[1].svIdle(17), plen 0: [] -EVENT[1518]: 0.158833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1519]: 0.158849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1520]: 0.158864425 - core[0].svIdle(17), plen 0: [] -EVENT[1521]: 0.159666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1522]: 0.159679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1523]: 0.159695100 - core[1].svIdle(17), plen 0: [] -EVENT[1524]: 0.159833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1525]: 0.159849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1526]: 0.159864250 - core[0].svIdle(17), plen 0: [] -EVENT[1527]: 0.160666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1528]: 0.160680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1529]: 0.160695350 - core[1].svIdle(17), plen 0: [] -EVENT[1530]: 0.160833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1531]: 0.160849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1532]: 0.160864250 - core[0].svIdle(17), plen 0: [] -EVENT[1533]: 0.161666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1534]: 0.161680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1535]: 0.161695125 - core[1].svIdle(17), plen 0: [] -EVENT[1536]: 0.161833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1537]: 0.161849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1538]: 0.161864250 - core[0].svIdle(17), plen 0: [] -EVENT[1539]: 0.162666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1540]: 0.162680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1541]: 0.162695225 - core[1].svIdle(17), plen 0: [] -EVENT[1542]: 0.162833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1543]: 0.162849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1544]: 0.162864425 - core[0].svIdle(17), plen 0: [] -EVENT[1545]: 0.163666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1546]: 0.163679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1547]: 0.163695100 - core[1].svIdle(17), plen 0: [] -EVENT[1548]: 0.163833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1549]: 0.163849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1550]: 0.163864250 - core[0].svIdle(17), plen 0: [] -EVENT[1551]: 0.164666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1552]: 0.164683575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1553]: 0.164698725 - core[1].svIdle(17), plen 0: [] -EVENT[1554]: 0.164833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1555]: 0.164849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1556]: 0.164864250 - core[0].svIdle(17), plen 0: [] -EVENT[1557]: 0.165666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1558]: 0.165680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1559]: 0.165695225 - core[1].svIdle(17), plen 0: [] -EVENT[1560]: 0.165833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1561]: 0.165849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1562]: 0.165864425 - core[0].svIdle(17), plen 0: [] -EVENT[1563]: 0.166666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1564]: 0.166679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1565]: 0.166695100 - core[1].svIdle(17), plen 0: [] -EVENT[1566]: 0.166833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1567]: 0.166849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1568]: 0.166864250 - core[0].svIdle(17), plen 0: [] -EVENT[1569]: 0.167666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1570]: 0.167680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1571]: 0.167695350 - core[1].svIdle(17), plen 0: [] -EVENT[1572]: 0.167833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1573]: 0.167849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1574]: 0.167864250 - core[0].svIdle(17), plen 0: [] -EVENT[1575]: 0.168666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1576]: 0.168680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1577]: 0.168695125 - core[1].svIdle(17), plen 0: [] -EVENT[1578]: 0.168833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1579]: 0.168849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1580]: 0.168864250 - core[0].svIdle(17), plen 0: [] -EVENT[1581]: 0.169666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1582]: 0.169680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1583]: 0.169695225 - core[1].svIdle(17), plen 0: [] -EVENT[1584]: 0.169833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1585]: 0.169849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1586]: 0.169864425 - core[0].svIdle(17), plen 0: [] -EVENT[1587]: 0.170666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1588]: 0.170679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1589]: 0.170695100 - core[1].svIdle(17), plen 0: [] -EVENT[1590]: 0.170833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1591]: 0.170849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1592]: 0.170864250 - core[0].svIdle(17), plen 0: [] -EVENT[1593]: 0.171666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1594]: 0.171680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1595]: 0.171695350 - core[1].svIdle(17), plen 0: [] -EVENT[1596]: 0.171833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1597]: 0.171849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1598]: 0.171864250 - core[0].svIdle(17), plen 0: [] -EVENT[1599]: 0.172666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1600]: 0.172680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1601]: 0.172695125 - core[1].svIdle(17), plen 0: [] -EVENT[1602]: 0.172833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1603]: 0.172849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1604]: 0.172864250 - core[0].svIdle(17), plen 0: [] -EVENT[1605]: 0.173666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1606]: 0.173680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1607]: 0.173695225 - core[1].svIdle(17), plen 0: [] -EVENT[1608]: 0.173833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1609]: 0.173849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1610]: 0.173864425 - core[0].svIdle(17), plen 0: [] -EVENT[1611]: 0.174666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1612]: 0.174679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1613]: 0.174695100 - core[1].svIdle(17), plen 0: [] -EVENT[1614]: 0.174833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1615]: 0.174849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1616]: 0.174864250 - core[0].svIdle(17), plen 0: [] -EVENT[1617]: 0.175666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1618]: 0.175680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1619]: 0.175695350 - core[1].svIdle(17), plen 0: [] -EVENT[1620]: 0.175833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1621]: 0.175849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1622]: 0.175864250 - core[0].svIdle(17), plen 0: [] -EVENT[1623]: 0.176666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1624]: 0.176684225 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1625]: 0.176699375 - core[1].svIdle(17), plen 0: [] -EVENT[1626]: 0.176833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1627]: 0.176849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1628]: 0.176864250 - core[0].svIdle(17), plen 0: [] -EVENT[1629]: 0.177666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1630]: 0.177680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1631]: 0.177695225 - core[1].svIdle(17), plen 0: [] -EVENT[1632]: 0.177833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1633]: 0.177849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1634]: 0.177864425 - core[0].svIdle(17), plen 0: [] -EVENT[1635]: 0.178666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1636]: 0.178679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1637]: 0.178695100 - core[1].svIdle(17), plen 0: [] -EVENT[1638]: 0.178833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1639]: 0.178849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1640]: 0.178864250 - core[0].svIdle(17), plen 0: [] -EVENT[1641]: 0.179666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1642]: 0.179680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1643]: 0.179695350 - core[1].svIdle(17), plen 0: [] -EVENT[1644]: 0.179833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1645]: 0.179849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1646]: 0.179864250 - core[0].svIdle(17), plen 0: [] -EVENT[1647]: 0.180666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1648]: 0.180680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1649]: 0.180695125 - core[1].svIdle(17), plen 0: [] -EVENT[1650]: 0.180833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1651]: 0.180849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1652]: 0.180864250 - core[0].svIdle(17), plen 0: [] -EVENT[1653]: 0.181666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1654]: 0.181680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1655]: 0.181695225 - core[1].svIdle(17), plen 0: [] -EVENT[1656]: 0.181833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1657]: 0.181848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1658]: 0.181861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1659]: 0.181877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1660]: 0.181912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461284, size: 7, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.181912575] HEAP: Allocated 7 bytes @ 0x3ffbb824 from task "alloc0" on core 0 by: +EVENT[1620]: 0.154016775 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1621]: 0.154036150 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1622]: 0.154047400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1623]: 0.154058200 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1624]: 0.154076400 - core[1].svIdle(17), plen 0: [] +EVENT[1625]: 0.154104125 - core[0].svPrint(26), plen 70: [msg: I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014 +, lvl: 0, unused: 0] +[0.154104125] LOG: I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014 +EVENT[1626]: 0.154117575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1627]: 0.154134325 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1628]: 0.154134325 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1629]: 0.154150675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1630]: 0.154161550 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1631]: 0.154172400 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1632]: 0.154186075 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1633]: 0.154196825 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1634]: 0.154207625 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1635]: 0.154219575 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1636]: 0.154230800 - core[0].svIdle(17), plen 0: [] +EVENT[1637]: 0.154242625 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1638]: 0.154258875 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1639]: 0.154306650 - core[1].svPrint(26), plen 63: [msg: I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014 +, lvl: 0, unused: 0] +[0.154306650] LOG: I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014 +EVENT[1640]: 0.154328025 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459220, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.154328025] HEAP: Freed bytes @ 0x3ffbb014 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1641]: 0.154355450 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1642]: 0.154366850 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1643]: 0.154383425 - core[1].svIdle(17), plen 0: [] +EVENT[1644]: 0.154448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1645]: 0.154461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1646]: 0.154477200 - core[1].svIdle(17), plen 0: [] +EVENT[1647]: 0.154546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1648]: 0.154562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1649]: 0.154577075 - core[0].svIdle(17), plen 0: [] +EVENT[1650]: 0.155448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1651]: 0.155461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1652]: 0.155476850 - core[1].svIdle(17), plen 0: [] +EVENT[1653]: 0.155546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1654]: 0.155562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1655]: 0.155577275 - core[0].svIdle(17), plen 0: [] +EVENT[1656]: 0.156448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1657]: 0.156461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1658]: 0.156476850 - core[1].svIdle(17), plen 0: [] +EVENT[1659]: 0.156546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1660]: 0.156565625 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1661]: 0.156580850 - core[0].svIdle(17), plen 0: [] +EVENT[1662]: 0.157448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1663]: 0.157461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1664]: 0.157476850 - core[1].svIdle(17), plen 0: [] +EVENT[1665]: 0.157546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1666]: 0.157562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1667]: 0.157577075 - core[0].svIdle(17), plen 0: [] +EVENT[1668]: 0.158448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1669]: 0.158461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1670]: 0.158476975 - core[1].svIdle(17), plen 0: [] +EVENT[1671]: 0.158546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1672]: 0.158562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1673]: 0.158577225 - core[0].svIdle(17), plen 0: [] +EVENT[1674]: 0.159448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1675]: 0.159461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1676]: 0.159476900 - core[1].svIdle(17), plen 0: [] +EVENT[1677]: 0.159546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1678]: 0.159562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1679]: 0.159577075 - core[0].svIdle(17), plen 0: [] +EVENT[1680]: 0.160448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1681]: 0.160461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1682]: 0.160476850 - core[1].svIdle(17), plen 0: [] +EVENT[1683]: 0.160546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1684]: 0.160562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1685]: 0.160577275 - core[0].svIdle(17), plen 0: [] +EVENT[1686]: 0.161448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1687]: 0.161461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1688]: 0.161476850 - core[1].svIdle(17), plen 0: [] +EVENT[1689]: 0.161546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1690]: 0.161562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1691]: 0.161577075 - core[0].svIdle(17), plen 0: [] +EVENT[1692]: 0.162448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1693]: 0.162461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1694]: 0.162476975 - core[1].svIdle(17), plen 0: [] +EVENT[1695]: 0.162546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1696]: 0.162562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1697]: 0.162577225 - core[0].svIdle(17), plen 0: [] +EVENT[1698]: 0.163448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1699]: 0.163461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1700]: 0.163476900 - core[1].svIdle(17), plen 0: [] +EVENT[1701]: 0.163546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1702]: 0.163562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1703]: 0.163577075 - core[0].svIdle(17), plen 0: [] +EVENT[1704]: 0.164448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1705]: 0.164461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1706]: 0.164476850 - core[1].svIdle(17), plen 0: [] +EVENT[1707]: 0.164546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1708]: 0.164562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1709]: 0.164577275 - core[0].svIdle(17), plen 0: [] +EVENT[1710]: 0.165448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1711]: 0.165461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1712]: 0.165476850 - core[1].svIdle(17), plen 0: [] +EVENT[1713]: 0.165546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1714]: 0.165562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1715]: 0.165577075 - core[0].svIdle(17), plen 0: [] +EVENT[1716]: 0.166448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1717]: 0.166461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1718]: 0.166476975 - core[1].svIdle(17), plen 0: [] +EVENT[1719]: 0.166546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1720]: 0.166562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1721]: 0.166577225 - core[0].svIdle(17), plen 0: [] +EVENT[1722]: 0.167448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1723]: 0.167461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1724]: 0.167476900 - core[1].svIdle(17), plen 0: [] +EVENT[1725]: 0.167546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1726]: 0.167562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1727]: 0.167577075 - core[0].svIdle(17), plen 0: [] +EVENT[1728]: 0.168448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1729]: 0.168461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1730]: 0.168476850 - core[1].svIdle(17), plen 0: [] +EVENT[1731]: 0.168546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1732]: 0.168566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1733]: 0.168581500 - core[0].svIdle(17), plen 0: [] +EVENT[1734]: 0.169448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1735]: 0.169461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1736]: 0.169476850 - core[1].svIdle(17), plen 0: [] +EVENT[1737]: 0.169546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1738]: 0.169562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1739]: 0.169577075 - core[0].svIdle(17), plen 0: [] +EVENT[1740]: 0.170448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1741]: 0.170461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1742]: 0.170476975 - core[1].svIdle(17), plen 0: [] +EVENT[1743]: 0.170546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1744]: 0.170562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1745]: 0.170577225 - core[0].svIdle(17), plen 0: [] +EVENT[1746]: 0.171448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1747]: 0.171461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1748]: 0.171476900 - core[1].svIdle(17), plen 0: [] +EVENT[1749]: 0.171546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1750]: 0.171562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1751]: 0.171577075 - core[0].svIdle(17), plen 0: [] +EVENT[1752]: 0.172448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1753]: 0.172461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1754]: 0.172476850 - core[1].svIdle(17), plen 0: [] +EVENT[1755]: 0.172546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1756]: 0.172562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1757]: 0.172577275 - core[0].svIdle(17), plen 0: [] +EVENT[1758]: 0.173448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1759]: 0.173461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1760]: 0.173476850 - core[1].svIdle(17), plen 0: [] +EVENT[1761]: 0.173546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1762]: 0.173562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1763]: 0.173577075 - core[0].svIdle(17), plen 0: [] +EVENT[1764]: 0.174448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1765]: 0.174461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1766]: 0.174476975 - core[1].svIdle(17), plen 0: [] +EVENT[1767]: 0.174546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1768]: 0.174562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1769]: 0.174577225 - core[0].svIdle(17), plen 0: [] +EVENT[1770]: 0.175448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1771]: 0.175461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1772]: 0.175476900 - core[1].svIdle(17), plen 0: [] +EVENT[1773]: 0.175546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1774]: 0.175562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1775]: 0.175577075 - core[0].svIdle(17), plen 0: [] +EVENT[1776]: 0.176448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1777]: 0.176461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1778]: 0.176476850 - core[1].svIdle(17), plen 0: [] +EVENT[1779]: 0.176546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1780]: 0.176562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1781]: 0.176577275 - core[0].svIdle(17), plen 0: [] +EVENT[1782]: 0.177448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1783]: 0.177461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1784]: 0.177476850 - core[1].svIdle(17), plen 0: [] +EVENT[1785]: 0.177546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1786]: 0.177562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1787]: 0.177577075 - core[0].svIdle(17), plen 0: [] +EVENT[1788]: 0.178448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1789]: 0.178461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1790]: 0.178476975 - core[1].svIdle(17), plen 0: [] +EVENT[1791]: 0.178546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1792]: 0.178562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1793]: 0.178577225 - core[0].svIdle(17), plen 0: [] +EVENT[1794]: 0.179448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1795]: 0.179461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1796]: 0.179476900 - core[1].svIdle(17), plen 0: [] +EVENT[1797]: 0.179546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1798]: 0.179562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1799]: 0.179577075 - core[0].svIdle(17), plen 0: [] +EVENT[1800]: 0.180448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1801]: 0.180461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1802]: 0.180476850 - core[1].svIdle(17), plen 0: [] +EVENT[1803]: 0.180546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1804]: 0.180566300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1805]: 0.180581500 - core[0].svIdle(17), plen 0: [] +EVENT[1806]: 0.181448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1807]: 0.181461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1808]: 0.181476850 - core[1].svIdle(17), plen 0: [] +EVENT[1809]: 0.181546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1810]: 0.181562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1811]: 0.181577075 - core[0].svIdle(17), plen 0: [] +EVENT[1812]: 0.182448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1813]: 0.182461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1814]: 0.182476975 - core[1].svIdle(17), plen 0: [] +EVENT[1815]: 0.182546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1816]: 0.182561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1817]: 0.182561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[1818]: 0.182574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1819]: 0.182589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[1820]: 0.182624900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459168, size: 7, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.182624900] HEAP: Allocated 7 bytes @ 0x3ffbafe0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1661]: 0.181947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461300, size: 14, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.181947000] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc0" on core 0 by: +EVENT[1821]: 0.182660375 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 14, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.182660375] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1662]: 0.181964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1663]: 0.181980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1664]: 0.182050450 - core[0].svPrint(26), plen 70: [msg: I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834 +EVENT[1822]: 0.182677300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1823]: 0.182693250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1824]: 0.182748025 - core[0].svPrint(26), plen 70: [msg: I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014 , lvl: 0, unused: 0] -[0.182050450] LOG: I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834 -EVENT[1665]: 0.182068200 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1666]: 0.182081425 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1667]: 0.182097650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1668]: 0.182108525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1669]: 0.182119275 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1670]: 0.182133125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1671]: 0.182144000 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1672]: 0.182154825 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1673]: 0.182166800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1674]: 0.182177050 - core[0].svIdle(17), plen 0: [] -EVENT[1675]: 0.182188450 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1676]: 0.182204825 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1677]: 0.182268375 - core[1].svPrint(26), plen 63: [msg: I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834 +[0.182748025] LOG: I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014 +EVENT[1825]: 0.182761500 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1826]: 0.182778850 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1827]: 0.182778850 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[1828]: 0.182795100 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1829]: 0.182806050 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1830]: 0.182816825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1831]: 0.182830550 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1832]: 0.182841300 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[1833]: 0.182852100 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1834]: 0.182864075 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1835]: 0.182874325 - core[0].svIdle(17), plen 0: [] +EVENT[1836]: 0.182886075 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1837]: 0.182902350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1838]: 0.182950125 - core[1].svPrint(26), plen 63: [msg: I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014 , lvl: 0, unused: 0] -[0.182268375] LOG: I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834 -EVENT[1678]: 0.182289575 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461300, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.182289575] HEAP: Freed bytes @ 0x3ffbb834 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.182950125] LOG: I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014 +EVENT[1839]: 0.182971500 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459220, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.182971500] HEAP: Freed bytes @ 0x3ffbb014 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1679]: 0.182320575 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1680]: 0.182332050 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1681]: 0.182348750 - core[1].svIdle(17), plen 0: [] -EVENT[1682]: 0.182666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1683]: 0.182679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1684]: 0.182695450 - core[1].svIdle(17), plen 0: [] -EVENT[1685]: 0.182833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1686]: 0.182848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1687]: 0.182861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1688]: 0.182877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1689]: 0.182912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461300, size: 14, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.182912575] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc1" on core 0 by: +EVENT[1840]: 0.182998900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1841]: 0.183010325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1842]: 0.183026875 - core[1].svIdle(17), plen 0: [] +EVENT[1843]: 0.183448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1844]: 0.183461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1845]: 0.183477300 - core[1].svIdle(17), plen 0: [] +EVENT[1846]: 0.183546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1847]: 0.183561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1848]: 0.183561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[1849]: 0.183573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1850]: 0.183573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[1851]: 0.183586000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1852]: 0.183601675 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[1853]: 0.183638125 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459220, size: 14, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.183638125] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1690]: 0.182947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461320, size: 28, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.182947000] HEAP: Allocated 28 bytes @ 0x3ffbb848 from task "alloc1" on core 0 by: +EVENT[1854]: 0.183677700 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459240, size: 28, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.183677700] HEAP: Allocated 28 bytes @ 0x3ffbb028 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1691]: 0.182964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1692]: 0.182980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1693]: 0.183050450 - core[0].svPrint(26), plen 70: [msg: I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848 +EVENT[1855]: 0.183694650 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1856]: 0.183710775 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1857]: 0.183765500 - core[0].svPrint(26), plen 70: [msg: I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028 , lvl: 0, unused: 0] -[0.183050450] LOG: I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848 -EVENT[1694]: 0.183064000 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1695]: 0.183081425 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1696]: 0.183097725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1697]: 0.183108575 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1698]: 0.183119325 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1699]: 0.183133050 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1700]: 0.183143900 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1701]: 0.183154725 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1702]: 0.183166600 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1703]: 0.183176850 - core[0].svIdle(17), plen 0: [] -EVENT[1704]: 0.183188325 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1705]: 0.183204625 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1706]: 0.183268075 - core[1].svPrint(26), plen 63: [msg: I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848 -, lvl: 0, unused: 0] -[0.183268075] LOG: I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848 -EVENT[1707]: 0.183289250 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461320, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.183289250] HEAP: Freed bytes @ 0x3ffbb848 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1708]: 0.183316250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1709]: 0.183327675 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1710]: 0.183344250 - core[1].svIdle(17), plen 0: [] -EVENT[1711]: 0.183666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1712]: 0.183679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1713]: 0.183695550 - core[1].svIdle(17), plen 0: [] -EVENT[1714]: 0.183833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1715]: 0.183848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1716]: 0.183861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1717]: 0.183877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1718]: 0.183912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461320, size: 21, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.183912650] HEAP: Allocated 21 bytes @ 0x3ffbb848 from task "alloc2" on core 0 by: +[0.183765500] LOG: I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028 +EVENT[1858]: 0.183778950 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1859]: 0.183792325 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1860]: 0.183792325 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[1861]: 0.183808675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1862]: 0.183819525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1863]: 0.183830350 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1864]: 0.183844125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1865]: 0.183856075 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[1866]: 0.183867225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1867]: 0.183879175 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1868]: 0.183890825 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[1869]: 0.183902500 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1870]: 0.183924575 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1871]: 0.183936150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459272, size: 21, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.183936150] HEAP: Allocated 21 bytes @ 0x3ffbb048 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1719]: 0.183951325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461348, size: 42, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.183951325] HEAP: Allocated 42 bytes @ 0x3ffbb864 from task "alloc2" on core 0 by: +EVENT[1872]: 0.183977500 - core[1].svPrint(26), plen 63: [msg: I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028 +, lvl: 0, unused: 0] +[0.183977500] LOG: I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028 +EVENT[1873]: 0.183988600 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 42, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.183988600] HEAP: Allocated 42 bytes @ 0x3ffbb064 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1720]: 0.183968225 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1721]: 0.183984200 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1722]: 0.184054550 - core[0].svPrint(26), plen 70: [msg: I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864 -, lvl: 0, unused: 0] -[0.184054550] LOG: I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864 -EVENT[1723]: 0.184068150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1724]: 0.184081375 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1725]: 0.184097675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1726]: 0.184108525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1727]: 0.184119300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1728]: 0.184133175 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1729]: 0.184144050 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1730]: 0.184154875 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1731]: 0.184166750 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1732]: 0.184178025 - core[0].svIdle(17), plen 0: [] -EVENT[1733]: 0.184189675 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1734]: 0.184209375 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1735]: 0.184272925 - core[1].svPrint(26), plen 63: [msg: I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864 -, lvl: 0, unused: 0] -[0.184272925] LOG: I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864 -EVENT[1736]: 0.184294125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461348, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.184294125] HEAP: Freed bytes @ 0x3ffbb864 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[1874]: 0.184003025 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459240, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.184003025] HEAP: Freed bytes @ 0x3ffbb028 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1737]: 0.184321025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1738]: 0.184332575 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1739]: 0.184349150 - core[1].svIdle(17), plen 0: [] -EVENT[1740]: 0.184666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1741]: 0.184679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1742]: 0.184695550 - core[1].svIdle(17), plen 0: [] -EVENT[1743]: 0.184833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1744]: 0.184849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1745]: 0.184864250 - core[0].svIdle(17), plen 0: [] -EVENT[1746]: 0.185666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1747]: 0.185680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1748]: 0.185695350 - core[1].svIdle(17), plen 0: [] -EVENT[1749]: 0.185833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1750]: 0.185849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1751]: 0.185864250 - core[0].svIdle(17), plen 0: [] -EVENT[1752]: 0.186666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1753]: 0.186680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1754]: 0.186695125 - core[1].svIdle(17), plen 0: [] -EVENT[1755]: 0.186833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1756]: 0.186849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1757]: 0.186864250 - core[0].svIdle(17), plen 0: [] -EVENT[1758]: 0.187666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1759]: 0.187680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1760]: 0.187695225 - core[1].svIdle(17), plen 0: [] -EVENT[1761]: 0.187833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1762]: 0.187849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1763]: 0.187864425 - core[0].svIdle(17), plen 0: [] -EVENT[1764]: 0.188666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1765]: 0.188679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1766]: 0.188695100 - core[1].svIdle(17), plen 0: [] -EVENT[1767]: 0.188833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1768]: 0.188849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1769]: 0.188864250 - core[0].svIdle(17), plen 0: [] -EVENT[1770]: 0.189666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1771]: 0.189680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1772]: 0.189695350 - core[1].svIdle(17), plen 0: [] -EVENT[1773]: 0.189833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1774]: 0.189849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1775]: 0.189868575 - core[0].svIdle(17), plen 0: [] -EVENT[1776]: 0.190666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1777]: 0.190679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1778]: 0.190695100 - core[1].svIdle(17), plen 0: [] -EVENT[1779]: 0.190833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1780]: 0.190849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1781]: 0.190864250 - core[0].svIdle(17), plen 0: [] -EVENT[1782]: 0.191666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1783]: 0.191680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1784]: 0.191695350 - core[1].svIdle(17), plen 0: [] -EVENT[1785]: 0.191833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1786]: 0.191849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1787]: 0.191864250 - core[0].svIdle(17), plen 0: [] -EVENT[1788]: 0.192666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1789]: 0.192680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1790]: 0.192695125 - core[1].svIdle(17), plen 0: [] -EVENT[1791]: 0.192833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1792]: 0.192849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1793]: 0.192864250 - core[0].svIdle(17), plen 0: [] -EVENT[1794]: 0.193666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1795]: 0.193680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1796]: 0.193695225 - core[1].svIdle(17), plen 0: [] -EVENT[1797]: 0.193833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1798]: 0.193849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1799]: 0.193864425 - core[0].svIdle(17), plen 0: [] -EVENT[1800]: 0.194666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1801]: 0.194679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1802]: 0.194695100 - core[1].svIdle(17), plen 0: [] -EVENT[1803]: 0.194833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1804]: 0.194849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1805]: 0.194864250 - core[0].svIdle(17), plen 0: [] -EVENT[1806]: 0.195666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1807]: 0.195680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1808]: 0.195695350 - core[1].svIdle(17), plen 0: [] -EVENT[1809]: 0.195833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1810]: 0.195849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1811]: 0.195864250 - core[0].svIdle(17), plen 0: [] -EVENT[1812]: 0.196666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1813]: 0.196680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1814]: 0.196695125 - core[1].svIdle(17), plen 0: [] -EVENT[1815]: 0.196833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1816]: 0.196849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1817]: 0.196864250 - core[0].svIdle(17), plen 0: [] -EVENT[1818]: 0.197666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1819]: 0.197680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1820]: 0.197695225 - core[1].svIdle(17), plen 0: [] -EVENT[1821]: 0.197833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1822]: 0.197849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1823]: 0.197864425 - core[0].svIdle(17), plen 0: [] -EVENT[1824]: 0.198666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1825]: 0.198679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1826]: 0.198695100 - core[1].svIdle(17), plen 0: [] -EVENT[1827]: 0.198833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1828]: 0.198849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1829]: 0.198864250 - core[0].svIdle(17), plen 0: [] -EVENT[1830]: 0.199666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1831]: 0.199680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1832]: 0.199695350 - core[1].svIdle(17), plen 0: [] -EVENT[1833]: 0.199833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1834]: 0.199849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1835]: 0.199864250 - core[0].svIdle(17), plen 0: [] -EVENT[1836]: 0.200666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1837]: 0.200680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1838]: 0.200695125 - core[1].svIdle(17), plen 0: [] -EVENT[1839]: 0.200833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1840]: 0.200849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1841]: 0.200864250 - core[0].svIdle(17), plen 0: [] -EVENT[1842]: 0.201666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1843]: 0.201680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1844]: 0.201695225 - core[1].svIdle(17), plen 0: [] -EVENT[1845]: 0.201833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1846]: 0.201849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1847]: 0.201864425 - core[0].svIdle(17), plen 0: [] -EVENT[1848]: 0.202666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1849]: 0.202680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1850]: 0.202695350 - core[1].svIdle(17), plen 0: [] -EVENT[1851]: 0.202833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1852]: 0.202849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1853]: 0.202864250 - core[0].svIdle(17), plen 0: [] -EVENT[1854]: 0.203666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1855]: 0.203680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1856]: 0.203695125 - core[1].svIdle(17), plen 0: [] -EVENT[1857]: 0.203833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1858]: 0.203849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1859]: 0.203864250 - core[0].svIdle(17), plen 0: [] -EVENT[1860]: 0.204666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1861]: 0.204680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1862]: 0.204695225 - core[1].svIdle(17), plen 0: [] -EVENT[1863]: 0.204833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1864]: 0.204849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1865]: 0.204864425 - core[0].svIdle(17), plen 0: [] -EVENT[1866]: 0.205666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1867]: 0.205679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1868]: 0.205695100 - core[1].svIdle(17), plen 0: [] -EVENT[1869]: 0.205833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1870]: 0.205849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1871]: 0.205864250 - core[0].svIdle(17), plen 0: [] -EVENT[1872]: 0.206666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1873]: 0.206680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1874]: 0.206695350 - core[1].svIdle(17), plen 0: [] -EVENT[1875]: 0.206833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1876]: 0.206849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1877]: 0.206864250 - core[0].svIdle(17), plen 0: [] -EVENT[1878]: 0.207666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1879]: 0.207680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1880]: 0.207695125 - core[1].svIdle(17), plen 0: [] -EVENT[1881]: 0.207833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1882]: 0.207849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1883]: 0.207864250 - core[0].svIdle(17), plen 0: [] -EVENT[1884]: 0.208666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1885]: 0.208680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1886]: 0.208695225 - core[1].svIdle(17), plen 0: [] -EVENT[1887]: 0.208833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1888]: 0.208849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1889]: 0.208864425 - core[0].svIdle(17), plen 0: [] -EVENT[1890]: 0.209666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1891]: 0.209679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1892]: 0.209695100 - core[1].svIdle(17), plen 0: [] -EVENT[1893]: 0.209833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1894]: 0.209849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1895]: 0.209864250 - core[0].svIdle(17), plen 0: [] -EVENT[1896]: 0.210666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1897]: 0.210680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1898]: 0.210695350 - core[1].svIdle(17), plen 0: [] -EVENT[1899]: 0.210833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1900]: 0.210849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1901]: 0.210864250 - core[0].svIdle(17), plen 0: [] -EVENT[1902]: 0.211666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1903]: 0.211680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1904]: 0.211695125 - core[1].svIdle(17), plen 0: [] -EVENT[1905]: 0.211833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1906]: 0.211848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[1907]: 0.211861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1908]: 0.211877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[1909]: 0.211912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461348, size: 8, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.211912650] HEAP: Allocated 8 bytes @ 0x3ffbb864 from task "alloc0" on core 0 by: +EVENT[1875]: 0.184015600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1876]: 0.184034475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1877]: 0.184045700 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1878]: 0.184056475 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1879]: 0.184074625 - core[1].svIdle(17), plen 0: [] +EVENT[1880]: 0.184102425 - core[0].svPrint(26), plen 70: [msg: I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064 +, lvl: 0, unused: 0] +[0.184102425] LOG: I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064 +EVENT[1881]: 0.184120150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1882]: 0.184133400 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1883]: 0.184133400 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[1884]: 0.184149750 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1885]: 0.184160600 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[1886]: 0.184171425 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1887]: 0.184185225 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[1888]: 0.184195975 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[1889]: 0.184206750 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1890]: 0.184218850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[1891]: 0.184230050 - core[0].svIdle(17), plen 0: [] +EVENT[1892]: 0.184242400 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[1893]: 0.184258625 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[1894]: 0.184306500 - core[1].svPrint(26), plen 63: [msg: I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064 +, lvl: 0, unused: 0] +[0.184306500] LOG: I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064 +EVENT[1895]: 0.184327925 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459300, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.184327925] HEAP: Freed bytes @ 0x3ffbb064 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[1896]: 0.184359250 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[1897]: 0.184370825 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1898]: 0.184387525 - core[1].svIdle(17), plen 0: [] +EVENT[1899]: 0.184448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1900]: 0.184461625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1901]: 0.184477200 - core[1].svIdle(17), plen 0: [] +EVENT[1902]: 0.184546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1903]: 0.184562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1904]: 0.184577275 - core[0].svIdle(17), plen 0: [] +EVENT[1905]: 0.185448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1906]: 0.185461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1907]: 0.185476850 - core[1].svIdle(17), plen 0: [] +EVENT[1908]: 0.185546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1909]: 0.185562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1910]: 0.185577075 - core[0].svIdle(17), plen 0: [] +EVENT[1911]: 0.186448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1912]: 0.186461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1913]: 0.186476975 - core[1].svIdle(17), plen 0: [] +EVENT[1914]: 0.186546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1915]: 0.186562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1916]: 0.186577225 - core[0].svIdle(17), plen 0: [] +EVENT[1917]: 0.187448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1918]: 0.187461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1919]: 0.187476900 - core[1].svIdle(17), plen 0: [] +EVENT[1920]: 0.187546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1921]: 0.187562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1922]: 0.187577075 - core[0].svIdle(17), plen 0: [] +EVENT[1923]: 0.188448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1924]: 0.188461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1925]: 0.188476850 - core[1].svIdle(17), plen 0: [] +EVENT[1926]: 0.188546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1927]: 0.188562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1928]: 0.188577275 - core[0].svIdle(17), plen 0: [] +EVENT[1929]: 0.189448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1930]: 0.189461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1931]: 0.189476850 - core[1].svIdle(17), plen 0: [] +EVENT[1932]: 0.189546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1933]: 0.189562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1934]: 0.189577075 - core[0].svIdle(17), plen 0: [] +EVENT[1935]: 0.190448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1936]: 0.190461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1937]: 0.190476975 - core[1].svIdle(17), plen 0: [] +EVENT[1938]: 0.190546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1939]: 0.190562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1940]: 0.190577225 - core[0].svIdle(17), plen 0: [] +EVENT[1941]: 0.191448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1942]: 0.191461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1943]: 0.191476900 - core[1].svIdle(17), plen 0: [] +EVENT[1944]: 0.191546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1945]: 0.191562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1946]: 0.191577075 - core[0].svIdle(17), plen 0: [] +EVENT[1947]: 0.192448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1948]: 0.192461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1949]: 0.192476850 - core[1].svIdle(17), plen 0: [] +EVENT[1950]: 0.192546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1951]: 0.192562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1952]: 0.192577275 - core[0].svIdle(17), plen 0: [] +EVENT[1953]: 0.193448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1954]: 0.193461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1955]: 0.193476850 - core[1].svIdle(17), plen 0: [] +EVENT[1956]: 0.193546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1957]: 0.193562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1958]: 0.193577075 - core[0].svIdle(17), plen 0: [] +EVENT[1959]: 0.194448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1960]: 0.194465950 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1961]: 0.194481100 - core[1].svIdle(17), plen 0: [] +EVENT[1962]: 0.194546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1963]: 0.194562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1964]: 0.194577075 - core[0].svIdle(17), plen 0: [] +EVENT[1965]: 0.195448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1966]: 0.195461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1967]: 0.195476850 - core[1].svIdle(17), plen 0: [] +EVENT[1968]: 0.195546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1969]: 0.195562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1970]: 0.195577275 - core[0].svIdle(17), plen 0: [] +EVENT[1971]: 0.196448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1972]: 0.196461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1973]: 0.196476850 - core[1].svIdle(17), plen 0: [] +EVENT[1974]: 0.196546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1975]: 0.196562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1976]: 0.196577075 - core[0].svIdle(17), plen 0: [] +EVENT[1977]: 0.197448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1978]: 0.197461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1979]: 0.197476975 - core[1].svIdle(17), plen 0: [] +EVENT[1980]: 0.197546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1981]: 0.197562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1982]: 0.197577225 - core[0].svIdle(17), plen 0: [] +EVENT[1983]: 0.198448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1984]: 0.198461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1985]: 0.198476900 - core[1].svIdle(17), plen 0: [] +EVENT[1986]: 0.198546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1987]: 0.198562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1988]: 0.198577075 - core[0].svIdle(17), plen 0: [] +EVENT[1989]: 0.199448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1990]: 0.199461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1991]: 0.199476850 - core[1].svIdle(17), plen 0: [] +EVENT[1992]: 0.199546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1993]: 0.199562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[1994]: 0.199577275 - core[0].svIdle(17), plen 0: [] +EVENT[1995]: 0.200448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1996]: 0.200461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[1997]: 0.200476850 - core[1].svIdle(17), plen 0: [] +EVENT[1998]: 0.200546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[1999]: 0.200562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2000]: 0.200577075 - core[0].svIdle(17), plen 0: [] +EVENT[2001]: 0.201448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2002]: 0.201461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2003]: 0.201476975 - core[1].svIdle(17), plen 0: [] +EVENT[2004]: 0.201546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2005]: 0.201562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2006]: 0.201577225 - core[0].svIdle(17), plen 0: [] +EVENT[2007]: 0.202448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2008]: 0.202461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2009]: 0.202476900 - core[1].svIdle(17), plen 0: [] +EVENT[2010]: 0.202546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2011]: 0.202562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2012]: 0.202577075 - core[0].svIdle(17), plen 0: [] +EVENT[2013]: 0.203448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2014]: 0.203461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2015]: 0.203476850 - core[1].svIdle(17), plen 0: [] +EVENT[2016]: 0.203546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2017]: 0.203562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2018]: 0.203577275 - core[0].svIdle(17), plen 0: [] +EVENT[2019]: 0.204448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2020]: 0.204461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2021]: 0.204476850 - core[1].svIdle(17), plen 0: [] +EVENT[2022]: 0.204546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2023]: 0.204562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2024]: 0.204577075 - core[0].svIdle(17), plen 0: [] +EVENT[2025]: 0.205448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2026]: 0.205461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2027]: 0.205476975 - core[1].svIdle(17), plen 0: [] +EVENT[2028]: 0.205546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2029]: 0.205562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2030]: 0.205577225 - core[0].svIdle(17), plen 0: [] +EVENT[2031]: 0.206448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2032]: 0.206466000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2033]: 0.206481125 - core[1].svIdle(17), plen 0: [] +EVENT[2034]: 0.206546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2035]: 0.206562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2036]: 0.206577075 - core[0].svIdle(17), plen 0: [] +EVENT[2037]: 0.207448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2038]: 0.207461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2039]: 0.207476850 - core[1].svIdle(17), plen 0: [] +EVENT[2040]: 0.207546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2041]: 0.207562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2042]: 0.207577275 - core[0].svIdle(17), plen 0: [] +EVENT[2043]: 0.208448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2044]: 0.208461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2045]: 0.208476850 - core[1].svIdle(17), plen 0: [] +EVENT[2046]: 0.208546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2047]: 0.208562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2048]: 0.208577075 - core[0].svIdle(17), plen 0: [] +EVENT[2049]: 0.209448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2050]: 0.209461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2051]: 0.209476975 - core[1].svIdle(17), plen 0: [] +EVENT[2052]: 0.209546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2053]: 0.209562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2054]: 0.209577225 - core[0].svIdle(17), plen 0: [] +EVENT[2055]: 0.210448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2056]: 0.210461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2057]: 0.210476900 - core[1].svIdle(17), plen 0: [] +EVENT[2058]: 0.210546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2059]: 0.210562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2060]: 0.210577075 - core[0].svIdle(17), plen 0: [] +EVENT[2061]: 0.211448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2062]: 0.211461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2063]: 0.211476850 - core[1].svIdle(17), plen 0: [] +EVENT[2064]: 0.211546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2065]: 0.211562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2066]: 0.211577275 - core[0].svIdle(17), plen 0: [] +EVENT[2067]: 0.212448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2068]: 0.212461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2069]: 0.212476850 - core[1].svIdle(17), plen 0: [] +EVENT[2070]: 0.212546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2071]: 0.212561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2072]: 0.212561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2073]: 0.212574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2074]: 0.212590075 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2075]: 0.212626150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459240, size: 8, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.212626150] HEAP: Allocated 8 bytes @ 0x3ffbb028 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1910]: 0.211951250 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461364, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.211951250] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc0" on core 0 by: +EVENT[2076]: 0.212661725 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.212661725] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1911]: 0.211968150 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1912]: 0.211984150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1913]: 0.212054475 - core[0].svPrint(26), plen 70: [msg: I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874 +EVENT[2077]: 0.212678700 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2078]: 0.212694675 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2079]: 0.212753700 - core[0].svPrint(26), plen 70: [msg: I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064 , lvl: 0, unused: 0] -[0.212054475] LOG: I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874 -EVENT[1914]: 0.212068075 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1915]: 0.212081300 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[1916]: 0.212097675 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1917]: 0.212108525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1918]: 0.212119300 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1919]: 0.212133125 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1920]: 0.212144025 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[1921]: 0.212154850 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1922]: 0.212166800 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1923]: 0.212177050 - core[0].svIdle(17), plen 0: [] -EVENT[1924]: 0.212188475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1925]: 0.212208850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1926]: 0.212272400 - core[1].svPrint(26), plen 63: [msg: I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874 +[0.212753700] LOG: I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064 +EVENT[2080]: 0.212767175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2081]: 0.212780350 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2082]: 0.212780350 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2083]: 0.212796550 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2084]: 0.212807500 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2085]: 0.212818275 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2086]: 0.212832325 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2087]: 0.212844475 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[2088]: 0.212855425 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2089]: 0.212867375 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2090]: 0.212877575 - core[0].svIdle(17), plen 0: [] +EVENT[2091]: 0.212889300 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2092]: 0.212905650 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2093]: 0.212953525 - core[1].svPrint(26), plen 63: [msg: I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064 , lvl: 0, unused: 0] -[0.212272400] LOG: I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874 -EVENT[1927]: 0.212293600 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461364, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.212293600] HEAP: Freed bytes @ 0x3ffbb874 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.212953525] LOG: I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064 +EVENT[2094]: 0.212974725 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459300, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.212974725] HEAP: Freed bytes @ 0x3ffbb064 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1928]: 0.212320475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1929]: 0.212331900 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1930]: 0.212348475 - core[1].svIdle(17), plen 0: [] -EVENT[1931]: 0.212666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1932]: 0.212679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1933]: 0.212695550 - core[1].svIdle(17), plen 0: [] -EVENT[1934]: 0.212833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1935]: 0.212848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[1936]: 0.212861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1937]: 0.212877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[1938]: 0.212912775 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461364, size: 16, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.212912775] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc1" on core 0 by: +EVENT[2095]: 0.213006200 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2096]: 0.213017650 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2097]: 0.213034350 - core[1].svIdle(17), plen 0: [] +EVENT[2098]: 0.213448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2099]: 0.213461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2100]: 0.213477300 - core[1].svIdle(17), plen 0: [] +EVENT[2101]: 0.213546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2102]: 0.213561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2103]: 0.213561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2104]: 0.213573500 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2105]: 0.213573500 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2106]: 0.213585975 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2107]: 0.213601625 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2108]: 0.213638000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459300, size: 16, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.213638000] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1939]: 0.212947475 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461384, size: 32, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.212947475] HEAP: Allocated 32 bytes @ 0x3ffbb888 from task "alloc1" on core 0 by: +EVENT[2109]: 0.213673625 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 32, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.213673625] HEAP: Allocated 32 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1940]: 0.212964400 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1941]: 0.212984575 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1942]: 0.213055025 - core[0].svPrint(26), plen 70: [msg: I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888 +EVENT[2110]: 0.213690700 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2111]: 0.213706725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2112]: 0.213761525 - core[0].svPrint(26), plen 70: [msg: I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.213055025] LOG: I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888 -EVENT[1943]: 0.213068650 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1944]: 0.213081850 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[1945]: 0.213098150 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1946]: 0.213109000 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1947]: 0.213119750 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1948]: 0.213133475 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1949]: 0.213144325 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[1950]: 0.213155150 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1951]: 0.213167025 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1952]: 0.213177275 - core[0].svIdle(17), plen 0: [] -EVENT[1953]: 0.213188750 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1954]: 0.213205050 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1955]: 0.213268500 - core[1].svPrint(26), plen 63: [msg: I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888 -, lvl: 0, unused: 0] -[0.213268500] LOG: I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888 -EVENT[1956]: 0.213293550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461384, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.213293550] HEAP: Freed bytes @ 0x3ffbb888 from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 -/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 -/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 - -EVENT[1957]: 0.213320550 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1958]: 0.213331975 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1959]: 0.213348550 - core[1].svIdle(17), plen 0: [] -EVENT[1960]: 0.213666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1961]: 0.213679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1962]: 0.213695550 - core[1].svIdle(17), plen 0: [] -EVENT[1963]: 0.213833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1964]: 0.213848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[1965]: 0.213861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1966]: 0.213877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[1967]: 0.213912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461384, size: 24, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.213912650] HEAP: Allocated 24 bytes @ 0x3ffbb888 from task "alloc2" on core 0 by: +[0.213761525] LOG: I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078 +EVENT[2113]: 0.213778300 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2114]: 0.213791550 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2115]: 0.213791550 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2116]: 0.213807900 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2117]: 0.213818750 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2118]: 0.213829575 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2119]: 0.213843375 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2120]: 0.213855300 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[2121]: 0.213866475 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2122]: 0.213878400 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2123]: 0.213890050 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2124]: 0.213901775 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2125]: 0.213920350 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2126]: 0.213933475 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459356, size: 24, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.213933475] HEAP: Allocated 24 bytes @ 0x3ffbb09c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1968]: 0.213947200 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461412, size: 48, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.213947200] HEAP: Allocated 48 bytes @ 0x3ffbb8a4 from task "alloc2" on core 0 by: +EVENT[2127]: 0.213974050 - core[1].svPrint(26), plen 63: [msg: I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078 +, lvl: 0, unused: 0] +[0.213974050] LOG: I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078 +EVENT[2128]: 0.213990025 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 48, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.213990025] HEAP: Allocated 48 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1969]: 0.213964350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1970]: 0.213980350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1971]: 0.214050675 - core[0].svPrint(26), plen 70: [msg: I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4 -, lvl: 0, unused: 0] -[0.214050675] LOG: I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4 -EVENT[1972]: 0.214071175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1973]: 0.214084400 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[1974]: 0.214100725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1975]: 0.214111575 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[1976]: 0.214122325 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1977]: 0.214136050 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[1978]: 0.214146950 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[1979]: 0.214157775 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1980]: 0.214169625 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[1981]: 0.214180925 - core[0].svIdle(17), plen 0: [] -EVENT[1982]: 0.214192550 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[1983]: 0.214208950 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[1984]: 0.214272500 - core[1].svPrint(26), plen 63: [msg: I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4 -, lvl: 0, unused: 0] -[0.214272500] LOG: I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4 -EVENT[1985]: 0.214293700 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461412, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.214293700] HEAP: Freed bytes @ 0x3ffbb8a4 from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +EVENT[2129]: 0.214004375 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459320, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.214004375] HEAP: Freed bytes @ 0x3ffbb078 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[1986]: 0.214324025 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[1987]: 0.214335500 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1988]: 0.214352200 - core[1].svIdle(17), plen 0: [] -EVENT[1989]: 0.214666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1990]: 0.214679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1991]: 0.214695450 - core[1].svIdle(17), plen 0: [] -EVENT[1992]: 0.214833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1993]: 0.214849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[1994]: 0.214864425 - core[0].svIdle(17), plen 0: [] -EVENT[1995]: 0.215666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1996]: 0.215679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[1997]: 0.215695100 - core[1].svIdle(17), plen 0: [] -EVENT[1998]: 0.215833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[1999]: 0.215849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2000]: 0.215864250 - core[0].svIdle(17), plen 0: [] -EVENT[2001]: 0.216666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2002]: 0.216680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2003]: 0.216695350 - core[1].svIdle(17), plen 0: [] -EVENT[2004]: 0.216833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2005]: 0.216849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2006]: 0.216864250 - core[0].svIdle(17), plen 0: [] -EVENT[2007]: 0.217666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2008]: 0.217680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2009]: 0.217695125 - core[1].svIdle(17), plen 0: [] -EVENT[2010]: 0.217833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2011]: 0.217849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2012]: 0.217864250 - core[0].svIdle(17), plen 0: [] -EVENT[2013]: 0.218666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2014]: 0.218680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2015]: 0.218695225 - core[1].svIdle(17), plen 0: [] -EVENT[2016]: 0.218833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2017]: 0.218849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2018]: 0.218864425 - core[0].svIdle(17), plen 0: [] -EVENT[2019]: 0.219666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2020]: 0.219679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2021]: 0.219695100 - core[1].svIdle(17), plen 0: [] -EVENT[2022]: 0.219833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2023]: 0.219849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2024]: 0.219864250 - core[0].svIdle(17), plen 0: [] -EVENT[2025]: 0.220666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2026]: 0.220680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2027]: 0.220695350 - core[1].svIdle(17), plen 0: [] -EVENT[2028]: 0.220833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2029]: 0.220849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2030]: 0.220864250 - core[0].svIdle(17), plen 0: [] -EVENT[2031]: 0.221666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2032]: 0.221680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2033]: 0.221695125 - core[1].svIdle(17), plen 0: [] -EVENT[2034]: 0.221833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2035]: 0.221849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2036]: 0.221864250 - core[0].svIdle(17), plen 0: [] -EVENT[2037]: 0.222666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2038]: 0.222680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2039]: 0.222695225 - core[1].svIdle(17), plen 0: [] -EVENT[2040]: 0.222833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2041]: 0.222849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2042]: 0.222864425 - core[0].svIdle(17), plen 0: [] -EVENT[2043]: 0.223666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2044]: 0.223679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2045]: 0.223695100 - core[1].svIdle(17), plen 0: [] -EVENT[2046]: 0.223833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2047]: 0.223849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2048]: 0.223864250 - core[0].svIdle(17), plen 0: [] -EVENT[2049]: 0.224666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2050]: 0.224684200 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2051]: 0.224699350 - core[1].svIdle(17), plen 0: [] -EVENT[2052]: 0.224833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2053]: 0.224849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2054]: 0.224864250 - core[0].svIdle(17), plen 0: [] -EVENT[2055]: 0.225666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2056]: 0.225680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2057]: 0.225695225 - core[1].svIdle(17), plen 0: [] -EVENT[2058]: 0.225833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2059]: 0.225849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2060]: 0.225864425 - core[0].svIdle(17), plen 0: [] -EVENT[2061]: 0.226666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2062]: 0.226679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2063]: 0.226695100 - core[1].svIdle(17), plen 0: [] -EVENT[2064]: 0.226833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2065]: 0.226849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2066]: 0.226864250 - core[0].svIdle(17), plen 0: [] -EVENT[2067]: 0.227666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2068]: 0.227680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2069]: 0.227695350 - core[1].svIdle(17), plen 0: [] -EVENT[2070]: 0.227833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2071]: 0.227849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2072]: 0.227864250 - core[0].svIdle(17), plen 0: [] -EVENT[2073]: 0.228666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2074]: 0.228680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2075]: 0.228695125 - core[1].svIdle(17), plen 0: [] -EVENT[2076]: 0.228833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2077]: 0.228849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2078]: 0.228864250 - core[0].svIdle(17), plen 0: [] -EVENT[2079]: 0.229666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2080]: 0.229680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2081]: 0.229695225 - core[1].svIdle(17), plen 0: [] -EVENT[2082]: 0.229833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2083]: 0.229849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2084]: 0.229864425 - core[0].svIdle(17), plen 0: [] -EVENT[2085]: 0.230666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2086]: 0.230679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2087]: 0.230695100 - core[1].svIdle(17), plen 0: [] -EVENT[2088]: 0.230833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2089]: 0.230849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2090]: 0.230864250 - core[0].svIdle(17), plen 0: [] -EVENT[2091]: 0.231666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2092]: 0.231680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2093]: 0.231695350 - core[1].svIdle(17), plen 0: [] -EVENT[2094]: 0.231833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2095]: 0.231849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2096]: 0.231864250 - core[0].svIdle(17), plen 0: [] -EVENT[2097]: 0.232666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2098]: 0.232680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2099]: 0.232695125 - core[1].svIdle(17), plen 0: [] -EVENT[2100]: 0.232833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2101]: 0.232849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2102]: 0.232864250 - core[0].svIdle(17), plen 0: [] -EVENT[2103]: 0.233666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2104]: 0.233680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2105]: 0.233695225 - core[1].svIdle(17), plen 0: [] -EVENT[2106]: 0.233833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2107]: 0.233849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2108]: 0.233864425 - core[0].svIdle(17), plen 0: [] -EVENT[2109]: 0.234666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2110]: 0.234679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2111]: 0.234695100 - core[1].svIdle(17), plen 0: [] -EVENT[2112]: 0.234833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2113]: 0.234849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2114]: 0.234864250 - core[0].svIdle(17), plen 0: [] -EVENT[2115]: 0.235666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2116]: 0.235680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2117]: 0.235695350 - core[1].svIdle(17), plen 0: [] -EVENT[2118]: 0.235833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2119]: 0.235849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2120]: 0.235864250 - core[0].svIdle(17), plen 0: [] -EVENT[2121]: 0.236666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2122]: 0.236683550 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2123]: 0.236698675 - core[1].svIdle(17), plen 0: [] -EVENT[2124]: 0.236833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2125]: 0.236849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2126]: 0.236864250 - core[0].svIdle(17), plen 0: [] -EVENT[2127]: 0.237666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2128]: 0.237680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2129]: 0.237695225 - core[1].svIdle(17), plen 0: [] -EVENT[2130]: 0.237833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2131]: 0.237849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2132]: 0.237864425 - core[0].svIdle(17), plen 0: [] -EVENT[2133]: 0.238666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2134]: 0.238679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2135]: 0.238695100 - core[1].svIdle(17), plen 0: [] -EVENT[2136]: 0.238833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2137]: 0.238849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2138]: 0.238864250 - core[0].svIdle(17), plen 0: [] -EVENT[2139]: 0.239666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2140]: 0.239680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2141]: 0.239695350 - core[1].svIdle(17), plen 0: [] -EVENT[2142]: 0.239833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2143]: 0.239849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2144]: 0.239864250 - core[0].svIdle(17), plen 0: [] -EVENT[2145]: 0.240666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2146]: 0.240680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2147]: 0.240695125 - core[1].svIdle(17), plen 0: [] -EVENT[2148]: 0.240833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2149]: 0.240849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2150]: 0.240864250 - core[0].svIdle(17), plen 0: [] -EVENT[2151]: 0.241666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2152]: 0.241680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2153]: 0.241695225 - core[1].svIdle(17), plen 0: [] -EVENT[2154]: 0.241833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2155]: 0.241848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2156]: 0.241861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2157]: 0.241877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[2158]: 0.241912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461412, size: 9, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.241912575] HEAP: Allocated 9 bytes @ 0x3ffbb8a4 from task "alloc0" on core 0 by: +EVENT[2130]: 0.214016825 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2131]: 0.214035975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2132]: 0.214047225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2133]: 0.214058075 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2134]: 0.214076350 - core[1].svIdle(17), plen 0: [] +EVENT[2135]: 0.214104200 - core[0].svPrint(26), plen 70: [msg: I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8 +, lvl: 0, unused: 0] +[0.214104200] LOG: I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8 +EVENT[2136]: 0.214117650 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2137]: 0.215663675 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2138]: 0.215675325 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2139]: 0.215675325 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2140]: 0.215693125 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2141]: 0.215704250 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2142]: 0.215715175 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2143]: 0.215726825 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2144]: 0.215737325 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2145]: 0.215748175 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2146]: 0.215759125 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2147]: 0.215770850 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2148]: 0.215781625 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2149]: 0.215793125 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2150]: 0.215810975 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[2151]: 0.215824800 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2152]: 0.215837075 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2153]: 0.215848525 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2154]: 0.215860600 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2155]: 0.215871650 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2156]: 0.215883675 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2157]: 0.215894125 - core[0].svIdle(17), plen 0: [] +EVENT[2158]: 0.215944175 - core[1].svPrint(26), plen 63: [msg: I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8 +, lvl: 0, unused: 0] +[0.215944175] LOG: I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8 +EVENT[2159]: 0.215965550 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459384, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.215965550] HEAP: Freed bytes @ 0x3ffbb0b8 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 +/Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 +/Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 + +EVENT[2160]: 0.215992975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2161]: 0.216004375 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2162]: 0.216020950 - core[1].svIdle(17), plen 0: [] +EVENT[2163]: 0.216448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2164]: 0.216461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2165]: 0.216477300 - core[1].svIdle(17), plen 0: [] +EVENT[2166]: 0.216546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2167]: 0.216562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2168]: 0.216577275 - core[0].svIdle(17), plen 0: [] +EVENT[2169]: 0.217448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2170]: 0.217461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2171]: 0.217476975 - core[1].svIdle(17), plen 0: [] +EVENT[2172]: 0.217546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2173]: 0.217562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2174]: 0.217577225 - core[0].svIdle(17), plen 0: [] +EVENT[2175]: 0.218448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2176]: 0.218461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2177]: 0.218476900 - core[1].svIdle(17), plen 0: [] +EVENT[2178]: 0.218546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2179]: 0.218562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2180]: 0.218577075 - core[0].svIdle(17), plen 0: [] +EVENT[2181]: 0.219448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2182]: 0.219461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2183]: 0.219476850 - core[1].svIdle(17), plen 0: [] +EVENT[2184]: 0.219546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2185]: 0.219562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2186]: 0.219577275 - core[0].svIdle(17), plen 0: [] +EVENT[2187]: 0.220448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2188]: 0.220461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2189]: 0.220476850 - core[1].svIdle(17), plen 0: [] +EVENT[2190]: 0.220546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2191]: 0.220562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2192]: 0.220577075 - core[0].svIdle(17), plen 0: [] +EVENT[2193]: 0.221448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2194]: 0.221461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2195]: 0.221476975 - core[1].svIdle(17), plen 0: [] +EVENT[2196]: 0.221546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2197]: 0.221562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2198]: 0.221577225 - core[0].svIdle(17), plen 0: [] +EVENT[2199]: 0.222448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2200]: 0.222461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2201]: 0.222476900 - core[1].svIdle(17), plen 0: [] +EVENT[2202]: 0.222546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2203]: 0.222562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2204]: 0.222577075 - core[0].svIdle(17), plen 0: [] +EVENT[2205]: 0.223448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2206]: 0.223461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2207]: 0.223476850 - core[1].svIdle(17), plen 0: [] +EVENT[2208]: 0.223546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2209]: 0.223562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2210]: 0.223577275 - core[0].svIdle(17), plen 0: [] +EVENT[2211]: 0.224448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2212]: 0.224461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2213]: 0.224476850 - core[1].svIdle(17), plen 0: [] +EVENT[2214]: 0.224546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2215]: 0.224562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2216]: 0.224577075 - core[0].svIdle(17), plen 0: [] +EVENT[2217]: 0.225448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2218]: 0.225461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2219]: 0.225476975 - core[1].svIdle(17), plen 0: [] +EVENT[2220]: 0.225546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2221]: 0.225562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2222]: 0.225577225 - core[0].svIdle(17), plen 0: [] +EVENT[2223]: 0.226448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2224]: 0.226461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2225]: 0.226476900 - core[1].svIdle(17), plen 0: [] +EVENT[2226]: 0.226546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2227]: 0.226562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2228]: 0.226577075 - core[0].svIdle(17), plen 0: [] +EVENT[2229]: 0.227448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2230]: 0.227461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2231]: 0.227476850 - core[1].svIdle(17), plen 0: [] +EVENT[2232]: 0.227546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2233]: 0.227562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2234]: 0.227577275 - core[0].svIdle(17), plen 0: [] +EVENT[2235]: 0.228448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2236]: 0.228461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2237]: 0.228476850 - core[1].svIdle(17), plen 0: [] +EVENT[2238]: 0.228546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2239]: 0.228562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2240]: 0.228577075 - core[0].svIdle(17), plen 0: [] +EVENT[2241]: 0.229448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2242]: 0.229466000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2243]: 0.229481125 - core[1].svIdle(17), plen 0: [] +EVENT[2244]: 0.229546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2245]: 0.229562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2246]: 0.229577075 - core[0].svIdle(17), plen 0: [] +EVENT[2247]: 0.230448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2248]: 0.230461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2249]: 0.230476850 - core[1].svIdle(17), plen 0: [] +EVENT[2250]: 0.230546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2251]: 0.230562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2252]: 0.230577275 - core[0].svIdle(17), plen 0: [] +EVENT[2253]: 0.231448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2254]: 0.231461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2255]: 0.231476850 - core[1].svIdle(17), plen 0: [] +EVENT[2256]: 0.231546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2257]: 0.231562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2258]: 0.231577075 - core[0].svIdle(17), plen 0: [] +EVENT[2259]: 0.232448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2260]: 0.232461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2261]: 0.232476975 - core[1].svIdle(17), plen 0: [] +EVENT[2262]: 0.232546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2263]: 0.232562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2264]: 0.232577225 - core[0].svIdle(17), plen 0: [] +EVENT[2265]: 0.233448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2266]: 0.233461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2267]: 0.233476900 - core[1].svIdle(17), plen 0: [] +EVENT[2268]: 0.233546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2269]: 0.233562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2270]: 0.233577075 - core[0].svIdle(17), plen 0: [] +EVENT[2271]: 0.234448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2272]: 0.234461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2273]: 0.234476850 - core[1].svIdle(17), plen 0: [] +EVENT[2274]: 0.234546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2275]: 0.234562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2276]: 0.234577275 - core[0].svIdle(17), plen 0: [] +EVENT[2277]: 0.235448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2278]: 0.235461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2279]: 0.235476850 - core[1].svIdle(17), plen 0: [] +EVENT[2280]: 0.235546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2281]: 0.235562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2282]: 0.235577075 - core[0].svIdle(17), plen 0: [] +EVENT[2283]: 0.236448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2284]: 0.236461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2285]: 0.236476975 - core[1].svIdle(17), plen 0: [] +EVENT[2286]: 0.236546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2287]: 0.236562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2288]: 0.236577225 - core[0].svIdle(17), plen 0: [] +EVENT[2289]: 0.237448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2290]: 0.237461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2291]: 0.237476900 - core[1].svIdle(17), plen 0: [] +EVENT[2292]: 0.237546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2293]: 0.237562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2294]: 0.237577075 - core[0].svIdle(17), plen 0: [] +EVENT[2295]: 0.238448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2296]: 0.238461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2297]: 0.238476850 - core[1].svIdle(17), plen 0: [] +EVENT[2298]: 0.238546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2299]: 0.238562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2300]: 0.238577275 - core[0].svIdle(17), plen 0: [] +EVENT[2301]: 0.239448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2302]: 0.239461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2303]: 0.239476850 - core[1].svIdle(17), plen 0: [] +EVENT[2304]: 0.239546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2305]: 0.239562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2306]: 0.239577075 - core[0].svIdle(17), plen 0: [] +EVENT[2307]: 0.240448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2308]: 0.240461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2309]: 0.240476975 - core[1].svIdle(17), plen 0: [] +EVENT[2310]: 0.240546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2311]: 0.240562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2312]: 0.240577225 - core[0].svIdle(17), plen 0: [] +EVENT[2313]: 0.241448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2314]: 0.241465300 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2315]: 0.241480450 - core[1].svIdle(17), plen 0: [] +EVENT[2316]: 0.241546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2317]: 0.241562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2318]: 0.241577075 - core[0].svIdle(17), plen 0: [] +EVENT[2319]: 0.242448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2320]: 0.242461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2321]: 0.242476850 - core[1].svIdle(17), plen 0: [] +EVENT[2322]: 0.242546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2323]: 0.242561675 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2324]: 0.242561675 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2325]: 0.242574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2326]: 0.242589925 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2327]: 0.242624900 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459256, size: 9, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.242624900] HEAP: Allocated 9 bytes @ 0x3ffbb038 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2159]: 0.241947000 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461428, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.241947000] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc0" on core 0 by: +EVENT[2328]: 0.242659150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.242659150] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2160]: 0.241964025 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2161]: 0.241980025 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2162]: 0.242050450 - core[0].svPrint(26), plen 70: [msg: I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4 +EVENT[2329]: 0.242676200 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2330]: 0.242692225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2331]: 0.242747050 - core[0].svPrint(26), plen 70: [msg: I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.242050450] LOG: I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4 -EVENT[2163]: 0.242068275 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12287056, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2164]: 0.242081500 - core[0].svTaskStartReady(6), plen 0: [tid: 12289748] -EVENT[2165]: 0.242097725 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2166]: 0.242108600 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2167]: 0.242119350 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2168]: 0.242133200 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2169]: 0.242144075 - core[1].svTaskStartExec(4), plen 0: [tid: 12289748] -EVENT[2170]: 0.242154900 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2171]: 0.242166875 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12287056, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2172]: 0.242177125 - core[0].svIdle(17), plen 0: [] -EVENT[2173]: 0.242188525 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2174]: 0.242204900 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2175]: 0.242268450 - core[1].svPrint(26), plen 63: [msg: I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4 +[0.242747050] LOG: I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078 +EVENT[2332]: 0.242760425 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12284952, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2333]: 0.242773825 - core[0].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2334]: 0.242773825 - core[1].svTaskStartReady(6), plen 0: [tid: 12287644] +EVENT[2335]: 0.242790000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2336]: 0.242805900 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2337]: 0.242816600 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2338]: 0.242830325 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2339]: 0.242841100 - core[1].svTaskStartExec(4), plen 0: [tid: 12287644] +EVENT[2340]: 0.242851850 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2341]: 0.242864100 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12284952, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2342]: 0.242875350 - core[0].svIdle(17), plen 0: [] +EVENT[2343]: 0.242892600 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2344]: 0.242908850 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2345]: 0.242956725 - core[1].svPrint(26), plen 63: [msg: I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078 , lvl: 0, unused: 0] -[0.242268450] LOG: I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4 -EVENT[2176]: 0.242289650 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461428, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.242289650] HEAP: Freed bytes @ 0x3ffbb8b4 from task "free0" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.242956725] LOG: I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078 +EVENT[2346]: 0.242978125 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459320, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.242978125] HEAP: Freed bytes @ 0x3ffbb078 from task "free0" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2177]: 0.242320650 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2178]: 0.242332125 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2179]: 0.242348825 - core[1].svIdle(17), plen 0: [] -EVENT[2180]: 0.242666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2181]: 0.242679875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2182]: 0.242695450 - core[1].svIdle(17), plen 0: [] -EVENT[2183]: 0.242833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2184]: 0.242848825 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2185]: 0.242861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2186]: 0.242877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[2187]: 0.242912575 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461428, size: 18, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.242912575] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc1" on core 0 by: +EVENT[2347]: 0.243004600 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2348]: 0.243016000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2349]: 0.243032575 - core[1].svIdle(17), plen 0: [] +EVENT[2350]: 0.243448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2351]: 0.243461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2352]: 0.243477425 - core[1].svIdle(17), plen 0: [] +EVENT[2353]: 0.243546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2354]: 0.243561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2355]: 0.243561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2356]: 0.243574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2357]: 0.243589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2358]: 0.243625050 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459320, size: 18, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.243625050] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2188]: 0.242947150 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461452, size: 36, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.242947150] HEAP: Allocated 36 bytes @ 0x3ffbb8cc from task "alloc1" on core 0 by: +EVENT[2359]: 0.243664650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 36, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.243664650] HEAP: Allocated 36 bytes @ 0x3ffbb0b8 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2189]: 0.242964175 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2190]: 0.242980175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2191]: 0.243050600 - core[0].svPrint(26), plen 70: [msg: I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc +EVENT[2360]: 0.243681600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2361]: 0.243697725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2362]: 0.243752450 - core[0].svPrint(26), plen 70: [msg: I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8 , lvl: 0, unused: 0] -[0.243050600] LOG: I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc -EVENT[2192]: 0.243064150 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12293072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2193]: 0.243080975 - core[0].svTaskStartReady(6), plen 0: [tid: 12295764] -EVENT[2194]: 0.243097275 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2195]: 0.243108125 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2196]: 0.243118875 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2197]: 0.243132600 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2198]: 0.243143450 - core[1].svTaskStartExec(4), plen 0: [tid: 12295764] -EVENT[2199]: 0.243154275 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2200]: 0.243166150 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12293072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2201]: 0.243176400 - core[0].svIdle(17), plen 0: [] -EVENT[2202]: 0.243187875 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2203]: 0.243204375 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2204]: 0.243267825 - core[1].svPrint(26), plen 63: [msg: I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc +[0.243752450] LOG: I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8 +EVENT[2363]: 0.243765900 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12290968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2364]: 0.243779150 - core[0].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2365]: 0.243779150 - core[1].svTaskStartReady(6), plen 0: [tid: 12293660] +EVENT[2366]: 0.243795500 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2367]: 0.243806350 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2368]: 0.243817175 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2369]: 0.243830875 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2370]: 0.243841750 - core[1].svTaskStartExec(4), plen 0: [tid: 12293660] +EVENT[2371]: 0.243852625 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2372]: 0.243864575 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12290968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2373]: 0.243875800 - core[0].svIdle(17), plen 0: [] +EVENT[2374]: 0.243887600 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2375]: 0.243908225 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2376]: 0.243956100 - core[1].svPrint(26), plen 63: [msg: I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8 , lvl: 0, unused: 0] -[0.243267825] LOG: I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc -EVENT[2205]: 0.243288975 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461452, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.243288975] HEAP: Freed bytes @ 0x3ffbb8cc from task "free1" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.243956100] LOG: I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8 +EVENT[2377]: 0.243977525 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459384, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.243977525] HEAP: Freed bytes @ 0x3ffbb0b8 from task "free1" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2206]: 0.243315975 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2207]: 0.243327400 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2208]: 0.243343975 - core[1].svIdle(17), plen 0: [] -EVENT[2209]: 0.243666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2210]: 0.243679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2211]: 0.243695550 - core[1].svIdle(17), plen 0: [] -EVENT[2212]: 0.243833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2213]: 0.243848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2214]: 0.243861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2215]: 0.243877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[2216]: 0.243912650 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461452, size: 27, callers: [1074274287, 1074274340, 1074325096, 1074621171, 1074302356, 0, 0, 0, 0, 0]] -[0.243912650] HEAP: Allocated 27 bytes @ 0x3ffbb8cc from task "alloc2" on core 0 by: +EVENT[2378]: 0.244004825 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2379]: 0.244016225 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2380]: 0.244032800 - core[1].svIdle(17), plen 0: [] +EVENT[2381]: 0.244448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2382]: 0.244461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2383]: 0.244477425 - core[1].svIdle(17), plen 0: [] +EVENT[2384]: 0.244546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2385]: 0.244562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2386]: 0.244577225 - core[0].svIdle(17), plen 0: [] +EVENT[2387]: 0.245448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2388]: 0.245461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2389]: 0.245476900 - core[1].svIdle(17), plen 0: [] +EVENT[2390]: 0.245546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2391]: 0.245561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2392]: 0.245561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2393]: 0.245574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2394]: 0.245589950 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2395]: 0.245626225 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459384, size: 27, callers: [1074274047, 1074274100, 1074321944, 1074609076, 1074299100, 0, 0, 0, 0, 0]] +[0.245626225] HEAP: Allocated 27 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2217]: 0.243951325 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073461484, size: 54, callers: [1074274287, 1074274340, 1074325096, 1074621178, 1074302356, 0, 0, 0, 0, 0]] -[0.243951325] HEAP: Allocated 54 bytes @ 0x3ffbb8ec from task "alloc2" on core 0 by: +EVENT[2396]: 0.245661825 - core[0].esp_sysview_heap_trace_alloc(512), plen 36: [addr: 1073459416, size: 54, callers: [1074274047, 1074274100, 1074321944, 1074609083, 1074299100, 0, 0, 0, 0, 0]] +[0.245661825] HEAP: Allocated 54 bytes @ 0x3ffbb0d8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:61 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2218]: 0.243968350 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2219]: 0.243984350 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2220]: 0.244054675 - core[0].svPrint(26), plen 70: [msg: I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec +EVENT[2397]: 0.245682250 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2398]: 0.245698175 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2399]: 0.245752950 - core[0].svPrint(26), plen 70: [msg: I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8 , lvl: 0, unused: 0] -[0.244054675] LOG: I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec -EVENT[2221]: 0.244068400 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12299072, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2222]: 0.244081625 - core[0].svTaskStartReady(6), plen 0: [tid: 12301764] -EVENT[2223]: 0.244097950 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2224]: 0.244108800 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] -EVENT[2225]: 0.244119550 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2226]: 0.244133275 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2227]: 0.244144175 - core[1].svTaskStartExec(4), plen 0: [tid: 12301764] -EVENT[2228]: 0.244155000 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2229]: 0.244166850 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12299072, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] -EVENT[2230]: 0.244178150 - core[0].svIdle(17), plen 0: [] -EVENT[2231]: 0.244189775 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2232]: 0.244210225 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2233]: 0.244273900 - core[1].svPrint(26), plen 63: [msg: I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec +[0.245752950] LOG: I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8 +EVENT[2400]: 0.245766450 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12296968, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2401]: 0.245779600 - core[0].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2402]: 0.245779600 - core[1].svTaskStartReady(6), plen 0: [tid: 12299660] +EVENT[2403]: 0.245795925 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2404]: 0.245806775 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 30] +EVENT[2405]: 0.245817575 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2406]: 0.245831475 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2407]: 0.245842275 - core[1].svTaskStartExec(4), plen 0: [tid: 12299660] +EVENT[2408]: 0.245853025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2409]: 0.245865475 - core[1].xQueueGenericReceive(49), plen 15: [xQueue: 12296968, pvBuffer: 3233808384, xTicksToWait: 4294967295, xJustPeek: 1] +EVENT[2410]: 0.245876550 - core[0].svIdle(17), plen 0: [] +EVENT[2411]: 0.245888475 - core[1].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2412]: 0.245904775 - core[1].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2413]: 0.245952650 - core[1].svPrint(26), plen 63: [msg: I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8 , lvl: 0, unused: 0] -[0.244273900] LOG: I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec -EVENT[2234]: 0.244295100 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073461484, callers: [1074325108, 1074621362, 1074302356, 0, 0, 0, 0, 0, 0, 0]] -[0.244295100] HEAP: Freed bytes @ 0x3ffbb8ec from task "free2" on core 1 by: -/Users/erhan/dev/esp-idf/components/newlib/heap.c:40 +[0.245952650] LOG: I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8 +EVENT[2414]: 0.245978075 - core[1].esp_sysview_heap_trace_free(513), plen 27: [addr: 1073459416, callers: [1074321956, 1074609266, 1074299100, 0, 0, 0, 0, 0, 0, 0]] +[0.245978075] HEAP: Freed bytes @ 0x3ffbb0d8 from task "free2" on core 1 by: +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:35 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:26 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -EVENT[2235]: 0.244322000 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] -EVENT[2236]: 0.244333425 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2237]: 0.244350000 - core[1].svIdle(17), plen 0: [] -EVENT[2238]: 0.244666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2239]: 0.244679850 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2240]: 0.244695550 - core[1].svIdle(17), plen 0: [] -EVENT[2241]: 0.244833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2242]: 0.244849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2243]: 0.244864250 - core[0].svIdle(17), plen 0: [] -EVENT[2244]: 0.245666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2245]: 0.245680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2246]: 0.245695350 - core[1].svIdle(17), plen 0: [] -EVENT[2247]: 0.245833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2248]: 0.245849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2249]: 0.245864250 - core[0].svIdle(17), plen 0: [] -EVENT[2250]: 0.246666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2251]: 0.246680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2252]: 0.246695125 - core[1].svIdle(17), plen 0: [] -EVENT[2253]: 0.246833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2254]: 0.246849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2255]: 0.246864250 - core[0].svIdle(17), plen 0: [] -EVENT[2256]: 0.247666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2257]: 0.247680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2258]: 0.247695225 - core[1].svIdle(17), plen 0: [] -EVENT[2259]: 0.247833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2260]: 0.247849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2261]: 0.247864425 - core[0].svIdle(17), plen 0: [] -EVENT[2262]: 0.248666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2263]: 0.248679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2264]: 0.248695100 - core[1].svIdle(17), plen 0: [] -EVENT[2265]: 0.248833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2266]: 0.248849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2267]: 0.248864250 - core[0].svIdle(17), plen 0: [] -EVENT[2268]: 0.249666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2269]: 0.249680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2270]: 0.249695350 - core[1].svIdle(17), plen 0: [] -EVENT[2271]: 0.249833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2272]: 0.249849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2273]: 0.249868675 - core[0].svIdle(17), plen 0: [] -EVENT[2274]: 0.250666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2275]: 0.250679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2276]: 0.250695100 - core[1].svIdle(17), plen 0: [] -EVENT[2277]: 0.250833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2278]: 0.250849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2279]: 0.250864250 - core[0].svIdle(17), plen 0: [] -EVENT[2280]: 0.251666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2281]: 0.251680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2282]: 0.251695350 - core[1].svIdle(17), plen 0: [] -EVENT[2283]: 0.251833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2284]: 0.251849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2285]: 0.251864250 - core[0].svIdle(17), plen 0: [] -EVENT[2286]: 0.252666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2287]: 0.252680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2288]: 0.252695125 - core[1].svIdle(17), plen 0: [] -EVENT[2289]: 0.252833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2290]: 0.252849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2291]: 0.252864250 - core[0].svIdle(17), plen 0: [] -EVENT[2292]: 0.253666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2293]: 0.253680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2294]: 0.253695225 - core[1].svIdle(17), plen 0: [] -EVENT[2295]: 0.253833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2296]: 0.253849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2297]: 0.253864425 - core[0].svIdle(17), plen 0: [] -EVENT[2298]: 0.254666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2299]: 0.254679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2300]: 0.254695100 - core[1].svIdle(17), plen 0: [] -EVENT[2301]: 0.254833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2302]: 0.254849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2303]: 0.254864250 - core[0].svIdle(17), plen 0: [] -EVENT[2304]: 0.255666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2305]: 0.255680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2306]: 0.255695350 - core[1].svIdle(17), plen 0: [] -EVENT[2307]: 0.255833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2308]: 0.255849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2309]: 0.255864250 - core[0].svIdle(17), plen 0: [] -EVENT[2310]: 0.256666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2311]: 0.256680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2312]: 0.256695125 - core[1].svIdle(17), plen 0: [] -EVENT[2313]: 0.256833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2314]: 0.256849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2315]: 0.256864250 - core[0].svIdle(17), plen 0: [] -EVENT[2316]: 0.257666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2317]: 0.257680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2318]: 0.257695225 - core[1].svIdle(17), plen 0: [] -EVENT[2319]: 0.257833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2320]: 0.257849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2321]: 0.257864425 - core[0].svIdle(17), plen 0: [] -EVENT[2322]: 0.258666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2323]: 0.258679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2324]: 0.258695100 - core[1].svIdle(17), plen 0: [] -EVENT[2325]: 0.258833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2326]: 0.258849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2327]: 0.258864250 - core[0].svIdle(17), plen 0: [] -EVENT[2328]: 0.259666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2329]: 0.259680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2330]: 0.259695350 - core[1].svIdle(17), plen 0: [] -EVENT[2331]: 0.259833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2332]: 0.259849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2333]: 0.259864250 - core[0].svIdle(17), plen 0: [] -EVENT[2334]: 0.260666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2335]: 0.260680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2336]: 0.260695125 - core[1].svIdle(17), plen 0: [] -EVENT[2337]: 0.260833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2338]: 0.260849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2339]: 0.260864250 - core[0].svIdle(17), plen 0: [] -EVENT[2340]: 0.261666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2341]: 0.261680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2342]: 0.261695225 - core[1].svIdle(17), plen 0: [] -EVENT[2343]: 0.261833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2344]: 0.261849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2345]: 0.261864425 - core[0].svIdle(17), plen 0: [] -EVENT[2346]: 0.262666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2347]: 0.262680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2348]: 0.262695350 - core[1].svIdle(17), plen 0: [] -EVENT[2349]: 0.262833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2350]: 0.262849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2351]: 0.262864250 - core[0].svIdle(17), plen 0: [] -EVENT[2352]: 0.263666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2353]: 0.263680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2354]: 0.263695125 - core[1].svIdle(17), plen 0: [] -EVENT[2355]: 0.263833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2356]: 0.263849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2357]: 0.263864250 - core[0].svIdle(17), plen 0: [] -EVENT[2358]: 0.264666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2359]: 0.264680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2360]: 0.264695225 - core[1].svIdle(17), plen 0: [] -EVENT[2361]: 0.264833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2362]: 0.264849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2363]: 0.264864425 - core[0].svIdle(17), plen 0: [] -EVENT[2364]: 0.265666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2365]: 0.265679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2366]: 0.265695100 - core[1].svIdle(17), plen 0: [] -EVENT[2367]: 0.265833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2368]: 0.265849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2369]: 0.265864250 - core[0].svIdle(17), plen 0: [] -EVENT[2370]: 0.266666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2371]: 0.266680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2372]: 0.266695350 - core[1].svIdle(17), plen 0: [] -EVENT[2373]: 0.266833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2374]: 0.266849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2375]: 0.266864250 - core[0].svIdle(17), plen 0: [] -EVENT[2376]: 0.267666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2377]: 0.267680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2378]: 0.267695125 - core[1].svIdle(17), plen 0: [] -EVENT[2379]: 0.267833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2380]: 0.267849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2381]: 0.267864250 - core[0].svIdle(17), plen 0: [] -EVENT[2382]: 0.268666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2383]: 0.268680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2384]: 0.268695225 - core[1].svIdle(17), plen 0: [] -EVENT[2385]: 0.268833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2386]: 0.268849200 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2387]: 0.268864425 - core[0].svIdle(17), plen 0: [] -EVENT[2388]: 0.269666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2389]: 0.269679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2390]: 0.269695100 - core[1].svIdle(17), plen 0: [] -EVENT[2391]: 0.269833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2392]: 0.269849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2393]: 0.269864250 - core[0].svIdle(17), plen 0: [] -EVENT[2394]: 0.270666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2395]: 0.270680075 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2396]: 0.270695350 - core[1].svIdle(17), plen 0: [] -EVENT[2397]: 0.270833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2398]: 0.270849175 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2399]: 0.270864250 - core[0].svIdle(17), plen 0: [] -EVENT[2400]: 0.271666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2401]: 0.271680000 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2402]: 0.271695125 - core[1].svIdle(17), plen 0: [] -EVENT[2403]: 0.271833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2404]: 0.271848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12286700] -EVENT[2405]: 0.271861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2406]: 0.271877250 - core[0].svTaskStartExec(4), plen 0: [tid: 12286700] -EVENT[2407]: 0.271895625 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2408]: 0.271906575 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2409]: 0.271919725 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2410]: 0.271936275 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2411]: 0.271947650 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2412]: 0.271964600 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2413]: 0.271982475 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2414]: 0.271998425 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2415]: 0.272014325 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2416]: 0.272063675 - core[0].svPrint(26), plen 37: [msg: I (580) example: Got notify val 1 +EVENT[2415]: 0.246005475 - core[1].svIsrEnter(2), plen 0: [irq_num: 31] +EVENT[2416]: 0.246016900 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2417]: 0.246033450 - core[1].svIdle(17), plen 0: [] +EVENT[2418]: 0.246448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2419]: 0.246461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2420]: 0.246477300 - core[1].svIdle(17), plen 0: [] +EVENT[2421]: 0.246546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2422]: 0.246562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2423]: 0.246577275 - core[0].svIdle(17), plen 0: [] +EVENT[2424]: 0.247448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2425]: 0.247461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2426]: 0.247476850 - core[1].svIdle(17), plen 0: [] +EVENT[2427]: 0.247546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2428]: 0.247562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2429]: 0.247577075 - core[0].svIdle(17), plen 0: [] +EVENT[2430]: 0.248448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2431]: 0.248461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2432]: 0.248476975 - core[1].svIdle(17), plen 0: [] +EVENT[2433]: 0.248546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2434]: 0.248562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2435]: 0.248577225 - core[0].svIdle(17), plen 0: [] +EVENT[2436]: 0.249448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2437]: 0.249461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2438]: 0.249476900 - core[1].svIdle(17), plen 0: [] +EVENT[2439]: 0.249546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2440]: 0.249562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2441]: 0.249577075 - core[0].svIdle(17), plen 0: [] +EVENT[2442]: 0.250448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2443]: 0.250461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2444]: 0.250476850 - core[1].svIdle(17), plen 0: [] +EVENT[2445]: 0.250546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2446]: 0.250562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2447]: 0.250577275 - core[0].svIdle(17), plen 0: [] +EVENT[2448]: 0.251448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2449]: 0.251461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2450]: 0.251476850 - core[1].svIdle(17), plen 0: [] +EVENT[2451]: 0.251546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2452]: 0.251562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2453]: 0.251577075 - core[0].svIdle(17), plen 0: [] +EVENT[2454]: 0.252448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2455]: 0.252461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2456]: 0.252476975 - core[1].svIdle(17), plen 0: [] +EVENT[2457]: 0.252546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2458]: 0.252562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2459]: 0.252577225 - core[0].svIdle(17), plen 0: [] +EVENT[2460]: 0.253448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2461]: 0.253461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2462]: 0.253476975 - core[1].svIdle(17), plen 0: [] +EVENT[2463]: 0.253546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2464]: 0.253562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2465]: 0.253577225 - core[0].svIdle(17), plen 0: [] +EVENT[2466]: 0.254448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2467]: 0.254461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2468]: 0.254476900 - core[1].svIdle(17), plen 0: [] +EVENT[2469]: 0.254546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2470]: 0.254562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2471]: 0.254577075 - core[0].svIdle(17), plen 0: [] +EVENT[2472]: 0.255448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2473]: 0.255461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2474]: 0.255476850 - core[1].svIdle(17), plen 0: [] +EVENT[2475]: 0.255546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2476]: 0.255562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2477]: 0.255577275 - core[0].svIdle(17), plen 0: [] +EVENT[2478]: 0.256448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2479]: 0.256461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2480]: 0.256476850 - core[1].svIdle(17), plen 0: [] +EVENT[2481]: 0.256546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2482]: 0.256562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2483]: 0.256577075 - core[0].svIdle(17), plen 0: [] +EVENT[2484]: 0.257448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2485]: 0.257461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2486]: 0.257476975 - core[1].svIdle(17), plen 0: [] +EVENT[2487]: 0.257546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2488]: 0.257562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2489]: 0.257577225 - core[0].svIdle(17), plen 0: [] +EVENT[2490]: 0.258448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2491]: 0.258461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2492]: 0.258476900 - core[1].svIdle(17), plen 0: [] +EVENT[2493]: 0.258546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2494]: 0.258562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2495]: 0.258577075 - core[0].svIdle(17), plen 0: [] +EVENT[2496]: 0.259448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2497]: 0.259461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2498]: 0.259476850 - core[1].svIdle(17), plen 0: [] +EVENT[2499]: 0.259546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2500]: 0.259562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2501]: 0.259577275 - core[0].svIdle(17), plen 0: [] +EVENT[2502]: 0.260448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2503]: 0.260461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2504]: 0.260476850 - core[1].svIdle(17), plen 0: [] +EVENT[2505]: 0.260546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2506]: 0.260562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2507]: 0.260577075 - core[0].svIdle(17), plen 0: [] +EVENT[2508]: 0.261448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2509]: 0.261461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2510]: 0.261476975 - core[1].svIdle(17), plen 0: [] +EVENT[2511]: 0.261546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2512]: 0.261562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2513]: 0.261577225 - core[0].svIdle(17), plen 0: [] +EVENT[2514]: 0.262448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2515]: 0.262461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2516]: 0.262476900 - core[1].svIdle(17), plen 0: [] +EVENT[2517]: 0.262546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2518]: 0.262562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2519]: 0.262577075 - core[0].svIdle(17), plen 0: [] +EVENT[2520]: 0.263448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2521]: 0.263461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2522]: 0.263476850 - core[1].svIdle(17), plen 0: [] +EVENT[2523]: 0.263546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2524]: 0.263562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2525]: 0.263577275 - core[0].svIdle(17), plen 0: [] +EVENT[2526]: 0.264448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2527]: 0.264461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2528]: 0.264476850 - core[1].svIdle(17), plen 0: [] +EVENT[2529]: 0.264546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2530]: 0.264562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2531]: 0.264577075 - core[0].svIdle(17), plen 0: [] +EVENT[2532]: 0.265448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2533]: 0.265466000 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2534]: 0.265481125 - core[1].svIdle(17), plen 0: [] +EVENT[2535]: 0.265546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2536]: 0.265562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2537]: 0.265577075 - core[0].svIdle(17), plen 0: [] +EVENT[2538]: 0.266448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2539]: 0.266461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2540]: 0.266476850 - core[1].svIdle(17), plen 0: [] +EVENT[2541]: 0.266546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2542]: 0.266562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2543]: 0.266577275 - core[0].svIdle(17), plen 0: [] +EVENT[2544]: 0.267448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2545]: 0.267461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2546]: 0.267476850 - core[1].svIdle(17), plen 0: [] +EVENT[2547]: 0.267546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2548]: 0.267562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2549]: 0.267577075 - core[0].svIdle(17), plen 0: [] +EVENT[2550]: 0.268448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2551]: 0.268461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2552]: 0.268476975 - core[1].svIdle(17), plen 0: [] +EVENT[2553]: 0.268546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2554]: 0.268562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2555]: 0.268577225 - core[0].svIdle(17), plen 0: [] +EVENT[2556]: 0.269448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2557]: 0.269461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2558]: 0.269476900 - core[1].svIdle(17), plen 0: [] +EVENT[2559]: 0.269546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2560]: 0.269562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2561]: 0.269577075 - core[0].svIdle(17), plen 0: [] +EVENT[2562]: 0.270448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2563]: 0.270461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2564]: 0.270476850 - core[1].svIdle(17), plen 0: [] +EVENT[2565]: 0.270546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2566]: 0.270562050 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2567]: 0.270577275 - core[0].svIdle(17), plen 0: [] +EVENT[2568]: 0.271448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2569]: 0.271461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2570]: 0.271476850 - core[1].svIdle(17), plen 0: [] +EVENT[2571]: 0.271546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2572]: 0.271562000 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2573]: 0.271577075 - core[0].svIdle(17), plen 0: [] +EVENT[2574]: 0.272448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2575]: 0.272461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2576]: 0.272476975 - core[1].svIdle(17), plen 0: [] +EVENT[2577]: 0.272546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2578]: 0.272561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2579]: 0.272561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12284596] +EVENT[2580]: 0.272574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2581]: 0.272589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12284596] +EVENT[2582]: 0.272608050 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2583]: 0.272619100 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2584]: 0.272619100 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2585]: 0.272632200 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2586]: 0.272648750 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2587]: 0.272660225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2588]: 0.272677175 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2589]: 0.272690950 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2590]: 0.272706875 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2591]: 0.272722875 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2592]: 0.272764325 - core[0].svPrint(26), plen 37: [msg: I (568) example: Got notify val 1 , lvl: 0, unused: 0] -[0.272063675] LOG: I (580) example: Got notify val 1 -EVENT[2417]: 0.272079975 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2418]: 0.272095925 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2419]: 0.272140275 - core[0].svPrint(26), plen 34: [msg: I (580) example: Wait notify 1 +[0.272764325] LOG: I (568) example: Got notify val 1 +EVENT[2593]: 0.272784675 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2594]: 0.272800725 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2595]: 0.272837275 - core[0].svPrint(26), plen 34: [msg: I (568) example: Wait notify 1 , lvl: 0, unused: 0] -[0.272140275] LOG: I (580) example: Wait notify 1 -EVENT[2420]: 0.272158650 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2421]: 0.272170050 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2422]: 0.272186100 - core[0].svIdle(17), plen 0: [] -EVENT[2423]: 0.272666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2424]: 0.272679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2425]: 0.272695100 - core[1].svIdle(17), plen 0: [] -EVENT[2426]: 0.272833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2427]: 0.272848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12292716] -EVENT[2428]: 0.272861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2429]: 0.272877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12292716] -EVENT[2430]: 0.272891800 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2431]: 0.272902925 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2432]: 0.272916050 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2433]: 0.272932650 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2434]: 0.272944025 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2435]: 0.272960975 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2436]: 0.272974675 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2437]: 0.272990600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2438]: 0.273006525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2439]: 0.273056000 - core[0].svPrint(26), plen 37: [msg: I (581) example: Got notify val 1 +[0.272837275] LOG: I (568) example: Wait notify 1 +EVENT[2596]: 0.272855500 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2597]: 0.272866850 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2598]: 0.272882775 - core[0].svIdle(17), plen 0: [] +EVENT[2599]: 0.273448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2600]: 0.273461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2601]: 0.273476975 - core[1].svIdle(17), plen 0: [] +EVENT[2602]: 0.273546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2603]: 0.273561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2604]: 0.273561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12290612] +EVENT[2605]: 0.273574225 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2606]: 0.273589875 - core[0].svTaskStartExec(4), plen 0: [tid: 12290612] +EVENT[2607]: 0.273604250 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2608]: 0.273615300 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2609]: 0.273615300 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2610]: 0.273628400 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2611]: 0.273644950 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2612]: 0.273656300 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2613]: 0.273673250 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2614]: 0.273687025 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2615]: 0.273702950 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2616]: 0.273718950 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2617]: 0.273756450 - core[0].svPrint(26), plen 37: [msg: I (569) example: Got notify val 1 , lvl: 0, unused: 0] -[0.273056000] LOG: I (581) example: Got notify val 1 -EVENT[2440]: 0.273072300 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2441]: 0.273088250 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2442]: 0.273132600 - core[0].svPrint(26), plen 34: [msg: I (581) example: Wait notify 2 +[0.273756450] LOG: I (569) example: Got notify val 1 +EVENT[2618]: 0.273776100 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2619]: 0.273792050 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2620]: 0.273828600 - core[0].svPrint(26), plen 34: [msg: I (569) example: Wait notify 2 , lvl: 0, unused: 0] -[0.273132600] LOG: I (581) example: Wait notify 2 -EVENT[2443]: 0.273150975 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2444]: 0.273162375 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2445]: 0.273178550 - core[0].svIdle(17), plen 0: [] -EVENT[2446]: 0.273666425 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2447]: 0.273679950 - core[1].svExitIsrToScheduler(18), plen 0: [] -EVENT[2448]: 0.273695100 - core[1].svIdle(17), plen 0: [] -EVENT[2449]: 0.273833800 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] -EVENT[2450]: 0.273848800 - core[0].svTaskStartReady(6), plen 0: [tid: 12298716] -EVENT[2451]: 0.273861575 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2452]: 0.273877375 - core[0].svTaskStartExec(4), plen 0: [tid: 12298716] -EVENT[2453]: 0.273891800 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12254080, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] -EVENT[2454]: 0.273902925 - core[0].svTaskStartReady(6), plen 0: [tid: 12254080] -EVENT[2455]: 0.273916050 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] -EVENT[2456]: 0.273932650 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] -EVENT[2457]: 0.273944025 - core[0].svExitIsrToScheduler(18), plen 0: [] -EVENT[2458]: 0.273960975 - core[0].svTaskStartExec(4), plen 0: [tid: 12254080] -EVENT[2459]: 0.273974675 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] -EVENT[2460]: 0.273990600 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2461]: 0.274006525 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12283904, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] -EVENT[2462]: 0.274051775 - core[0].svPrint(26), plen 37: [msg: I (582) example: Got notify val 1 +[0.273828600] LOG: I (569) example: Wait notify 2 +EVENT[2621]: 0.273846825 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2622]: 0.273858175 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2623]: 0.273874200 - core[0].svIdle(17), plen 0: [] +EVENT[2624]: 0.274448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2625]: 0.274461725 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2626]: 0.274476975 - core[1].svIdle(17), plen 0: [] +EVENT[2627]: 0.274546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2628]: 0.274562025 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2629]: 0.274577225 - core[0].svIdle(17), plen 0: [] +EVENT[2630]: 0.275448200 - core[1].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2631]: 0.275461775 - core[1].svExitIsrToScheduler(18), plen 0: [] +EVENT[2632]: 0.275476900 - core[1].svIdle(17), plen 0: [] +EVENT[2633]: 0.275546650 - core[0].svIsrEnter(2), plen 0: [irq_num: 5] +EVENT[2634]: 0.275561625 - core[0].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2635]: 0.275561625 - core[1].svTaskStartReady(6), plen 0: [tid: 12296612] +EVENT[2636]: 0.275574275 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2637]: 0.275589950 - core[0].svTaskStartExec(4), plen 0: [tid: 12296612] +EVENT[2638]: 0.275604375 - core[0].xTaskGenericNotify(44), plen 7: [xTaskToNotify: 12274964, ulValue: 0, eAction: 2, pulPreviousNotificationValue: 0] +EVENT[2639]: 0.275615350 - core[0].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2640]: 0.275615350 - core[1].svTaskStartReady(6), plen 0: [tid: 12274964] +EVENT[2641]: 0.275628525 - core[0].vTaskDelay(34), plen 1: [xTicksToDelay: 100] +EVENT[2642]: 0.275645075 - core[0].svIsrEnter(2), plen 0: [irq_num: 30] +EVENT[2643]: 0.275656425 - core[0].svExitIsrToScheduler(18), plen 0: [] +EVENT[2644]: 0.275673375 - core[0].svTaskStartExec(4), plen 0: [tid: 12274964] +EVENT[2645]: 0.275687075 - core[0].ulTaskNotifyTake(37), plen 6: [xClearCountOnExit: 0, xTicksToWait: 4294967295] +EVENT[2646]: 0.275703075 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2647]: 0.275719225 - core[0].xQueueGenericSend(53), plen 7: [xQueue: 12281672, pvItemToQueue: 0, xTicksToWait: 0, xCopyPosition: 0] +EVENT[2648]: 0.275756800 - core[0].svPrint(26), plen 37: [msg: I (571) example: Got notify val 1 , lvl: 0, unused: 0] -[0.274051775] LOG: I (582) example: Got notify val 1 -EVENT[2463]: 0.330505425 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12283904, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] -EVENT[2464]: 0.330514125 - core[0].svTraceStop(11), plen 0: [] -Processed 2465 events +[0.275756800] LOG: I (571) example: Got notify val 1 +EVENT[2649]: 0.327035450 - core[0].xQueueGenericReceive(49), plen 11: [xQueue: 12281672, pvBuffer: 3233808384, xTicksToWait: 10, xJustPeek: 0] +EVENT[2650]: 0.327044075 - core[0].svTraceStop(11), plen 0: [] +EVENT[2651]: 0.327044075 - core[1].svTraceStop(11), plen 0: [] +Processed 2652 events =============== LOG TRACE REPORT =============== Processed 60 log messages. =============== HEAP TRACE REPORT =============== Processed 99 heap events. -[0.001532525] HEAP: Allocated 8 bytes @ 0x3ffb70d8 from task "main" on core 0 by: +[0.001650800] HEAP: Allocated 8 bytes @ 0x3ffb68a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.001870025] HEAP: Allocated 2500 bytes @ 0x3ffb70e8 from task "main" on core 0 by: +[0.001952550] HEAP: Allocated 2500 bytes @ 0x3ffb68b0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.001909875] HEAP: Allocated 340 bytes @ 0x3ffb7aec from task "main" on core 0 by: +[0.001993450] HEAP: Allocated 340 bytes @ 0x3ffb72b4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002044025] HEAP: Allocated 124 bytes @ 0x3ffb7c50 from task "alloc0" on core 0 by: +[0.002144425] HEAP: Allocated 124 bytes @ 0x3ffb7418 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002113550] HEAP: Allocated 2500 bytes @ 0x3ffb7cd0 from task "alloc0" on core 0 by: +[0.002218950] HEAP: Allocated 2500 bytes @ 0x3ffb7498 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002147950] HEAP: Allocated 340 bytes @ 0x3ffb86d4 from task "alloc0" on core 0 by: +[0.002254400] HEAP: Allocated 340 bytes @ 0x3ffb7e9c from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002251800] HEAP: Allocated 1 bytes @ 0x3ffb8838 from task "alloc0" on core 0 by: +[0.002359325] HEAP: Allocated 1 bytes @ 0x3ffb8000 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002788050] HEAP: Allocated 8 bytes @ 0x3ffb8858 from task "main" on core 0 by: +[0.002943850] HEAP: Allocated 8 bytes @ 0x3ffb8020 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002863625] HEAP: Allocated 2500 bytes @ 0x3ffb8868 from task "main" on core 0 by: +[0.002990650] HEAP: Allocated 2500 bytes @ 0x3ffb8030 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.002905675] HEAP: Allocated 340 bytes @ 0x3ffb926c from task "main" on core 0 by: +[0.003033925] HEAP: Allocated 340 bytes @ 0x3ffb8a34 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003040300] HEAP: Allocated 124 bytes @ 0x3ffb93d0 from task "alloc1" on core 0 by: +[0.003169150] HEAP: Allocated 124 bytes @ 0x3ffb8b98 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003093950] HEAP: Allocated 2500 bytes @ 0x3ffb9450 from task "alloc1" on core 0 by: +[0.003223850] HEAP: Allocated 2500 bytes @ 0x3ffb8c18 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003128350] HEAP: Allocated 340 bytes @ 0x3ffb9e54 from task "alloc1" on core 0 by: +[0.003259400] HEAP: Allocated 340 bytes @ 0x3ffb961c from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003223700] HEAP: Allocated 2 bytes @ 0x3ffb9fb8 from task "alloc1" on core 0 by: +[0.003355850] HEAP: Allocated 2 bytes @ 0x3ffb9780 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003547175] HEAP: Allocated 8 bytes @ 0x3ffb8848 from task "main" on core 0 by: +[0.003754850] HEAP: Allocated 8 bytes @ 0x3ffb8010 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:87 -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003600675] HEAP: Allocated 2500 bytes @ 0x3ffb9fd8 from task "main" on core 0 by: +[0.003820975] HEAP: Allocated 2500 bytes @ 0x3ffb97a0 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003639925] HEAP: Allocated 340 bytes @ 0x3ffba9dc from task "main" on core 0 by: +[0.003874025] HEAP: Allocated 340 bytes @ 0x3ffba1a4 from task "main" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:86 (discriminator 2) -/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 13) +/Users/erhan/dev/esp-idf/components/freertos/app_startup.c:209 (discriminator 10) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003888100] HEAP: Allocated 124 bytes @ 0x3ffbab40 from task "alloc2" on core 0 by: +[0.004044725] HEAP: Allocated 124 bytes @ 0x3ffba308 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:545 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:48 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003941825] HEAP: Allocated 2500 bytes @ 0x3ffbabc0 from task "alloc2" on core 0 by: +[0.004099675] HEAP: Allocated 2500 bytes @ 0x3ffba388 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:231 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.003976225] HEAP: Allocated 340 bytes @ 0x3ffbb5c4 from task "alloc2" on core 0 by: +[0.004135150] HEAP: Allocated 340 bytes @ 0x3ffbad8c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/freertos/heap_idf.c:58 /Users/erhan/dev/esp-idf/components/freertos/esp_additions/freertos_tasks_c_additions.h:236 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:57 /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.004075450] HEAP: Allocated 3 bytes @ 0x3ffb9fc8 from task "alloc2" on core 0 by: +[0.004235500] HEAP: Allocated 3 bytes @ 0x3ffb9790 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.031912575] HEAP: Allocated 2 bytes @ 0x3ffbb728 from task "alloc0" on core 0 by: +[0.032626375] HEAP: Allocated 2 bytes @ 0x3ffbaef0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.032912600] HEAP: Allocated 4 bytes @ 0x3ffbb738 from task "alloc1" on core 0 by: +[0.033637950] HEAP: Allocated 4 bytes @ 0x3ffbaf00 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.033912650] HEAP: Allocated 6 bytes @ 0x3ffbb748 from task "alloc2" on core 0 by: +[0.033930825] HEAP: Allocated 6 bytes @ 0x3ffbaf20 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.061912575] HEAP: Allocated 3 bytes @ 0x3ffbb758 from task "alloc0" on core 0 by: +[0.062624900] HEAP: Allocated 3 bytes @ 0x3ffbaf10 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.062912575] HEAP: Allocated 6 bytes @ 0x3ffbb768 from task "alloc1" on core 0 by: +[0.063638000] HEAP: Allocated 6 bytes @ 0x3ffbaf30 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.063912650] HEAP: Allocated 9 bytes @ 0x3ffbb778 from task "alloc2" on core 0 by: +[0.063937325] HEAP: Allocated 9 bytes @ 0x3ffbaf50 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.091912475] HEAP: Allocated 4 bytes @ 0x3ffbb788 from task "alloc0" on core 0 by: +[0.092625125] HEAP: Allocated 4 bytes @ 0x3ffbaf40 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.092912775] HEAP: Allocated 8 bytes @ 0x3ffbb798 from task "alloc1" on core 0 by: +[0.093638000] HEAP: Allocated 8 bytes @ 0x3ffbaf60 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.093912650] HEAP: Allocated 12 bytes @ 0x3ffbb7a8 from task "alloc2" on core 0 by: +[0.093933400] HEAP: Allocated 12 bytes @ 0x3ffbaf84 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.121912575] HEAP: Allocated 5 bytes @ 0x3ffbb7b8 from task "alloc0" on core 0 by: +[0.122624900] HEAP: Allocated 5 bytes @ 0x3ffbaf70 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.122912575] HEAP: Allocated 10 bytes @ 0x3ffbb7c8 from task "alloc1" on core 0 by: +[0.123638125] HEAP: Allocated 10 bytes @ 0x3ffbaf94 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.123912650] HEAP: Allocated 15 bytes @ 0x3ffbb7d8 from task "alloc2" on core 0 by: +[0.123936825] HEAP: Allocated 15 bytes @ 0x3ffbafbc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.151912650] HEAP: Allocated 6 bytes @ 0x3ffbb7ec from task "alloc0" on core 0 by: +[0.152625125] HEAP: Allocated 6 bytes @ 0x3ffbafa4 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.152912775] HEAP: Allocated 12 bytes @ 0x3ffbb7fc from task "alloc1" on core 0 by: +[0.153638000] HEAP: Allocated 12 bytes @ 0x3ffbafd0 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.153912650] HEAP: Allocated 18 bytes @ 0x3ffbb80c from task "alloc2" on core 0 by: +[0.153933400] HEAP: Allocated 18 bytes @ 0x3ffbaffc from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.181912575] HEAP: Allocated 7 bytes @ 0x3ffbb824 from task "alloc0" on core 0 by: +[0.182624900] HEAP: Allocated 7 bytes @ 0x3ffbafe0 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.182912575] HEAP: Allocated 14 bytes @ 0x3ffbb834 from task "alloc1" on core 0 by: +[0.183638125] HEAP: Allocated 14 bytes @ 0x3ffbb014 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.183912650] HEAP: Allocated 21 bytes @ 0x3ffbb848 from task "alloc2" on core 0 by: +[0.183936150] HEAP: Allocated 21 bytes @ 0x3ffbb048 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.211912650] HEAP: Allocated 8 bytes @ 0x3ffbb864 from task "alloc0" on core 0 by: +[0.212626150] HEAP: Allocated 8 bytes @ 0x3ffbb028 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.212912775] HEAP: Allocated 16 bytes @ 0x3ffbb874 from task "alloc1" on core 0 by: +[0.213638000] HEAP: Allocated 16 bytes @ 0x3ffbb064 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.213912650] HEAP: Allocated 24 bytes @ 0x3ffbb888 from task "alloc2" on core 0 by: +[0.213933475] HEAP: Allocated 24 bytes @ 0x3ffbb09c from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.241912575] HEAP: Allocated 9 bytes @ 0x3ffbb8a4 from task "alloc0" on core 0 by: +[0.242624900] HEAP: Allocated 9 bytes @ 0x3ffbb038 from task "alloc0" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.242912575] HEAP: Allocated 18 bytes @ 0x3ffbb8b4 from task "alloc1" on core 0 by: +[0.243625050] HEAP: Allocated 18 bytes @ 0x3ffbb078 from task "alloc1" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 -[0.243912650] HEAP: Allocated 27 bytes @ 0x3ffbb8cc from task "alloc2" on core 0 by: +[0.245626225] HEAP: Allocated 27 bytes @ 0x3ffbb0b8 from task "alloc2" on core 0 by: /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:84 /Users/erhan/dev/esp-idf/components/heap/heap_caps.c:110 -/Users/erhan/dev/esp-idf/components/newlib/heap.c:25 +/Users/erhan/dev/esp-idf/components/newlib/src/heap.c:25 /Users/erhan/dev/esp-idf/examples/system/sysview_tracing_heap_log/main/sysview_heap_log.c:59 (discriminator 1) /Users/erhan/dev/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:141 diff --git a/tools/esp_app_trace/test/sysview/expected_output_mcore.json b/tools/esp_app_trace/test/sysview/expected_output_mcore.json index 5cc8728b17a..c3e5325b94b 100644 --- a/tools/esp_app_trace/test/sysview/expected_output_mcore.json +++ b/tools/esp_app_trace/test/sysview/expected_output_mcore.json @@ -3,6 +3,94 @@ { "core_id": 0, "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 0, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 0, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 0, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 0, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 0, + "ctx_name": "IDLE1", + "id": 10, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 0, + "in_irq": false, + "params": {}, + "ts": 0 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", "id": 10, "in_irq": false, "params": {}, @@ -19,7 +107,20 @@ "ram_base": 1061158912, "sys_freq": 40000000 }, - "ts": 6.625e-06 + "ts": 6.65e-06 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 24, + "in_irq": false, + "params": { + "cpu_freq": 160000000, + "id_shift": 0, + "ram_base": 1061158912, + "sys_freq": 40000000 + }, + "ts": 6.65e-06 }, { "core_id": 0, @@ -29,7 +130,17 @@ "params": { "desc": "N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS" }, - "ts": 1.855e-05 + "ts": 1.86e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "N=FreeRTOS Application,D=esp32,C=xtensa,O=FreeRTOS" + }, + "ts": 1.86e-05 }, { "core_id": 0, @@ -39,7 +150,17 @@ "params": { "desc": "I#5=SysTick" }, - "ts": 2.7675e-05 + "ts": 2.775e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#5=SysTick" + }, + "ts": 2.775e-05 }, { "core_id": 0, @@ -49,7 +170,17 @@ "params": { "desc": "I#6=WIFI_MAC" }, - "ts": 4.9775e-05 + "ts": 4.59e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#6=WIFI_MAC" + }, + "ts": 4.59e-05 }, { "core_id": 0, @@ -59,7 +190,17 @@ "params": { "desc": "I#7=WIFI_NMI" }, - "ts": 6.3875e-05 + "ts": 6.0025e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#7=WIFI_NMI" + }, + "ts": 6.0025e-05 }, { "core_id": 0, @@ -69,7 +210,17 @@ "params": { "desc": "I#8=WIFI_BB" }, - "ts": 7.38e-05 + "ts": 6.9975e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#8=WIFI_BB" + }, + "ts": 6.9975e-05 }, { "core_id": 0, @@ -79,7 +230,17 @@ "params": { "desc": "I#9=BT_MAC" }, - "ts": 8.75e-05 + "ts": 7.9725e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#9=BT_MAC" + }, + "ts": 7.9725e-05 }, { "core_id": 0, @@ -89,7 +250,17 @@ "params": { "desc": "I#10=BT_BB" }, - "ts": 0.00010155 + "ts": 9.38e-05 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#10=BT_BB" + }, + "ts": 9.38e-05 }, { "core_id": 0, @@ -99,7 +270,17 @@ "params": { "desc": "I#11=BT_BB_NMI" }, - "ts": 0.000112375 + "ts": 0.0001086 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#11=BT_BB_NMI" + }, + "ts": 0.0001086 }, { "core_id": 0, @@ -109,7 +290,17 @@ "params": { "desc": "I#12=RWBT" }, - "ts": 0.0001223 + "ts": 0.00011855 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#12=RWBT" + }, + "ts": 0.00011855 }, { "core_id": 0, @@ -119,7 +310,17 @@ "params": { "desc": "I#13=RWBLE" }, - "ts": 0.000132275 + "ts": 0.00012855 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#13=RWBLE" + }, + "ts": 0.00012855 }, { "core_id": 0, @@ -129,7 +330,17 @@ "params": { "desc": "I#14=RWBT_NMI" }, - "ts": 0.0001468 + "ts": 0.000143075 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#14=RWBT_NMI" + }, + "ts": 0.000143075 }, { "core_id": 0, @@ -139,7 +350,17 @@ "params": { "desc": "I#15=RWBLE_NMI" }, - "ts": 0.0001576 + "ts": 0.0001539 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#15=RWBLE_NMI" + }, + "ts": 0.0001539 }, { "core_id": 0, @@ -149,7 +370,17 @@ "params": { "desc": "I#16=SLC0" }, - "ts": 0.000171875 + "ts": 0.0001682 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#16=SLC0" + }, + "ts": 0.0001682 }, { "core_id": 0, @@ -159,7 +390,17 @@ "params": { "desc": "I#17=SLC1" }, - "ts": 0.000189525 + "ts": 0.000181925 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#17=SLC1" + }, + "ts": 0.000181925 }, { "core_id": 0, @@ -169,7 +410,17 @@ "params": { "desc": "I#18=UHCI0" }, - "ts": 0.00019965 + "ts": 0.000195875 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#18=UHCI0" + }, + "ts": 0.000195875 }, { "core_id": 0, @@ -179,7 +430,17 @@ "params": { "desc": "I#19=UHCI1" }, - "ts": 0.0002096 + "ts": 0.00020585 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#19=UHCI1" + }, + "ts": 0.00020585 }, { "core_id": 0, @@ -189,7 +450,17 @@ "params": { "desc": "I#20=TG0_T0_LEVEL" }, - "ts": 0.000224875 + "ts": 0.00022115 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#20=TG0_T0_LEVEL" + }, + "ts": 0.00022115 }, { "core_id": 0, @@ -199,7 +470,17 @@ "params": { "desc": "I#21=TG0_T1_LEVEL" }, - "ts": 0.000236275 + "ts": 0.000232575 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#21=TG0_T1_LEVEL" + }, + "ts": 0.000232575 }, { "core_id": 0, @@ -209,7 +490,17 @@ "params": { "desc": "I#22=TG0_WDT_LEVEL" }, - "ts": 0.000251975 + "ts": 0.000248275 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#22=TG0_WDT_LEVEL" + }, + "ts": 0.000248275 }, { "core_id": 0, @@ -219,7 +510,17 @@ "params": { "desc": "I#23=TG0_LACT_LEVEL" }, - "ts": 0.00026375 + "ts": 0.000260075 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#23=TG0_LACT_LEVEL" + }, + "ts": 0.000260075 }, { "core_id": 0, @@ -229,7 +530,17 @@ "params": { "desc": "I#24=TG1_T0_LEVEL" }, - "ts": 0.00027915 + "ts": 0.000275525 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#24=TG1_T0_LEVEL" + }, + "ts": 0.000275525 }, { "core_id": 0, @@ -239,7 +550,17 @@ "params": { "desc": "I#25=TG1_T1_LEVEL" }, - "ts": 0.00029455 + "ts": 0.000287 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#25=TG1_T1_LEVEL" + }, + "ts": 0.000287 }, { "core_id": 0, @@ -249,7 +570,17 @@ "params": { "desc": "I#26=TG1_WDT_LEVEL" }, - "ts": 0.000310125 + "ts": 0.000306525 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#26=TG1_WDT_LEVEL" + }, + "ts": 0.000306525 }, { "core_id": 0, @@ -259,7 +590,17 @@ "params": { "desc": "I#27=TG1_LACT_LEVEL" }, - "ts": 0.000322075 + "ts": 0.0003185 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#27=TG1_LACT_LEVEL" + }, + "ts": 0.0003185 }, { "core_id": 0, @@ -269,7 +610,17 @@ "params": { "desc": "I#28=GPIO" }, - "ts": 0.000331975 + "ts": 0.000328425 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#28=GPIO" + }, + "ts": 0.000328425 }, { "core_id": 0, @@ -279,7 +630,17 @@ "params": { "desc": "I#29=GPIO_NMI" }, - "ts": 0.0003509 + "ts": 0.000347375 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#29=GPIO_NMI" + }, + "ts": 0.000347375 }, { "core_id": 0, @@ -289,7 +650,17 @@ "params": { "desc": "I#30=FROM_CPU0" }, - "ts": 0.0003618 + "ts": 0.000358275 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#30=FROM_CPU0" + }, + "ts": 0.000358275 }, { "core_id": 0, @@ -299,7 +670,17 @@ "params": { "desc": "I#31=FROM_CPU1" }, - "ts": 0.0003765 + "ts": 0.000369025 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#31=FROM_CPU1" + }, + "ts": 0.000369025 }, { "core_id": 0, @@ -309,7 +690,17 @@ "params": { "desc": "I#32=FROM_CPU2" }, - "ts": 0.0003873 + "ts": 0.0003838 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#32=FROM_CPU2" + }, + "ts": 0.0003838 }, { "core_id": 0, @@ -319,7 +710,17 @@ "params": { "desc": "I#33=FROM_CPU3" }, - "ts": 0.000402 + "ts": 0.00039455 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#33=FROM_CPU3" + }, + "ts": 0.00039455 }, { "core_id": 0, @@ -329,7 +730,17 @@ "params": { "desc": "I#34=SPI0" }, - "ts": 0.00041575 + "ts": 0.000408325 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#34=SPI0" + }, + "ts": 0.000408325 }, { "core_id": 0, @@ -339,7 +750,17 @@ "params": { "desc": "I#35=SPI1" }, - "ts": 0.0004255 + "ts": 0.00042205 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#35=SPI1" + }, + "ts": 0.00042205 }, { "core_id": 0, @@ -349,7 +770,17 @@ "params": { "desc": "I#36=SPI2" }, - "ts": 0.000435275 + "ts": 0.00043185 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#36=SPI2" + }, + "ts": 0.00043185 }, { "core_id": 0, @@ -359,7 +790,17 @@ "params": { "desc": "I#37=SPI3" }, - "ts": 0.000445025 + "ts": 0.000441625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#37=SPI3" + }, + "ts": 0.000441625 }, { "core_id": 0, @@ -369,7 +810,17 @@ "params": { "desc": "I#38=I2S0" }, - "ts": 0.000458825 + "ts": 0.0004528 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#38=I2S0" + }, + "ts": 0.0004528 }, { "core_id": 0, @@ -379,7 +830,17 @@ "params": { "desc": "I#39=I2S1" }, - "ts": 0.000468575 + "ts": 0.000468025 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#39=I2S1" + }, + "ts": 0.000468025 }, { "core_id": 0, @@ -389,7 +850,17 @@ "params": { "desc": "I#40=UART0" }, - "ts": 0.000478575 + "ts": 0.00047925 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#40=UART0" + }, + "ts": 0.00047925 }, { "core_id": 0, @@ -399,7 +870,17 @@ "params": { "desc": "I#41=UART1" }, - "ts": 0.0004925 + "ts": 0.000490675 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#41=UART1" + }, + "ts": 0.000490675 }, { "core_id": 0, @@ -409,7 +890,17 @@ "params": { "desc": "I#42=UART2" }, - "ts": 0.000506375 + "ts": 0.000506125 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#42=UART2" + }, + "ts": 0.000506125 }, { "core_id": 0, @@ -419,7 +910,17 @@ "params": { "desc": "I#43=SDIO_HOST" }, - "ts": 0.000517125 + "ts": 0.0005224 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#43=SDIO_HOST" + }, + "ts": 0.0005224 }, { "core_id": 0, @@ -429,7 +930,17 @@ "params": { "desc": "I#44=ETH_MAC" }, - "ts": 0.000527475 + "ts": 0.000534425 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#44=ETH_MAC" + }, + "ts": 0.000534425 }, { "core_id": 0, @@ -439,7 +950,17 @@ "params": { "desc": "I#45=PWM0" }, - "ts": 0.0005416 + "ts": 0.000550275 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#45=PWM0" + }, + "ts": 0.000550275 }, { "core_id": 0, @@ -449,7 +970,17 @@ "params": { "desc": "I#46=PWM1" }, - "ts": 0.0005553 + "ts": 0.000565375 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#46=PWM1" + }, + "ts": 0.000565375 }, { "core_id": 0, @@ -459,7 +990,17 @@ "params": { "desc": "I#47=RESERVED" }, - "ts": 0.00056595 + "ts": 0.000577225 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#47=RESERVED" + }, + "ts": 0.000577225 }, { "core_id": 0, @@ -469,7 +1010,17 @@ "params": { "desc": "I#48=RESERVED" }, - "ts": 0.00057655 + "ts": 0.000589025 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#48=RESERVED" + }, + "ts": 0.000589025 }, { "core_id": 0, @@ -479,7 +1030,17 @@ "params": { "desc": "I#49=LEDC" }, - "ts": 0.000590325 + "ts": 0.00060005 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#49=LEDC" + }, + "ts": 0.00060005 }, { "core_id": 0, @@ -489,7 +1050,17 @@ "params": { "desc": "I#50=EFUSE" }, - "ts": 0.000604225 + "ts": 0.000619275 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#50=EFUSE" + }, + "ts": 0.000619275 }, { "core_id": 0, @@ -499,7 +1070,17 @@ "params": { "desc": "I#51=TWAI" }, - "ts": 0.000618075 + "ts": 0.000630775 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#51=TWAI" + }, + "ts": 0.000630775 }, { "core_id": 0, @@ -509,7 +1090,17 @@ "params": { "desc": "I#52=RTC_CORE" }, - "ts": 0.00062865 + "ts": 0.00064665 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#52=RTC_CORE" + }, + "ts": 0.00064665 }, { "core_id": 0, @@ -519,7 +1110,17 @@ "params": { "desc": "I#53=RMT" }, - "ts": 0.000638225 + "ts": 0.000657625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#53=RMT" + }, + "ts": 0.000657625 }, { "core_id": 0, @@ -529,7 +1130,17 @@ "params": { "desc": "I#54=PCNT" }, - "ts": 0.000648075 + "ts": 0.00066885 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#54=PCNT" + }, + "ts": 0.00066885 }, { "core_id": 0, @@ -539,7 +1150,17 @@ "params": { "desc": "I#55=I2C_EXT0" }, - "ts": 0.00066305 + "ts": 0.000685 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#55=I2C_EXT0" + }, + "ts": 0.000685 }, { "core_id": 0, @@ -549,7 +1170,17 @@ "params": { "desc": "I#56=I2C_EXT1" }, - "ts": 0.0006752 + "ts": 0.000696775 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#56=I2C_EXT1" + }, + "ts": 0.000696775 }, { "core_id": 0, @@ -559,7 +1190,17 @@ "params": { "desc": "I#57=RSA" }, - "ts": 0.000690175 + "ts": 0.000707625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#57=RSA" + }, + "ts": 0.000707625 }, { "core_id": 0, @@ -569,7 +1210,17 @@ "params": { "desc": "I#58=SPI1_DMA" }, - "ts": 0.0007059 + "ts": 0.000723625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#58=SPI1_DMA" + }, + "ts": 0.000723625 }, { "core_id": 0, @@ -579,7 +1230,17 @@ "params": { "desc": "I#59=SPI2_DMA" }, - "ts": 0.000718025 + "ts": 0.0007398 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#59=SPI2_DMA" + }, + "ts": 0.0007398 }, { "core_id": 0, @@ -589,7 +1250,17 @@ "params": { "desc": "I#60=SPI3_DMA" }, - "ts": 0.000730375 + "ts": 0.000752125 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#60=SPI3_DMA" + }, + "ts": 0.000752125 }, { "core_id": 0, @@ -599,7 +1270,17 @@ "params": { "desc": "I#61=WDT" }, - "ts": 0.0007413 + "ts": 0.000763075 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#61=WDT" + }, + "ts": 0.000763075 }, { "core_id": 0, @@ -609,7 +1290,17 @@ "params": { "desc": "I#62=TIMER1" }, - "ts": 0.00076165 + "ts": 0.000783475 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#62=TIMER1" + }, + "ts": 0.000783475 }, { "core_id": 0, @@ -619,7 +1310,17 @@ "params": { "desc": "I#63=TIMER2" }, - "ts": 0.000773525 + "ts": 0.000795 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#63=TIMER2" + }, + "ts": 0.000795 }, { "core_id": 0, @@ -629,7 +1330,17 @@ "params": { "desc": "I#64=TG0_T0_EDGE" }, - "ts": 0.000786275 + "ts": 0.000808 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#64=TG0_T0_EDGE" + }, + "ts": 0.000808 }, { "core_id": 0, @@ -639,7 +1350,17 @@ "params": { "desc": "I#65=TG0_T1_EDGE" }, - "ts": 0.000806925 + "ts": 0.0008249 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#65=TG0_T1_EDGE" + }, + "ts": 0.0008249 }, { "core_id": 0, @@ -649,7 +1370,17 @@ "params": { "desc": "I#66=TG0_WDT_EDGE" }, - "ts": 0.00081995 + "ts": 0.00084165 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#66=TG0_WDT_EDGE" + }, + "ts": 0.00084165 }, { "core_id": 0, @@ -659,7 +1390,17 @@ "params": { "desc": "I#67=TG0_LACT_EDGE" }, - "ts": 0.000837025 + "ts": 0.000858925 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#67=TG0_LACT_EDGE" + }, + "ts": 0.000858925 }, { "core_id": 0, @@ -669,7 +1410,17 @@ "params": { "desc": "I#68=TG1_T0_EDGE" }, - "ts": 0.000850025 + "ts": 0.00087175 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#68=TG1_T0_EDGE" + }, + "ts": 0.00087175 }, { "core_id": 0, @@ -679,7 +1430,17 @@ "params": { "desc": "I#69=TG1_T1_EDGE" }, - "ts": 0.000863125 + "ts": 0.0008844 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#69=TG1_T1_EDGE" + }, + "ts": 0.0008844 }, { "core_id": 0, @@ -689,7 +1450,17 @@ "params": { "desc": "I#70=TG1_WDT_EDGE" }, - "ts": 0.000880425 + "ts": 0.00090155 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#70=TG1_WDT_EDGE" + }, + "ts": 0.00090155 }, { "core_id": 0, @@ -699,7 +1470,17 @@ "params": { "desc": "I#71=TG1_LACT_EDGE" }, - "ts": 0.00089375 + "ts": 0.00091485 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#71=TG1_LACT_EDGE" + }, + "ts": 0.00091485 }, { "core_id": 0, @@ -709,7 +1490,17 @@ "params": { "desc": "I#72=MMU_IA" }, - "ts": 0.00090935 + "ts": 0.00093035 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#72=MMU_IA" + }, + "ts": 0.00093035 }, { "core_id": 0, @@ -719,7 +1510,17 @@ "params": { "desc": "I#73=MPU_IA" }, - "ts": 0.000925 + "ts": 0.000941925 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#73=MPU_IA" + }, + "ts": 0.000941925 }, { "core_id": 0, @@ -729,17 +1530,37 @@ "params": { "desc": "I#74=CACHE_IA" }, - "ts": 0.000937125 + "ts": 0.00095815 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 14, + "in_irq": false, + "params": { + "desc": "I#74=CACHE_IA" + }, + "ts": 0.00095815 }, { "core_id": 0, "ctx_name": "IDLE1", - "id": 13, + "id": 12, "in_irq": false, "params": { - "time": 10000 + "cycles": 2739609 }, - "ts": 0.0009454 + "ts": 0.00096865 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 12, + "in_irq": false, + "params": { + "cycles": 2739609 + }, + "ts": 0.00096865 }, { "core_id": 0, @@ -749,9 +1570,21 @@ "params": { "name": "ipc0", "prio": 24, - "tid": 12253204 + "tid": 12252316 }, - "ts": 0.0010603 + "ts": 0.0010845 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 9, + "in_irq": false, + "params": { + "name": "ipc0", + "prio": 24, + "tid": 12252316 + }, + "ts": 0.0010845 }, { "core_id": 0, @@ -759,12 +1592,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073410064, - "sz": 1344, - "tid": 12253204, + "base": 1073409176, + "sz": 1352, + "tid": 12252316, "unused": 0 }, - "ts": 0.00106555 + "ts": 0.001089775 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073409176, + "sz": 1352, + "tid": 12252316, + "unused": 0 + }, + "ts": 0.001089775 }, { "core_id": 0, @@ -774,9 +1620,21 @@ "params": { "name": "ipc1", "prio": 24, - "tid": 12253560 + "tid": 12254724 }, - "ts": 0.00117445 + "ts": 0.00119535 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 9, + "in_irq": false, + "params": { + "name": "ipc1", + "prio": 24, + "tid": 12254724 + }, + "ts": 0.00119535 }, { "core_id": 0, @@ -784,12 +1642,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073431024, + "base": 1073411584, "sz": 1344, - "tid": 12253560, + "tid": 12254724, "unused": 0 }, - "ts": 0.001179775 + "ts": 0.0012008 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073411584, + "sz": 1344, + "tid": 12254724, + "unused": 0 + }, + "ts": 0.0012008 }, { "core_id": 0, @@ -799,9 +1670,21 @@ "params": { "name": "main", "prio": 1, - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001331775 + "ts": 0.001388725 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 9, + "in_irq": false, + "params": { + "name": "main", + "prio": 1, + "tid": 12274964 + }, + "ts": 0.001388725 }, { "core_id": 0, @@ -809,12 +1692,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073433076, - "sz": 1916, - "tid": 12254080, + "base": 1073429776, + "sz": 2400, + "tid": 12274964, "unused": 0 }, - "ts": 0.00133715 + "ts": 0.001394 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073429776, + "sz": 2400, + "tid": 12274964, + "unused": 0 + }, + "ts": 0.001394 }, { "core_id": 0, @@ -824,7 +1720,17 @@ "params": { "mod_cnt": 0 }, - "ts": 0.00134445 + "ts": 0.001401225 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 27, + "in_irq": false, + "params": { + "mod_cnt": 0 + }, + "ts": 0.001401225 }, { "core_id": 1, @@ -834,7 +1740,7 @@ "params": { "irq_num": 5 }, - "ts": 0.001351275 + "ts": 0.001407975 }, { "core_id": 0, @@ -844,7 +1750,7 @@ "params": { "irq_num": 5 }, - "ts": 0.00136285 + "ts": 0.0014197 }, { "core_id": 1, @@ -852,7 +1758,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0013738 + "ts": 0.001430725 }, { "core_id": 0, @@ -860,9 +1766,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.00138475 + "ts": 0.001441675 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.001441675 }, { "core_id": 0, @@ -870,7 +1786,7 @@ "id": 3, "in_irq": false, "params": {}, - "ts": 0.00139985 + "ts": 0.00145695 }, { "core_id": 1, @@ -878,7 +1794,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00141065 + "ts": 0.001467975 }, { "core_id": 0, @@ -888,7 +1804,17 @@ "params": { "irq_num": 30 }, - "ts": 0.001422175 + "ts": 0.001479225 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.001490125 }, { "core_id": 0, @@ -896,7 +1822,15 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.001433675 + "ts": 0.001501375 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.001512375 }, { "core_id": 0, @@ -904,9 +1838,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.001450025 + "ts": 0.001523775 }, { "core_id": 0, @@ -918,17 +1852,55 @@ "evt_off": 512, "mod_id": 0 }, - "ts": 0.0014769 + "ts": 0.0015543 }, { - "addr": "0x3ffb70d8", + "core_id": 1, + "ctx_name": "IDLE1", + "id": 22, + "in_irq": false, + "params": { + "desc": "M=ESP32 SystemView Heap Tracing Module", + "evt_off": 512, + "mod_id": 0 + }, + "ts": 0.0015543 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.001566225 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.00157755 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 3, + "in_irq": false, + "params": {}, + "ts": 0.00159325 + }, + { + "addr": "0x3ffb68a0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -939,61 +1911,17 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.001532525 + "ts": 0.0016508 }, { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.001666425 - }, - { - "core_id": 1, - "ctx_name": "IDLE1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.00167985 - }, - { - "core_id": 1, - "ctx_name": "IDLE1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.001696525 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.00183355 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 3, - "in_irq": false, - "params": {}, - "ts": 0.001848925 - }, - { - "addr": "0x3ffb70e8", + "addr": "0x3ffb68b0", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1004,17 +1932,17 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.001870025 + "ts": 0.00195255 }, { - "addr": "0x3ffb7aec", + "addr": "0x3ffb72b4", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1025,7 +1953,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.001909875 + "ts": 0.00199345 }, { "core_id": 0, @@ -1033,9 +1961,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.00193255 + "ts": 0.002024125 }, { "core_id": 0, @@ -1045,9 +1973,21 @@ "params": { "name": "alloc0", "prio": 5, - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.001945175 + "ts": 0.002036775 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc0", + "prio": 5, + "tid": 12284596 + }, + "ts": 0.002036775 }, { "core_id": 0, @@ -1055,12 +1995,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073443048, - "sz": 4294965096, - "tid": 12286700, + "base": 1073440944, + "sz": 4294965088, + "tid": 12284596, "unused": 0 }, - "ts": 0.001954275 + "ts": 0.0020459 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073440944, + "sz": 4294965088, + "tid": 12284596, + "unused": 0 + }, + "ts": 0.0020459 }, { "core_id": 0, @@ -1068,9 +2021,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.001964975 + "ts": 0.002056625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.002056625 }, { "core_id": 0, @@ -1080,7 +2043,7 @@ "params": { "irq_num": 30 }, - "ts": 0.001980675 + "ts": 0.002072325 }, { "core_id": 0, @@ -1088,7 +2051,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.001992175 + "ts": 0.002083675 }, { "core_id": 0, @@ -1096,18 +2059,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.00200865 + "ts": 0.002100025 }, { - "addr": "0x3ffb7c50", + "addr": "0x3ffb7418", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1119,7 +2082,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.002044025 + "ts": 0.002144425 }, { "core_id": 0, @@ -1131,16 +2094,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.002058325 + "ts": 0.002158725 }, { - "addr": "0x3ffb7cd0", + "addr": "0x3ffb7498", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1152,16 +2115,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.00211355 + "ts": 0.00221895 }, { - "addr": "0x3ffb86d4", + "addr": "0x3ffb7e9c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1173,7 +2136,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.00214795 + "ts": 0.0022544 }, { "core_id": 0, @@ -1181,9 +2144,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.00217465 + "ts": 0.0022811 }, { "core_id": 0, @@ -1193,9 +2156,21 @@ "params": { "name": "free0", "prio": 5, - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.00218715 + "ts": 0.002293625 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 9, + "in_irq": false, + "params": { + "name": "free0", + "prio": 5, + "tid": 12287644 + }, + "ts": 0.002293625 }, { "core_id": 0, @@ -1203,12 +2178,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073446096, - "sz": 4294965088, - "tid": 12289748, + "base": 1073443992, + "sz": 4294965096, + "tid": 12287644, "unused": 0 }, - "ts": 0.0021963 + "ts": 0.0023028 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073443992, + "sz": 4294965096, + "tid": 12287644, + "unused": 0 + }, + "ts": 0.0023028 }, { "core_id": 0, @@ -1216,9 +2204,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.002207125 + "ts": 0.00231365 + }, + { + "core_id": 1, + "ctx_name": "IDLE1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.00231365 }, { "core_id": 1, @@ -1228,7 +2226,7 @@ "params": { "irq_num": 31 }, - "ts": 0.0022225 + "ts": 0.002329 }, { "core_id": 1, @@ -1236,16 +2234,16 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0022354 + "ts": 0.002342325 }, { - "addr": "0x3ffb8838", + "addr": "0x3ffb8000", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1257,7 +2255,7 @@ "id": 512, "in_irq": false, "size": 1, - "ts": 0.0022518 + "ts": 0.002359325 }, { "core_id": 1, @@ -1265,9 +2263,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0022631 + "ts": 0.00237075 }, { "core_id": 1, @@ -1277,16 +2275,16 @@ "params": { "irq_num": 31 }, - "ts": 0.002293125 + "ts": 0.002400875 }, { - "addr": "0x3ffb8848", + "addr": "0x3ffb8010", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1298,7 +2296,7 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.00230405 + "ts": 0.002412175 }, { "core_id": 1, @@ -1306,7 +2304,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.002315125 + "ts": 0.00242375 }, { "core_id": 0, @@ -1316,10 +2314,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.002327775 + "ts": 0.002436 }, { "core_id": 1, @@ -1327,99 +2325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.002338225 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.0023724 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848\n", - "ts": 0.002611675 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (310) example: Task[0x3ffb7aec]: allocated 2 bytes @ 0x3ffb8848\n", - "ts": 0.002611675 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12287056, - "xTicksToWait": 0 - }, - "ts": 0.00263325 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 6, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.002646375 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.002662575 - }, - { - "core_id": 0, - "ctx_name": "alloc0", - "id": 34, - "in_irq": false, - "params": { - "xTicksToDelay": 30 - }, - "ts": 0.00267345 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.002684225 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.0026984 + "ts": 0.002447 }, { "core_id": 1, @@ -1429,7 +2335,153 @@ "params": { "irq_num": 5 }, - "ts": 0.00270915 + "ts": 0.002462975 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.002476525 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.002487925 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.002499075 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010\n", + "ts": 0.00274865 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (297) example: Task[0x3ffb72b4]: allocated 2 bytes @ 0x3ffb8010\n", + "ts": 0.00274865 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.002765925 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 3, + "in_irq": false, + "params": {}, + "ts": 0.0027813 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12284952, + "xTicksToWait": 0 + }, + "ts": 0.00279535 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.00280855 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.00280855 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.0028248 + }, + { + "core_id": 0, + "ctx_name": "alloc0", + "id": 34, + "in_irq": false, + "params": { + "xTicksToDelay": 30 + }, + "ts": 0.00283575 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.00284645 + }, + { + "core_id": 0, + "ctx_name": "FROM_CPU0", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 30 + }, + "ts": 0.002860225 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 4, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.002870975 }, { "core_id": 0, @@ -1437,35 +2489,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.002720075 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.002731625 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 4, - "in_irq": false, - "params": { - "tid": 12254080 - }, - "ts": 0.0027421 - }, - { - "core_id": 1, - "ctx_name": "free0", - "id": 4, - "in_irq": false, - "params": { - "tid": 12289748 - }, - "ts": 0.0027596 + "ts": 0.002881775 }, { "core_id": 1, @@ -1475,20 +2499,30 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.00277655 + "ts": 0.002893725 }, { - "addr": "0x3ffb8858", + "core_id": 0, + "ctx_name": "main", + "id": 4, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.00290445 + }, + { + "addr": "0x3ffb8020", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1499,7 +2533,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.00278805 + "ts": 0.00294385 }, { "core_id": 1, @@ -1509,38 +2543,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.002824 + "ts": 0.002956 }, { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.002835875 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 3, - "in_irq": false, - "params": {}, - "ts": 0.00285125 - }, - { - "addr": "0x3ffb8868", + "addr": "0x3ffb8030", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1551,7 +2567,7 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.002863625 + "ts": 0.00299065 }, { "core_id": 1, @@ -1561,20 +2577,20 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.002878375 + "ts": 0.003010625 }, { - "addr": "0x3ffb926c", + "addr": "0x3ffb8a34", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1585,7 +2601,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.002905675 + "ts": 0.003033925 }, { "core_id": 0, @@ -1593,9 +2609,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.002928325 + "ts": 0.00305665 }, { "core_id": 0, @@ -1605,9 +2621,21 @@ "params": { "name": "alloc1", "prio": 5, - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.002941 + "ts": 0.00306935 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc1", + "prio": 5, + "tid": 12290612 + }, + "ts": 0.00306935 }, { "core_id": 0, @@ -1615,12 +2643,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073449064, - "sz": 4294965096, - "tid": 12292716, + "base": 1073446960, + "sz": 4294965088, + "tid": 12290612, "unused": 0 }, - "ts": 0.00295 + "ts": 0.0030784 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 21, + "in_irq": false, + "params": { + "base": 1073446960, + "sz": 4294965088, + "tid": 12290612, + "unused": 0 + }, + "ts": 0.0030784 }, { "core_id": 0, @@ -1628,9 +2669,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.0029609 + "ts": 0.0030893 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.0030893 }, { "core_id": 0, @@ -1640,7 +2691,7 @@ "params": { "irq_num": 30 }, - "ts": 0.002976625 + "ts": 0.00310495 }, { "core_id": 0, @@ -1648,7 +2699,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.002988 + "ts": 0.0031163 }, { "core_id": 0, @@ -1656,18 +2707,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.00300485 + "ts": 0.003132675 }, { - "addr": "0x3ffb93d0", + "addr": "0x3ffb8b98", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1679,7 +2730,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.0030403 + "ts": 0.00316915 }, { "core_id": 0, @@ -1691,16 +2742,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.0030546 + "ts": 0.00318345 }, { - "addr": "0x3ffb9450", + "addr": "0x3ffb8c18", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1712,16 +2763,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.00309395 + "ts": 0.00322385 }, { - "addr": "0x3ffb9e54", + "addr": "0x3ffb961c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1733,7 +2784,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.00312835 + "ts": 0.0032594 }, { "core_id": 0, @@ -1741,9 +2792,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0031551 + "ts": 0.003286175 }, { "core_id": 0, @@ -1753,9 +2804,21 @@ "params": { "name": "free1", "prio": 5, - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0031676 + "ts": 0.003298675 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 9, + "in_irq": false, + "params": { + "name": "free1", + "prio": 5, + "tid": 12293660 + }, + "ts": 0.003298675 }, { "core_id": 0, @@ -1763,12 +2826,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073452112, - "sz": 4294965088, - "tid": 12295764, + "base": 1073450008, + "sz": 4294965096, + "tid": 12293660, "unused": 0 }, - "ts": 0.003176775 + "ts": 0.003307875 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 21, + "in_irq": false, + "params": { + "base": 1073450008, + "sz": 4294965096, + "tid": 12293660, + "unused": 0 + }, + "ts": 0.003307875 }, { "core_id": 0, @@ -1776,18 +2852,28 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.003187575 + "ts": 0.0033187 }, { - "addr": "0x3ffb9fb8", + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.0033187 + }, + { + "addr": "0x3ffb9780", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1799,16 +2885,16 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.0032237 + "ts": 0.00335585 }, { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1820,7 +2906,7 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.0032581 + "ts": 0.003391275 }, { "core_id": 0, @@ -1830,10 +2916,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.003275 + "ts": 0.003408225 }, { "core_id": 0, @@ -1843,10 +2929,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.003296925 + "ts": 0.0034283 }, { "core_id": 1, @@ -1854,8 +2940,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848\n", - "ts": 0.00333965 + "msg": "I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010\n", + "ts": 0.0034843 }, { "core_id": 1, @@ -1863,8 +2949,26 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (310) example: Task[0x3ffb86d4]: free memory @ 0x3ffb8848\n", - "ts": 0.00333965 + "msg": "I (298) example: Task[0x3ffb7e9c]: free memory @ 0x3ffb8010\n", + "ts": 0.0034843 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0035038 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.003517225 }, { "core_id": 1, @@ -1874,7 +2978,25 @@ "params": { "irq_num": 31 }, - "ts": 0.0033598 + "ts": 0.003529075 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790\n", + "ts": 0.0035488 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (298) example: Task[0x3ffb8a34]: allocated 4 bytes @ 0x3ffb9790\n", + "ts": 0.0035488 }, { "core_id": 1, @@ -1882,7 +3004,17 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00337125 + "ts": 0.003560325 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.003571875 }, { "core_id": 1, @@ -1890,47 +3022,34 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.003388225 + "ts": 0.00358275 }, { "core_id": 0, "ctx_name": "alloc1", - "id": 26, + "id": 18, "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8\n", - "ts": 0.00340705 + "params": {}, + "ts": 0.003598 }, { "core_id": 0, "ctx_name": "alloc1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb926c]: allocated 4 bytes @ 0x3ffb9fc8\n", - "ts": 0.00340705 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 53, + "id": 4, "in_irq": false, "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12293072, - "xTicksToWait": 0 + "tid": 12290612 }, - "ts": 0.00342115 + "ts": 0.00361455 }, { - "addr": "0x3ffb8848", + "addr": "0x3ffb8010", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -1944,7 +3063,20 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0034343 + "ts": 0.00362625 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12290968, + "xTicksToWait": 0 + }, + "ts": 0.003637375 }, { "core_id": 0, @@ -1954,7 +3086,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.003446125 + "ts": 0.00365135 }, { "core_id": 0, @@ -1964,7 +3096,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0034648 + "ts": 0.0036711 }, { "core_id": 0, @@ -1972,7 +3104,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00347875 + "ts": 0.003685125 }, { "core_id": 1, @@ -1982,7 +3114,7 @@ "params": { "irq_num": 31 }, - "ts": 0.003492825 + "ts": 0.003699025 }, { "core_id": 0, @@ -1990,9 +3122,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.003504725 + "ts": 0.0037109 }, { "core_id": 1, @@ -2000,7 +3132,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0035156 + "ts": 0.003721925 }, { "core_id": 1, @@ -2008,19 +3140,19 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.00353485 + "ts": 0.00374125 }, { - "addr": "0x3ffb8848", + "addr": "0x3ffb8010", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6bef", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3caf", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2031,7 +3163,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.003547175 + "ts": 0.00375485 }, { "core_id": 1, @@ -2041,10 +3173,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.003564225 + "ts": 0.00377185 }, { "core_id": 1, @@ -2054,20 +3186,33 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0035829 + "ts": 0.00379015 }, { - "addr": "0x3ffb9fd8", + "core_id": 1, + "ctx_name": "free1", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.003809225 + }, + { + "addr": "0x3ffb97a0", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2078,30 +3223,35 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.003600675 + "ts": 0.003820975 }, { "core_id": 1, "ctx_name": "free1", - "id": 53, + "id": 26, "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.0036134 + "lvl": 0, + "msg": "I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790\n", + "ts": 0.0038621 }, { - "addr": "0x3ffba9dc", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Task[0x3ffb961c]: free memory @ 0x3ffb9790\n", + "ts": 0.0038621 + }, + { + "addr": "0x3ffba1a4", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6c38", - "0x400e693b", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3cf8", + "0x400e3898", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2112,123 +3262,14 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.003639925 + "ts": 0.003874025 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8\n", - "ts": 0.003663425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (311) example: Task[0x3ffb9e54]: free memory @ 0x3ffb9fc8\n", - "ts": 0.003663425 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 8, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.0036748 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.003691 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 9, - "in_irq": false, - "params": { - "name": "alloc2", - "prio": 5, - "tid": 12298716 - }, - "ts": 0.003703775 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 21, - "in_irq": false, - "params": { - "base": 1073455064, - "sz": 4294965096, - "tid": 12298716, - "unused": 0 - }, - "ts": 0.00371475 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 6, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.00372765 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.0037451 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.00375595 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 4, - "in_irq": false, - "params": { - "tid": 12295764 - }, - "ts": 0.003766625 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.003777475 - }, - { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2242,17 +3283,105 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.003792825 + "ts": 0.003887625 }, { "core_id": 0, - "ctx_name": "alloc2", - "id": 4, + "ctx_name": "main", + "id": 8, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.00380445 + "ts": 0.00390345 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc2", + "prio": 5, + "tid": 12296612 + }, + "ts": 0.003918375 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 9, + "in_irq": false, + "params": { + "name": "alloc2", + "prio": 5, + "tid": 12296612 + }, + "ts": 0.003918375 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 21, + "in_irq": false, + "params": { + "base": 1073452960, + "sz": 4294965088, + "tid": 12296612, + "unused": 0 + }, + "ts": 0.00392955 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073452960, + "sz": 4294965088, + "tid": 12296612, + "unused": 0 + }, + "ts": 0.00392955 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.003942575 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.003942575 + }, + { + "core_id": 0, + "ctx_name": "FROM_CPU0", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 30 + }, + "ts": 0.00396125 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.00397515 }, { "core_id": 1, @@ -2262,17 +3391,17 @@ "params": { "irq_num": 31 }, - "ts": 0.00382735 + "ts": 0.003989 }, { "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, + "ctx_name": "alloc2", + "id": 4, + "in_irq": false, "params": { - "irq_num": 5 + "tid": 12296612 }, - "ts": 0.003839325 + "ts": 0.003999875 }, { "core_id": 1, @@ -2280,15 +3409,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0038505 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 3, - "in_irq": false, - "params": {}, - "ts": 0.003862175 + "ts": 0.004011 }, { "core_id": 1, @@ -2296,16 +3417,16 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00387205 + "ts": 0.00403305 }, { - "addr": "0x3ffbab40", + "addr": "0x3ffba308", "callers": [ - "0x40081fef", - "0x40089414", - "0x40088679", - "0x400d6aa4", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x400879c1", + "0x400d3b64", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2317,7 +3438,7 @@ "id": 512, "in_irq": false, "size": 124, - "ts": 0.0038881 + "ts": 0.004044725 }, { "core_id": 0, @@ -2329,16 +3450,16 @@ "uxItemSize": 4, "uxQueueLength": 10 }, - "ts": 0.003902475 + "ts": 0.00405925 }, { - "addr": "0x3ffbabc0", + "addr": "0x3ffba388", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b304", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a610", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2350,16 +3471,16 @@ "id": 512, "in_irq": false, "size": 2500, - "ts": 0.003941825 + "ts": 0.004099675 }, { - "addr": "0x3ffbb5c4", + "addr": "0x3ffbad8c", "callers": [ - "0x40081fef", - "0x40089414", - "0x4008b30f", - "0x400d6ae0", - "0x40088d94", + "0x40081eff", + "0x40088720", + "0x4008a61b", + "0x400d3ba0", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2371,7 +3492,7 @@ "id": 512, "in_irq": false, "size": 340, - "ts": 0.003976225 + "ts": 0.00413515 }, { "core_id": 0, @@ -2379,9 +3500,9 @@ "id": 8, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0040022 + "ts": 0.004157725 }, { "core_id": 0, @@ -2391,9 +3512,21 @@ "params": { "name": "free2", "prio": 5, - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0040147 + "ts": 0.0041703 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 9, + "in_irq": false, + "params": { + "name": "free2", + "prio": 5, + "tid": 12299660 + }, + "ts": 0.0041703 }, { "core_id": 0, @@ -2401,12 +3534,25 @@ "id": 21, "in_irq": false, "params": { - "base": 1073458112, - "sz": 4294965088, - "tid": 12301764, + "base": 1073456008, + "sz": 4294965096, + "tid": 12299660, "unused": 0 }, - "ts": 0.004023875 + "ts": 0.004183575 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 21, + "in_irq": false, + "params": { + "base": 1073456008, + "sz": 4294965096, + "tid": 12299660, + "unused": 0 + }, + "ts": 0.004183575 }, { "core_id": 0, @@ -2414,9 +3560,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.004034675 + "ts": 0.0041943 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.0041943 }, { "core_id": 1, @@ -2426,7 +3582,7 @@ "params": { "irq_num": 31 }, - "ts": 0.004050925 + "ts": 0.0042104 }, { "core_id": 1, @@ -2434,16 +3590,16 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004063775 + "ts": 0.004223275 }, { - "addr": "0x3ffb9fc8", + "addr": "0x3ffb9790", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2455,7 +3611,7 @@ "id": 512, "in_irq": false, "size": 3, - "ts": 0.00407545 + "ts": 0.0042355 }, { "core_id": 1, @@ -2463,9 +3619,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0040869 + "ts": 0.004248275 }, { "core_id": 1, @@ -2475,16 +3631,16 @@ "params": { "irq_num": 31 }, - "ts": 0.004113275 + "ts": 0.004274675 }, { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2496,7 +3652,7 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.004125025 + "ts": 0.004286525 }, { "core_id": 1, @@ -2504,7 +3660,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00413645 + "ts": 0.0042977 }, { "core_id": 0, @@ -2514,10 +3670,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.004148425 + "ts": 0.004309925 }, { "core_id": 1, @@ -2525,7 +3681,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0041587 + "ts": 0.0043207 }, { "core_id": 0, @@ -2535,10 +3691,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0041771 + "ts": 0.0043391 }, { "core_id": 0, @@ -2546,8 +3702,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728\n", - "ts": 0.0042294 + "msg": "I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0\n", + "ts": 0.00439165 }, { "core_id": 0, @@ -2555,8 +3711,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffba9dc]: allocated 6 bytes @ 0x3ffbb728\n", - "ts": 0.0042294 + "msg": "I (299) example: Task[0x3ffba1a4]: allocated 6 bytes @ 0x3ffbaef0\n", + "ts": 0.00439165 }, { "core_id": 0, @@ -2566,10 +3722,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 0 }, - "ts": 0.0042464 + "ts": 0.0044051 }, { "core_id": 0, @@ -2577,9 +3733,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.00425955 + "ts": 0.004418325 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.004418325 }, { "core_id": 1, @@ -2589,7 +3755,7 @@ "params": { "irq_num": 31 }, - "ts": 0.004275825 + "ts": 0.00443885 }, { "core_id": 0, @@ -2599,7 +3765,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.004286675 + "ts": 0.0044497 }, { "core_id": 1, @@ -2607,7 +3773,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00429745 + "ts": 0.004460525 }, { "core_id": 0, @@ -2617,17 +3783,17 @@ "params": { "irq_num": 30 }, - "ts": 0.004311325 + "ts": 0.004474625 }, { "core_id": 1, - "ctx_name": "free2", - "id": 4, - "in_irq": false, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, "params": { - "tid": 12301764 + "irq_num": 5 }, - "ts": 0.004322125 + "ts": 0.00448535 }, { "core_id": 0, @@ -2635,7 +3801,48 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004332975 + "ts": 0.004496325 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0045078 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 4, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004518275 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.004535 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 49, + "in_irq": false, + "params": { + "pvBuffer": 3233808384, + "xJustPeek": 0, + "xQueue": 12281672, + "xTicksToWait": 10 + }, + "ts": 0.0045472 }, { "core_id": 1, @@ -2645,10 +3852,68 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.004344875 + "ts": 0.004559125 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.004570475 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12274964 + }, + "ts": 0.004581575 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004581575 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 39, + "in_irq": false, + "params": { + "pxMutexHolder": 1073433876 + }, + "ts": 0.004595225 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.0046103 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.004620875 }, { "core_id": 0, @@ -2656,9 +3921,134 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.00435545 + "ts": 0.00463185 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.004642525 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.0046541 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.004665575 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 42, + "in_irq": false, + "params": { + "pxMutexHolder": 1073433876 + }, + "ts": 0.004680075 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004690775 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.004690775 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.00470455 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.00470455 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.004720275 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.00473175 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Wait notify 0\n", + "ts": 0.00474835 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (299) example: Wait notify 0\n", + "ts": 0.00474835 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.004759525 }, { "core_id": 1, @@ -2668,23 +4058,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.004367625 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.004394675 + "ts": 0.004776775 }, { "core_id": 0, @@ -2694,17 +4071,20 @@ "params": { "irq_num": 30 }, - "ts": 0.004405525 + "ts": 0.004787675 }, { "core_id": 1, "ctx_name": "free2", - "id": 6, + "id": 53, "in_irq": false, "params": { - "tid": 12254080 + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 }, - "ts": 0.0044172 + "ts": 0.0048 }, { "core_id": 0, @@ -2712,43 +4092,15 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00442855 + "ts": 0.00481075 }, { "core_id": 0, "ctx_name": "main", - "id": 4, + "id": 17, "in_irq": false, - "params": { - "tid": 12254080 - }, - "ts": 0.004446675 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 49, - "in_irq": false, - "params": { - "pvBuffer": 3233808384, - "xJustPeek": 0, - "xQueue": 12283904, - "xTicksToWait": 10 - }, - "ts": 0.004461 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.004477875 + "params": {}, + "ts": 0.00482835 }, { "core_id": 1, @@ -2756,8 +4108,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728\n", - "ts": 0.004496725 + "msg": "I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0\n", + "ts": 0.0048496 }, { "core_id": 1, @@ -2765,15 +4117,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (312) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb728\n", - "ts": 0.004496725 + "msg": "I (299) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaef0\n", + "ts": 0.0048496 }, { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -2787,25 +4139,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.004524 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (312) example: Wait notify 0\n", - "ts": 0.004538425 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (312) example: Wait notify 0\n", - "ts": 0.004538425 + "ts": 0.004875275 }, { "core_id": 1, @@ -2815,7 +4149,7 @@ "params": { "irq_num": 31 }, - "ts": 0.004553625 + "ts": 0.004903 }, { "core_id": 1, @@ -2823,17 +4157,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0045677 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.00458165 + "ts": 0.0049144 }, { "core_id": 1, @@ -2841,23 +4165,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0045921 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.004603225 - }, - { - "core_id": 0, - "ctx_name": "main", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.004619375 + "ts": 0.004930975 }, { "core_id": 1, @@ -2867,7 +4175,7 @@ "params": { "irq_num": 5 }, - "ts": 0.004666675 + "ts": 0.0054482 }, { "core_id": 1, @@ -2875,7 +4183,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0046801 + "ts": 0.005461725 }, { "core_id": 1, @@ -2883,7 +4191,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00469525 + "ts": 0.0054773 }, { "core_id": 0, @@ -2893,7 +4201,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0048338 + "ts": 0.00554665 }, { "core_id": 0, @@ -2901,7 +4209,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.004849175 + "ts": 0.00556205 }, { "core_id": 0, @@ -2909,7 +4217,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00486425 + "ts": 0.005577275 }, { "core_id": 1, @@ -2919,7 +4227,7 @@ "params": { "irq_num": 5 }, - "ts": 0.005666425 + "ts": 0.0064482 }, { "core_id": 1, @@ -2927,7 +4235,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.005680075 + "ts": 0.006461725 }, { "core_id": 1, @@ -2935,7 +4243,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.005695225 + "ts": 0.00647685 }, { "core_id": 0, @@ -2945,7 +4253,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0058338 + "ts": 0.00654665 }, { "core_id": 0, @@ -2953,7 +4261,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0058492 + "ts": 0.006562 }, { "core_id": 0, @@ -2961,7 +4269,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.005864425 + "ts": 0.006577075 }, { "core_id": 1, @@ -2971,7 +4279,7 @@ "params": { "irq_num": 5 }, - "ts": 0.006666425 + "ts": 0.0074482 }, { "core_id": 1, @@ -2979,7 +4287,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00667995 + "ts": 0.007461725 }, { "core_id": 1, @@ -2987,7 +4295,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0066951 + "ts": 0.007476975 }, { "core_id": 0, @@ -2997,7 +4305,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0068338 + "ts": 0.00754665 }, { "core_id": 0, @@ -3005,7 +4313,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.006849175 + "ts": 0.007562025 }, { "core_id": 0, @@ -3013,7 +4321,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00686425 + "ts": 0.007577225 }, { "core_id": 1, @@ -3023,7 +4331,7 @@ "params": { "irq_num": 5 }, - "ts": 0.007666425 + "ts": 0.0084482 }, { "core_id": 1, @@ -3031,7 +4339,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.007680075 + "ts": 0.008461775 }, { "core_id": 1, @@ -3039,7 +4347,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00769535 + "ts": 0.0084769 }, { "core_id": 0, @@ -3049,7 +4357,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0078338 + "ts": 0.00854665 }, { "core_id": 0, @@ -3057,7 +4365,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.007849175 + "ts": 0.008562 }, { "core_id": 0, @@ -3065,7 +4373,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00786425 + "ts": 0.008577075 }, { "core_id": 1, @@ -3075,7 +4383,7 @@ "params": { "irq_num": 5 }, - "ts": 0.008666425 + "ts": 0.0094482 }, { "core_id": 1, @@ -3083,7 +4391,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00868 + "ts": 0.009461725 }, { "core_id": 1, @@ -3091,7 +4399,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.008695125 + "ts": 0.00947685 }, { "core_id": 0, @@ -3101,7 +4409,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0088338 + "ts": 0.00954665 }, { "core_id": 0, @@ -3109,7 +4417,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.008849175 + "ts": 0.00956205 }, { "core_id": 0, @@ -3117,7 +4425,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.008868 + "ts": 0.009577275 }, { "core_id": 1, @@ -3127,7 +4435,7 @@ "params": { "irq_num": 5 }, - "ts": 0.009666425 + "ts": 0.0104482 }, { "core_id": 1, @@ -3135,7 +4443,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.00967995 + "ts": 0.010461725 }, { "core_id": 1, @@ -3143,7 +4451,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0096951 + "ts": 0.01047685 }, { "core_id": 0, @@ -3153,7 +4461,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0098338 + "ts": 0.01054665 }, { "core_id": 0, @@ -3161,7 +4469,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.009849175 + "ts": 0.010562 }, { "core_id": 0, @@ -3169,7 +4477,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.00986425 + "ts": 0.010577075 }, { "core_id": 1, @@ -3179,7 +4487,7 @@ "params": { "irq_num": 5 }, - "ts": 0.010666425 + "ts": 0.0114482 }, { "core_id": 1, @@ -3187,7 +4495,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.010680075 + "ts": 0.011461725 }, { "core_id": 1, @@ -3195,7 +4503,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01069535 + "ts": 0.011476975 }, { "core_id": 0, @@ -3205,7 +4513,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0108338 + "ts": 0.01154665 }, { "core_id": 0, @@ -3213,7 +4521,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.010849175 + "ts": 0.011562025 }, { "core_id": 0, @@ -3221,7 +4529,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01086425 + "ts": 0.011577225 }, { "core_id": 1, @@ -3231,7 +4539,7 @@ "params": { "irq_num": 5 }, - "ts": 0.011666425 + "ts": 0.0124482 }, { "core_id": 1, @@ -3239,7 +4547,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01168 + "ts": 0.012461725 }, { "core_id": 1, @@ -3247,7 +4555,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.011695125 + "ts": 0.012476975 }, { "core_id": 0, @@ -3257,7 +4565,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0118338 + "ts": 0.01254665 }, { "core_id": 0, @@ -3265,7 +4573,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.011849175 + "ts": 0.012562025 }, { "core_id": 0, @@ -3273,7 +4581,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01186425 + "ts": 0.012577225 }, { "core_id": 1, @@ -3283,7 +4591,7 @@ "params": { "irq_num": 5 }, - "ts": 0.012666425 + "ts": 0.0134482 }, { "core_id": 1, @@ -3291,7 +4599,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.012680075 + "ts": 0.013461775 }, { "core_id": 1, @@ -3299,7 +4607,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.012695225 + "ts": 0.0134769 }, { "core_id": 0, @@ -3309,7 +4617,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0128338 + "ts": 0.01354665 }, { "core_id": 0, @@ -3317,7 +4625,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0128492 + "ts": 0.013562 }, { "core_id": 0, @@ -3325,7 +4633,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.012864425 + "ts": 0.013577075 }, { "core_id": 1, @@ -3335,7 +4643,7 @@ "params": { "irq_num": 5 }, - "ts": 0.013666425 + "ts": 0.0144482 }, { "core_id": 1, @@ -3343,7 +4651,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01367995 + "ts": 0.014461725 }, { "core_id": 1, @@ -3351,7 +4659,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0136951 + "ts": 0.01447685 }, { "core_id": 0, @@ -3361,7 +4669,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0138338 + "ts": 0.01454665 }, { "core_id": 0, @@ -3369,7 +4677,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0138494 + "ts": 0.0145623 }, { "core_id": 0, @@ -3377,7 +4685,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0138645 + "ts": 0.0145775 }, { "core_id": 1, @@ -3387,7 +4695,7 @@ "params": { "irq_num": 5 }, - "ts": 0.014666425 + "ts": 0.0154482 }, { "core_id": 1, @@ -3395,7 +4703,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.014680075 + "ts": 0.015461725 }, { "core_id": 1, @@ -3403,7 +4711,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01469535 + "ts": 0.01547685 }, { "core_id": 0, @@ -3413,7 +4721,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0148338 + "ts": 0.01554665 }, { "core_id": 0, @@ -3421,7 +4729,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.014849175 + "ts": 0.015562 }, { "core_id": 0, @@ -3429,7 +4737,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01486425 + "ts": 0.015577075 }, { "core_id": 1, @@ -3439,7 +4747,7 @@ "params": { "irq_num": 5 }, - "ts": 0.015666425 + "ts": 0.0164482 }, { "core_id": 1, @@ -3447,7 +4755,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01568 + "ts": 0.016461725 }, { "core_id": 1, @@ -3455,7 +4763,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.015695125 + "ts": 0.016476975 }, { "core_id": 0, @@ -3465,7 +4773,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0158338 + "ts": 0.01654665 }, { "core_id": 0, @@ -3473,7 +4781,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.015849175 + "ts": 0.016562025 }, { "core_id": 0, @@ -3481,7 +4789,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01586425 + "ts": 0.016577225 }, { "core_id": 1, @@ -3491,7 +4799,7 @@ "params": { "irq_num": 5 }, - "ts": 0.016666425 + "ts": 0.0174482 }, { "core_id": 1, @@ -3499,7 +4807,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.016680075 + "ts": 0.017461775 }, { "core_id": 1, @@ -3507,7 +4815,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.016695225 + "ts": 0.0174769 }, { "core_id": 0, @@ -3517,7 +4825,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0168338 + "ts": 0.01754665 }, { "core_id": 0, @@ -3525,7 +4833,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0168492 + "ts": 0.017562 }, { "core_id": 0, @@ -3533,7 +4841,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.016864425 + "ts": 0.017577075 }, { "core_id": 1, @@ -3543,7 +4851,7 @@ "params": { "irq_num": 5 }, - "ts": 0.017666425 + "ts": 0.0184482 }, { "core_id": 1, @@ -3551,7 +4859,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01767995 + "ts": 0.018461725 }, { "core_id": 1, @@ -3559,7 +4867,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0176951 + "ts": 0.01847685 }, { "core_id": 0, @@ -3569,7 +4877,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0178338 + "ts": 0.01854665 }, { "core_id": 0, @@ -3577,7 +4885,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.017849175 + "ts": 0.01856205 }, { "core_id": 0, @@ -3585,7 +4893,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01786425 + "ts": 0.018577275 }, { "core_id": 1, @@ -3595,7 +4903,7 @@ "params": { "irq_num": 5 }, - "ts": 0.018666425 + "ts": 0.0194482 }, { "core_id": 1, @@ -3603,7 +4911,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.018680075 + "ts": 0.019461725 }, { "core_id": 1, @@ -3611,7 +4919,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01869535 + "ts": 0.01947685 }, { "core_id": 0, @@ -3621,7 +4929,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0188338 + "ts": 0.01954665 }, { "core_id": 0, @@ -3629,7 +4937,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.018849175 + "ts": 0.019562 }, { "core_id": 0, @@ -3637,7 +4945,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01886425 + "ts": 0.019577075 }, { "core_id": 1, @@ -3647,7 +4955,7 @@ "params": { "irq_num": 5 }, - "ts": 0.019666425 + "ts": 0.0204482 }, { "core_id": 1, @@ -3655,7 +4963,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.01968 + "ts": 0.020461725 }, { "core_id": 1, @@ -3663,7 +4971,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.019695125 + "ts": 0.020476975 }, { "core_id": 0, @@ -3673,7 +4981,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0198338 + "ts": 0.02054665 }, { "core_id": 0, @@ -3681,7 +4989,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.019849175 + "ts": 0.020562025 }, { "core_id": 0, @@ -3689,7 +4997,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.01986425 + "ts": 0.020577225 }, { "core_id": 1, @@ -3699,7 +5007,7 @@ "params": { "irq_num": 5 }, - "ts": 0.020666425 + "ts": 0.0214482 }, { "core_id": 1, @@ -3707,7 +5015,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.020680075 + "ts": 0.021461775 }, { "core_id": 1, @@ -3715,7 +5023,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.020695225 + "ts": 0.0214769 }, { "core_id": 0, @@ -3725,7 +5033,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0208338 + "ts": 0.02154665 }, { "core_id": 0, @@ -3733,7 +5041,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0208492 + "ts": 0.021562 }, { "core_id": 0, @@ -3741,7 +5049,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.020864425 + "ts": 0.021577075 }, { "core_id": 1, @@ -3751,7 +5059,7 @@ "params": { "irq_num": 5 }, - "ts": 0.021666425 + "ts": 0.0224482 }, { "core_id": 1, @@ -3759,7 +5067,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.021680075 + "ts": 0.022461725 }, { "core_id": 1, @@ -3767,7 +5075,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02169535 + "ts": 0.02247685 }, { "core_id": 0, @@ -3777,7 +5085,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0218338 + "ts": 0.02254665 }, { "core_id": 0, @@ -3785,7 +5093,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.021849175 + "ts": 0.02256205 }, { "core_id": 0, @@ -3793,7 +5101,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02186425 + "ts": 0.022577275 }, { "core_id": 1, @@ -3803,7 +5111,7 @@ "params": { "irq_num": 5 }, - "ts": 0.022666425 + "ts": 0.0234482 }, { "core_id": 1, @@ -3811,7 +5119,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.02268 + "ts": 0.023461725 }, { "core_id": 1, @@ -3819,7 +5127,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.022695125 + "ts": 0.02347685 }, { "core_id": 0, @@ -3829,7 +5137,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0228338 + "ts": 0.02354665 }, { "core_id": 0, @@ -3837,7 +5145,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.022849175 + "ts": 0.023562 }, { "core_id": 0, @@ -3845,7 +5153,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02286425 + "ts": 0.023577075 }, { "core_id": 1, @@ -3855,7 +5163,7 @@ "params": { "irq_num": 5 }, - "ts": 0.023666425 + "ts": 0.0244482 }, { "core_id": 1, @@ -3863,7 +5171,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.023680075 + "ts": 0.024465975 }, { "core_id": 1, @@ -3871,7 +5179,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.023695225 + "ts": 0.024481125 }, { "core_id": 0, @@ -3881,7 +5189,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0238338 + "ts": 0.02454665 }, { "core_id": 0, @@ -3889,7 +5197,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0238492 + "ts": 0.024562 }, { "core_id": 0, @@ -3897,7 +5205,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.023864425 + "ts": 0.024577075 }, { "core_id": 1, @@ -3907,7 +5215,7 @@ "params": { "irq_num": 5 }, - "ts": 0.024666425 + "ts": 0.0254482 }, { "core_id": 1, @@ -3915,7 +5223,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.02467995 + "ts": 0.025461725 }, { "core_id": 1, @@ -3923,7 +5231,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0246951 + "ts": 0.02547685 }, { "core_id": 0, @@ -3933,7 +5241,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0248338 + "ts": 0.02554665 }, { "core_id": 0, @@ -3941,7 +5249,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.024849175 + "ts": 0.02556205 }, { "core_id": 0, @@ -3949,7 +5257,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02486425 + "ts": 0.025577275 }, { "core_id": 1, @@ -3959,7 +5267,7 @@ "params": { "irq_num": 5 }, - "ts": 0.025666425 + "ts": 0.0264482 }, { "core_id": 1, @@ -3967,7 +5275,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.025680075 + "ts": 0.026461725 }, { "core_id": 1, @@ -3975,7 +5283,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02569535 + "ts": 0.02647685 }, { "core_id": 0, @@ -3985,7 +5293,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0258338 + "ts": 0.02654665 }, { "core_id": 0, @@ -3993,7 +5301,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.025849175 + "ts": 0.026562 }, { "core_id": 0, @@ -4001,7 +5309,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02586425 + "ts": 0.026577075 }, { "core_id": 1, @@ -4011,7 +5319,7 @@ "params": { "irq_num": 5 }, - "ts": 0.026666425 + "ts": 0.0274482 }, { "core_id": 1, @@ -4019,7 +5327,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.02668 + "ts": 0.027461725 }, { "core_id": 1, @@ -4027,7 +5335,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.026695125 + "ts": 0.027476975 }, { "core_id": 0, @@ -4037,7 +5345,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0268338 + "ts": 0.02754665 }, { "core_id": 0, @@ -4045,7 +5353,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.026849175 + "ts": 0.027562025 }, { "core_id": 0, @@ -4053,7 +5361,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02686425 + "ts": 0.027577225 }, { "core_id": 1, @@ -4063,7 +5371,7 @@ "params": { "irq_num": 5 }, - "ts": 0.027666425 + "ts": 0.0284482 }, { "core_id": 1, @@ -4071,7 +5379,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.027680075 + "ts": 0.028461775 }, { "core_id": 1, @@ -4079,7 +5387,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.027695225 + "ts": 0.0284769 }, { "core_id": 0, @@ -4089,7 +5397,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0278338 + "ts": 0.02854665 }, { "core_id": 0, @@ -4097,7 +5405,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0278492 + "ts": 0.028562 }, { "core_id": 0, @@ -4105,7 +5413,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.027864425 + "ts": 0.028577075 }, { "core_id": 1, @@ -4115,7 +5423,7 @@ "params": { "irq_num": 5 }, - "ts": 0.028666425 + "ts": 0.0294482 }, { "core_id": 1, @@ -4123,7 +5431,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.02867995 + "ts": 0.029461725 }, { "core_id": 1, @@ -4131,7 +5439,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0286951 + "ts": 0.02947685 }, { "core_id": 0, @@ -4141,7 +5449,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0288338 + "ts": 0.02954665 }, { "core_id": 0, @@ -4149,7 +5457,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.028849175 + "ts": 0.02956205 }, { "core_id": 0, @@ -4157,7 +5465,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02886425 + "ts": 0.029577275 }, { "core_id": 1, @@ -4167,7 +5475,7 @@ "params": { "irq_num": 5 }, - "ts": 0.029666425 + "ts": 0.0304482 }, { "core_id": 1, @@ -4175,7 +5483,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.029680075 + "ts": 0.030461725 }, { "core_id": 1, @@ -4183,7 +5491,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02969535 + "ts": 0.03047685 }, { "core_id": 0, @@ -4193,7 +5501,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0298338 + "ts": 0.03054665 }, { "core_id": 0, @@ -4201,7 +5509,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.029849175 + "ts": 0.030562 }, { "core_id": 0, @@ -4209,7 +5517,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.02986425 + "ts": 0.030577075 }, { "core_id": 1, @@ -4219,7 +5527,7 @@ "params": { "irq_num": 5 }, - "ts": 0.030666425 + "ts": 0.0314482 }, { "core_id": 1, @@ -4227,7 +5535,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03068 + "ts": 0.031461725 }, { "core_id": 1, @@ -4235,7 +5543,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.030695125 + "ts": 0.031476975 }, { "core_id": 0, @@ -4245,7 +5553,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0308338 + "ts": 0.03154665 }, { "core_id": 0, @@ -4253,7 +5561,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.030849175 + "ts": 0.031562025 }, { "core_id": 0, @@ -4261,7 +5569,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03086425 + "ts": 0.031577225 }, { "core_id": 1, @@ -4271,7 +5579,7 @@ "params": { "irq_num": 5 }, - "ts": 0.031666425 + "ts": 0.0324482 }, { "core_id": 1, @@ -4279,7 +5587,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.031680075 + "ts": 0.032461775 }, { "core_id": 1, @@ -4287,7 +5595,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.031695225 + "ts": 0.0324769 }, { "core_id": 0, @@ -4297,7 +5605,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0318338 + "ts": 0.03254665 }, { "core_id": 0, @@ -4305,9 +5613,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.031848825 + "ts": 0.032561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.032561625 }, { "core_id": 0, @@ -4315,7 +5633,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.031861575 + "ts": 0.032574275 }, { "core_id": 0, @@ -4323,18 +5641,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.03187725 + "ts": 0.03258995 }, { - "addr": "0x3ffbb728", + "addr": "0x3ffbaef0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -4346,16 +5664,16 @@ "id": 512, "in_irq": false, "size": 2, - "ts": 0.031912575 + "ts": 0.032626375 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -4367,7 +5685,7 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.0319512 + "ts": 0.0326618 }, { "core_id": 0, @@ -4377,10 +5695,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0319681 + "ts": 0.03268285 }, { "core_id": 0, @@ -4390,10 +5708,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.031984075 + "ts": 0.032698775 }, { "core_id": 0, @@ -4401,8 +5719,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738\n", - "ts": 0.03204825 + "msg": "I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00\n", + "ts": 0.032751325 }, { "core_id": 0, @@ -4410,8 +5728,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb7aec]: allocated 4 bytes @ 0x3ffbb738\n", - "ts": 0.03204825 + "msg": "I (328) example: Task[0x3ffb72b4]: allocated 4 bytes @ 0x3ffbaf00\n", + "ts": 0.032751325 }, { "core_id": 0, @@ -4421,10 +5739,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.032061825 + "ts": 0.032764775 }, { "core_id": 0, @@ -4432,9 +5750,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.03207495 + "ts": 0.032778 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.032778 }, { "core_id": 1, @@ -4444,7 +5772,7 @@ "params": { "irq_num": 31 }, - "ts": 0.03209115 + "ts": 0.03279425 }, { "core_id": 0, @@ -4454,7 +5782,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.032102025 + "ts": 0.0328052 }, { "core_id": 1, @@ -4462,7 +5790,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0321128 + "ts": 0.03281595 }, { "core_id": 0, @@ -4472,7 +5800,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0321267 + "ts": 0.0328297 }, { "core_id": 1, @@ -4480,9 +5808,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0321375 + "ts": 0.032840425 }, { "core_id": 0, @@ -4490,7 +5818,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03214835 + "ts": 0.032851225 }, { "core_id": 1, @@ -4500,10 +5828,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.032160325 + "ts": 0.032863225 }, { "core_id": 0, @@ -4511,7 +5839,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03217055 + "ts": 0.03287345 }, { "core_id": 1, @@ -4521,10 +5849,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.032182025 + "ts": 0.0328852 }, { "core_id": 1, @@ -4534,10 +5862,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0322023 + "ts": 0.032901475 }, { "core_id": 1, @@ -4545,8 +5873,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738\n", - "ts": 0.03226585 + "msg": "I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00\n", + "ts": 0.032949375 }, { "core_id": 1, @@ -4554,15 +5882,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (340) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb738\n", - "ts": 0.03226585 + "msg": "I (328) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf00\n", + "ts": 0.032949375 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -4576,7 +5904,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.03228705 + "ts": 0.0329751 }, { "core_id": 1, @@ -4586,7 +5914,7 @@ "params": { "irq_num": 31 }, - "ts": 0.032313925 + "ts": 0.033002525 }, { "core_id": 1, @@ -4594,7 +5922,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03232535 + "ts": 0.033013925 }, { "core_id": 1, @@ -4602,7 +5930,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03234205 + "ts": 0.0330305 }, { "core_id": 1, @@ -4612,7 +5940,7 @@ "params": { "irq_num": 5 }, - "ts": 0.032666425 + "ts": 0.0334482 }, { "core_id": 1, @@ -4620,7 +5948,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03267985 + "ts": 0.033461725 }, { "core_id": 1, @@ -4628,7 +5956,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03269555 + "ts": 0.0334773 }, { "core_id": 0, @@ -4638,7 +5966,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0328338 + "ts": 0.03354665 }, { "core_id": 0, @@ -4646,9 +5974,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.0328488 + "ts": 0.033561675 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.033561675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.0335735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.0335735 }, { "core_id": 0, @@ -4656,7 +6014,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.032861575 + "ts": 0.033586 }, { "core_id": 0, @@ -4664,18 +6022,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.032877375 + "ts": 0.033601675 }, { - "addr": "0x3ffbb738", + "addr": "0x3ffbaf00", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -4687,16 +6045,16 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.0329126 + "ts": 0.03363795 }, { - "addr": "0x3ffbb748", + "addr": "0x3ffbaf10", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -4708,7 +6066,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.03294715 + "ts": 0.033673375 }, { "core_id": 0, @@ -4718,10 +6076,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.032964075 + "ts": 0.033690325 }, { "core_id": 0, @@ -4731,10 +6089,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.03298425 + "ts": 0.033706325 }, { "core_id": 0, @@ -4742,8 +6100,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748\n", - "ts": 0.0330485 + "msg": "I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10\n", + "ts": 0.033762425 }, { "core_id": 0, @@ -4751,8 +6109,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (341) example: Task[0x3ffb926c]: allocated 8 bytes @ 0x3ffbb748\n", - "ts": 0.0330485 + "msg": "I (329) example: Task[0x3ffb8a34]: allocated 8 bytes @ 0x3ffbaf10\n", + "ts": 0.033762425 }, { "core_id": 0, @@ -4762,10 +6120,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.033062225 + "ts": 0.0337759 }, { "core_id": 0, @@ -4773,9 +6131,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.03307545 + "ts": 0.0337891 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.0337891 }, { "core_id": 1, @@ -4785,7 +6153,7 @@ "params": { "irq_num": 31 }, - "ts": 0.0330917 + "ts": 0.03380545 }, { "core_id": 0, @@ -4795,7 +6163,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.03310255 + "ts": 0.033816325 }, { "core_id": 1, @@ -4803,7 +6171,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0331133 + "ts": 0.033827125 }, { "core_id": 0, @@ -4813,7 +6181,7 @@ "params": { "irq_num": 30 }, - "ts": 0.033127025 + "ts": 0.033840925 }, { "core_id": 1, @@ -4821,9 +6189,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.0331378 + "ts": 0.03385275 }, { "core_id": 0, @@ -4831,7 +6199,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03314855 + "ts": 0.033864 }, { "core_id": 1, @@ -4841,18 +6209,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.03316055 + "ts": 0.03387595 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.033171875 + "params": { + "tid": 12296612 + }, + "ts": 0.033887525 }, { "core_id": 1, @@ -4862,10 +6232,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0331841 + "ts": 0.03390015 }, { "core_id": 1, @@ -4875,148 +6245,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.033200475 + "ts": 0.03391885 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748\n", - "ts": 0.033263975 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (341) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb748\n", - "ts": 0.033263975 - }, - { - "addr": "0x3ffbb748", + "addr": "0x3ffbaf20", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.0332885 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.033315625 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.03332705 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.033343625 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.033666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.03367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.03369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0338338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.0338488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.033861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.03387725 - }, - { - "addr": "0x3ffbb748", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5028,16 +6269,34 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.03391265 + "ts": 0.033930825 }, { - "addr": "0x3ffbb758", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10\n", + "ts": 0.033971825 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf10\n", + "ts": 0.033971825 + }, + { + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5049,7 +6308,28 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.03394705 + "ts": 0.033987775 + }, + { + "addr": "0x3ffbaf10", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.03400215 }, { "core_id": 0, @@ -5059,10 +6339,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.03396395 + "ts": 0.0340146 }, { "core_id": 0, @@ -5072,51 +6352,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.03398005 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758\n", - "ts": 0.034050525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (342) example: Task[0x3ffba9dc]: allocated 12 bytes @ 0x3ffbb758\n", - "ts": 0.034050525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.03406835 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.034081575 + "ts": 0.0340345 }, { "core_id": 1, @@ -5126,7 +6365,84 @@ "params": { "irq_num": 31 }, - "ts": 0.034097875 + "ts": 0.034045425 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.034056975 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.034074925 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30\n", + "ts": 0.034092925 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (329) example: Task[0x3ffba1a4]: allocated 12 bytes @ 0x3ffbaf30\n", + "ts": 0.034092925 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.034106375 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.03412375 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.03412375 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.0341401 }, { "core_id": 0, @@ -5136,7 +6452,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.034108725 + "ts": 0.034150975 }, { "core_id": 1, @@ -5144,7 +6460,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0341195 + "ts": 0.034161775 }, { "core_id": 0, @@ -5154,7 +6470,7 @@ "params": { "irq_num": 30 }, - "ts": 0.034133225 + "ts": 0.0341756 }, { "core_id": 1, @@ -5162,9 +6478,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0341441 + "ts": 0.034186525 }, { "core_id": 0, @@ -5172,7 +6488,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.034154925 + "ts": 0.034197375 }, { "core_id": 1, @@ -5182,10 +6498,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.0341668 + "ts": 0.034209325 }, { "core_id": 0, @@ -5193,7 +6509,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.034178075 + "ts": 0.03422055 }, { "core_id": 1, @@ -5203,10 +6519,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.034189725 + "ts": 0.03423235 }, { "core_id": 1, @@ -5216,10 +6532,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0342061 + "ts": 0.034248625 }, { "core_id": 1, @@ -5227,8 +6543,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758\n", - "ts": 0.03426965 + "msg": "I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30\n", + "ts": 0.0342964 }, { "core_id": 1, @@ -5236,15 +6552,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (342) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb758\n", - "ts": 0.03426965 + "msg": "I (329) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf30\n", + "ts": 0.0342964 }, { - "addr": "0x3ffbb758", + "addr": "0x3ffbaf30", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -5258,7 +6574,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.03429085 + "ts": 0.034317775 }, { "core_id": 1, @@ -5268,7 +6584,7 @@ "params": { "irq_num": 31 }, - "ts": 0.0343219 + "ts": 0.034345175 }, { "core_id": 1, @@ -5276,7 +6592,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.034333375 + "ts": 0.0343566 }, { "core_id": 1, @@ -5284,7 +6600,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.034350075 + "ts": 0.03437315 }, { "core_id": 1, @@ -5294,7 +6610,7 @@ "params": { "irq_num": 5 }, - "ts": 0.034666425 + "ts": 0.0344482 }, { "core_id": 1, @@ -5302,7 +6618,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.034679875 + "ts": 0.034461625 }, { "core_id": 1, @@ -5310,7 +6626,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03469545 + "ts": 0.0344772 }, { "core_id": 0, @@ -5320,7 +6636,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0348338 + "ts": 0.03454665 }, { "core_id": 0, @@ -5328,7 +6644,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0348492 + "ts": 0.034562 }, { "core_id": 0, @@ -5336,7 +6652,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.034864425 + "ts": 0.034577075 }, { "core_id": 1, @@ -5346,7 +6662,7 @@ "params": { "irq_num": 5 }, - "ts": 0.035666425 + "ts": 0.0354482 }, { "core_id": 1, @@ -5354,7 +6670,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03567995 + "ts": 0.035461725 }, { "core_id": 1, @@ -5362,7 +6678,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0356951 + "ts": 0.03547685 }, { "core_id": 0, @@ -5372,7 +6688,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0358338 + "ts": 0.03554665 }, { "core_id": 0, @@ -5380,7 +6696,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.035849175 + "ts": 0.03556205 }, { "core_id": 0, @@ -5388,7 +6704,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03586425 + "ts": 0.035577275 }, { "core_id": 1, @@ -5398,7 +6714,7 @@ "params": { "irq_num": 5 }, - "ts": 0.036666425 + "ts": 0.0364482 }, { "core_id": 1, @@ -5406,7 +6722,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.036680075 + "ts": 0.036461725 }, { "core_id": 1, @@ -5414,7 +6730,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03669535 + "ts": 0.03647685 }, { "core_id": 0, @@ -5424,7 +6740,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0368338 + "ts": 0.03654665 }, { "core_id": 0, @@ -5432,7 +6748,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.036849175 + "ts": 0.0365663 }, { "core_id": 0, @@ -5440,7 +6756,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03686425 + "ts": 0.036581525 }, { "core_id": 1, @@ -5450,7 +6766,7 @@ "params": { "irq_num": 5 }, - "ts": 0.037666425 + "ts": 0.0374482 }, { "core_id": 1, @@ -5458,7 +6774,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03768 + "ts": 0.037461725 }, { "core_id": 1, @@ -5466,7 +6782,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.037695125 + "ts": 0.03747685 }, { "core_id": 0, @@ -5476,7 +6792,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0378338 + "ts": 0.03754665 }, { "core_id": 0, @@ -5484,7 +6800,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.037849175 + "ts": 0.037562 }, { "core_id": 0, @@ -5492,7 +6808,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03786425 + "ts": 0.037577075 }, { "core_id": 1, @@ -5502,7 +6818,7 @@ "params": { "irq_num": 5 }, - "ts": 0.038666425 + "ts": 0.0384482 }, { "core_id": 1, @@ -5510,7 +6826,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.038680075 + "ts": 0.038461725 }, { "core_id": 1, @@ -5518,7 +6834,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.038695225 + "ts": 0.038476975 }, { "core_id": 0, @@ -5528,7 +6844,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0388338 + "ts": 0.03854665 }, { "core_id": 0, @@ -5536,7 +6852,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0388492 + "ts": 0.038562025 }, { "core_id": 0, @@ -5544,7 +6860,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.038864425 + "ts": 0.038577225 }, { "core_id": 1, @@ -5554,7 +6870,7 @@ "params": { "irq_num": 5 }, - "ts": 0.039666425 + "ts": 0.0394482 }, { "core_id": 1, @@ -5562,7 +6878,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.03967995 + "ts": 0.039461775 }, { "core_id": 1, @@ -5570,7 +6886,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0396951 + "ts": 0.0394769 }, { "core_id": 0, @@ -5580,7 +6896,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0398338 + "ts": 0.03954665 }, { "core_id": 0, @@ -5588,7 +6904,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.039849175 + "ts": 0.039562 }, { "core_id": 0, @@ -5596,7 +6912,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.03986425 + "ts": 0.039577075 }, { "core_id": 1, @@ -5606,7 +6922,7 @@ "params": { "irq_num": 5 }, - "ts": 0.040666425 + "ts": 0.0404482 }, { "core_id": 1, @@ -5614,7 +6930,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.040680075 + "ts": 0.040461725 }, { "core_id": 1, @@ -5622,7 +6938,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04069535 + "ts": 0.04047685 }, { "core_id": 0, @@ -5632,7 +6948,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0408338 + "ts": 0.04054665 }, { "core_id": 0, @@ -5640,7 +6956,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.040849175 + "ts": 0.04056205 }, { "core_id": 0, @@ -5648,7 +6964,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04086425 + "ts": 0.040577275 }, { "core_id": 1, @@ -5658,7 +6974,7 @@ "params": { "irq_num": 5 }, - "ts": 0.041666425 + "ts": 0.0414482 }, { "core_id": 1, @@ -5666,7 +6982,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.04168 + "ts": 0.041461725 }, { "core_id": 1, @@ -5674,7 +6990,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.041695125 + "ts": 0.04147685 }, { "core_id": 0, @@ -5684,7 +7000,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0418338 + "ts": 0.04154665 }, { "core_id": 0, @@ -5692,7 +7008,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.041849175 + "ts": 0.041562 }, { "core_id": 0, @@ -5700,7 +7016,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04186425 + "ts": 0.041577075 }, { "core_id": 1, @@ -5710,7 +7026,7 @@ "params": { "irq_num": 5 }, - "ts": 0.042666425 + "ts": 0.0424482 }, { "core_id": 1, @@ -5718,7 +7034,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.042680075 + "ts": 0.042461725 }, { "core_id": 1, @@ -5726,7 +7042,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.042695225 + "ts": 0.042476975 }, { "core_id": 0, @@ -5736,7 +7052,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0428338 + "ts": 0.04254665 }, { "core_id": 0, @@ -5744,7 +7060,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0428492 + "ts": 0.042562025 }, { "core_id": 0, @@ -5752,7 +7068,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.042864425 + "ts": 0.042577225 }, { "core_id": 1, @@ -5762,7 +7078,7 @@ "params": { "irq_num": 5 }, - "ts": 0.043666425 + "ts": 0.0434482 }, { "core_id": 1, @@ -5770,7 +7086,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.04367995 + "ts": 0.043461775 }, { "core_id": 1, @@ -5778,7 +7094,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0436951 + "ts": 0.0434769 }, { "core_id": 0, @@ -5788,7 +7104,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0438338 + "ts": 0.04354665 }, { "core_id": 0, @@ -5796,7 +7112,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.043849175 + "ts": 0.043562 }, { "core_id": 0, @@ -5804,7 +7120,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04386425 + "ts": 0.043577075 }, { "core_id": 1, @@ -5814,7 +7130,7 @@ "params": { "irq_num": 5 }, - "ts": 0.044666425 + "ts": 0.0444482 }, { "core_id": 1, @@ -5822,7 +7138,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0446842 + "ts": 0.044461725 }, { "core_id": 1, @@ -5830,7 +7146,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.044699325 + "ts": 0.04447685 }, { "core_id": 0, @@ -5840,7 +7156,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0448338 + "ts": 0.04454665 }, { "core_id": 0, @@ -5848,7 +7164,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.044849175 + "ts": 0.04456205 }, { "core_id": 0, @@ -5856,7 +7172,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04486425 + "ts": 0.044577275 }, { "core_id": 1, @@ -5866,7 +7182,7 @@ "params": { "irq_num": 5 }, - "ts": 0.045666425 + "ts": 0.0454482 }, { "core_id": 1, @@ -5874,7 +7190,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.045680075 + "ts": 0.045461725 }, { "core_id": 1, @@ -5882,7 +7198,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.045695225 + "ts": 0.04547685 }, { "core_id": 0, @@ -5892,7 +7208,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0458338 + "ts": 0.04554665 }, { "core_id": 0, @@ -5900,7 +7216,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0458492 + "ts": 0.045562 }, { "core_id": 0, @@ -5908,7 +7224,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.045864425 + "ts": 0.045577075 }, { "core_id": 1, @@ -5918,7 +7234,7 @@ "params": { "irq_num": 5 }, - "ts": 0.046666425 + "ts": 0.0464482 }, { "core_id": 1, @@ -5926,7 +7242,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.04667995 + "ts": 0.046461725 }, { "core_id": 1, @@ -5934,7 +7250,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0466951 + "ts": 0.046476975 }, { "core_id": 0, @@ -5944,7 +7260,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0468338 + "ts": 0.04654665 }, { "core_id": 0, @@ -5952,7 +7268,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.046849175 + "ts": 0.046562025 }, { "core_id": 0, @@ -5960,7 +7276,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04686425 + "ts": 0.046577225 }, { "core_id": 1, @@ -5970,7 +7286,7 @@ "params": { "irq_num": 5 }, - "ts": 0.047666425 + "ts": 0.0474482 }, { "core_id": 1, @@ -5978,7 +7294,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.047680075 + "ts": 0.047461775 }, { "core_id": 1, @@ -5986,7 +7302,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04769535 + "ts": 0.0474769 }, { "core_id": 0, @@ -5996,7 +7312,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0478338 + "ts": 0.04754665 }, { "core_id": 0, @@ -6004,7 +7320,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.047849175 + "ts": 0.047562 }, { "core_id": 0, @@ -6012,7 +7328,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04786425 + "ts": 0.047577075 }, { "core_id": 1, @@ -6022,7 +7338,7 @@ "params": { "irq_num": 5 }, - "ts": 0.048666425 + "ts": 0.0484482 }, { "core_id": 1, @@ -6030,7 +7346,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.04868 + "ts": 0.048461725 }, { "core_id": 1, @@ -6038,7 +7354,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.048695125 + "ts": 0.04847685 }, { "core_id": 0, @@ -6048,7 +7364,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0488338 + "ts": 0.04854665 }, { "core_id": 0, @@ -6056,7 +7372,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.048849175 + "ts": 0.0485663 }, { "core_id": 0, @@ -6064,7 +7380,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.04886425 + "ts": 0.0485815 }, { "core_id": 1, @@ -6074,7 +7390,7 @@ "params": { "irq_num": 5 }, - "ts": 0.049666425 + "ts": 0.0494482 }, { "core_id": 1, @@ -6082,7 +7398,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.049680075 + "ts": 0.049461725 }, { "core_id": 1, @@ -6090,7 +7406,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.049695225 + "ts": 0.04947685 }, { "core_id": 0, @@ -6100,7 +7416,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0498338 + "ts": 0.04954665 }, { "core_id": 0, @@ -6108,7 +7424,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0498492 + "ts": 0.049562 }, { "core_id": 0, @@ -6116,7 +7432,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.049864425 + "ts": 0.049577075 }, { "core_id": 1, @@ -6126,7 +7442,7 @@ "params": { "irq_num": 5 }, - "ts": 0.050666425 + "ts": 0.0504482 }, { "core_id": 1, @@ -6134,7 +7450,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.05067995 + "ts": 0.050461725 }, { "core_id": 1, @@ -6142,7 +7458,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0506951 + "ts": 0.050476975 }, { "core_id": 0, @@ -6152,7 +7468,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0508338 + "ts": 0.05054665 }, { "core_id": 0, @@ -6160,7 +7476,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.050849175 + "ts": 0.050562025 }, { "core_id": 0, @@ -6168,7 +7484,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05086425 + "ts": 0.050577225 }, { "core_id": 1, @@ -6178,7 +7494,7 @@ "params": { "irq_num": 5 }, - "ts": 0.051666425 + "ts": 0.0514482 }, { "core_id": 1, @@ -6186,7 +7502,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.051680075 + "ts": 0.051461775 }, { "core_id": 1, @@ -6194,7 +7510,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05169535 + "ts": 0.0514769 }, { "core_id": 0, @@ -6204,7 +7520,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0518338 + "ts": 0.05154665 }, { "core_id": 0, @@ -6212,7 +7528,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.051849175 + "ts": 0.051562 }, { "core_id": 0, @@ -6220,7 +7536,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05186425 + "ts": 0.051577075 }, { "core_id": 1, @@ -6230,7 +7546,7 @@ "params": { "irq_num": 5 }, - "ts": 0.052666425 + "ts": 0.0524482 }, { "core_id": 1, @@ -6238,7 +7554,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.05268 + "ts": 0.052461725 }, { "core_id": 1, @@ -6246,7 +7562,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.052695125 + "ts": 0.05247685 }, { "core_id": 0, @@ -6256,7 +7572,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0528338 + "ts": 0.05254665 }, { "core_id": 0, @@ -6264,7 +7580,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.052849175 + "ts": 0.05256205 }, { "core_id": 0, @@ -6272,7 +7588,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05286425 + "ts": 0.052577275 }, { "core_id": 1, @@ -6282,7 +7598,7 @@ "params": { "irq_num": 5 }, - "ts": 0.053666425 + "ts": 0.0534482 }, { "core_id": 1, @@ -6290,7 +7606,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.053680075 + "ts": 0.053461725 }, { "core_id": 1, @@ -6298,7 +7614,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.053695225 + "ts": 0.05347685 }, { "core_id": 0, @@ -6308,7 +7624,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0538338 + "ts": 0.05354665 }, { "core_id": 0, @@ -6316,7 +7632,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0538492 + "ts": 0.053562 }, { "core_id": 0, @@ -6324,7 +7640,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.053864425 + "ts": 0.053577075 }, { "core_id": 1, @@ -6334,7 +7650,7 @@ "params": { "irq_num": 5 }, - "ts": 0.054666425 + "ts": 0.0544482 }, { "core_id": 1, @@ -6342,7 +7658,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.05467995 + "ts": 0.054461725 }, { "core_id": 1, @@ -6350,7 +7666,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0546951 + "ts": 0.054476975 }, { "core_id": 0, @@ -6360,7 +7676,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0548338 + "ts": 0.05454665 }, { "core_id": 0, @@ -6368,7 +7684,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.054849175 + "ts": 0.054562025 }, { "core_id": 0, @@ -6376,7 +7692,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05486425 + "ts": 0.054577225 }, { "core_id": 1, @@ -6386,7 +7702,7 @@ "params": { "irq_num": 5 }, - "ts": 0.055666425 + "ts": 0.0554482 }, { "core_id": 1, @@ -6394,7 +7710,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.055680075 + "ts": 0.055461775 }, { "core_id": 1, @@ -6402,7 +7718,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05569535 + "ts": 0.0554769 }, { "core_id": 0, @@ -6412,7 +7728,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0558338 + "ts": 0.05554665 }, { "core_id": 0, @@ -6420,7 +7736,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.055849175 + "ts": 0.055562 }, { "core_id": 0, @@ -6428,7 +7744,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05586425 + "ts": 0.055577075 }, { "core_id": 1, @@ -6438,7 +7754,7 @@ "params": { "irq_num": 5 }, - "ts": 0.056666425 + "ts": 0.0564482 }, { "core_id": 1, @@ -6446,7 +7762,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.056684225 + "ts": 0.056461725 }, { "core_id": 1, @@ -6454,7 +7770,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.056699375 + "ts": 0.05647685 }, { "core_id": 0, @@ -6464,7 +7780,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0568338 + "ts": 0.05654665 }, { "core_id": 0, @@ -6472,7 +7788,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.056849175 + "ts": 0.05656205 }, { "core_id": 0, @@ -6480,7 +7796,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05686425 + "ts": 0.056577275 }, { "core_id": 1, @@ -6490,7 +7806,7 @@ "params": { "irq_num": 5 }, - "ts": 0.057666425 + "ts": 0.0574482 }, { "core_id": 1, @@ -6498,7 +7814,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.057680075 + "ts": 0.057461725 }, { "core_id": 1, @@ -6506,7 +7822,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.057695225 + "ts": 0.05747685 }, { "core_id": 0, @@ -6516,7 +7832,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0578338 + "ts": 0.05754665 }, { "core_id": 0, @@ -6524,7 +7840,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0578492 + "ts": 0.057562 }, { "core_id": 0, @@ -6532,7 +7848,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.057864425 + "ts": 0.057577075 }, { "core_id": 1, @@ -6542,7 +7858,7 @@ "params": { "irq_num": 5 }, - "ts": 0.058666425 + "ts": 0.0584482 }, { "core_id": 1, @@ -6550,7 +7866,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.05867995 + "ts": 0.058461725 }, { "core_id": 1, @@ -6558,7 +7874,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0586951 + "ts": 0.058476975 }, { "core_id": 0, @@ -6568,7 +7884,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0588338 + "ts": 0.05854665 }, { "core_id": 0, @@ -6576,7 +7892,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.058849175 + "ts": 0.058562025 }, { "core_id": 0, @@ -6584,7 +7900,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05886425 + "ts": 0.058577225 }, { "core_id": 1, @@ -6594,7 +7910,7 @@ "params": { "irq_num": 5 }, - "ts": 0.059666425 + "ts": 0.0594482 }, { "core_id": 1, @@ -6602,7 +7918,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.059680075 + "ts": 0.059461775 }, { "core_id": 1, @@ -6610,7 +7926,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05969535 + "ts": 0.0594769 }, { "core_id": 0, @@ -6620,7 +7936,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0598338 + "ts": 0.05954665 }, { "core_id": 0, @@ -6628,7 +7944,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.059849175 + "ts": 0.059562 }, { "core_id": 0, @@ -6636,7 +7952,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.05986425 + "ts": 0.059577075 }, { "core_id": 1, @@ -6646,7 +7962,7 @@ "params": { "irq_num": 5 }, - "ts": 0.060666425 + "ts": 0.0604482 }, { "core_id": 1, @@ -6654,7 +7970,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06068 + "ts": 0.060461725 }, { "core_id": 1, @@ -6662,7 +7978,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.060695125 + "ts": 0.06047685 }, { "core_id": 0, @@ -6672,7 +7988,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0608338 + "ts": 0.06054665 }, { "core_id": 0, @@ -6680,7 +7996,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.060849175 + "ts": 0.0605663 }, { "core_id": 0, @@ -6688,7 +8004,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06086425 + "ts": 0.0605815 }, { "core_id": 1, @@ -6698,7 +8014,7 @@ "params": { "irq_num": 5 }, - "ts": 0.061666425 + "ts": 0.0614482 }, { "core_id": 1, @@ -6706,7 +8022,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.061680075 + "ts": 0.061461725 }, { "core_id": 1, @@ -6714,7 +8030,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.061695225 + "ts": 0.06147685 }, { "core_id": 0, @@ -6724,7 +8040,59 @@ "params": { "irq_num": 5 }, - "ts": 0.0618338 + "ts": 0.06154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.061562 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.061577075 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0624482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.062461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.062476975 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.06254665 }, { "core_id": 0, @@ -6732,9 +8100,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.061848825 + "ts": 0.062561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.062561625 }, { "core_id": 0, @@ -6742,7 +8120,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.061861575 + "ts": 0.062574225 }, { "core_id": 0, @@ -6750,18 +8128,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.06187725 + "ts": 0.062589875 }, { - "addr": "0x3ffbb758", + "addr": "0x3ffbaf10", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -6773,16 +8151,16 @@ "id": 512, "in_irq": false, "size": 3, - "ts": 0.061912575 + "ts": 0.0626249 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -6794,7 +8172,7 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.061947 + "ts": 0.062660375 }, { "core_id": 0, @@ -6804,10 +8182,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.061964025 + "ts": 0.0626773 }, { "core_id": 0, @@ -6817,10 +8195,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.061980025 + "ts": 0.06269325 }, { "core_id": 0, @@ -6828,8 +8206,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768\n", - "ts": 0.062044275 + "msg": "I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30\n", + "ts": 0.062745775 }, { "core_id": 0, @@ -6837,8 +8215,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb7aec]: allocated 6 bytes @ 0x3ffbb768\n", - "ts": 0.062044275 + "msg": "I (358) example: Task[0x3ffb72b4]: allocated 6 bytes @ 0x3ffbaf30\n", + "ts": 0.062745775 }, { "core_id": 0, @@ -6848,10 +8226,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.062062075 + "ts": 0.06275925 }, { "core_id": 0, @@ -6859,9 +8237,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.0620752 + "ts": 0.06277245 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.06277245 }, { "core_id": 1, @@ -6871,7 +8259,7 @@ "params": { "irq_num": 31 }, - "ts": 0.06209135 + "ts": 0.0627929 }, { "core_id": 0, @@ -6881,7 +8269,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.0621024 + "ts": 0.06280385 }, { "core_id": 1, @@ -6889,7 +8277,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06211315 + "ts": 0.0628146 }, { "core_id": 0, @@ -6899,7 +8287,7 @@ "params": { "irq_num": 30 }, - "ts": 0.06212715 + "ts": 0.0628285 }, { "core_id": 1, @@ -6907,9 +8295,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.062138 + "ts": 0.0628393 }, { "core_id": 0, @@ -6917,7 +8305,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.062148875 + "ts": 0.062850025 }, { "core_id": 1, @@ -6927,10 +8315,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.062160875 + "ts": 0.06286215 }, { "core_id": 0, @@ -6938,7 +8326,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0621712 + "ts": 0.06287235 }, { "core_id": 1, @@ -6948,10 +8336,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.062183675 + "ts": 0.0628841 }, { "core_id": 1, @@ -6961,10 +8349,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.06219985 + "ts": 0.06290045 }, { "core_id": 1, @@ -6972,8 +8360,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768\n", - "ts": 0.0622634 + "msg": "I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30\n", + "ts": 0.062948325 }, { "core_id": 1, @@ -6981,15 +8369,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (370) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb768\n", - "ts": 0.0622634 + "msg": "I (358) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf30\n", + "ts": 0.062948325 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7003,7 +8391,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0622844 + "ts": 0.062969525 }, { "core_id": 1, @@ -7013,7 +8401,7 @@ "params": { "irq_num": 31 }, - "ts": 0.062314725 + "ts": 0.0629968 }, { "core_id": 1, @@ -7021,7 +8409,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0623262 + "ts": 0.06300825 }, { "core_id": 1, @@ -7029,7 +8417,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0623429 + "ts": 0.06302495 }, { "core_id": 1, @@ -7039,7 +8427,7 @@ "params": { "irq_num": 5 }, - "ts": 0.062666425 + "ts": 0.0634482 }, { "core_id": 1, @@ -7047,7 +8435,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.062679875 + "ts": 0.063461725 }, { "core_id": 1, @@ -7055,7 +8443,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06269545 + "ts": 0.0634773 }, { "core_id": 0, @@ -7065,7 +8453,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0628338 + "ts": 0.06354665 }, { "core_id": 0, @@ -7073,9 +8461,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.062848825 + "ts": 0.063561625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.063561625 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.0635735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.0635735 }, { "core_id": 0, @@ -7083,7 +8501,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.062861575 + "ts": 0.063585975 }, { "core_id": 0, @@ -7091,18 +8509,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.06287725 + "ts": 0.063601625 }, { - "addr": "0x3ffbb768", + "addr": "0x3ffbaf30", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7114,16 +8532,16 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.062912575 + "ts": 0.063638 }, { - "addr": "0x3ffbb778", + "addr": "0x3ffbaf40", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7135,7 +8553,7 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.062947 + "ts": 0.06367755 }, { "core_id": 0, @@ -7145,10 +8563,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.062964025 + "ts": 0.0636945 }, { "core_id": 0, @@ -7158,10 +8576,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.062980025 + "ts": 0.0637105 }, { "core_id": 0, @@ -7169,8 +8587,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778\n", - "ts": 0.0630465 + "msg": "I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40\n", + "ts": 0.063765225 }, { "core_id": 0, @@ -7178,8 +8596,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (371) example: Task[0x3ffb926c]: allocated 12 bytes @ 0x3ffbb778\n", - "ts": 0.0630465 + "msg": "I (359) example: Task[0x3ffb8a34]: allocated 12 bytes @ 0x3ffbaf40\n", + "ts": 0.063765225 }, { "core_id": 0, @@ -7189,10 +8607,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.06306005 + "ts": 0.063778675 }, { "core_id": 0, @@ -7200,9 +8618,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.06307745 + "ts": 0.063791925 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.063791925 }, { "core_id": 1, @@ -7212,7 +8640,7 @@ "params": { "irq_num": 31 }, - "ts": 0.063093775 + "ts": 0.063808275 }, { "core_id": 0, @@ -7222,7 +8650,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.063104625 + "ts": 0.063819125 }, { "core_id": 1, @@ -7230,7 +8658,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.063115375 + "ts": 0.0638301 }, { "core_id": 0, @@ -7240,7 +8668,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0631291 + "ts": 0.0638441 }, { "core_id": 1, @@ -7248,9 +8676,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.06313995 + "ts": 0.0638558 }, { "core_id": 0, @@ -7258,7 +8686,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.063150775 + "ts": 0.0638672 }, { "core_id": 1, @@ -7268,18 +8696,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.063162625 + "ts": 0.063879175 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.0631729 + "params": { + "tid": 12296612 + }, + "ts": 0.063890875 }, { "core_id": 1, @@ -7289,10 +8719,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.063184375 + "ts": 0.063903475 }, { "core_id": 1, @@ -7302,148 +8732,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.063200675 + "ts": 0.063925875 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778\n", - "ts": 0.063264125 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (371) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb778\n", - "ts": 0.063264125 - }, - { - "addr": "0x3ffbb778", + "addr": "0x3ffbaf50", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.063285275 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.0633124 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.063323825 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.0633404 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.063666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.06367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.06369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0638338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.0638488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.063861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.06387725 - }, - { - "addr": "0x3ffbb778", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7455,16 +8756,34 @@ "id": 512, "in_irq": false, "size": 9, - "ts": 0.06391265 + "ts": 0.063937325 }, { - "addr": "0x3ffbb788", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40\n", + "ts": 0.063978425 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf40\n", + "ts": 0.063978425 + }, + { + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7476,7 +8795,28 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.0639513 + "ts": 0.0639896 + }, + { + "addr": "0x3ffbaf40", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.0640039 }, { "core_id": 0, @@ -7486,64 +8826,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0639682 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.063984175 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788\n", - "ts": 0.064054525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (372) example: Task[0x3ffba9dc]: allocated 18 bytes @ 0x3ffbb788\n", - "ts": 0.064054525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.064068125 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.06408135 + "ts": 0.064017 }, { "core_id": 1, @@ -7553,7 +8839,97 @@ "params": { "irq_num": 31 }, - "ts": 0.06409765 + "ts": 0.0640355 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.064046775 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.064057575 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.064075725 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60\n", + "ts": 0.0641035 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (359) example: Task[0x3ffba1a4]: allocated 18 bytes @ 0x3ffbaf60\n", + "ts": 0.0641035 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.0641211 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.06413435 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.06413435 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.0641507 }, { "core_id": 0, @@ -7563,7 +8939,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.0641085 + "ts": 0.06416155 }, { "core_id": 1, @@ -7571,7 +8947,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.064119275 + "ts": 0.064172375 }, { "core_id": 0, @@ -7581,7 +8957,7 @@ "params": { "irq_num": 30 }, - "ts": 0.064133 + "ts": 0.0641862 }, { "core_id": 1, @@ -7589,9 +8965,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.064143875 + "ts": 0.06419695 }, { "core_id": 0, @@ -7599,7 +8975,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0641547 + "ts": 0.0642077 }, { "core_id": 1, @@ -7609,10 +8985,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.064166575 + "ts": 0.0642198 }, { "core_id": 0, @@ -7620,7 +8996,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06417785 + "ts": 0.064231025 }, { "core_id": 1, @@ -7630,10 +9006,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0641895 + "ts": 0.06424335 }, { "core_id": 1, @@ -7643,10 +9019,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.06420995 + "ts": 0.0642596 }, { "core_id": 1, @@ -7654,8 +9030,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788\n", - "ts": 0.0642735 + "msg": "I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60\n", + "ts": 0.064307475 }, { "core_id": 1, @@ -7663,15 +9039,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (372) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb788\n", - "ts": 0.0642735 + "msg": "I (359) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf60\n", + "ts": 0.064307475 }, { - "addr": "0x3ffbb788", + "addr": "0x3ffbaf60", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -7685,7 +9061,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.0642947 + "ts": 0.064328875 }, { "core_id": 1, @@ -7695,7 +9071,7 @@ "params": { "irq_num": 31 }, - "ts": 0.064321575 + "ts": 0.06435975 }, { "core_id": 1, @@ -7703,7 +9079,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.064333 + "ts": 0.064371325 }, { "core_id": 1, @@ -7711,7 +9087,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.064349575 + "ts": 0.064388025 }, { "core_id": 1, @@ -7721,7 +9097,7 @@ "params": { "irq_num": 5 }, - "ts": 0.064666425 + "ts": 0.0644482 }, { "core_id": 1, @@ -7729,7 +9105,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06467985 + "ts": 0.064461625 }, { "core_id": 1, @@ -7737,7 +9113,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06469555 + "ts": 0.0644772 }, { "core_id": 0, @@ -7747,7 +9123,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0648338 + "ts": 0.06454665 }, { "core_id": 0, @@ -7755,7 +9131,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.064849175 + "ts": 0.06456205 }, { "core_id": 0, @@ -7763,7 +9139,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06486425 + "ts": 0.064577275 }, { "core_id": 1, @@ -7773,7 +9149,7 @@ "params": { "irq_num": 5 }, - "ts": 0.065666425 + "ts": 0.0654482 }, { "core_id": 1, @@ -7781,7 +9157,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.065680075 + "ts": 0.065461725 }, { "core_id": 1, @@ -7789,7 +9165,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06569535 + "ts": 0.06547685 }, { "core_id": 0, @@ -7799,7 +9175,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0658338 + "ts": 0.06554665 }, { "core_id": 0, @@ -7807,7 +9183,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.065849175 + "ts": 0.065562 }, { "core_id": 0, @@ -7815,7 +9191,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06586425 + "ts": 0.065577075 }, { "core_id": 1, @@ -7825,7 +9201,7 @@ "params": { "irq_num": 5 }, - "ts": 0.066666425 + "ts": 0.0664482 }, { "core_id": 1, @@ -7833,7 +9209,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06668 + "ts": 0.066461725 }, { "core_id": 1, @@ -7841,7 +9217,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.066695125 + "ts": 0.066476975 }, { "core_id": 0, @@ -7851,7 +9227,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0668338 + "ts": 0.06654665 }, { "core_id": 0, @@ -7859,7 +9235,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.066849175 + "ts": 0.066562025 }, { "core_id": 0, @@ -7867,7 +9243,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06686425 + "ts": 0.066577225 }, { "core_id": 1, @@ -7877,7 +9253,7 @@ "params": { "irq_num": 5 }, - "ts": 0.067666425 + "ts": 0.0674482 }, { "core_id": 1, @@ -7885,7 +9261,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.067680075 + "ts": 0.067461775 }, { "core_id": 1, @@ -7893,7 +9269,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.067695225 + "ts": 0.0674769 }, { "core_id": 0, @@ -7903,7 +9279,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0678338 + "ts": 0.06754665 }, { "core_id": 0, @@ -7911,7 +9287,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0678492 + "ts": 0.067562 }, { "core_id": 0, @@ -7919,7 +9295,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.067864425 + "ts": 0.067577075 }, { "core_id": 1, @@ -7929,7 +9305,7 @@ "params": { "irq_num": 5 }, - "ts": 0.068666425 + "ts": 0.0684482 }, { "core_id": 1, @@ -7937,7 +9313,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.06867995 + "ts": 0.068461725 }, { "core_id": 1, @@ -7945,7 +9321,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0686951 + "ts": 0.06847685 }, { "core_id": 0, @@ -7955,7 +9331,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0688338 + "ts": 0.06854665 }, { "core_id": 0, @@ -7963,7 +9339,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.068849175 + "ts": 0.06856205 }, { "core_id": 0, @@ -7971,7 +9347,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06886425 + "ts": 0.068577275 }, { "core_id": 1, @@ -7981,7 +9357,7 @@ "params": { "irq_num": 5 }, - "ts": 0.069666425 + "ts": 0.0694482 }, { "core_id": 1, @@ -7989,7 +9365,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.069680075 + "ts": 0.069461725 }, { "core_id": 1, @@ -7997,7 +9373,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.06969535 + "ts": 0.06947685 }, { "core_id": 0, @@ -8007,7 +9383,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0698338 + "ts": 0.06954665 }, { "core_id": 0, @@ -8015,7 +9391,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.069849175 + "ts": 0.069562 }, { "core_id": 0, @@ -8023,7 +9399,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.069868575 + "ts": 0.069577075 }, { "core_id": 1, @@ -8033,7 +9409,7 @@ "params": { "irq_num": 5 }, - "ts": 0.070666425 + "ts": 0.0704482 }, { "core_id": 1, @@ -8041,7 +9417,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.07067995 + "ts": 0.070461725 }, { "core_id": 1, @@ -8049,7 +9425,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0706951 + "ts": 0.070476975 }, { "core_id": 0, @@ -8059,7 +9435,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0708338 + "ts": 0.07054665 }, { "core_id": 0, @@ -8067,7 +9443,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.070849175 + "ts": 0.070562025 }, { "core_id": 0, @@ -8075,7 +9451,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07086425 + "ts": 0.070577225 }, { "core_id": 1, @@ -8085,7 +9461,7 @@ "params": { "irq_num": 5 }, - "ts": 0.071666425 + "ts": 0.0714482 }, { "core_id": 1, @@ -8093,7 +9469,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.071680075 + "ts": 0.071461775 }, { "core_id": 1, @@ -8101,7 +9477,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07169535 + "ts": 0.0714769 }, { "core_id": 0, @@ -8111,7 +9487,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0718338 + "ts": 0.07154665 }, { "core_id": 0, @@ -8119,7 +9495,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.071849175 + "ts": 0.071562 }, { "core_id": 0, @@ -8127,7 +9503,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07186425 + "ts": 0.071577075 }, { "core_id": 1, @@ -8137,7 +9513,7 @@ "params": { "irq_num": 5 }, - "ts": 0.072666425 + "ts": 0.0724482 }, { "core_id": 1, @@ -8145,7 +9521,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.07268 + "ts": 0.072461725 }, { "core_id": 1, @@ -8153,7 +9529,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.072695125 + "ts": 0.07247685 }, { "core_id": 0, @@ -8163,7 +9539,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0728338 + "ts": 0.07254665 }, { "core_id": 0, @@ -8171,7 +9547,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.072849175 + "ts": 0.07256205 }, { "core_id": 0, @@ -8179,7 +9555,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07286425 + "ts": 0.072577275 }, { "core_id": 1, @@ -8189,7 +9565,7 @@ "params": { "irq_num": 5 }, - "ts": 0.073666425 + "ts": 0.0734482 }, { "core_id": 1, @@ -8197,7 +9573,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.073680075 + "ts": 0.073461725 }, { "core_id": 1, @@ -8205,7 +9581,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.073695225 + "ts": 0.07347685 }, { "core_id": 0, @@ -8215,7 +9591,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0738338 + "ts": 0.07354665 }, { "core_id": 0, @@ -8223,7 +9599,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0738492 + "ts": 0.073562 }, { "core_id": 0, @@ -8231,7 +9607,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.073864425 + "ts": 0.073577075 }, { "core_id": 1, @@ -8241,7 +9617,7 @@ "params": { "irq_num": 5 }, - "ts": 0.074666425 + "ts": 0.0744482 }, { "core_id": 1, @@ -8249,7 +9625,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.07467995 + "ts": 0.074465975 }, { "core_id": 1, @@ -8257,7 +9633,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0746951 + "ts": 0.074481225 }, { "core_id": 0, @@ -8267,7 +9643,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0748338 + "ts": 0.07454665 }, { "core_id": 0, @@ -8275,7 +9651,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.074849175 + "ts": 0.074562 }, { "core_id": 0, @@ -8283,7 +9659,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07486425 + "ts": 0.074577075 }, { "core_id": 1, @@ -8293,7 +9669,7 @@ "params": { "irq_num": 5 }, - "ts": 0.075666425 + "ts": 0.0754482 }, { "core_id": 1, @@ -8301,7 +9677,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.075680075 + "ts": 0.075461725 }, { "core_id": 1, @@ -8309,7 +9685,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07569535 + "ts": 0.07547685 }, { "core_id": 0, @@ -8319,7 +9695,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0758338 + "ts": 0.07554665 }, { "core_id": 0, @@ -8327,7 +9703,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.075849175 + "ts": 0.07556205 }, { "core_id": 0, @@ -8335,7 +9711,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07586425 + "ts": 0.075577275 }, { "core_id": 1, @@ -8345,7 +9721,7 @@ "params": { "irq_num": 5 }, - "ts": 0.076666425 + "ts": 0.0764482 }, { "core_id": 1, @@ -8353,7 +9729,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.07668 + "ts": 0.076461725 }, { "core_id": 1, @@ -8361,7 +9737,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.076695125 + "ts": 0.07647685 }, { "core_id": 0, @@ -8371,7 +9747,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0768338 + "ts": 0.07654665 }, { "core_id": 0, @@ -8379,7 +9755,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.076849175 + "ts": 0.076562 }, { "core_id": 0, @@ -8387,7 +9763,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07686425 + "ts": 0.076577075 }, { "core_id": 1, @@ -8397,7 +9773,7 @@ "params": { "irq_num": 5 }, - "ts": 0.077666425 + "ts": 0.0774482 }, { "core_id": 1, @@ -8405,7 +9781,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.077680075 + "ts": 0.077461725 }, { "core_id": 1, @@ -8413,7 +9789,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.077695225 + "ts": 0.077476975 }, { "core_id": 0, @@ -8423,7 +9799,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0778338 + "ts": 0.07754665 }, { "core_id": 0, @@ -8431,7 +9807,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0778492 + "ts": 0.077562025 }, { "core_id": 0, @@ -8439,7 +9815,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.077864425 + "ts": 0.077577225 }, { "core_id": 1, @@ -8449,7 +9825,7 @@ "params": { "irq_num": 5 }, - "ts": 0.078666425 + "ts": 0.0784482 }, { "core_id": 1, @@ -8457,7 +9833,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.07867995 + "ts": 0.078461775 }, { "core_id": 1, @@ -8465,7 +9841,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0786951 + "ts": 0.0784769 }, { "core_id": 0, @@ -8475,7 +9851,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0788338 + "ts": 0.07854665 }, { "core_id": 0, @@ -8483,7 +9859,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.078849175 + "ts": 0.078562 }, { "core_id": 0, @@ -8491,7 +9867,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07886425 + "ts": 0.078577075 }, { "core_id": 1, @@ -8501,7 +9877,7 @@ "params": { "irq_num": 5 }, - "ts": 0.079666425 + "ts": 0.0794482 }, { "core_id": 1, @@ -8509,7 +9885,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.079680075 + "ts": 0.079461725 }, { "core_id": 1, @@ -8517,7 +9893,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07969535 + "ts": 0.07947685 }, { "core_id": 0, @@ -8527,7 +9903,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0798338 + "ts": 0.07954665 }, { "core_id": 0, @@ -8535,7 +9911,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.079849175 + "ts": 0.07956205 }, { "core_id": 0, @@ -8543,7 +9919,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.07986425 + "ts": 0.079577275 }, { "core_id": 1, @@ -8553,7 +9929,7 @@ "params": { "irq_num": 5 }, - "ts": 0.080666425 + "ts": 0.0804482 }, { "core_id": 1, @@ -8561,7 +9937,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.08068 + "ts": 0.080461725 }, { "core_id": 1, @@ -8569,7 +9945,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.080695125 + "ts": 0.08047685 }, { "core_id": 0, @@ -8579,7 +9955,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0808338 + "ts": 0.08054665 }, { "core_id": 0, @@ -8587,7 +9963,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.080849175 + "ts": 0.080562 }, { "core_id": 0, @@ -8595,7 +9971,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08086425 + "ts": 0.080577075 }, { "core_id": 1, @@ -8605,7 +9981,7 @@ "params": { "irq_num": 5 }, - "ts": 0.081666425 + "ts": 0.0814482 }, { "core_id": 1, @@ -8613,7 +9989,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.081680075 + "ts": 0.081461725 }, { "core_id": 1, @@ -8621,7 +9997,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.081695225 + "ts": 0.081476975 }, { "core_id": 0, @@ -8631,7 +10007,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0818338 + "ts": 0.08154665 }, { "core_id": 0, @@ -8639,7 +10015,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0818492 + "ts": 0.081562025 }, { "core_id": 0, @@ -8647,7 +10023,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.081864425 + "ts": 0.081577225 }, { "core_id": 1, @@ -8657,7 +10033,7 @@ "params": { "irq_num": 5 }, - "ts": 0.082666425 + "ts": 0.0824482 }, { "core_id": 1, @@ -8665,7 +10041,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.082680075 + "ts": 0.082461775 }, { "core_id": 1, @@ -8673,7 +10049,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08269535 + "ts": 0.0824769 }, { "core_id": 0, @@ -8683,7 +10059,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0828338 + "ts": 0.08254665 }, { "core_id": 0, @@ -8691,7 +10067,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.082849175 + "ts": 0.082562 }, { "core_id": 0, @@ -8699,7 +10075,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08286425 + "ts": 0.082577075 }, { "core_id": 1, @@ -8709,7 +10085,7 @@ "params": { "irq_num": 5 }, - "ts": 0.083666425 + "ts": 0.0834482 }, { "core_id": 1, @@ -8717,7 +10093,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.08368 + "ts": 0.083461725 }, { "core_id": 1, @@ -8725,7 +10101,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.083695125 + "ts": 0.08347685 }, { "core_id": 0, @@ -8735,7 +10111,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0838338 + "ts": 0.08354665 }, { "core_id": 0, @@ -8743,7 +10119,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.083849175 + "ts": 0.08356205 }, { "core_id": 0, @@ -8751,7 +10127,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08386425 + "ts": 0.083577275 }, { "core_id": 1, @@ -8761,7 +10137,7 @@ "params": { "irq_num": 5 }, - "ts": 0.084666425 + "ts": 0.0844482 }, { "core_id": 1, @@ -8769,7 +10145,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.084680075 + "ts": 0.084461725 }, { "core_id": 1, @@ -8777,7 +10153,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.084695225 + "ts": 0.08447685 }, { "core_id": 0, @@ -8787,7 +10163,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0848338 + "ts": 0.08454665 }, { "core_id": 0, @@ -8795,7 +10171,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0848492 + "ts": 0.084562 }, { "core_id": 0, @@ -8803,7 +10179,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.084864425 + "ts": 0.084577075 }, { "core_id": 1, @@ -8813,7 +10189,7 @@ "params": { "irq_num": 5 }, - "ts": 0.085666425 + "ts": 0.0854482 }, { "core_id": 1, @@ -8821,7 +10197,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.08567995 + "ts": 0.085461725 }, { "core_id": 1, @@ -8829,7 +10205,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0856951 + "ts": 0.085476975 }, { "core_id": 0, @@ -8839,7 +10215,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0858338 + "ts": 0.08554665 }, { "core_id": 0, @@ -8847,7 +10223,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.085849175 + "ts": 0.085562025 }, { "core_id": 0, @@ -8855,7 +10231,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08586425 + "ts": 0.085577225 }, { "core_id": 1, @@ -8865,7 +10241,7 @@ "params": { "irq_num": 5 }, - "ts": 0.086666425 + "ts": 0.0864482 }, { "core_id": 1, @@ -8873,7 +10249,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.086680075 + "ts": 0.0864653 }, { "core_id": 1, @@ -8881,7 +10257,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08669535 + "ts": 0.08648045 }, { "core_id": 0, @@ -8891,7 +10267,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0868338 + "ts": 0.08654665 }, { "core_id": 0, @@ -8899,7 +10275,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.086849175 + "ts": 0.086562 }, { "core_id": 0, @@ -8907,7 +10283,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08686425 + "ts": 0.086577075 }, { "core_id": 1, @@ -8917,7 +10293,7 @@ "params": { "irq_num": 5 }, - "ts": 0.087666425 + "ts": 0.0874482 }, { "core_id": 1, @@ -8925,7 +10301,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.08768 + "ts": 0.087461725 }, { "core_id": 1, @@ -8933,7 +10309,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.087695125 + "ts": 0.08747685 }, { "core_id": 0, @@ -8943,7 +10319,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0878338 + "ts": 0.08754665 }, { "core_id": 0, @@ -8951,7 +10327,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.087849175 + "ts": 0.08756205 }, { "core_id": 0, @@ -8959,7 +10335,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08786425 + "ts": 0.087577275 }, { "core_id": 1, @@ -8969,7 +10345,7 @@ "params": { "irq_num": 5 }, - "ts": 0.088666425 + "ts": 0.0884482 }, { "core_id": 1, @@ -8977,7 +10353,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.088680075 + "ts": 0.088461725 }, { "core_id": 1, @@ -8985,7 +10361,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.088695225 + "ts": 0.08847685 }, { "core_id": 0, @@ -8995,7 +10371,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0888338 + "ts": 0.08854665 }, { "core_id": 0, @@ -9003,7 +10379,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0888492 + "ts": 0.088562 }, { "core_id": 0, @@ -9011,7 +10387,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.088864425 + "ts": 0.088577075 }, { "core_id": 1, @@ -9021,7 +10397,7 @@ "params": { "irq_num": 5 }, - "ts": 0.089666425 + "ts": 0.0894482 }, { "core_id": 1, @@ -9029,7 +10405,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.08967995 + "ts": 0.089461725 }, { "core_id": 1, @@ -9037,7 +10413,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0896951 + "ts": 0.089476975 }, { "core_id": 0, @@ -9047,7 +10423,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0898338 + "ts": 0.08954665 }, { "core_id": 0, @@ -9055,7 +10431,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.089849175 + "ts": 0.089562025 }, { "core_id": 0, @@ -9063,7 +10439,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.08986425 + "ts": 0.089577225 }, { "core_id": 1, @@ -9073,7 +10449,7 @@ "params": { "irq_num": 5 }, - "ts": 0.090666425 + "ts": 0.0904482 }, { "core_id": 1, @@ -9081,7 +10457,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.090680075 + "ts": 0.090461775 }, { "core_id": 1, @@ -9089,7 +10465,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09069535 + "ts": 0.0904769 }, { "core_id": 0, @@ -9099,7 +10475,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0908338 + "ts": 0.09054665 }, { "core_id": 0, @@ -9107,7 +10483,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.090849175 + "ts": 0.090562 }, { "core_id": 0, @@ -9115,7 +10491,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09086425 + "ts": 0.090577075 }, { "core_id": 1, @@ -9125,7 +10501,7 @@ "params": { "irq_num": 5 }, - "ts": 0.091666425 + "ts": 0.0914482 }, { "core_id": 1, @@ -9133,7 +10509,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09168 + "ts": 0.091461725 }, { "core_id": 1, @@ -9141,7 +10517,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.091695125 + "ts": 0.09147685 }, { "core_id": 0, @@ -9151,7 +10527,59 @@ "params": { "irq_num": 5 }, - "ts": 0.0918338 + "ts": 0.09154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.09156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.091577275 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.0924482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.092461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.09247685 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.09254665 }, { "core_id": 0, @@ -9159,9 +10587,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.0918488 + "ts": 0.092561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.092561625 }, { "core_id": 0, @@ -9169,7 +10607,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.091861575 + "ts": 0.092574275 }, { "core_id": 0, @@ -9177,18 +10615,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.09187725 + "ts": 0.092590075 }, { - "addr": "0x3ffbb788", + "addr": "0x3ffbaf40", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9200,16 +10638,16 @@ "id": 512, "in_irq": false, "size": 4, - "ts": 0.091912475 + "ts": 0.092625125 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9221,7 +10659,7 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.0919503 + "ts": 0.0926607 }, { "core_id": 0, @@ -9231,10 +10669,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.0919672 + "ts": 0.092677675 }, { "core_id": 0, @@ -9244,10 +10682,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0919832 + "ts": 0.092693775 }, { "core_id": 0, @@ -9255,8 +10693,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798\n", - "ts": 0.09204735 + "msg": "I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60\n", + "ts": 0.09275055 }, { "core_id": 0, @@ -9264,8 +10702,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb7aec]: allocated 8 bytes @ 0x3ffbb798\n", - "ts": 0.09204735 + "msg": "I (388) example: Task[0x3ffb72b4]: allocated 8 bytes @ 0x3ffbaf60\n", + "ts": 0.09275055 }, { "core_id": 0, @@ -9275,10 +10713,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.092060925 + "ts": 0.092764 }, { "core_id": 0, @@ -9286,9 +10724,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.092074075 + "ts": 0.092777225 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.092777225 }, { "core_id": 1, @@ -9298,7 +10746,7 @@ "params": { "irq_num": 31 }, - "ts": 0.092090275 + "ts": 0.092793475 }, { "core_id": 0, @@ -9308,7 +10756,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.092101125 + "ts": 0.092804425 }, { "core_id": 1, @@ -9316,7 +10764,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.092111925 + "ts": 0.092815175 }, { "core_id": 0, @@ -9326,7 +10774,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0921258 + "ts": 0.092828925 }, { "core_id": 1, @@ -9334,9 +10782,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.092136625 + "ts": 0.09283965 }, { "core_id": 0, @@ -9344,7 +10792,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.092147475 + "ts": 0.09285045 }, { "core_id": 1, @@ -9354,10 +10802,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.09215935 + "ts": 0.09286245 }, { "core_id": 0, @@ -9365,7 +10813,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.092169575 + "ts": 0.092872675 }, { "core_id": 1, @@ -9375,10 +10823,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09218105 + "ts": 0.092884425 }, { "core_id": 1, @@ -9388,10 +10836,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0922013 + "ts": 0.0929007 }, { "core_id": 1, @@ -9399,8 +10847,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798\n", - "ts": 0.09226485 + "msg": "I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60\n", + "ts": 0.092948475 }, { "core_id": 1, @@ -9408,15 +10856,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (400) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb798\n", - "ts": 0.09226485 + "msg": "I (388) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf60\n", + "ts": 0.092948475 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9430,7 +10878,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.09228605 + "ts": 0.09296985 }, { "core_id": 1, @@ -9440,7 +10888,7 @@ "params": { "irq_num": 31 }, - "ts": 0.09231295 + "ts": 0.0930013 }, { "core_id": 1, @@ -9448,7 +10896,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0923245 + "ts": 0.09301275 }, { "core_id": 1, @@ -9456,7 +10904,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.092341075 + "ts": 0.09302945 }, { "core_id": 1, @@ -9466,7 +10914,7 @@ "params": { "irq_num": 5 }, - "ts": 0.092666425 + "ts": 0.0934482 }, { "core_id": 1, @@ -9474,7 +10922,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09267985 + "ts": 0.093461725 }, { "core_id": 1, @@ -9482,7 +10930,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09269555 + "ts": 0.0934773 }, { "core_id": 0, @@ -9492,7 +10940,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0928338 + "ts": 0.09354665 }, { "core_id": 0, @@ -9500,9 +10948,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.0928488 + "ts": 0.093561625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.093561625 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.0935735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.0935735 }, { "core_id": 0, @@ -9510,7 +10988,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.092861575 + "ts": 0.093585975 }, { "core_id": 0, @@ -9518,18 +10996,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.092877375 + "ts": 0.093601625 }, { - "addr": "0x3ffbb798", + "addr": "0x3ffbaf60", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9541,16 +11019,16 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.092912775 + "ts": 0.093638 }, { - "addr": "0x3ffbb7a8", + "addr": "0x3ffbaf70", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9562,7 +11040,7 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.0929473 + "ts": 0.09367345 }, { "core_id": 0, @@ -9572,10 +11050,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09296425 + "ts": 0.0936905 }, { "core_id": 0, @@ -9585,10 +11063,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.092984425 + "ts": 0.093706525 }, { "core_id": 0, @@ -9596,8 +11074,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8\n", - "ts": 0.0930509 + "msg": "I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70\n", + "ts": 0.09376135 }, { "core_id": 0, @@ -9605,8 +11083,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (401) example: Task[0x3ffb926c]: allocated 16 bytes @ 0x3ffbb7a8\n", - "ts": 0.0930509 + "msg": "I (389) example: Task[0x3ffb8a34]: allocated 16 bytes @ 0x3ffbaf70\n", + "ts": 0.09376135 }, { "core_id": 0, @@ -9616,10 +11094,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.09306455 + "ts": 0.093778125 }, { "core_id": 0, @@ -9627,9 +11105,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.09307785 + "ts": 0.0937915 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.0937915 }, { "core_id": 1, @@ -9639,7 +11127,7 @@ "params": { "irq_num": 31 }, - "ts": 0.093094175 + "ts": 0.09380785 }, { "core_id": 0, @@ -9649,7 +11137,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.093105025 + "ts": 0.0938187 }, { "core_id": 1, @@ -9657,7 +11145,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.093115775 + "ts": 0.093829525 }, { "core_id": 0, @@ -9667,7 +11155,7 @@ "params": { "irq_num": 30 }, - "ts": 0.0931295 + "ts": 0.0938433 }, { "core_id": 1, @@ -9675,9 +11163,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.09314035 + "ts": 0.09385525 }, { "core_id": 0, @@ -9685,7 +11173,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.093151175 + "ts": 0.0938664 }, { "core_id": 1, @@ -9695,18 +11183,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.093163025 + "ts": 0.09387835 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.0931733 + "params": { + "tid": 12296612 + }, + "ts": 0.09389 }, { "core_id": 1, @@ -9716,10 +11206,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.093184775 + "ts": 0.0939017 }, { "core_id": 1, @@ -9729,148 +11219,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.093201075 + "ts": 0.0939203 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8\n", - "ts": 0.093264525 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (401) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7a8\n", - "ts": 0.093264525 - }, - { - "addr": "0x3ffbb7a8", + "addr": "0x3ffbaf84", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.09328955 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.09331655 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.093327975 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.09334455 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.093666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.09367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.09369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.0938338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.0938488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.093861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.09387725 - }, - { - "addr": "0x3ffbb7a8", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9882,16 +11243,34 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.09391265 + "ts": 0.0939334 }, { - "addr": "0x3ffbb7b8", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70\n", + "ts": 0.09397395 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffb961c]: free memory @ 0x3ffbaf70\n", + "ts": 0.09397395 + }, + { + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -9903,7 +11282,28 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.09394705 + "ts": 0.093989825 + }, + { + "addr": "0x3ffbaf70", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.094004125 }, { "core_id": 0, @@ -9913,10 +11313,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.09396395 + "ts": 0.09401655 }, { "core_id": 0, @@ -9926,51 +11326,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.09398005 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8\n", - "ts": 0.094050525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (402) example: Task[0x3ffba9dc]: allocated 24 bytes @ 0x3ffbb7b8\n", - "ts": 0.094050525 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.09406835 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.094081575 + "ts": 0.0940366 }, { "core_id": 1, @@ -9980,7 +11339,84 @@ "params": { "irq_num": 31 }, - "ts": 0.094097875 + "ts": 0.094047525 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.09405905 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.094077025 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94\n", + "ts": 0.094095025 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (389) example: Task[0x3ffba1a4]: allocated 24 bytes @ 0x3ffbaf94\n", + "ts": 0.094095025 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.09410845 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.094125225 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.094125225 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.094141575 }, { "core_id": 0, @@ -9990,7 +11426,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.094108725 + "ts": 0.094152425 }, { "core_id": 1, @@ -9998,7 +11434,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0941195 + "ts": 0.09416325 }, { "core_id": 0, @@ -10008,7 +11444,7 @@ "params": { "irq_num": 30 }, - "ts": 0.094133225 + "ts": 0.09417705 }, { "core_id": 1, @@ -10016,9 +11452,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.0941441 + "ts": 0.0941878 }, { "core_id": 0, @@ -10026,7 +11462,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.094154925 + "ts": 0.0941986 }, { "core_id": 1, @@ -10036,10 +11472,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.0941668 + "ts": 0.09421055 }, { "core_id": 0, @@ -10047,7 +11483,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094178075 + "ts": 0.094221775 }, { "core_id": 1, @@ -10057,10 +11493,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.094189725 + "ts": 0.0942336 }, { "core_id": 1, @@ -10070,10 +11506,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.0942061 + "ts": 0.09424985 }, { "core_id": 1, @@ -10081,8 +11517,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8\n", - "ts": 0.09426965 + "msg": "I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94\n", + "ts": 0.094297625 }, { "core_id": 1, @@ -10090,15 +11526,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (402) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7b8\n", - "ts": 0.09426965 + "msg": "I (389) example: Task[0x3ffbad8c]: free memory @ 0x3ffbaf94\n", + "ts": 0.094297625 }, { - "addr": "0x3ffbb7b8", + "addr": "0x3ffbaf94", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -10112,7 +11548,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.09429085 + "ts": 0.094319 }, { "core_id": 1, @@ -10122,7 +11558,7 @@ "params": { "irq_num": 31 }, - "ts": 0.094321875 + "ts": 0.094346425 }, { "core_id": 1, @@ -10130,7 +11566,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09433335 + "ts": 0.094357825 }, { "core_id": 1, @@ -10138,7 +11574,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09435005 + "ts": 0.0943744 }, { "core_id": 1, @@ -10148,7 +11584,7 @@ "params": { "irq_num": 5 }, - "ts": 0.094666425 + "ts": 0.0944482 }, { "core_id": 1, @@ -10156,7 +11592,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.094679875 + "ts": 0.094461625 }, { "core_id": 1, @@ -10164,7 +11600,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09469545 + "ts": 0.0944772 }, { "core_id": 0, @@ -10174,7 +11610,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0948338 + "ts": 0.09454665 }, { "core_id": 0, @@ -10182,7 +11618,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0948492 + "ts": 0.094562 }, { "core_id": 0, @@ -10190,7 +11626,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.094864425 + "ts": 0.094577075 }, { "core_id": 1, @@ -10200,7 +11636,7 @@ "params": { "irq_num": 5 }, - "ts": 0.095666425 + "ts": 0.0954482 }, { "core_id": 1, @@ -10208,7 +11644,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09567995 + "ts": 0.095461725 }, { "core_id": 1, @@ -10216,7 +11652,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0956951 + "ts": 0.09547685 }, { "core_id": 0, @@ -10226,7 +11662,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0958338 + "ts": 0.09554665 }, { "core_id": 0, @@ -10234,7 +11670,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.095849175 + "ts": 0.09556205 }, { "core_id": 0, @@ -10242,7 +11678,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09586425 + "ts": 0.095577275 }, { "core_id": 1, @@ -10252,7 +11688,7 @@ "params": { "irq_num": 5 }, - "ts": 0.096666425 + "ts": 0.0964482 }, { "core_id": 1, @@ -10260,7 +11696,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.096680075 + "ts": 0.096461725 }, { "core_id": 1, @@ -10268,7 +11704,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09669535 + "ts": 0.09647685 }, { "core_id": 0, @@ -10278,7 +11714,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0968338 + "ts": 0.09654665 }, { "core_id": 0, @@ -10286,7 +11722,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.096849175 + "ts": 0.096565625 }, { "core_id": 0, @@ -10294,7 +11730,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09686425 + "ts": 0.09658085 }, { "core_id": 1, @@ -10304,7 +11740,7 @@ "params": { "irq_num": 5 }, - "ts": 0.097666425 + "ts": 0.0974482 }, { "core_id": 1, @@ -10312,7 +11748,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09768 + "ts": 0.097461725 }, { "core_id": 1, @@ -10320,7 +11756,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.097695125 + "ts": 0.09747685 }, { "core_id": 0, @@ -10330,7 +11766,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0978338 + "ts": 0.09754665 }, { "core_id": 0, @@ -10338,7 +11774,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.097849175 + "ts": 0.097562 }, { "core_id": 0, @@ -10346,7 +11782,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09786425 + "ts": 0.097577075 }, { "core_id": 1, @@ -10356,7 +11792,7 @@ "params": { "irq_num": 5 }, - "ts": 0.098666425 + "ts": 0.0984482 }, { "core_id": 1, @@ -10364,7 +11800,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.098680075 + "ts": 0.098461725 }, { "core_id": 1, @@ -10372,7 +11808,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.098695225 + "ts": 0.098476975 }, { "core_id": 0, @@ -10382,7 +11818,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0988338 + "ts": 0.09854665 }, { "core_id": 0, @@ -10390,7 +11826,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.0988492 + "ts": 0.098562025 }, { "core_id": 0, @@ -10398,7 +11834,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.098864425 + "ts": 0.098577225 }, { "core_id": 1, @@ -10408,7 +11844,7 @@ "params": { "irq_num": 5 }, - "ts": 0.099666425 + "ts": 0.0994482 }, { "core_id": 1, @@ -10416,7 +11852,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.09967995 + "ts": 0.099461775 }, { "core_id": 1, @@ -10424,7 +11860,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.0996951 + "ts": 0.0994769 }, { "core_id": 0, @@ -10434,7 +11870,7 @@ "params": { "irq_num": 5 }, - "ts": 0.0998338 + "ts": 0.09954665 }, { "core_id": 0, @@ -10442,7 +11878,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.099849175 + "ts": 0.099562 }, { "core_id": 0, @@ -10450,7 +11886,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.09986425 + "ts": 0.099577075 }, { "core_id": 1, @@ -10460,7 +11896,7 @@ "params": { "irq_num": 5 }, - "ts": 0.100666425 + "ts": 0.1004482 }, { "core_id": 1, @@ -10468,7 +11904,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.100680075 + "ts": 0.100461725 }, { "core_id": 1, @@ -10476,7 +11912,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10069535 + "ts": 0.10047685 }, { "core_id": 0, @@ -10486,7 +11922,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1008338 + "ts": 0.10054665 }, { "core_id": 0, @@ -10494,7 +11930,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.100849175 + "ts": 0.10056205 }, { "core_id": 0, @@ -10502,7 +11938,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10086425 + "ts": 0.100577275 }, { "core_id": 1, @@ -10512,7 +11948,7 @@ "params": { "irq_num": 5 }, - "ts": 0.101666425 + "ts": 0.1014482 }, { "core_id": 1, @@ -10520,7 +11956,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.10168 + "ts": 0.101461725 }, { "core_id": 1, @@ -10528,7 +11964,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.101695125 + "ts": 0.10147685 }, { "core_id": 0, @@ -10538,7 +11974,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1018338 + "ts": 0.10154665 }, { "core_id": 0, @@ -10546,7 +11982,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.101849175 + "ts": 0.101562 }, { "core_id": 0, @@ -10554,7 +11990,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10186425 + "ts": 0.101577075 }, { "core_id": 1, @@ -10564,7 +12000,7 @@ "params": { "irq_num": 5 }, - "ts": 0.102666425 + "ts": 0.1024482 }, { "core_id": 1, @@ -10572,7 +12008,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.102680075 + "ts": 0.102461725 }, { "core_id": 1, @@ -10580,7 +12016,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.102695225 + "ts": 0.102476975 }, { "core_id": 0, @@ -10590,7 +12026,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1028338 + "ts": 0.10254665 }, { "core_id": 0, @@ -10598,7 +12034,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1028492 + "ts": 0.102562025 }, { "core_id": 0, @@ -10606,7 +12042,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.102864425 + "ts": 0.102577225 }, { "core_id": 1, @@ -10616,7 +12052,7 @@ "params": { "irq_num": 5 }, - "ts": 0.103666425 + "ts": 0.1034482 }, { "core_id": 1, @@ -10624,7 +12060,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.10367995 + "ts": 0.103461775 }, { "core_id": 1, @@ -10632,7 +12068,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1036951 + "ts": 0.1034769 }, { "core_id": 0, @@ -10642,7 +12078,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1038338 + "ts": 0.10354665 }, { "core_id": 0, @@ -10650,7 +12086,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.103849175 + "ts": 0.103562 }, { "core_id": 0, @@ -10658,7 +12094,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10386425 + "ts": 0.103577075 }, { "core_id": 1, @@ -10668,7 +12104,7 @@ "params": { "irq_num": 5 }, - "ts": 0.104666425 + "ts": 0.1044482 }, { "core_id": 1, @@ -10676,7 +12112,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.104683575 + "ts": 0.104461725 }, { "core_id": 1, @@ -10684,7 +12120,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.104698725 + "ts": 0.10447685 }, { "core_id": 0, @@ -10694,7 +12130,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1048338 + "ts": 0.10454665 }, { "core_id": 0, @@ -10702,7 +12138,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.104849175 + "ts": 0.10456205 }, { "core_id": 0, @@ -10710,7 +12146,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10486425 + "ts": 0.104577275 }, { "core_id": 1, @@ -10720,7 +12156,7 @@ "params": { "irq_num": 5 }, - "ts": 0.105666425 + "ts": 0.1054482 }, { "core_id": 1, @@ -10728,7 +12164,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.105680075 + "ts": 0.105461725 }, { "core_id": 1, @@ -10736,7 +12172,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.105695225 + "ts": 0.10547685 }, { "core_id": 0, @@ -10746,7 +12182,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1058338 + "ts": 0.10554665 }, { "core_id": 0, @@ -10754,7 +12190,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1058492 + "ts": 0.105562 }, { "core_id": 0, @@ -10762,7 +12198,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.105864425 + "ts": 0.105577075 }, { "core_id": 1, @@ -10772,7 +12208,7 @@ "params": { "irq_num": 5 }, - "ts": 0.106666425 + "ts": 0.1064482 }, { "core_id": 1, @@ -10780,7 +12216,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.10667995 + "ts": 0.106461725 }, { "core_id": 1, @@ -10788,7 +12224,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1066951 + "ts": 0.106476975 }, { "core_id": 0, @@ -10798,7 +12234,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1068338 + "ts": 0.10654665 }, { "core_id": 0, @@ -10806,7 +12242,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.106849175 + "ts": 0.106562025 }, { "core_id": 0, @@ -10814,7 +12250,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10686425 + "ts": 0.106577225 }, { "core_id": 1, @@ -10824,7 +12260,7 @@ "params": { "irq_num": 5 }, - "ts": 0.107666425 + "ts": 0.1074482 }, { "core_id": 1, @@ -10832,7 +12268,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.107680075 + "ts": 0.107461775 }, { "core_id": 1, @@ -10840,7 +12276,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10769535 + "ts": 0.1074769 }, { "core_id": 0, @@ -10850,7 +12286,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1078338 + "ts": 0.10754665 }, { "core_id": 0, @@ -10858,7 +12294,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.107849175 + "ts": 0.107562 }, { "core_id": 0, @@ -10866,7 +12302,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10786425 + "ts": 0.107577075 }, { "core_id": 1, @@ -10876,7 +12312,7 @@ "params": { "irq_num": 5 }, - "ts": 0.108666425 + "ts": 0.1084482 }, { "core_id": 1, @@ -10884,7 +12320,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.10868 + "ts": 0.108461725 }, { "core_id": 1, @@ -10892,7 +12328,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.108695125 + "ts": 0.10847685 }, { "core_id": 0, @@ -10902,7 +12338,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1088338 + "ts": 0.10854665 }, { "core_id": 0, @@ -10910,7 +12346,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.108849175 + "ts": 0.1085663 }, { "core_id": 0, @@ -10918,7 +12354,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.10886425 + "ts": 0.1085815 }, { "core_id": 1, @@ -10928,7 +12364,7 @@ "params": { "irq_num": 5 }, - "ts": 0.109666425 + "ts": 0.1094482 }, { "core_id": 1, @@ -10936,7 +12372,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.109680075 + "ts": 0.109461725 }, { "core_id": 1, @@ -10944,7 +12380,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.109695225 + "ts": 0.10947685 }, { "core_id": 0, @@ -10954,7 +12390,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1098338 + "ts": 0.10954665 }, { "core_id": 0, @@ -10962,7 +12398,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1098492 + "ts": 0.109562 }, { "core_id": 0, @@ -10970,7 +12406,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.109864425 + "ts": 0.109577075 }, { "core_id": 1, @@ -10980,7 +12416,7 @@ "params": { "irq_num": 5 }, - "ts": 0.110666425 + "ts": 0.1104482 }, { "core_id": 1, @@ -10988,7 +12424,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.11067995 + "ts": 0.110461725 }, { "core_id": 1, @@ -10996,7 +12432,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1106951 + "ts": 0.110476975 }, { "core_id": 0, @@ -11006,7 +12442,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1108338 + "ts": 0.11054665 }, { "core_id": 0, @@ -11014,7 +12450,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.110849175 + "ts": 0.110562025 }, { "core_id": 0, @@ -11022,7 +12458,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11086425 + "ts": 0.110577225 }, { "core_id": 1, @@ -11032,7 +12468,7 @@ "params": { "irq_num": 5 }, - "ts": 0.111666425 + "ts": 0.1114482 }, { "core_id": 1, @@ -11040,7 +12476,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.111680075 + "ts": 0.111461775 }, { "core_id": 1, @@ -11048,7 +12484,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11169535 + "ts": 0.1114769 }, { "core_id": 0, @@ -11058,7 +12494,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1118338 + "ts": 0.11154665 }, { "core_id": 0, @@ -11066,7 +12502,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.111849175 + "ts": 0.111562 }, { "core_id": 0, @@ -11074,7 +12510,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11186425 + "ts": 0.111577075 }, { "core_id": 1, @@ -11084,7 +12520,7 @@ "params": { "irq_num": 5 }, - "ts": 0.112666425 + "ts": 0.1124482 }, { "core_id": 1, @@ -11092,7 +12528,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.11268 + "ts": 0.112461725 }, { "core_id": 1, @@ -11100,7 +12536,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.112695125 + "ts": 0.11247685 }, { "core_id": 0, @@ -11110,7 +12546,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1128338 + "ts": 0.11254665 }, { "core_id": 0, @@ -11118,7 +12554,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.112849175 + "ts": 0.11256205 }, { "core_id": 0, @@ -11126,7 +12562,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11286425 + "ts": 0.112577275 }, { "core_id": 1, @@ -11136,7 +12572,7 @@ "params": { "irq_num": 5 }, - "ts": 0.113666425 + "ts": 0.1134482 }, { "core_id": 1, @@ -11144,7 +12580,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.113680075 + "ts": 0.113461725 }, { "core_id": 1, @@ -11152,7 +12588,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.113695225 + "ts": 0.11347685 }, { "core_id": 0, @@ -11162,7 +12598,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1138338 + "ts": 0.11354665 }, { "core_id": 0, @@ -11170,7 +12606,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1138492 + "ts": 0.113562 }, { "core_id": 0, @@ -11178,7 +12614,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.113864425 + "ts": 0.113577075 }, { "core_id": 1, @@ -11188,7 +12624,7 @@ "params": { "irq_num": 5 }, - "ts": 0.114666425 + "ts": 0.1144482 }, { "core_id": 1, @@ -11196,7 +12632,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.11467995 + "ts": 0.114461725 }, { "core_id": 1, @@ -11204,7 +12640,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1146951 + "ts": 0.114476975 }, { "core_id": 0, @@ -11214,7 +12650,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1148338 + "ts": 0.11454665 }, { "core_id": 0, @@ -11222,7 +12658,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.114849175 + "ts": 0.114562025 }, { "core_id": 0, @@ -11230,7 +12666,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11486425 + "ts": 0.114577225 }, { "core_id": 1, @@ -11240,7 +12676,7 @@ "params": { "irq_num": 5 }, - "ts": 0.115666425 + "ts": 0.1154482 }, { "core_id": 1, @@ -11248,7 +12684,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.115680075 + "ts": 0.115461775 }, { "core_id": 1, @@ -11256,7 +12692,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11569535 + "ts": 0.1154769 }, { "core_id": 0, @@ -11266,7 +12702,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1158338 + "ts": 0.11554665 }, { "core_id": 0, @@ -11274,7 +12710,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.115849175 + "ts": 0.115562 }, { "core_id": 0, @@ -11282,7 +12718,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11586425 + "ts": 0.115577075 }, { "core_id": 1, @@ -11292,7 +12728,7 @@ "params": { "irq_num": 5 }, - "ts": 0.116666425 + "ts": 0.1164482 }, { "core_id": 1, @@ -11300,7 +12736,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.116684225 + "ts": 0.116461725 }, { "core_id": 1, @@ -11308,7 +12744,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.116699375 + "ts": 0.11647685 }, { "core_id": 0, @@ -11318,7 +12754,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1168338 + "ts": 0.11654665 }, { "core_id": 0, @@ -11326,7 +12762,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.116849175 + "ts": 0.11656205 }, { "core_id": 0, @@ -11334,7 +12770,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11686425 + "ts": 0.116577275 }, { "core_id": 1, @@ -11344,7 +12780,7 @@ "params": { "irq_num": 5 }, - "ts": 0.117666425 + "ts": 0.1174482 }, { "core_id": 1, @@ -11352,7 +12788,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.117680075 + "ts": 0.117461725 }, { "core_id": 1, @@ -11360,7 +12796,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.117695225 + "ts": 0.11747685 }, { "core_id": 0, @@ -11370,7 +12806,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1178338 + "ts": 0.11754665 }, { "core_id": 0, @@ -11378,7 +12814,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1178492 + "ts": 0.117562 }, { "core_id": 0, @@ -11386,7 +12822,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.117864425 + "ts": 0.117577075 }, { "core_id": 1, @@ -11396,7 +12832,7 @@ "params": { "irq_num": 5 }, - "ts": 0.118666425 + "ts": 0.1184482 }, { "core_id": 1, @@ -11404,7 +12840,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.11867995 + "ts": 0.118461725 }, { "core_id": 1, @@ -11412,7 +12848,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1186951 + "ts": 0.118476975 }, { "core_id": 0, @@ -11422,7 +12858,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1188338 + "ts": 0.11854665 }, { "core_id": 0, @@ -11430,7 +12866,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.118849175 + "ts": 0.118562025 }, { "core_id": 0, @@ -11438,7 +12874,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11886425 + "ts": 0.118577225 }, { "core_id": 1, @@ -11448,7 +12884,7 @@ "params": { "irq_num": 5 }, - "ts": 0.119666425 + "ts": 0.1194482 }, { "core_id": 1, @@ -11456,7 +12892,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.119680075 + "ts": 0.119461775 }, { "core_id": 1, @@ -11464,7 +12900,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11969535 + "ts": 0.1194769 }, { "core_id": 0, @@ -11474,7 +12910,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1198338 + "ts": 0.11954665 }, { "core_id": 0, @@ -11482,7 +12918,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.119849175 + "ts": 0.119562 }, { "core_id": 0, @@ -11490,7 +12926,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.11986425 + "ts": 0.119577075 }, { "core_id": 1, @@ -11500,7 +12936,7 @@ "params": { "irq_num": 5 }, - "ts": 0.120666425 + "ts": 0.1204482 }, { "core_id": 1, @@ -11508,7 +12944,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12068 + "ts": 0.120461725 }, { "core_id": 1, @@ -11516,7 +12952,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.120695125 + "ts": 0.12047685 }, { "core_id": 0, @@ -11526,7 +12962,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1208338 + "ts": 0.12054665 }, { "core_id": 0, @@ -11534,7 +12970,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.120849175 + "ts": 0.1205663 }, { "core_id": 0, @@ -11542,7 +12978,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12086425 + "ts": 0.1205815 }, { "core_id": 1, @@ -11552,7 +12988,7 @@ "params": { "irq_num": 5 }, - "ts": 0.121666425 + "ts": 0.1214482 }, { "core_id": 1, @@ -11560,7 +12996,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.121680075 + "ts": 0.121461725 }, { "core_id": 1, @@ -11568,7 +13004,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.121695225 + "ts": 0.12147685 }, { "core_id": 0, @@ -11578,7 +13014,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1218338 + "ts": 0.12154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.121562 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.121577075 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1224482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.122461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.122476975 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.12254665 }, { "core_id": 0, @@ -11586,9 +13074,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.121848825 + "ts": 0.122561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.122561625 }, { "core_id": 0, @@ -11596,7 +13094,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.121861575 + "ts": 0.122574225 }, { "core_id": 0, @@ -11604,18 +13102,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.12187725 + "ts": 0.122589875 }, { - "addr": "0x3ffbb7b8", + "addr": "0x3ffbaf70", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11627,16 +13125,16 @@ "id": 512, "in_irq": false, "size": 5, - "ts": 0.121912575 + "ts": 0.1226249 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11648,7 +13146,7 @@ "id": 512, "in_irq": false, "size": 10, - "ts": 0.121947 + "ts": 0.122660375 }, { "core_id": 0, @@ -11658,10 +13156,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.121964025 + "ts": 0.1226773 }, { "core_id": 0, @@ -11671,10 +13169,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.121980025 + "ts": 0.12269325 }, { "core_id": 0, @@ -11682,8 +13180,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8\n", - "ts": 0.12205045 + "msg": "I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94\n", + "ts": 0.122748025 }, { "core_id": 0, @@ -11691,8 +13189,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb7aec]: allocated 10 bytes @ 0x3ffbb7c8\n", - "ts": 0.12205045 + "msg": "I (418) example: Task[0x3ffb72b4]: allocated 10 bytes @ 0x3ffbaf94\n", + "ts": 0.122748025 }, { "core_id": 0, @@ -11702,10 +13200,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.122068175 + "ts": 0.1227615 }, { "core_id": 0, @@ -11713,9 +13211,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1220814 + "ts": 0.12277885 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.12277885 }, { "core_id": 1, @@ -11725,7 +13233,7 @@ "params": { "irq_num": 31 }, - "ts": 0.12209765 + "ts": 0.1227951 }, { "core_id": 0, @@ -11735,7 +13243,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.1221085 + "ts": 0.12280605 }, { "core_id": 1, @@ -11743,7 +13251,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122119275 + "ts": 0.122816825 }, { "core_id": 0, @@ -11753,7 +13261,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1221331 + "ts": 0.12283055 }, { "core_id": 1, @@ -11761,9 +13269,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.122144 + "ts": 0.1228413 }, { "core_id": 0, @@ -11771,7 +13279,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122154825 + "ts": 0.1228521 }, { "core_id": 1, @@ -11781,10 +13289,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.122166775 + "ts": 0.122864075 }, { "core_id": 0, @@ -11792,7 +13300,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.122177025 + "ts": 0.122874325 }, { "core_id": 1, @@ -11802,10 +13310,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.12218845 + "ts": 0.122886075 }, { "core_id": 1, @@ -11815,10 +13323,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.1222048 + "ts": 0.12290235 }, { "core_id": 1, @@ -11826,8 +13334,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8\n", - "ts": 0.12226835 + "msg": "I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94\n", + "ts": 0.122950125 }, { "core_id": 1, @@ -11835,15 +13343,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (430) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7c8\n", - "ts": 0.12226835 + "msg": "I (418) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbaf94\n", + "ts": 0.122950125 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11857,7 +13365,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.12228955 + "ts": 0.1229715 }, { "core_id": 1, @@ -11867,7 +13375,7 @@ "params": { "irq_num": 31 }, - "ts": 0.122320575 + "ts": 0.1229989 }, { "core_id": 1, @@ -11875,7 +13383,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122332175 + "ts": 0.123010325 }, { "core_id": 1, @@ -11883,7 +13391,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.122348875 + "ts": 0.123026875 }, { "core_id": 1, @@ -11893,7 +13401,7 @@ "params": { "irq_num": 5 }, - "ts": 0.122666425 + "ts": 0.1234482 }, { "core_id": 1, @@ -11901,7 +13409,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122679875 + "ts": 0.123461725 }, { "core_id": 1, @@ -11909,7 +13417,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12269545 + "ts": 0.1234773 }, { "core_id": 0, @@ -11919,7 +13427,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1228338 + "ts": 0.12354665 }, { "core_id": 0, @@ -11927,9 +13435,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.122848825 + "ts": 0.123561675 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.123561675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.1235735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.1235735 }, { "core_id": 0, @@ -11937,7 +13475,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.122861575 + "ts": 0.123586 }, { "core_id": 0, @@ -11945,18 +13483,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.12287725 + "ts": 0.123601675 }, { - "addr": "0x3ffbb7c8", + "addr": "0x3ffbaf94", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11968,16 +13506,16 @@ "id": 512, "in_irq": false, "size": 10, - "ts": 0.122912575 + "ts": 0.123638125 }, { - "addr": "0x3ffbb7d8", + "addr": "0x3ffbafa4", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -11989,7 +13527,7 @@ "id": 512, "in_irq": false, "size": 20, - "ts": 0.122947 + "ts": 0.1236777 }, { "core_id": 0, @@ -11999,10 +13537,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.122964025 + "ts": 0.12369465 }, { "core_id": 0, @@ -12012,10 +13550,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.122980025 + "ts": 0.123710775 }, { "core_id": 0, @@ -12023,8 +13561,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8\n", - "ts": 0.12305045 + "msg": "I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4\n", + "ts": 0.1237655 }, { "core_id": 0, @@ -12032,8 +13570,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (431) example: Task[0x3ffb926c]: allocated 20 bytes @ 0x3ffbb7d8\n", - "ts": 0.12305045 + "msg": "I (419) example: Task[0x3ffb8a34]: allocated 20 bytes @ 0x3ffbafa4\n", + "ts": 0.1237655 }, { "core_id": 0, @@ -12043,10 +13581,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.123064 + "ts": 0.12377895 }, { "core_id": 0, @@ -12054,9 +13592,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.123081425 + "ts": 0.123792325 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.123792325 }, { "core_id": 1, @@ -12066,7 +13614,7 @@ "params": { "irq_num": 31 }, - "ts": 0.123097725 + "ts": 0.123808675 }, { "core_id": 0, @@ -12076,7 +13624,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.123108575 + "ts": 0.123819525 }, { "core_id": 1, @@ -12084,7 +13632,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.123119325 + "ts": 0.12383035 }, { "core_id": 0, @@ -12094,7 +13642,7 @@ "params": { "irq_num": 30 }, - "ts": 0.12313305 + "ts": 0.123844125 }, { "core_id": 1, @@ -12102,9 +13650,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.1231439 + "ts": 0.123856075 }, { "core_id": 0, @@ -12112,7 +13660,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.123154725 + "ts": 0.123867225 }, { "core_id": 1, @@ -12122,18 +13670,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.1231666 + "ts": 0.123879175 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.12317685 + "params": { + "tid": 12296612 + }, + "ts": 0.123890825 }, { "core_id": 1, @@ -12143,10 +13693,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.123188325 + "ts": 0.123902525 }, { "core_id": 1, @@ -12156,148 +13706,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.123204625 + "ts": 0.12392435 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8\n", - "ts": 0.123268075 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (431) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb7d8\n", - "ts": 0.123268075 - }, - { - "addr": "0x3ffbb7d8", + "addr": "0x3ffbafbc", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.12328925 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.12331625 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.123327675 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.12334425 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.123666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.12367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.12369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1238338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.1238488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.123861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.12387725 - }, - { - "addr": "0x3ffbb7d8", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -12309,16 +13730,34 @@ "id": 512, "in_irq": false, "size": 15, - "ts": 0.12391265 + "ts": 0.123936825 }, { - "addr": "0x3ffbb7ec", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4\n", + "ts": 0.1239779 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffb961c]: free memory @ 0x3ffbafa4\n", + "ts": 0.1239779 + }, + { + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -12330,7 +13769,28 @@ "id": 512, "in_irq": false, "size": 30, - "ts": 0.123951325 + "ts": 0.12398945 + }, + { + "addr": "0x3ffbafa4", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.1240037 }, { "core_id": 0, @@ -12340,64 +13800,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.123968225 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.1239842 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec\n", - "ts": 0.12405455 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (432) example: Task[0x3ffba9dc]: allocated 30 bytes @ 0x3ffbb7ec\n", - "ts": 0.12405455 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.12406815 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.124081375 + "ts": 0.124016225 }, { "core_id": 1, @@ -12407,7 +13813,97 @@ "params": { "irq_num": 31 }, - "ts": 0.124097675 + "ts": 0.124035575 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.124046775 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.12405755 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.1240757 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0\n", + "ts": 0.124103475 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (419) example: Task[0x3ffba1a4]: allocated 30 bytes @ 0x3ffbafd0\n", + "ts": 0.124103475 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.124121075 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.124134325 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.124134325 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.124150675 }, { "core_id": 0, @@ -12417,7 +13913,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.124108525 + "ts": 0.124161525 }, { "core_id": 1, @@ -12425,7 +13921,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1241193 + "ts": 0.12417235 }, { "core_id": 0, @@ -12435,7 +13931,7 @@ "params": { "irq_num": 30 }, - "ts": 0.124133175 + "ts": 0.124186175 }, { "core_id": 1, @@ -12443,9 +13939,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.12414405 + "ts": 0.124196925 }, { "core_id": 0, @@ -12453,7 +13949,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.124154875 + "ts": 0.124207675 }, { "core_id": 1, @@ -12463,10 +13959,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.12416675 + "ts": 0.124219775 }, { "core_id": 0, @@ -12474,7 +13970,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.124178025 + "ts": 0.124231 }, { "core_id": 1, @@ -12484,10 +13980,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.124189675 + "ts": 0.124243325 }, { "core_id": 1, @@ -12497,10 +13993,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.124209375 + "ts": 0.124259575 }, { "core_id": 1, @@ -12508,8 +14004,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec\n", - "ts": 0.124272925 + "msg": "I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0\n", + "ts": 0.12430745 }, { "core_id": 1, @@ -12517,15 +14013,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (432) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb7ec\n", - "ts": 0.124272925 + "msg": "I (419) example: Task[0x3ffbad8c]: free memory @ 0x3ffbafd0\n", + "ts": 0.12430745 }, { - "addr": "0x3ffbb7ec", + "addr": "0x3ffbafd0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -12539,7 +14035,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.124294125 + "ts": 0.12432885 }, { "core_id": 1, @@ -12549,7 +14045,7 @@ "params": { "irq_num": 31 }, - "ts": 0.124321025 + "ts": 0.1243602 }, { "core_id": 1, @@ -12557,7 +14053,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.124332575 + "ts": 0.12437165 }, { "core_id": 1, @@ -12565,7 +14061,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12434915 + "ts": 0.12438835 }, { "core_id": 1, @@ -12575,7 +14071,7 @@ "params": { "irq_num": 5 }, - "ts": 0.124666425 + "ts": 0.1244482 }, { "core_id": 1, @@ -12583,7 +14079,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12467985 + "ts": 0.124461625 }, { "core_id": 1, @@ -12591,7 +14087,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12469555 + "ts": 0.1244772 }, { "core_id": 0, @@ -12601,7 +14097,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1248338 + "ts": 0.12454665 }, { "core_id": 0, @@ -12609,7 +14105,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.124849175 + "ts": 0.12456205 }, { "core_id": 0, @@ -12617,7 +14113,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12486425 + "ts": 0.124577275 }, { "core_id": 1, @@ -12627,7 +14123,7 @@ "params": { "irq_num": 5 }, - "ts": 0.125666425 + "ts": 0.1254482 }, { "core_id": 1, @@ -12635,7 +14131,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.125680075 + "ts": 0.125461725 }, { "core_id": 1, @@ -12643,7 +14139,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12569535 + "ts": 0.12547685 }, { "core_id": 0, @@ -12653,7 +14149,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1258338 + "ts": 0.12554665 }, { "core_id": 0, @@ -12661,7 +14157,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.125849175 + "ts": 0.125562 }, { "core_id": 0, @@ -12669,7 +14165,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12586425 + "ts": 0.125577075 }, { "core_id": 1, @@ -12679,7 +14175,7 @@ "params": { "irq_num": 5 }, - "ts": 0.126666425 + "ts": 0.1264482 }, { "core_id": 1, @@ -12687,7 +14183,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12668 + "ts": 0.126461725 }, { "core_id": 1, @@ -12695,7 +14191,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.126695125 + "ts": 0.126476975 }, { "core_id": 0, @@ -12705,7 +14201,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1268338 + "ts": 0.12654665 }, { "core_id": 0, @@ -12713,7 +14209,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.126849175 + "ts": 0.126562025 }, { "core_id": 0, @@ -12721,7 +14217,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12686425 + "ts": 0.126577225 }, { "core_id": 1, @@ -12731,7 +14227,7 @@ "params": { "irq_num": 5 }, - "ts": 0.127666425 + "ts": 0.1274482 }, { "core_id": 1, @@ -12739,7 +14235,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.127680075 + "ts": 0.127461775 }, { "core_id": 1, @@ -12747,7 +14243,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.127695225 + "ts": 0.1274769 }, { "core_id": 0, @@ -12757,7 +14253,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1278338 + "ts": 0.12754665 }, { "core_id": 0, @@ -12765,7 +14261,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1278492 + "ts": 0.127562 }, { "core_id": 0, @@ -12773,7 +14269,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.127864425 + "ts": 0.127577075 }, { "core_id": 1, @@ -12783,7 +14279,7 @@ "params": { "irq_num": 5 }, - "ts": 0.128666425 + "ts": 0.1284482 }, { "core_id": 1, @@ -12791,7 +14287,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.12867995 + "ts": 0.128461725 }, { "core_id": 1, @@ -12799,7 +14295,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1286951 + "ts": 0.12847685 }, { "core_id": 0, @@ -12809,7 +14305,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1288338 + "ts": 0.12854665 }, { "core_id": 0, @@ -12817,7 +14313,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.128849175 + "ts": 0.12856205 }, { "core_id": 0, @@ -12825,7 +14321,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12886425 + "ts": 0.128577275 }, { "core_id": 1, @@ -12835,7 +14331,7 @@ "params": { "irq_num": 5 }, - "ts": 0.129666425 + "ts": 0.1294482 }, { "core_id": 1, @@ -12843,7 +14339,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.129680075 + "ts": 0.129461725 }, { "core_id": 1, @@ -12851,7 +14347,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.12969535 + "ts": 0.12947685 }, { "core_id": 0, @@ -12861,7 +14357,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1298338 + "ts": 0.12954665 }, { "core_id": 0, @@ -12869,7 +14365,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.129849175 + "ts": 0.129562 }, { "core_id": 0, @@ -12877,7 +14373,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.129868575 + "ts": 0.129577075 }, { "core_id": 1, @@ -12887,7 +14383,7 @@ "params": { "irq_num": 5 }, - "ts": 0.130666425 + "ts": 0.1304482 }, { "core_id": 1, @@ -12895,7 +14391,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.13067995 + "ts": 0.130461725 }, { "core_id": 1, @@ -12903,7 +14399,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1306951 + "ts": 0.130476975 }, { "core_id": 0, @@ -12913,7 +14409,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1308338 + "ts": 0.13054665 }, { "core_id": 0, @@ -12921,7 +14417,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.130849175 + "ts": 0.130562025 }, { "core_id": 0, @@ -12929,7 +14425,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13086425 + "ts": 0.130577225 }, { "core_id": 1, @@ -12939,7 +14435,7 @@ "params": { "irq_num": 5 }, - "ts": 0.131666425 + "ts": 0.1314482 }, { "core_id": 1, @@ -12947,7 +14443,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.131680075 + "ts": 0.131461775 }, { "core_id": 1, @@ -12955,7 +14451,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13169535 + "ts": 0.1314769 }, { "core_id": 0, @@ -12965,7 +14461,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1318338 + "ts": 0.13154665 }, { "core_id": 0, @@ -12973,7 +14469,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.131849175 + "ts": 0.131562 }, { "core_id": 0, @@ -12981,7 +14477,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13186425 + "ts": 0.131577075 }, { "core_id": 1, @@ -12991,7 +14487,7 @@ "params": { "irq_num": 5 }, - "ts": 0.132666425 + "ts": 0.1324482 }, { "core_id": 1, @@ -12999,7 +14495,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.13268 + "ts": 0.132461725 }, { "core_id": 1, @@ -13007,7 +14503,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.132695125 + "ts": 0.13247685 }, { "core_id": 0, @@ -13017,7 +14513,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1328338 + "ts": 0.13254665 }, { "core_id": 0, @@ -13025,7 +14521,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.132849175 + "ts": 0.13256205 }, { "core_id": 0, @@ -13033,7 +14529,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13286425 + "ts": 0.132577275 }, { "core_id": 1, @@ -13043,7 +14539,7 @@ "params": { "irq_num": 5 }, - "ts": 0.133666425 + "ts": 0.1334482 }, { "core_id": 1, @@ -13051,7 +14547,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.133680075 + "ts": 0.133461725 }, { "core_id": 1, @@ -13059,7 +14555,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.133695225 + "ts": 0.13347685 }, { "core_id": 0, @@ -13069,7 +14565,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1338338 + "ts": 0.13354665 }, { "core_id": 0, @@ -13077,7 +14573,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1338492 + "ts": 0.133562 }, { "core_id": 0, @@ -13085,7 +14581,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.133864425 + "ts": 0.133577075 }, { "core_id": 1, @@ -13095,7 +14591,7 @@ "params": { "irq_num": 5 }, - "ts": 0.134666425 + "ts": 0.1344482 }, { "core_id": 1, @@ -13103,7 +14599,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.13467995 + "ts": 0.13446595 }, { "core_id": 1, @@ -13111,7 +14607,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1346951 + "ts": 0.1344811 }, { "core_id": 0, @@ -13121,7 +14617,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1348338 + "ts": 0.13454665 }, { "core_id": 0, @@ -13129,7 +14625,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.134849175 + "ts": 0.134562 }, { "core_id": 0, @@ -13137,7 +14633,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13486425 + "ts": 0.134577075 }, { "core_id": 1, @@ -13147,7 +14643,7 @@ "params": { "irq_num": 5 }, - "ts": 0.135666425 + "ts": 0.1354482 }, { "core_id": 1, @@ -13155,7 +14651,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.135680075 + "ts": 0.135461725 }, { "core_id": 1, @@ -13163,7 +14659,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13569535 + "ts": 0.13547685 }, { "core_id": 0, @@ -13173,7 +14669,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1358338 + "ts": 0.13554665 }, { "core_id": 0, @@ -13181,7 +14677,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.135849175 + "ts": 0.13556205 }, { "core_id": 0, @@ -13189,7 +14685,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13586425 + "ts": 0.135577275 }, { "core_id": 1, @@ -13199,7 +14695,7 @@ "params": { "irq_num": 5 }, - "ts": 0.136666425 + "ts": 0.1364482 }, { "core_id": 1, @@ -13207,7 +14703,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.13668 + "ts": 0.136461725 }, { "core_id": 1, @@ -13215,7 +14711,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.136695125 + "ts": 0.13647685 }, { "core_id": 0, @@ -13225,7 +14721,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1368338 + "ts": 0.13654665 }, { "core_id": 0, @@ -13233,7 +14729,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.136849175 + "ts": 0.136562 }, { "core_id": 0, @@ -13241,7 +14737,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13686425 + "ts": 0.136577075 }, { "core_id": 1, @@ -13251,7 +14747,7 @@ "params": { "irq_num": 5 }, - "ts": 0.137666425 + "ts": 0.1374482 }, { "core_id": 1, @@ -13259,7 +14755,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.137680075 + "ts": 0.137461725 }, { "core_id": 1, @@ -13267,7 +14763,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.137695225 + "ts": 0.137476975 }, { "core_id": 0, @@ -13277,7 +14773,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1378338 + "ts": 0.13754665 }, { "core_id": 0, @@ -13285,7 +14781,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1378492 + "ts": 0.137562025 }, { "core_id": 0, @@ -13293,7 +14789,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.137864425 + "ts": 0.137577225 }, { "core_id": 1, @@ -13303,7 +14799,7 @@ "params": { "irq_num": 5 }, - "ts": 0.138666425 + "ts": 0.1384482 }, { "core_id": 1, @@ -13311,7 +14807,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.13867995 + "ts": 0.138461775 }, { "core_id": 1, @@ -13319,7 +14815,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1386951 + "ts": 0.1384769 }, { "core_id": 0, @@ -13329,7 +14825,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1388338 + "ts": 0.13854665 }, { "core_id": 0, @@ -13337,7 +14833,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.138849175 + "ts": 0.138562 }, { "core_id": 0, @@ -13345,7 +14841,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13886425 + "ts": 0.138577075 }, { "core_id": 1, @@ -13355,7 +14851,7 @@ "params": { "irq_num": 5 }, - "ts": 0.139666425 + "ts": 0.1394482 }, { "core_id": 1, @@ -13363,7 +14859,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.139680075 + "ts": 0.139461725 }, { "core_id": 1, @@ -13371,7 +14867,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13969535 + "ts": 0.13947685 }, { "core_id": 0, @@ -13381,7 +14877,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1398338 + "ts": 0.13954665 }, { "core_id": 0, @@ -13389,7 +14885,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.139849175 + "ts": 0.13956205 }, { "core_id": 0, @@ -13397,7 +14893,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.13986425 + "ts": 0.139577275 }, { "core_id": 1, @@ -13407,7 +14903,7 @@ "params": { "irq_num": 5 }, - "ts": 0.140666425 + "ts": 0.1404482 }, { "core_id": 1, @@ -13415,7 +14911,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.14068 + "ts": 0.140461725 }, { "core_id": 1, @@ -13423,7 +14919,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.140695125 + "ts": 0.14047685 }, { "core_id": 0, @@ -13433,7 +14929,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1408338 + "ts": 0.14054665 }, { "core_id": 0, @@ -13441,7 +14937,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.140849175 + "ts": 0.140562 }, { "core_id": 0, @@ -13449,7 +14945,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14086425 + "ts": 0.140577075 }, { "core_id": 1, @@ -13459,7 +14955,7 @@ "params": { "irq_num": 5 }, - "ts": 0.141666425 + "ts": 0.1414482 }, { "core_id": 1, @@ -13467,7 +14963,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.141680075 + "ts": 0.141461725 }, { "core_id": 1, @@ -13475,7 +14971,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.141695225 + "ts": 0.141476975 }, { "core_id": 0, @@ -13485,7 +14981,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1418338 + "ts": 0.14154665 }, { "core_id": 0, @@ -13493,7 +14989,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1418492 + "ts": 0.141562025 }, { "core_id": 0, @@ -13501,7 +14997,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.141864425 + "ts": 0.141577225 }, { "core_id": 1, @@ -13511,7 +15007,7 @@ "params": { "irq_num": 5 }, - "ts": 0.142666425 + "ts": 0.1424482 }, { "core_id": 1, @@ -13519,7 +15015,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.142680075 + "ts": 0.142461775 }, { "core_id": 1, @@ -13527,7 +15023,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14269535 + "ts": 0.1424769 }, { "core_id": 0, @@ -13537,7 +15033,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1428338 + "ts": 0.14254665 }, { "core_id": 0, @@ -13545,7 +15041,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.142849175 + "ts": 0.142562 }, { "core_id": 0, @@ -13553,7 +15049,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14286425 + "ts": 0.142577075 }, { "core_id": 1, @@ -13563,7 +15059,7 @@ "params": { "irq_num": 5 }, - "ts": 0.143666425 + "ts": 0.1434482 }, { "core_id": 1, @@ -13571,7 +15067,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.14368 + "ts": 0.143461725 }, { "core_id": 1, @@ -13579,7 +15075,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.143695125 + "ts": 0.14347685 }, { "core_id": 0, @@ -13589,7 +15085,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1438338 + "ts": 0.14354665 }, { "core_id": 0, @@ -13597,7 +15093,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.143849175 + "ts": 0.14356205 }, { "core_id": 0, @@ -13605,7 +15101,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14386425 + "ts": 0.143577275 }, { "core_id": 1, @@ -13615,7 +15111,7 @@ "params": { "irq_num": 5 }, - "ts": 0.144666425 + "ts": 0.1444482 }, { "core_id": 1, @@ -13623,7 +15119,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.144680075 + "ts": 0.144461725 }, { "core_id": 1, @@ -13631,7 +15127,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.144695225 + "ts": 0.14447685 }, { "core_id": 0, @@ -13641,7 +15137,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1448338 + "ts": 0.14454665 }, { "core_id": 0, @@ -13649,7 +15145,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1448492 + "ts": 0.144562 }, { "core_id": 0, @@ -13657,7 +15153,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.144864425 + "ts": 0.144577075 }, { "core_id": 1, @@ -13667,7 +15163,7 @@ "params": { "irq_num": 5 }, - "ts": 0.145666425 + "ts": 0.1454482 }, { "core_id": 1, @@ -13675,7 +15171,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.14567995 + "ts": 0.145461725 }, { "core_id": 1, @@ -13683,7 +15179,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1456951 + "ts": 0.145476975 }, { "core_id": 0, @@ -13693,7 +15189,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1458338 + "ts": 0.14554665 }, { "core_id": 0, @@ -13701,7 +15197,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.145849175 + "ts": 0.145562025 }, { "core_id": 0, @@ -13709,7 +15205,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14586425 + "ts": 0.145577225 }, { "core_id": 1, @@ -13719,7 +15215,7 @@ "params": { "irq_num": 5 }, - "ts": 0.146666425 + "ts": 0.1464482 }, { "core_id": 1, @@ -13727,7 +15223,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.146680075 + "ts": 0.146466 }, { "core_id": 1, @@ -13735,7 +15231,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14669535 + "ts": 0.146481125 }, { "core_id": 0, @@ -13745,7 +15241,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1468338 + "ts": 0.14654665 }, { "core_id": 0, @@ -13753,7 +15249,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.146849175 + "ts": 0.146562 }, { "core_id": 0, @@ -13761,7 +15257,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14686425 + "ts": 0.146577075 }, { "core_id": 1, @@ -13771,7 +15267,7 @@ "params": { "irq_num": 5 }, - "ts": 0.147666425 + "ts": 0.1474482 }, { "core_id": 1, @@ -13779,7 +15275,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.14768 + "ts": 0.147461725 }, { "core_id": 1, @@ -13787,7 +15283,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.147695125 + "ts": 0.14747685 }, { "core_id": 0, @@ -13797,7 +15293,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1478338 + "ts": 0.14754665 }, { "core_id": 0, @@ -13805,7 +15301,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.147849175 + "ts": 0.14756205 }, { "core_id": 0, @@ -13813,7 +15309,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14786425 + "ts": 0.147577275 }, { "core_id": 1, @@ -13823,7 +15319,7 @@ "params": { "irq_num": 5 }, - "ts": 0.148666425 + "ts": 0.1484482 }, { "core_id": 1, @@ -13831,7 +15327,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.148680075 + "ts": 0.148461725 }, { "core_id": 1, @@ -13839,7 +15335,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.148695225 + "ts": 0.14847685 }, { "core_id": 0, @@ -13849,7 +15345,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1488338 + "ts": 0.14854665 }, { "core_id": 0, @@ -13857,7 +15353,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1488492 + "ts": 0.148562 }, { "core_id": 0, @@ -13865,7 +15361,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.148864425 + "ts": 0.148577075 }, { "core_id": 1, @@ -13875,7 +15371,7 @@ "params": { "irq_num": 5 }, - "ts": 0.149666425 + "ts": 0.1494482 }, { "core_id": 1, @@ -13883,7 +15379,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.14967995 + "ts": 0.149461725 }, { "core_id": 1, @@ -13891,7 +15387,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1496951 + "ts": 0.149476975 }, { "core_id": 0, @@ -13901,7 +15397,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1498338 + "ts": 0.14954665 }, { "core_id": 0, @@ -13909,7 +15405,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.149849175 + "ts": 0.149562025 }, { "core_id": 0, @@ -13917,7 +15413,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.14986425 + "ts": 0.149577225 }, { "core_id": 1, @@ -13927,7 +15423,7 @@ "params": { "irq_num": 5 }, - "ts": 0.150666425 + "ts": 0.1504482 }, { "core_id": 1, @@ -13935,7 +15431,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.150680075 + "ts": 0.150461775 }, { "core_id": 1, @@ -13943,7 +15439,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15069535 + "ts": 0.1504769 }, { "core_id": 0, @@ -13953,7 +15449,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1508338 + "ts": 0.15054665 }, { "core_id": 0, @@ -13961,7 +15457,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.150849175 + "ts": 0.150562 }, { "core_id": 0, @@ -13969,7 +15465,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15086425 + "ts": 0.150577075 }, { "core_id": 1, @@ -13979,7 +15475,7 @@ "params": { "irq_num": 5 }, - "ts": 0.151666425 + "ts": 0.1514482 }, { "core_id": 1, @@ -13987,7 +15483,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15168 + "ts": 0.151461725 }, { "core_id": 1, @@ -13995,7 +15491,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.151695125 + "ts": 0.15147685 }, { "core_id": 0, @@ -14005,7 +15501,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1518338 + "ts": 0.15154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.15156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.151577275 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1524482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.152461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.15247685 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.15254665 }, { "core_id": 0, @@ -14013,9 +15561,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.1518488 + "ts": 0.152561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.152561625 }, { "core_id": 0, @@ -14023,7 +15581,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.151861575 + "ts": 0.152574275 }, { "core_id": 0, @@ -14031,18 +15589,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.15187725 + "ts": 0.152590075 }, { - "addr": "0x3ffbb7ec", + "addr": "0x3ffbafa4", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14054,16 +15612,16 @@ "id": 512, "in_irq": false, "size": 6, - "ts": 0.15191265 + "ts": 0.152625125 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14075,7 +15633,7 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.15195125 + "ts": 0.1526607 }, { "core_id": 0, @@ -14085,10 +15643,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15196815 + "ts": 0.152677675 }, { "core_id": 0, @@ -14098,10 +15656,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.15198415 + "ts": 0.152693775 }, { "core_id": 0, @@ -14109,8 +15667,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc\n", - "ts": 0.152054475 + "msg": "I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0\n", + "ts": 0.1527528 }, { "core_id": 0, @@ -14118,8 +15676,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb7aec]: allocated 12 bytes @ 0x3ffbb7fc\n", - "ts": 0.152054475 + "msg": "I (448) example: Task[0x3ffb72b4]: allocated 12 bytes @ 0x3ffbafd0\n", + "ts": 0.1527528 }, { "core_id": 0, @@ -14129,10 +15687,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.152068075 + "ts": 0.152766275 }, { "core_id": 0, @@ -14140,9 +15698,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.1520813 + "ts": 0.15277945 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.15277945 }, { "core_id": 1, @@ -14152,7 +15720,7 @@ "params": { "irq_num": 31 }, - "ts": 0.152097675 + "ts": 0.15279565 }, { "core_id": 0, @@ -14162,7 +15730,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.152108525 + "ts": 0.1528066 }, { "core_id": 1, @@ -14170,7 +15738,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1521193 + "ts": 0.152817375 }, { "core_id": 0, @@ -14180,7 +15748,7 @@ "params": { "irq_num": 30 }, - "ts": 0.152133125 + "ts": 0.152831275 }, { "core_id": 1, @@ -14188,9 +15756,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.152144025 + "ts": 0.152842075 }, { "core_id": 0, @@ -14198,7 +15766,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15215485 + "ts": 0.1528528 }, { "core_id": 1, @@ -14208,10 +15776,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.1521668 + "ts": 0.152864925 }, { "core_id": 0, @@ -14219,7 +15787,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15217705 + "ts": 0.1528751 }, { "core_id": 1, @@ -14229,10 +15797,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.152188475 + "ts": 0.152886875 }, { "core_id": 1, @@ -14242,10 +15810,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.15220885 + "ts": 0.1529032 }, { "core_id": 1, @@ -14253,8 +15821,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc\n", - "ts": 0.1522724 + "msg": "I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0\n", + "ts": 0.152951075 }, { "core_id": 1, @@ -14262,15 +15830,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (460) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb7fc\n", - "ts": 0.1522724 + "msg": "I (448) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbafd0\n", + "ts": 0.152951075 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14284,7 +15852,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.1522936 + "ts": 0.1529723 }, { "core_id": 1, @@ -14294,7 +15862,7 @@ "params": { "irq_num": 31 }, - "ts": 0.152320475 + "ts": 0.15300375 }, { "core_id": 1, @@ -14302,7 +15870,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1523319 + "ts": 0.153015325 }, { "core_id": 1, @@ -14310,7 +15878,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.152348475 + "ts": 0.153032025 }, { "core_id": 1, @@ -14320,7 +15888,7 @@ "params": { "irq_num": 5 }, - "ts": 0.152666425 + "ts": 0.1534482 }, { "core_id": 1, @@ -14328,7 +15896,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15267985 + "ts": 0.153461725 }, { "core_id": 1, @@ -14336,7 +15904,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15269555 + "ts": 0.1534773 }, { "core_id": 0, @@ -14346,7 +15914,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1528338 + "ts": 0.15354665 }, { "core_id": 0, @@ -14354,9 +15922,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.1528488 + "ts": 0.153561625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.153561625 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.1535735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.1535735 }, { "core_id": 0, @@ -14364,7 +15962,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.152861575 + "ts": 0.153585975 }, { "core_id": 0, @@ -14372,18 +15970,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.152877375 + "ts": 0.153601625 }, { - "addr": "0x3ffbb7fc", + "addr": "0x3ffbafd0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14395,16 +15993,16 @@ "id": 512, "in_irq": false, "size": 12, - "ts": 0.152912775 + "ts": 0.153638 }, { - "addr": "0x3ffbb80c", + "addr": "0x3ffbafe0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14416,7 +16014,7 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.1529473 + "ts": 0.15367345 }, { "core_id": 0, @@ -14426,10 +16024,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15296425 + "ts": 0.1536905 }, { "core_id": 0, @@ -14439,10 +16037,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.152984425 + "ts": 0.153706525 }, { "core_id": 0, @@ -14450,8 +16048,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c\n", - "ts": 0.15305485 + "msg": "I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0\n", + "ts": 0.15376135 }, { "core_id": 0, @@ -14459,8 +16057,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (461) example: Task[0x3ffb926c]: allocated 24 bytes @ 0x3ffbb80c\n", - "ts": 0.15305485 + "msg": "I (449) example: Task[0x3ffb8a34]: allocated 24 bytes @ 0x3ffbafe0\n", + "ts": 0.15376135 }, { "core_id": 0, @@ -14470,10 +16068,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.1530685 + "ts": 0.153778125 }, { "core_id": 0, @@ -14481,9 +16079,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.153081675 + "ts": 0.1537915 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.1537915 }, { "core_id": 1, @@ -14493,7 +16101,7 @@ "params": { "irq_num": 31 }, - "ts": 0.153097875 + "ts": 0.15380785 }, { "core_id": 0, @@ -14503,7 +16111,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.153108925 + "ts": 0.1538187 }, { "core_id": 1, @@ -14511,7 +16119,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.153119675 + "ts": 0.153829525 }, { "core_id": 0, @@ -14521,7 +16129,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1531334 + "ts": 0.1538433 }, { "core_id": 1, @@ -14529,9 +16137,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.15314435 + "ts": 0.15385525 }, { "core_id": 0, @@ -14539,7 +16147,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15315515 + "ts": 0.1538664 }, { "core_id": 1, @@ -14549,18 +16157,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.153167 + "ts": 0.15387835 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.153177275 + "params": { + "tid": 12296612 + }, + "ts": 0.15389 }, { "core_id": 1, @@ -14570,10 +16180,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15318875 + "ts": 0.1539017 }, { "core_id": 1, @@ -14583,148 +16193,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.15320505 + "ts": 0.1539203 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c\n", - "ts": 0.1532685 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (461) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb80c\n", - "ts": 0.1532685 - }, - { - "addr": "0x3ffbb80c", + "addr": "0x3ffbaffc", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.153293525 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.153320525 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.15333195 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.153348525 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.153666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.15367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.15369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1538338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.1538488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.153861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.15387725 - }, - { - "addr": "0x3ffbb80c", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14736,16 +16217,34 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.15391265 + "ts": 0.1539334 }, { - "addr": "0x3ffbb824", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0\n", + "ts": 0.153973975 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffb961c]: free memory @ 0x3ffbafe0\n", + "ts": 0.153973975 + }, + { + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14757,7 +16256,28 @@ "id": 512, "in_irq": false, "size": 36, - "ts": 0.1539472 + "ts": 0.15398995 + }, + { + "addr": "0x3ffbafe0", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.154004325 }, { "core_id": 0, @@ -14767,64 +16287,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15396435 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.15398035 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824\n", - "ts": 0.154050675 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (462) example: Task[0x3ffba9dc]: allocated 36 bytes @ 0x3ffbb824\n", - "ts": 0.154050675 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.1540685 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.15408185 + "ts": 0.154016775 }, { "core_id": 1, @@ -14834,7 +16300,97 @@ "params": { "irq_num": 31 }, - "ts": 0.154098175 + "ts": 0.15403615 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.1540474 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.1540582 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.1540764 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014\n", + "ts": 0.154104125 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (449) example: Task[0x3ffba1a4]: allocated 36 bytes @ 0x3ffbb014\n", + "ts": 0.154104125 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.154117575 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.154134325 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.154134325 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.154150675 }, { "core_id": 0, @@ -14844,7 +16400,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.154109025 + "ts": 0.15416155 }, { "core_id": 1, @@ -14852,7 +16408,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.154119775 + "ts": 0.1541724 }, { "core_id": 0, @@ -14862,7 +16418,7 @@ "params": { "irq_num": 30 }, - "ts": 0.1541335 + "ts": 0.154186075 }, { "core_id": 1, @@ -14870,9 +16426,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.1541444 + "ts": 0.154196825 }, { "core_id": 0, @@ -14880,7 +16436,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.154155225 + "ts": 0.154207625 }, { "core_id": 1, @@ -14890,10 +16446,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.154167075 + "ts": 0.154219575 }, { "core_id": 0, @@ -14901,7 +16457,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.154178375 + "ts": 0.1542308 }, { "core_id": 1, @@ -14911,10 +16467,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.15419 + "ts": 0.154242625 }, { "core_id": 1, @@ -14924,10 +16480,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.1542064 + "ts": 0.154258875 }, { "core_id": 1, @@ -14935,8 +16491,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824\n", - "ts": 0.15426995 + "msg": "I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014\n", + "ts": 0.15430665 }, { "core_id": 1, @@ -14944,15 +16500,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (462) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb824\n", - "ts": 0.15426995 + "msg": "I (449) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb014\n", + "ts": 0.15430665 }, { - "addr": "0x3ffbb824", + "addr": "0x3ffbb014", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -14966,7 +16522,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.15429115 + "ts": 0.154328025 }, { "core_id": 1, @@ -14976,7 +16532,7 @@ "params": { "irq_num": 31 }, - "ts": 0.15432215 + "ts": 0.15435545 }, { "core_id": 1, @@ -14984,7 +16540,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.154333625 + "ts": 0.15436685 }, { "core_id": 1, @@ -14992,7 +16548,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.154350325 + "ts": 0.154383425 }, { "core_id": 1, @@ -15002,7 +16558,7 @@ "params": { "irq_num": 5 }, - "ts": 0.154666425 + "ts": 0.1544482 }, { "core_id": 1, @@ -15010,7 +16566,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.154679875 + "ts": 0.154461625 }, { "core_id": 1, @@ -15018,7 +16574,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15469545 + "ts": 0.1544772 }, { "core_id": 0, @@ -15028,7 +16584,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1548338 + "ts": 0.15454665 }, { "core_id": 0, @@ -15036,7 +16592,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1548492 + "ts": 0.154562 }, { "core_id": 0, @@ -15044,7 +16600,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.154864425 + "ts": 0.154577075 }, { "core_id": 1, @@ -15054,7 +16610,7 @@ "params": { "irq_num": 5 }, - "ts": 0.155666425 + "ts": 0.1554482 }, { "core_id": 1, @@ -15062,7 +16618,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15567995 + "ts": 0.155461725 }, { "core_id": 1, @@ -15070,7 +16626,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1556951 + "ts": 0.15547685 }, { "core_id": 0, @@ -15080,7 +16636,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1558338 + "ts": 0.15554665 }, { "core_id": 0, @@ -15088,7 +16644,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.155849175 + "ts": 0.15556205 }, { "core_id": 0, @@ -15096,7 +16652,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15586425 + "ts": 0.155577275 }, { "core_id": 1, @@ -15106,7 +16662,7 @@ "params": { "irq_num": 5 }, - "ts": 0.156666425 + "ts": 0.1564482 }, { "core_id": 1, @@ -15114,7 +16670,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.156680075 + "ts": 0.156461725 }, { "core_id": 1, @@ -15122,7 +16678,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15669535 + "ts": 0.15647685 }, { "core_id": 0, @@ -15132,7 +16688,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1568338 + "ts": 0.15654665 }, { "core_id": 0, @@ -15140,7 +16696,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.156849175 + "ts": 0.156565625 }, { "core_id": 0, @@ -15148,7 +16704,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15686425 + "ts": 0.15658085 }, { "core_id": 1, @@ -15158,7 +16714,7 @@ "params": { "irq_num": 5 }, - "ts": 0.157666425 + "ts": 0.1574482 }, { "core_id": 1, @@ -15166,7 +16722,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15768 + "ts": 0.157461725 }, { "core_id": 1, @@ -15174,7 +16730,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.157695125 + "ts": 0.15747685 }, { "core_id": 0, @@ -15184,7 +16740,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1578338 + "ts": 0.15754665 }, { "core_id": 0, @@ -15192,7 +16748,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.157849175 + "ts": 0.157562 }, { "core_id": 0, @@ -15200,7 +16756,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15786425 + "ts": 0.157577075 }, { "core_id": 1, @@ -15210,7 +16766,7 @@ "params": { "irq_num": 5 }, - "ts": 0.158666425 + "ts": 0.1584482 }, { "core_id": 1, @@ -15218,7 +16774,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.158680075 + "ts": 0.158461725 }, { "core_id": 1, @@ -15226,7 +16782,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.158695225 + "ts": 0.158476975 }, { "core_id": 0, @@ -15236,7 +16792,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1588338 + "ts": 0.15854665 }, { "core_id": 0, @@ -15244,7 +16800,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1588492 + "ts": 0.158562025 }, { "core_id": 0, @@ -15252,7 +16808,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.158864425 + "ts": 0.158577225 }, { "core_id": 1, @@ -15262,7 +16818,7 @@ "params": { "irq_num": 5 }, - "ts": 0.159666425 + "ts": 0.1594482 }, { "core_id": 1, @@ -15270,7 +16826,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.15967995 + "ts": 0.159461775 }, { "core_id": 1, @@ -15278,7 +16834,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1596951 + "ts": 0.1594769 }, { "core_id": 0, @@ -15288,7 +16844,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1598338 + "ts": 0.15954665 }, { "core_id": 0, @@ -15296,7 +16852,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.159849175 + "ts": 0.159562 }, { "core_id": 0, @@ -15304,7 +16860,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.15986425 + "ts": 0.159577075 }, { "core_id": 1, @@ -15314,7 +16870,7 @@ "params": { "irq_num": 5 }, - "ts": 0.160666425 + "ts": 0.1604482 }, { "core_id": 1, @@ -15322,7 +16878,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.160680075 + "ts": 0.160461725 }, { "core_id": 1, @@ -15330,7 +16886,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16069535 + "ts": 0.16047685 }, { "core_id": 0, @@ -15340,7 +16896,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1608338 + "ts": 0.16054665 }, { "core_id": 0, @@ -15348,7 +16904,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.160849175 + "ts": 0.16056205 }, { "core_id": 0, @@ -15356,7 +16912,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16086425 + "ts": 0.160577275 }, { "core_id": 1, @@ -15366,7 +16922,7 @@ "params": { "irq_num": 5 }, - "ts": 0.161666425 + "ts": 0.1614482 }, { "core_id": 1, @@ -15374,7 +16930,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.16168 + "ts": 0.161461725 }, { "core_id": 1, @@ -15382,7 +16938,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.161695125 + "ts": 0.16147685 }, { "core_id": 0, @@ -15392,7 +16948,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1618338 + "ts": 0.16154665 }, { "core_id": 0, @@ -15400,7 +16956,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.161849175 + "ts": 0.161562 }, { "core_id": 0, @@ -15408,7 +16964,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16186425 + "ts": 0.161577075 }, { "core_id": 1, @@ -15418,7 +16974,7 @@ "params": { "irq_num": 5 }, - "ts": 0.162666425 + "ts": 0.1624482 }, { "core_id": 1, @@ -15426,7 +16982,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.162680075 + "ts": 0.162461725 }, { "core_id": 1, @@ -15434,7 +16990,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.162695225 + "ts": 0.162476975 }, { "core_id": 0, @@ -15444,7 +17000,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1628338 + "ts": 0.16254665 }, { "core_id": 0, @@ -15452,7 +17008,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1628492 + "ts": 0.162562025 }, { "core_id": 0, @@ -15460,7 +17016,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.162864425 + "ts": 0.162577225 }, { "core_id": 1, @@ -15470,7 +17026,7 @@ "params": { "irq_num": 5 }, - "ts": 0.163666425 + "ts": 0.1634482 }, { "core_id": 1, @@ -15478,7 +17034,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.16367995 + "ts": 0.163461775 }, { "core_id": 1, @@ -15486,7 +17042,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1636951 + "ts": 0.1634769 }, { "core_id": 0, @@ -15496,7 +17052,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1638338 + "ts": 0.16354665 }, { "core_id": 0, @@ -15504,7 +17060,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.163849175 + "ts": 0.163562 }, { "core_id": 0, @@ -15512,7 +17068,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16386425 + "ts": 0.163577075 }, { "core_id": 1, @@ -15522,7 +17078,7 @@ "params": { "irq_num": 5 }, - "ts": 0.164666425 + "ts": 0.1644482 }, { "core_id": 1, @@ -15530,7 +17086,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.164683575 + "ts": 0.164461725 }, { "core_id": 1, @@ -15538,7 +17094,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.164698725 + "ts": 0.16447685 }, { "core_id": 0, @@ -15548,7 +17104,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1648338 + "ts": 0.16454665 }, { "core_id": 0, @@ -15556,7 +17112,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.164849175 + "ts": 0.16456205 }, { "core_id": 0, @@ -15564,7 +17120,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16486425 + "ts": 0.164577275 }, { "core_id": 1, @@ -15574,7 +17130,7 @@ "params": { "irq_num": 5 }, - "ts": 0.165666425 + "ts": 0.1654482 }, { "core_id": 1, @@ -15582,7 +17138,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.165680075 + "ts": 0.165461725 }, { "core_id": 1, @@ -15590,7 +17146,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.165695225 + "ts": 0.16547685 }, { "core_id": 0, @@ -15600,7 +17156,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1658338 + "ts": 0.16554665 }, { "core_id": 0, @@ -15608,7 +17164,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1658492 + "ts": 0.165562 }, { "core_id": 0, @@ -15616,7 +17172,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.165864425 + "ts": 0.165577075 }, { "core_id": 1, @@ -15626,7 +17182,7 @@ "params": { "irq_num": 5 }, - "ts": 0.166666425 + "ts": 0.1664482 }, { "core_id": 1, @@ -15634,7 +17190,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.16667995 + "ts": 0.166461725 }, { "core_id": 1, @@ -15642,7 +17198,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1666951 + "ts": 0.166476975 }, { "core_id": 0, @@ -15652,7 +17208,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1668338 + "ts": 0.16654665 }, { "core_id": 0, @@ -15660,7 +17216,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.166849175 + "ts": 0.166562025 }, { "core_id": 0, @@ -15668,7 +17224,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16686425 + "ts": 0.166577225 }, { "core_id": 1, @@ -15678,7 +17234,7 @@ "params": { "irq_num": 5 }, - "ts": 0.167666425 + "ts": 0.1674482 }, { "core_id": 1, @@ -15686,7 +17242,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.167680075 + "ts": 0.167461775 }, { "core_id": 1, @@ -15694,7 +17250,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16769535 + "ts": 0.1674769 }, { "core_id": 0, @@ -15704,7 +17260,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1678338 + "ts": 0.16754665 }, { "core_id": 0, @@ -15712,7 +17268,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.167849175 + "ts": 0.167562 }, { "core_id": 0, @@ -15720,7 +17276,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16786425 + "ts": 0.167577075 }, { "core_id": 1, @@ -15730,7 +17286,7 @@ "params": { "irq_num": 5 }, - "ts": 0.168666425 + "ts": 0.1684482 }, { "core_id": 1, @@ -15738,7 +17294,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.16868 + "ts": 0.168461725 }, { "core_id": 1, @@ -15746,7 +17302,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.168695125 + "ts": 0.16847685 }, { "core_id": 0, @@ -15756,7 +17312,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1688338 + "ts": 0.16854665 }, { "core_id": 0, @@ -15764,7 +17320,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.168849175 + "ts": 0.1685663 }, { "core_id": 0, @@ -15772,7 +17328,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.16886425 + "ts": 0.1685815 }, { "core_id": 1, @@ -15782,7 +17338,7 @@ "params": { "irq_num": 5 }, - "ts": 0.169666425 + "ts": 0.1694482 }, { "core_id": 1, @@ -15790,7 +17346,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.169680075 + "ts": 0.169461725 }, { "core_id": 1, @@ -15798,7 +17354,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.169695225 + "ts": 0.16947685 }, { "core_id": 0, @@ -15808,7 +17364,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1698338 + "ts": 0.16954665 }, { "core_id": 0, @@ -15816,7 +17372,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1698492 + "ts": 0.169562 }, { "core_id": 0, @@ -15824,7 +17380,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.169864425 + "ts": 0.169577075 }, { "core_id": 1, @@ -15834,7 +17390,7 @@ "params": { "irq_num": 5 }, - "ts": 0.170666425 + "ts": 0.1704482 }, { "core_id": 1, @@ -15842,7 +17398,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.17067995 + "ts": 0.170461725 }, { "core_id": 1, @@ -15850,7 +17406,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1706951 + "ts": 0.170476975 }, { "core_id": 0, @@ -15860,7 +17416,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1708338 + "ts": 0.17054665 }, { "core_id": 0, @@ -15868,7 +17424,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.170849175 + "ts": 0.170562025 }, { "core_id": 0, @@ -15876,7 +17432,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17086425 + "ts": 0.170577225 }, { "core_id": 1, @@ -15886,7 +17442,7 @@ "params": { "irq_num": 5 }, - "ts": 0.171666425 + "ts": 0.1714482 }, { "core_id": 1, @@ -15894,7 +17450,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.171680075 + "ts": 0.171461775 }, { "core_id": 1, @@ -15902,7 +17458,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17169535 + "ts": 0.1714769 }, { "core_id": 0, @@ -15912,7 +17468,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1718338 + "ts": 0.17154665 }, { "core_id": 0, @@ -15920,7 +17476,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.171849175 + "ts": 0.171562 }, { "core_id": 0, @@ -15928,7 +17484,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17186425 + "ts": 0.171577075 }, { "core_id": 1, @@ -15938,7 +17494,7 @@ "params": { "irq_num": 5 }, - "ts": 0.172666425 + "ts": 0.1724482 }, { "core_id": 1, @@ -15946,7 +17502,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.17268 + "ts": 0.172461725 }, { "core_id": 1, @@ -15954,7 +17510,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.172695125 + "ts": 0.17247685 }, { "core_id": 0, @@ -15964,7 +17520,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1728338 + "ts": 0.17254665 }, { "core_id": 0, @@ -15972,7 +17528,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.172849175 + "ts": 0.17256205 }, { "core_id": 0, @@ -15980,7 +17536,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17286425 + "ts": 0.172577275 }, { "core_id": 1, @@ -15990,7 +17546,7 @@ "params": { "irq_num": 5 }, - "ts": 0.173666425 + "ts": 0.1734482 }, { "core_id": 1, @@ -15998,7 +17554,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.173680075 + "ts": 0.173461725 }, { "core_id": 1, @@ -16006,7 +17562,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.173695225 + "ts": 0.17347685 }, { "core_id": 0, @@ -16016,7 +17572,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1738338 + "ts": 0.17354665 }, { "core_id": 0, @@ -16024,7 +17580,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1738492 + "ts": 0.173562 }, { "core_id": 0, @@ -16032,7 +17588,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.173864425 + "ts": 0.173577075 }, { "core_id": 1, @@ -16042,7 +17598,7 @@ "params": { "irq_num": 5 }, - "ts": 0.174666425 + "ts": 0.1744482 }, { "core_id": 1, @@ -16050,7 +17606,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.17467995 + "ts": 0.174461725 }, { "core_id": 1, @@ -16058,7 +17614,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1746951 + "ts": 0.174476975 }, { "core_id": 0, @@ -16068,7 +17624,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1748338 + "ts": 0.17454665 }, { "core_id": 0, @@ -16076,7 +17632,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.174849175 + "ts": 0.174562025 }, { "core_id": 0, @@ -16084,7 +17640,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17486425 + "ts": 0.174577225 }, { "core_id": 1, @@ -16094,7 +17650,7 @@ "params": { "irq_num": 5 }, - "ts": 0.175666425 + "ts": 0.1754482 }, { "core_id": 1, @@ -16102,7 +17658,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.175680075 + "ts": 0.175461775 }, { "core_id": 1, @@ -16110,7 +17666,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17569535 + "ts": 0.1754769 }, { "core_id": 0, @@ -16120,7 +17676,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1758338 + "ts": 0.17554665 }, { "core_id": 0, @@ -16128,7 +17684,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.175849175 + "ts": 0.175562 }, { "core_id": 0, @@ -16136,7 +17692,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17586425 + "ts": 0.175577075 }, { "core_id": 1, @@ -16146,7 +17702,7 @@ "params": { "irq_num": 5 }, - "ts": 0.176666425 + "ts": 0.1764482 }, { "core_id": 1, @@ -16154,7 +17710,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.176684225 + "ts": 0.176461725 }, { "core_id": 1, @@ -16162,7 +17718,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.176699375 + "ts": 0.17647685 }, { "core_id": 0, @@ -16172,7 +17728,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1768338 + "ts": 0.17654665 }, { "core_id": 0, @@ -16180,7 +17736,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.176849175 + "ts": 0.17656205 }, { "core_id": 0, @@ -16188,7 +17744,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17686425 + "ts": 0.176577275 }, { "core_id": 1, @@ -16198,7 +17754,7 @@ "params": { "irq_num": 5 }, - "ts": 0.177666425 + "ts": 0.1774482 }, { "core_id": 1, @@ -16206,7 +17762,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.177680075 + "ts": 0.177461725 }, { "core_id": 1, @@ -16214,7 +17770,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.177695225 + "ts": 0.17747685 }, { "core_id": 0, @@ -16224,7 +17780,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1778338 + "ts": 0.17754665 }, { "core_id": 0, @@ -16232,7 +17788,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1778492 + "ts": 0.177562 }, { "core_id": 0, @@ -16240,7 +17796,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.177864425 + "ts": 0.177577075 }, { "core_id": 1, @@ -16250,7 +17806,7 @@ "params": { "irq_num": 5 }, - "ts": 0.178666425 + "ts": 0.1784482 }, { "core_id": 1, @@ -16258,7 +17814,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.17867995 + "ts": 0.178461725 }, { "core_id": 1, @@ -16266,7 +17822,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1786951 + "ts": 0.178476975 }, { "core_id": 0, @@ -16276,7 +17832,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1788338 + "ts": 0.17854665 }, { "core_id": 0, @@ -16284,7 +17840,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.178849175 + "ts": 0.178562025 }, { "core_id": 0, @@ -16292,7 +17848,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17886425 + "ts": 0.178577225 }, { "core_id": 1, @@ -16302,7 +17858,7 @@ "params": { "irq_num": 5 }, - "ts": 0.179666425 + "ts": 0.1794482 }, { "core_id": 1, @@ -16310,7 +17866,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.179680075 + "ts": 0.179461775 }, { "core_id": 1, @@ -16318,7 +17874,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17969535 + "ts": 0.1794769 }, { "core_id": 0, @@ -16328,7 +17884,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1798338 + "ts": 0.17954665 }, { "core_id": 0, @@ -16336,7 +17892,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.179849175 + "ts": 0.179562 }, { "core_id": 0, @@ -16344,7 +17900,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.17986425 + "ts": 0.179577075 }, { "core_id": 1, @@ -16354,7 +17910,7 @@ "params": { "irq_num": 5 }, - "ts": 0.180666425 + "ts": 0.1804482 }, { "core_id": 1, @@ -16362,7 +17918,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18068 + "ts": 0.180461725 }, { "core_id": 1, @@ -16370,7 +17926,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.180695125 + "ts": 0.18047685 }, { "core_id": 0, @@ -16380,7 +17936,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1808338 + "ts": 0.18054665 }, { "core_id": 0, @@ -16388,7 +17944,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.180849175 + "ts": 0.1805663 }, { "core_id": 0, @@ -16396,7 +17952,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18086425 + "ts": 0.1805815 }, { "core_id": 1, @@ -16406,7 +17962,7 @@ "params": { "irq_num": 5 }, - "ts": 0.181666425 + "ts": 0.1814482 }, { "core_id": 1, @@ -16414,7 +17970,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.181680075 + "ts": 0.181461725 }, { "core_id": 1, @@ -16422,7 +17978,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.181695225 + "ts": 0.18147685 }, { "core_id": 0, @@ -16432,7 +17988,59 @@ "params": { "irq_num": 5 }, - "ts": 0.1818338 + "ts": 0.18154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.181562 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.181577075 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.1824482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.182461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.182476975 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.18254665 }, { "core_id": 0, @@ -16440,9 +18048,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.181848825 + "ts": 0.182561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.182561625 }, { "core_id": 0, @@ -16450,7 +18068,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.181861575 + "ts": 0.182574225 }, { "core_id": 0, @@ -16458,18 +18076,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.18187725 + "ts": 0.182589875 }, { - "addr": "0x3ffbb824", + "addr": "0x3ffbafe0", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16481,16 +18099,16 @@ "id": 512, "in_irq": false, "size": 7, - "ts": 0.181912575 + "ts": 0.1826249 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16502,7 +18120,7 @@ "id": 512, "in_irq": false, "size": 14, - "ts": 0.181947 + "ts": 0.182660375 }, { "core_id": 0, @@ -16512,10 +18130,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.181964025 + "ts": 0.1826773 }, { "core_id": 0, @@ -16525,10 +18143,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.181980025 + "ts": 0.18269325 }, { "core_id": 0, @@ -16536,8 +18154,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834\n", - "ts": 0.18205045 + "msg": "I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014\n", + "ts": 0.182748025 }, { "core_id": 0, @@ -16545,8 +18163,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb7aec]: allocated 14 bytes @ 0x3ffbb834\n", - "ts": 0.18205045 + "msg": "I (478) example: Task[0x3ffb72b4]: allocated 14 bytes @ 0x3ffbb014\n", + "ts": 0.182748025 }, { "core_id": 0, @@ -16556,10 +18174,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.1820682 + "ts": 0.1827615 }, { "core_id": 0, @@ -16567,9 +18185,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.182081425 + "ts": 0.18277885 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.18277885 }, { "core_id": 1, @@ -16579,7 +18207,7 @@ "params": { "irq_num": 31 }, - "ts": 0.18209765 + "ts": 0.1827951 }, { "core_id": 0, @@ -16589,7 +18217,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.182108525 + "ts": 0.18280605 }, { "core_id": 1, @@ -16597,7 +18225,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.182119275 + "ts": 0.182816825 }, { "core_id": 0, @@ -16607,7 +18235,7 @@ "params": { "irq_num": 30 }, - "ts": 0.182133125 + "ts": 0.18283055 }, { "core_id": 1, @@ -16615,9 +18243,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.182144 + "ts": 0.1828413 }, { "core_id": 0, @@ -16625,7 +18253,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.182154825 + "ts": 0.1828521 }, { "core_id": 1, @@ -16635,10 +18263,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.1821668 + "ts": 0.182864075 }, { "core_id": 0, @@ -16646,7 +18274,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18217705 + "ts": 0.182874325 }, { "core_id": 1, @@ -16656,10 +18284,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.18218845 + "ts": 0.182886075 }, { "core_id": 1, @@ -16669,10 +18297,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.182204825 + "ts": 0.18290235 }, { "core_id": 1, @@ -16680,8 +18308,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834\n", - "ts": 0.182268375 + "msg": "I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014\n", + "ts": 0.182950125 }, { "core_id": 1, @@ -16689,15 +18317,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (490) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb834\n", - "ts": 0.182268375 + "msg": "I (478) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb014\n", + "ts": 0.182950125 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16711,7 +18339,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.182289575 + "ts": 0.1829715 }, { "core_id": 1, @@ -16721,7 +18349,7 @@ "params": { "irq_num": 31 }, - "ts": 0.182320575 + "ts": 0.1829989 }, { "core_id": 1, @@ -16729,7 +18357,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18233205 + "ts": 0.183010325 }, { "core_id": 1, @@ -16737,7 +18365,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18234875 + "ts": 0.183026875 }, { "core_id": 1, @@ -16747,7 +18375,7 @@ "params": { "irq_num": 5 }, - "ts": 0.182666425 + "ts": 0.1834482 }, { "core_id": 1, @@ -16755,7 +18383,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.182679875 + "ts": 0.183461725 }, { "core_id": 1, @@ -16763,7 +18391,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18269545 + "ts": 0.1834773 }, { "core_id": 0, @@ -16773,7 +18401,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1828338 + "ts": 0.18354665 }, { "core_id": 0, @@ -16781,9 +18409,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.182848825 + "ts": 0.183561675 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.183561675 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.1835735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.1835735 }, { "core_id": 0, @@ -16791,7 +18449,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.182861575 + "ts": 0.183586 }, { "core_id": 0, @@ -16799,18 +18457,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.18287725 + "ts": 0.183601675 }, { - "addr": "0x3ffbb834", + "addr": "0x3ffbb014", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16822,16 +18480,16 @@ "id": 512, "in_irq": false, "size": 14, - "ts": 0.182912575 + "ts": 0.183638125 }, { - "addr": "0x3ffbb848", + "addr": "0x3ffbb028", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -16843,7 +18501,7 @@ "id": 512, "in_irq": false, "size": 28, - "ts": 0.182947 + "ts": 0.1836777 }, { "core_id": 0, @@ -16853,10 +18511,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.182964025 + "ts": 0.18369465 }, { "core_id": 0, @@ -16866,10 +18524,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.182980025 + "ts": 0.183710775 }, { "core_id": 0, @@ -16877,8 +18535,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848\n", - "ts": 0.18305045 + "msg": "I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028\n", + "ts": 0.1837655 }, { "core_id": 0, @@ -16886,8 +18544,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (491) example: Task[0x3ffb926c]: allocated 28 bytes @ 0x3ffbb848\n", - "ts": 0.18305045 + "msg": "I (479) example: Task[0x3ffb8a34]: allocated 28 bytes @ 0x3ffbb028\n", + "ts": 0.1837655 }, { "core_id": 0, @@ -16897,10 +18555,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.183064 + "ts": 0.18377895 }, { "core_id": 0, @@ -16908,9 +18566,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.183081425 + "ts": 0.183792325 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.183792325 }, { "core_id": 1, @@ -16920,7 +18588,7 @@ "params": { "irq_num": 31 }, - "ts": 0.183097725 + "ts": 0.183808675 }, { "core_id": 0, @@ -16930,7 +18598,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.183108575 + "ts": 0.183819525 }, { "core_id": 1, @@ -16938,7 +18606,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.183119325 + "ts": 0.18383035 }, { "core_id": 0, @@ -16948,7 +18616,7 @@ "params": { "irq_num": 30 }, - "ts": 0.18313305 + "ts": 0.183844125 }, { "core_id": 1, @@ -16956,9 +18624,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.1831439 + "ts": 0.183856075 }, { "core_id": 0, @@ -16966,7 +18634,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.183154725 + "ts": 0.183867225 }, { "core_id": 1, @@ -16976,18 +18644,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.1831666 + "ts": 0.183879175 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.18317685 + "params": { + "tid": 12296612 + }, + "ts": 0.183890825 }, { "core_id": 1, @@ -16997,10 +18667,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.183188325 + "ts": 0.1839025 }, { "core_id": 1, @@ -17010,148 +18680,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.183204625 + "ts": 0.183924575 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848\n", - "ts": 0.183268075 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (491) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb848\n", - "ts": 0.183268075 - }, - { - "addr": "0x3ffbb848", + "addr": "0x3ffbb048", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.18328925 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.18331625 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.183327675 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.18334425 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.183666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.18367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.18369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.1838338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.1838488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.183861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.18387725 - }, - { - "addr": "0x3ffbb848", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -17163,16 +18704,34 @@ "id": 512, "in_irq": false, "size": 21, - "ts": 0.18391265 + "ts": 0.18393615 }, { - "addr": "0x3ffbb864", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028\n", + "ts": 0.1839775 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffb961c]: free memory @ 0x3ffbb028\n", + "ts": 0.1839775 + }, + { + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -17184,7 +18743,28 @@ "id": 512, "in_irq": false, "size": 42, - "ts": 0.183951325 + "ts": 0.1839886 + }, + { + "addr": "0x3ffbb028", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.184003025 }, { "core_id": 0, @@ -17194,64 +18774,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.183968225 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.1839842 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864\n", - "ts": 0.18405455 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (492) example: Task[0x3ffba9dc]: allocated 42 bytes @ 0x3ffbb864\n", - "ts": 0.18405455 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.18406815 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.184081375 + "ts": 0.1840156 }, { "core_id": 1, @@ -17261,7 +18787,97 @@ "params": { "irq_num": 31 }, - "ts": 0.184097675 + "ts": 0.184034475 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.1840457 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.184056475 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.184074625 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064\n", + "ts": 0.184102425 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (479) example: Task[0x3ffba1a4]: allocated 42 bytes @ 0x3ffbb064\n", + "ts": 0.184102425 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.18412015 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.1841334 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.1841334 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.18414975 }, { "core_id": 0, @@ -17271,7 +18887,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.184108525 + "ts": 0.1841606 }, { "core_id": 1, @@ -17279,7 +18895,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1841193 + "ts": 0.184171425 }, { "core_id": 0, @@ -17289,7 +18905,7 @@ "params": { "irq_num": 30 }, - "ts": 0.184133175 + "ts": 0.184185225 }, { "core_id": 1, @@ -17297,9 +18913,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.18414405 + "ts": 0.184195975 }, { "core_id": 0, @@ -17307,7 +18923,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.184154875 + "ts": 0.18420675 }, { "core_id": 1, @@ -17317,10 +18933,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.18416675 + "ts": 0.18421885 }, { "core_id": 0, @@ -17328,7 +18944,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.184178025 + "ts": 0.18423005 }, { "core_id": 1, @@ -17338,10 +18954,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.184189675 + "ts": 0.1842424 }, { "core_id": 1, @@ -17351,10 +18967,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.184209375 + "ts": 0.184258625 }, { "core_id": 1, @@ -17362,8 +18978,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864\n", - "ts": 0.184272925 + "msg": "I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064\n", + "ts": 0.1843065 }, { "core_id": 1, @@ -17371,15 +18987,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (492) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb864\n", - "ts": 0.184272925 + "msg": "I (479) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb064\n", + "ts": 0.1843065 }, { - "addr": "0x3ffbb864", + "addr": "0x3ffbb064", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -17393,7 +19009,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.184294125 + "ts": 0.184327925 }, { "core_id": 1, @@ -17403,7 +19019,7 @@ "params": { "irq_num": 31 }, - "ts": 0.184321025 + "ts": 0.18435925 }, { "core_id": 1, @@ -17411,7 +19027,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.184332575 + "ts": 0.184370825 }, { "core_id": 1, @@ -17419,7 +19035,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18434915 + "ts": 0.184387525 }, { "core_id": 1, @@ -17429,7 +19045,7 @@ "params": { "irq_num": 5 }, - "ts": 0.184666425 + "ts": 0.1844482 }, { "core_id": 1, @@ -17437,7 +19053,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18467985 + "ts": 0.184461625 }, { "core_id": 1, @@ -17445,7 +19061,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18469555 + "ts": 0.1844772 }, { "core_id": 0, @@ -17455,7 +19071,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1848338 + "ts": 0.18454665 }, { "core_id": 0, @@ -17463,7 +19079,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.184849175 + "ts": 0.18456205 }, { "core_id": 0, @@ -17471,7 +19087,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18486425 + "ts": 0.184577275 }, { "core_id": 1, @@ -17481,7 +19097,7 @@ "params": { "irq_num": 5 }, - "ts": 0.185666425 + "ts": 0.1854482 }, { "core_id": 1, @@ -17489,7 +19105,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.185680075 + "ts": 0.185461725 }, { "core_id": 1, @@ -17497,7 +19113,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18569535 + "ts": 0.18547685 }, { "core_id": 0, @@ -17507,7 +19123,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1858338 + "ts": 0.18554665 }, { "core_id": 0, @@ -17515,7 +19131,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.185849175 + "ts": 0.185562 }, { "core_id": 0, @@ -17523,7 +19139,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18586425 + "ts": 0.185577075 }, { "core_id": 1, @@ -17533,7 +19149,7 @@ "params": { "irq_num": 5 }, - "ts": 0.186666425 + "ts": 0.1864482 }, { "core_id": 1, @@ -17541,7 +19157,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18668 + "ts": 0.186461725 }, { "core_id": 1, @@ -17549,7 +19165,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.186695125 + "ts": 0.186476975 }, { "core_id": 0, @@ -17559,7 +19175,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1868338 + "ts": 0.18654665 }, { "core_id": 0, @@ -17567,7 +19183,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.186849175 + "ts": 0.186562025 }, { "core_id": 0, @@ -17575,7 +19191,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18686425 + "ts": 0.186577225 }, { "core_id": 1, @@ -17585,7 +19201,7 @@ "params": { "irq_num": 5 }, - "ts": 0.187666425 + "ts": 0.1874482 }, { "core_id": 1, @@ -17593,7 +19209,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.187680075 + "ts": 0.187461775 }, { "core_id": 1, @@ -17601,7 +19217,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.187695225 + "ts": 0.1874769 }, { "core_id": 0, @@ -17611,7 +19227,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1878338 + "ts": 0.18754665 }, { "core_id": 0, @@ -17619,7 +19235,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1878492 + "ts": 0.187562 }, { "core_id": 0, @@ -17627,7 +19243,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.187864425 + "ts": 0.187577075 }, { "core_id": 1, @@ -17637,7 +19253,7 @@ "params": { "irq_num": 5 }, - "ts": 0.188666425 + "ts": 0.1884482 }, { "core_id": 1, @@ -17645,7 +19261,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.18867995 + "ts": 0.188461725 }, { "core_id": 1, @@ -17653,7 +19269,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1886951 + "ts": 0.18847685 }, { "core_id": 0, @@ -17663,7 +19279,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1888338 + "ts": 0.18854665 }, { "core_id": 0, @@ -17671,7 +19287,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.188849175 + "ts": 0.18856205 }, { "core_id": 0, @@ -17679,7 +19295,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18886425 + "ts": 0.188577275 }, { "core_id": 1, @@ -17689,7 +19305,7 @@ "params": { "irq_num": 5 }, - "ts": 0.189666425 + "ts": 0.1894482 }, { "core_id": 1, @@ -17697,7 +19313,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.189680075 + "ts": 0.189461725 }, { "core_id": 1, @@ -17705,7 +19321,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.18969535 + "ts": 0.18947685 }, { "core_id": 0, @@ -17715,7 +19331,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1898338 + "ts": 0.18954665 }, { "core_id": 0, @@ -17723,7 +19339,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.189849175 + "ts": 0.189562 }, { "core_id": 0, @@ -17731,7 +19347,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.189868575 + "ts": 0.189577075 }, { "core_id": 1, @@ -17741,7 +19357,7 @@ "params": { "irq_num": 5 }, - "ts": 0.190666425 + "ts": 0.1904482 }, { "core_id": 1, @@ -17749,7 +19365,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.19067995 + "ts": 0.190461725 }, { "core_id": 1, @@ -17757,7 +19373,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1906951 + "ts": 0.190476975 }, { "core_id": 0, @@ -17767,7 +19383,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1908338 + "ts": 0.19054665 }, { "core_id": 0, @@ -17775,7 +19391,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.190849175 + "ts": 0.190562025 }, { "core_id": 0, @@ -17783,7 +19399,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19086425 + "ts": 0.190577225 }, { "core_id": 1, @@ -17793,7 +19409,7 @@ "params": { "irq_num": 5 }, - "ts": 0.191666425 + "ts": 0.1914482 }, { "core_id": 1, @@ -17801,7 +19417,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.191680075 + "ts": 0.191461775 }, { "core_id": 1, @@ -17809,7 +19425,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19169535 + "ts": 0.1914769 }, { "core_id": 0, @@ -17819,7 +19435,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1918338 + "ts": 0.19154665 }, { "core_id": 0, @@ -17827,7 +19443,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.191849175 + "ts": 0.191562 }, { "core_id": 0, @@ -17835,7 +19451,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19186425 + "ts": 0.191577075 }, { "core_id": 1, @@ -17845,7 +19461,7 @@ "params": { "irq_num": 5 }, - "ts": 0.192666425 + "ts": 0.1924482 }, { "core_id": 1, @@ -17853,7 +19469,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.19268 + "ts": 0.192461725 }, { "core_id": 1, @@ -17861,7 +19477,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.192695125 + "ts": 0.19247685 }, { "core_id": 0, @@ -17871,7 +19487,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1928338 + "ts": 0.19254665 }, { "core_id": 0, @@ -17879,7 +19495,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.192849175 + "ts": 0.19256205 }, { "core_id": 0, @@ -17887,7 +19503,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19286425 + "ts": 0.192577275 }, { "core_id": 1, @@ -17897,7 +19513,7 @@ "params": { "irq_num": 5 }, - "ts": 0.193666425 + "ts": 0.1934482 }, { "core_id": 1, @@ -17905,7 +19521,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.193680075 + "ts": 0.193461725 }, { "core_id": 1, @@ -17913,7 +19529,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.193695225 + "ts": 0.19347685 }, { "core_id": 0, @@ -17923,7 +19539,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1938338 + "ts": 0.19354665 }, { "core_id": 0, @@ -17931,7 +19547,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1938492 + "ts": 0.193562 }, { "core_id": 0, @@ -17939,7 +19555,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.193864425 + "ts": 0.193577075 }, { "core_id": 1, @@ -17949,7 +19565,7 @@ "params": { "irq_num": 5 }, - "ts": 0.194666425 + "ts": 0.1944482 }, { "core_id": 1, @@ -17957,7 +19573,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.19467995 + "ts": 0.19446595 }, { "core_id": 1, @@ -17965,7 +19581,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1946951 + "ts": 0.1944811 }, { "core_id": 0, @@ -17975,7 +19591,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1948338 + "ts": 0.19454665 }, { "core_id": 0, @@ -17983,7 +19599,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.194849175 + "ts": 0.194562 }, { "core_id": 0, @@ -17991,7 +19607,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19486425 + "ts": 0.194577075 }, { "core_id": 1, @@ -18001,7 +19617,7 @@ "params": { "irq_num": 5 }, - "ts": 0.195666425 + "ts": 0.1954482 }, { "core_id": 1, @@ -18009,7 +19625,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.195680075 + "ts": 0.195461725 }, { "core_id": 1, @@ -18017,7 +19633,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19569535 + "ts": 0.19547685 }, { "core_id": 0, @@ -18027,7 +19643,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1958338 + "ts": 0.19554665 }, { "core_id": 0, @@ -18035,7 +19651,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.195849175 + "ts": 0.19556205 }, { "core_id": 0, @@ -18043,7 +19659,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19586425 + "ts": 0.195577275 }, { "core_id": 1, @@ -18053,7 +19669,7 @@ "params": { "irq_num": 5 }, - "ts": 0.196666425 + "ts": 0.1964482 }, { "core_id": 1, @@ -18061,7 +19677,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.19668 + "ts": 0.196461725 }, { "core_id": 1, @@ -18069,7 +19685,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.196695125 + "ts": 0.19647685 }, { "core_id": 0, @@ -18079,7 +19695,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1968338 + "ts": 0.19654665 }, { "core_id": 0, @@ -18087,7 +19703,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.196849175 + "ts": 0.196562 }, { "core_id": 0, @@ -18095,7 +19711,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19686425 + "ts": 0.196577075 }, { "core_id": 1, @@ -18105,7 +19721,7 @@ "params": { "irq_num": 5 }, - "ts": 0.197666425 + "ts": 0.1974482 }, { "core_id": 1, @@ -18113,7 +19729,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.197680075 + "ts": 0.197461725 }, { "core_id": 1, @@ -18121,7 +19737,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.197695225 + "ts": 0.197476975 }, { "core_id": 0, @@ -18131,7 +19747,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1978338 + "ts": 0.19754665 }, { "core_id": 0, @@ -18139,7 +19755,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.1978492 + "ts": 0.197562025 }, { "core_id": 0, @@ -18147,7 +19763,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.197864425 + "ts": 0.197577225 }, { "core_id": 1, @@ -18157,7 +19773,7 @@ "params": { "irq_num": 5 }, - "ts": 0.198666425 + "ts": 0.1984482 }, { "core_id": 1, @@ -18165,7 +19781,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.19867995 + "ts": 0.198461775 }, { "core_id": 1, @@ -18173,7 +19789,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.1986951 + "ts": 0.1984769 }, { "core_id": 0, @@ -18183,7 +19799,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1988338 + "ts": 0.19854665 }, { "core_id": 0, @@ -18191,7 +19807,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.198849175 + "ts": 0.198562 }, { "core_id": 0, @@ -18199,7 +19815,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19886425 + "ts": 0.198577075 }, { "core_id": 1, @@ -18209,7 +19825,7 @@ "params": { "irq_num": 5 }, - "ts": 0.199666425 + "ts": 0.1994482 }, { "core_id": 1, @@ -18217,7 +19833,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.199680075 + "ts": 0.199461725 }, { "core_id": 1, @@ -18225,7 +19841,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19969535 + "ts": 0.19947685 }, { "core_id": 0, @@ -18235,7 +19851,7 @@ "params": { "irq_num": 5 }, - "ts": 0.1998338 + "ts": 0.19954665 }, { "core_id": 0, @@ -18243,7 +19859,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.199849175 + "ts": 0.19956205 }, { "core_id": 0, @@ -18251,7 +19867,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.19986425 + "ts": 0.199577275 }, { "core_id": 1, @@ -18261,7 +19877,7 @@ "params": { "irq_num": 5 }, - "ts": 0.200666425 + "ts": 0.2004482 }, { "core_id": 1, @@ -18269,7 +19885,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.20068 + "ts": 0.200461725 }, { "core_id": 1, @@ -18277,7 +19893,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.200695125 + "ts": 0.20047685 }, { "core_id": 0, @@ -18287,7 +19903,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2008338 + "ts": 0.20054665 }, { "core_id": 0, @@ -18295,7 +19911,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.200849175 + "ts": 0.200562 }, { "core_id": 0, @@ -18303,7 +19919,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20086425 + "ts": 0.200577075 }, { "core_id": 1, @@ -18313,7 +19929,7 @@ "params": { "irq_num": 5 }, - "ts": 0.201666425 + "ts": 0.2014482 }, { "core_id": 1, @@ -18321,7 +19937,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.201680075 + "ts": 0.201461725 }, { "core_id": 1, @@ -18329,7 +19945,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.201695225 + "ts": 0.201476975 }, { "core_id": 0, @@ -18339,7 +19955,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2018338 + "ts": 0.20154665 }, { "core_id": 0, @@ -18347,7 +19963,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2018492 + "ts": 0.201562025 }, { "core_id": 0, @@ -18355,7 +19971,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.201864425 + "ts": 0.201577225 }, { "core_id": 1, @@ -18365,7 +19981,7 @@ "params": { "irq_num": 5 }, - "ts": 0.202666425 + "ts": 0.2024482 }, { "core_id": 1, @@ -18373,7 +19989,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.202680075 + "ts": 0.202461775 }, { "core_id": 1, @@ -18381,7 +19997,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20269535 + "ts": 0.2024769 }, { "core_id": 0, @@ -18391,7 +20007,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2028338 + "ts": 0.20254665 }, { "core_id": 0, @@ -18399,7 +20015,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.202849175 + "ts": 0.202562 }, { "core_id": 0, @@ -18407,7 +20023,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20286425 + "ts": 0.202577075 }, { "core_id": 1, @@ -18417,7 +20033,7 @@ "params": { "irq_num": 5 }, - "ts": 0.203666425 + "ts": 0.2034482 }, { "core_id": 1, @@ -18425,7 +20041,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.20368 + "ts": 0.203461725 }, { "core_id": 1, @@ -18433,7 +20049,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.203695125 + "ts": 0.20347685 }, { "core_id": 0, @@ -18443,7 +20059,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2038338 + "ts": 0.20354665 }, { "core_id": 0, @@ -18451,7 +20067,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.203849175 + "ts": 0.20356205 }, { "core_id": 0, @@ -18459,7 +20075,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20386425 + "ts": 0.203577275 }, { "core_id": 1, @@ -18469,7 +20085,7 @@ "params": { "irq_num": 5 }, - "ts": 0.204666425 + "ts": 0.2044482 }, { "core_id": 1, @@ -18477,7 +20093,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.204680075 + "ts": 0.204461725 }, { "core_id": 1, @@ -18485,7 +20101,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.204695225 + "ts": 0.20447685 }, { "core_id": 0, @@ -18495,7 +20111,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2048338 + "ts": 0.20454665 }, { "core_id": 0, @@ -18503,7 +20119,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2048492 + "ts": 0.204562 }, { "core_id": 0, @@ -18511,7 +20127,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.204864425 + "ts": 0.204577075 }, { "core_id": 1, @@ -18521,7 +20137,7 @@ "params": { "irq_num": 5 }, - "ts": 0.205666425 + "ts": 0.2054482 }, { "core_id": 1, @@ -18529,7 +20145,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.20567995 + "ts": 0.205461725 }, { "core_id": 1, @@ -18537,7 +20153,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2056951 + "ts": 0.205476975 }, { "core_id": 0, @@ -18547,7 +20163,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2058338 + "ts": 0.20554665 }, { "core_id": 0, @@ -18555,7 +20171,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.205849175 + "ts": 0.205562025 }, { "core_id": 0, @@ -18563,7 +20179,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20586425 + "ts": 0.205577225 }, { "core_id": 1, @@ -18573,7 +20189,7 @@ "params": { "irq_num": 5 }, - "ts": 0.206666425 + "ts": 0.2064482 }, { "core_id": 1, @@ -18581,7 +20197,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.206680075 + "ts": 0.206466 }, { "core_id": 1, @@ -18589,7 +20205,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20669535 + "ts": 0.206481125 }, { "core_id": 0, @@ -18599,7 +20215,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2068338 + "ts": 0.20654665 }, { "core_id": 0, @@ -18607,7 +20223,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.206849175 + "ts": 0.206562 }, { "core_id": 0, @@ -18615,7 +20231,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20686425 + "ts": 0.206577075 }, { "core_id": 1, @@ -18625,7 +20241,7 @@ "params": { "irq_num": 5 }, - "ts": 0.207666425 + "ts": 0.2074482 }, { "core_id": 1, @@ -18633,7 +20249,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.20768 + "ts": 0.207461725 }, { "core_id": 1, @@ -18641,7 +20257,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.207695125 + "ts": 0.20747685 }, { "core_id": 0, @@ -18651,7 +20267,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2078338 + "ts": 0.20754665 }, { "core_id": 0, @@ -18659,7 +20275,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.207849175 + "ts": 0.20756205 }, { "core_id": 0, @@ -18667,7 +20283,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20786425 + "ts": 0.207577275 }, { "core_id": 1, @@ -18677,7 +20293,7 @@ "params": { "irq_num": 5 }, - "ts": 0.208666425 + "ts": 0.2084482 }, { "core_id": 1, @@ -18685,7 +20301,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.208680075 + "ts": 0.208461725 }, { "core_id": 1, @@ -18693,7 +20309,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.208695225 + "ts": 0.20847685 }, { "core_id": 0, @@ -18703,7 +20319,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2088338 + "ts": 0.20854665 }, { "core_id": 0, @@ -18711,7 +20327,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2088492 + "ts": 0.208562 }, { "core_id": 0, @@ -18719,7 +20335,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.208864425 + "ts": 0.208577075 }, { "core_id": 1, @@ -18729,7 +20345,7 @@ "params": { "irq_num": 5 }, - "ts": 0.209666425 + "ts": 0.2094482 }, { "core_id": 1, @@ -18737,7 +20353,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.20967995 + "ts": 0.209461725 }, { "core_id": 1, @@ -18745,7 +20361,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2096951 + "ts": 0.209476975 }, { "core_id": 0, @@ -18755,7 +20371,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2098338 + "ts": 0.20954665 }, { "core_id": 0, @@ -18763,7 +20379,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.209849175 + "ts": 0.209562025 }, { "core_id": 0, @@ -18771,7 +20387,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.20986425 + "ts": 0.209577225 }, { "core_id": 1, @@ -18781,7 +20397,7 @@ "params": { "irq_num": 5 }, - "ts": 0.210666425 + "ts": 0.2104482 }, { "core_id": 1, @@ -18789,7 +20405,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.210680075 + "ts": 0.210461775 }, { "core_id": 1, @@ -18797,7 +20413,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21069535 + "ts": 0.2104769 }, { "core_id": 0, @@ -18807,7 +20423,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2108338 + "ts": 0.21054665 }, { "core_id": 0, @@ -18815,7 +20431,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.210849175 + "ts": 0.210562 }, { "core_id": 0, @@ -18823,7 +20439,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21086425 + "ts": 0.210577075 }, { "core_id": 1, @@ -18833,7 +20449,7 @@ "params": { "irq_num": 5 }, - "ts": 0.211666425 + "ts": 0.2114482 }, { "core_id": 1, @@ -18841,7 +20457,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21168 + "ts": 0.211461725 }, { "core_id": 1, @@ -18849,7 +20465,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.211695125 + "ts": 0.21147685 }, { "core_id": 0, @@ -18859,7 +20475,59 @@ "params": { "irq_num": 5 }, - "ts": 0.2118338 + "ts": 0.21154665 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.21156205 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.211577275 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2124482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.212461725 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.21247685 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.21254665 }, { "core_id": 0, @@ -18867,9 +20535,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.2118488 + "ts": 0.212561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.212561625 }, { "core_id": 0, @@ -18877,7 +20555,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.211861575 + "ts": 0.212574275 }, { "core_id": 0, @@ -18885,18 +20563,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.21187725 + "ts": 0.212590075 }, { - "addr": "0x3ffbb864", + "addr": "0x3ffbb028", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18908,16 +20586,16 @@ "id": 512, "in_irq": false, "size": 8, - "ts": 0.21191265 + "ts": 0.21262615 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -18929,7 +20607,7 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.21195125 + "ts": 0.212661725 }, { "core_id": 0, @@ -18939,10 +20617,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21196815 + "ts": 0.2126787 }, { "core_id": 0, @@ -18952,10 +20630,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21198415 + "ts": 0.212694675 }, { "core_id": 0, @@ -18963,8 +20641,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874\n", - "ts": 0.212054475 + "msg": "I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064\n", + "ts": 0.2127537 }, { "core_id": 0, @@ -18972,8 +20650,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb7aec]: allocated 16 bytes @ 0x3ffbb874\n", - "ts": 0.212054475 + "msg": "I (508) example: Task[0x3ffb72b4]: allocated 16 bytes @ 0x3ffbb064\n", + "ts": 0.2127537 }, { "core_id": 0, @@ -18983,10 +20661,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.212068075 + "ts": 0.212767175 }, { "core_id": 0, @@ -18994,9 +20672,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.2120813 + "ts": 0.21278035 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.21278035 }, { "core_id": 1, @@ -19006,7 +20694,7 @@ "params": { "irq_num": 31 }, - "ts": 0.212097675 + "ts": 0.21279655 }, { "core_id": 0, @@ -19016,7 +20704,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.212108525 + "ts": 0.2128075 }, { "core_id": 1, @@ -19024,7 +20712,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2121193 + "ts": 0.212818275 }, { "core_id": 0, @@ -19034,7 +20722,7 @@ "params": { "irq_num": 30 }, - "ts": 0.212133125 + "ts": 0.212832325 }, { "core_id": 1, @@ -19042,9 +20730,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.212144025 + "ts": 0.212844475 }, { "core_id": 0, @@ -19052,7 +20740,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21215485 + "ts": 0.212855425 }, { "core_id": 1, @@ -19062,10 +20750,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.2121668 + "ts": 0.212867375 }, { "core_id": 0, @@ -19073,7 +20761,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21217705 + "ts": 0.212877575 }, { "core_id": 1, @@ -19083,10 +20771,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.212188475 + "ts": 0.2128893 }, { "core_id": 1, @@ -19096,10 +20784,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21220885 + "ts": 0.21290565 }, { "core_id": 1, @@ -19107,8 +20795,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874\n", - "ts": 0.2122724 + "msg": "I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064\n", + "ts": 0.212953525 }, { "core_id": 1, @@ -19116,15 +20804,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (520) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb874\n", - "ts": 0.2122724 + "msg": "I (508) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb064\n", + "ts": 0.212953525 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19138,7 +20826,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.2122936 + "ts": 0.212974725 }, { "core_id": 1, @@ -19148,7 +20836,7 @@ "params": { "irq_num": 31 }, - "ts": 0.212320475 + "ts": 0.2130062 }, { "core_id": 1, @@ -19156,7 +20844,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2123319 + "ts": 0.21301765 }, { "core_id": 1, @@ -19164,7 +20852,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.212348475 + "ts": 0.21303435 }, { "core_id": 1, @@ -19174,7 +20862,7 @@ "params": { "irq_num": 5 }, - "ts": 0.212666425 + "ts": 0.2134482 }, { "core_id": 1, @@ -19182,7 +20870,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21267985 + "ts": 0.213461725 }, { "core_id": 1, @@ -19190,7 +20878,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21269555 + "ts": 0.2134773 }, { "core_id": 0, @@ -19200,7 +20888,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2128338 + "ts": 0.21354665 }, { "core_id": 0, @@ -19208,9 +20896,39 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.2128488 + "ts": 0.213561625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.213561625 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.2135735 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.2135735 }, { "core_id": 0, @@ -19218,7 +20936,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.212861575 + "ts": 0.213585975 }, { "core_id": 0, @@ -19226,18 +20944,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.212877375 + "ts": 0.213601625 }, { - "addr": "0x3ffbb874", + "addr": "0x3ffbb064", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19249,16 +20967,16 @@ "id": 512, "in_irq": false, "size": 16, - "ts": 0.212912775 + "ts": 0.213638 }, { - "addr": "0x3ffbb888", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19270,7 +20988,7 @@ "id": 512, "in_irq": false, "size": 32, - "ts": 0.212947475 + "ts": 0.213673625 }, { "core_id": 0, @@ -19280,10 +20998,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2129644 + "ts": 0.2136907 }, { "core_id": 0, @@ -19293,10 +21011,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.212984575 + "ts": 0.213706725 }, { "core_id": 0, @@ -19304,8 +21022,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888\n", - "ts": 0.213055025 + "msg": "I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078\n", + "ts": 0.213761525 }, { "core_id": 0, @@ -19313,8 +21031,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (521) example: Task[0x3ffb926c]: allocated 32 bytes @ 0x3ffbb888\n", - "ts": 0.213055025 + "msg": "I (509) example: Task[0x3ffb8a34]: allocated 32 bytes @ 0x3ffbb078\n", + "ts": 0.213761525 }, { "core_id": 0, @@ -19324,10 +21042,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.21306865 + "ts": 0.2137783 }, { "core_id": 0, @@ -19335,9 +21053,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.21308185 + "ts": 0.21379155 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.21379155 }, { "core_id": 1, @@ -19347,7 +21075,7 @@ "params": { "irq_num": 31 }, - "ts": 0.21309815 + "ts": 0.2138079 }, { "core_id": 0, @@ -19357,7 +21085,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.213109 + "ts": 0.21381875 }, { "core_id": 1, @@ -19365,7 +21093,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21311975 + "ts": 0.213829575 }, { "core_id": 0, @@ -19375,7 +21103,7 @@ "params": { "irq_num": 30 }, - "ts": 0.213133475 + "ts": 0.213843375 }, { "core_id": 1, @@ -19383,9 +21111,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.213144325 + "ts": 0.2138553 }, { "core_id": 0, @@ -19393,7 +21121,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21315515 + "ts": 0.213866475 }, { "core_id": 1, @@ -19403,18 +21131,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.213167025 + "ts": 0.2138784 }, { "core_id": 0, - "ctx_name": "alloc1", - "id": 17, + "ctx_name": "alloc2", + "id": 4, "in_irq": false, - "params": {}, - "ts": 0.213177275 + "params": { + "tid": 12296612 + }, + "ts": 0.21389005 }, { "core_id": 1, @@ -19424,10 +21154,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21318875 + "ts": 0.213901775 }, { "core_id": 1, @@ -19437,148 +21167,19 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21320505 + "ts": 0.21392035 }, { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888\n", - "ts": 0.2132685 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (521) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb888\n", - "ts": 0.2132685 - }, - { - "addr": "0x3ffbb888", + "addr": "0x3ffbb09c", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0", - "0x0" - ], - "core_id": 1, - "ctx_name": "free1", - "id": 513, - "in_irq": false, - "size": 0, - "ts": 0.21329355 - }, - { - "core_id": 1, - "ctx_name": "FROM_CPU1", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 31 - }, - "ts": 0.21332055 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.213331975 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.21334855 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.213666425 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.21367985 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.21369555 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2138338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.2138488 - }, - { - "core_id": 0, - "ctx_name": "alloc1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.213861575 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12298716 - }, - "ts": 0.21387725 - }, - { - "addr": "0x3ffbb888", - "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19590,16 +21191,34 @@ "id": 512, "in_irq": false, "size": 24, - "ts": 0.21391265 + "ts": 0.213933475 }, { - "addr": "0x3ffbb8a4", + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078\n", + "ts": 0.21397405 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffb961c]: free memory @ 0x3ffbb078\n", + "ts": 0.21397405 + }, + { + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19611,7 +21230,28 @@ "id": 512, "in_irq": false, "size": 48, - "ts": 0.2139472 + "ts": 0.213990025 + }, + { + "addr": "0x3ffbb078", + "callers": [ + "0x4008da24", + "0x400d3c72", + "0x400880dc", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "core_id": 1, + "ctx_name": "free1", + "id": 513, + "in_irq": false, + "size": 0, + "ts": 0.214004375 }, { "core_id": 0, @@ -19621,64 +21261,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21396435 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12283904, - "xTicksToWait": 0 - }, - "ts": 0.21398035 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4\n", - "ts": 0.214050675 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 26, - "in_irq": false, - "lvl": 0, - "msg": "I (522) example: Task[0x3ffba9dc]: allocated 48 bytes @ 0x3ffbb8a4\n", - "ts": 0.214050675 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 53, - "in_irq": false, - "params": { - "pvItemToQueue": 0, - "xCopyPosition": 0, - "xQueue": 12299072, - "xTicksToWait": 0 - }, - "ts": 0.214071175 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 6, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.2140844 + "ts": 0.214016825 }, { "core_id": 1, @@ -19688,7 +21274,197 @@ "params": { "irq_num": 31 }, - "ts": 0.214100725 + "ts": 0.214035975 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12281672, + "xTicksToWait": 0 + }, + "ts": 0.214047225 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.214058075 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.21407635 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8\n", + "ts": 0.2141042 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 26, + "in_irq": false, + "lvl": 0, + "msg": "I (509) example: Task[0x3ffba1a4]: allocated 48 bytes @ 0x3ffbb0b8\n", + "ts": 0.2141042 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 53, + "in_irq": false, + "params": { + "pvItemToQueue": 0, + "xCopyPosition": 0, + "xQueue": 12296968, + "xTicksToWait": 0 + }, + "ts": 0.21411765 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.215663675 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.215675325 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12299660 + }, + "ts": 0.215675325 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215693125 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.21570425 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.215715175 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215726825 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215737325 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.215748175 + }, + { + "core_id": 1, + "ctx_name": "FROM_CPU1", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 31 + }, + "ts": 0.215759125 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.21577085 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.215781625 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.215793125 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 4, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.215810975 }, { "core_id": 0, @@ -19698,43 +21474,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.214111575 - }, - { - "core_id": 1, - "ctx_name": "free1", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.214122325 - }, - { - "core_id": 0, - "ctx_name": "FROM_CPU0", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 30 - }, - "ts": 0.21413605 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 4, - "in_irq": false, - "params": { - "tid": 12301764 - }, - "ts": 0.21414695 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.214157775 + "ts": 0.2158248 }, { "core_id": 1, @@ -19744,18 +21484,20 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.214169625 + "ts": 0.215837075 }, { "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.214180925 + "ctx_name": "FROM_CPU0", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 30 + }, + "ts": 0.215848525 }, { "core_id": 1, @@ -19765,10 +21507,18 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.21419255 + "ts": 0.2158606 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.21587165 }, { "core_id": 1, @@ -19778,10 +21528,18 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.21420895 + "ts": 0.215883675 + }, + { + "core_id": 0, + "ctx_name": "alloc2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.215894125 }, { "core_id": 1, @@ -19789,8 +21547,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4\n", - "ts": 0.2142725 + "msg": "I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.215944175 }, { "core_id": 1, @@ -19798,15 +21556,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (522) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8a4\n", - "ts": 0.2142725 + "msg": "I (511) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.215944175 }, { - "addr": "0x3ffbb8a4", + "addr": "0x3ffbb0b8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -19820,7 +21578,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.2142937 + "ts": 0.21596555 }, { "core_id": 1, @@ -19830,7 +21588,7 @@ "params": { "irq_num": 31 }, - "ts": 0.214324025 + "ts": 0.215992975 }, { "core_id": 1, @@ -19838,7 +21596,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2143355 + "ts": 0.216004375 }, { "core_id": 1, @@ -19846,7 +21604,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2143522 + "ts": 0.21602095 }, { "core_id": 1, @@ -19856,7 +21614,7 @@ "params": { "irq_num": 5 }, - "ts": 0.214666425 + "ts": 0.2164482 }, { "core_id": 1, @@ -19864,7 +21622,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.214679875 + "ts": 0.216461725 }, { "core_id": 1, @@ -19872,7 +21630,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21469545 + "ts": 0.2164773 }, { "core_id": 0, @@ -19882,7 +21640,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2148338 + "ts": 0.21654665 }, { "core_id": 0, @@ -19890,7 +21648,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2148492 + "ts": 0.21656205 }, { "core_id": 0, @@ -19898,7 +21656,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.214864425 + "ts": 0.216577275 }, { "core_id": 1, @@ -19908,7 +21666,7 @@ "params": { "irq_num": 5 }, - "ts": 0.215666425 + "ts": 0.2174482 }, { "core_id": 1, @@ -19916,7 +21674,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21567995 + "ts": 0.217461725 }, { "core_id": 1, @@ -19924,7 +21682,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2156951 + "ts": 0.217476975 }, { "core_id": 0, @@ -19934,7 +21692,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2158338 + "ts": 0.21754665 }, { "core_id": 0, @@ -19942,7 +21700,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.215849175 + "ts": 0.217562025 }, { "core_id": 0, @@ -19950,7 +21708,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21586425 + "ts": 0.217577225 }, { "core_id": 1, @@ -19960,7 +21718,7 @@ "params": { "irq_num": 5 }, - "ts": 0.216666425 + "ts": 0.2184482 }, { "core_id": 1, @@ -19968,7 +21726,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.216680075 + "ts": 0.218461775 }, { "core_id": 1, @@ -19976,7 +21734,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21669535 + "ts": 0.2184769 }, { "core_id": 0, @@ -19986,7 +21744,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2168338 + "ts": 0.21854665 }, { "core_id": 0, @@ -19994,7 +21752,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.216849175 + "ts": 0.218562 }, { "core_id": 0, @@ -20002,7 +21760,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21686425 + "ts": 0.218577075 }, { "core_id": 1, @@ -20012,7 +21770,7 @@ "params": { "irq_num": 5 }, - "ts": 0.217666425 + "ts": 0.2194482 }, { "core_id": 1, @@ -20020,7 +21778,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21768 + "ts": 0.219461725 }, { "core_id": 1, @@ -20028,7 +21786,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.217695125 + "ts": 0.21947685 }, { "core_id": 0, @@ -20038,7 +21796,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2178338 + "ts": 0.21954665 }, { "core_id": 0, @@ -20046,7 +21804,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.217849175 + "ts": 0.21956205 }, { "core_id": 0, @@ -20054,7 +21812,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21786425 + "ts": 0.219577275 }, { "core_id": 1, @@ -20064,7 +21822,7 @@ "params": { "irq_num": 5 }, - "ts": 0.218666425 + "ts": 0.2204482 }, { "core_id": 1, @@ -20072,7 +21830,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.218680075 + "ts": 0.220461725 }, { "core_id": 1, @@ -20080,7 +21838,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.218695225 + "ts": 0.22047685 }, { "core_id": 0, @@ -20090,7 +21848,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2188338 + "ts": 0.22054665 }, { "core_id": 0, @@ -20098,7 +21856,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2188492 + "ts": 0.220562 }, { "core_id": 0, @@ -20106,7 +21864,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.218864425 + "ts": 0.220577075 }, { "core_id": 1, @@ -20116,7 +21874,7 @@ "params": { "irq_num": 5 }, - "ts": 0.219666425 + "ts": 0.2214482 }, { "core_id": 1, @@ -20124,7 +21882,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.21967995 + "ts": 0.221461725 }, { "core_id": 1, @@ -20132,7 +21890,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2196951 + "ts": 0.221476975 }, { "core_id": 0, @@ -20142,7 +21900,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2198338 + "ts": 0.22154665 }, { "core_id": 0, @@ -20150,7 +21908,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.219849175 + "ts": 0.221562025 }, { "core_id": 0, @@ -20158,7 +21916,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.21986425 + "ts": 0.221577225 }, { "core_id": 1, @@ -20168,7 +21926,7 @@ "params": { "irq_num": 5 }, - "ts": 0.220666425 + "ts": 0.2224482 }, { "core_id": 1, @@ -20176,7 +21934,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.220680075 + "ts": 0.222461775 }, { "core_id": 1, @@ -20184,7 +21942,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22069535 + "ts": 0.2224769 }, { "core_id": 0, @@ -20194,7 +21952,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2208338 + "ts": 0.22254665 }, { "core_id": 0, @@ -20202,7 +21960,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.220849175 + "ts": 0.222562 }, { "core_id": 0, @@ -20210,7 +21968,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22086425 + "ts": 0.222577075 }, { "core_id": 1, @@ -20220,7 +21978,7 @@ "params": { "irq_num": 5 }, - "ts": 0.221666425 + "ts": 0.2234482 }, { "core_id": 1, @@ -20228,7 +21986,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.22168 + "ts": 0.223461725 }, { "core_id": 1, @@ -20236,7 +21994,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.221695125 + "ts": 0.22347685 }, { "core_id": 0, @@ -20246,7 +22004,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2218338 + "ts": 0.22354665 }, { "core_id": 0, @@ -20254,7 +22012,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.221849175 + "ts": 0.22356205 }, { "core_id": 0, @@ -20262,7 +22020,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22186425 + "ts": 0.223577275 }, { "core_id": 1, @@ -20272,7 +22030,7 @@ "params": { "irq_num": 5 }, - "ts": 0.222666425 + "ts": 0.2244482 }, { "core_id": 1, @@ -20280,7 +22038,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.222680075 + "ts": 0.224461725 }, { "core_id": 1, @@ -20288,7 +22046,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.222695225 + "ts": 0.22447685 }, { "core_id": 0, @@ -20298,7 +22056,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2228338 + "ts": 0.22454665 }, { "core_id": 0, @@ -20306,7 +22064,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2228492 + "ts": 0.224562 }, { "core_id": 0, @@ -20314,7 +22072,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.222864425 + "ts": 0.224577075 }, { "core_id": 1, @@ -20324,7 +22082,7 @@ "params": { "irq_num": 5 }, - "ts": 0.223666425 + "ts": 0.2254482 }, { "core_id": 1, @@ -20332,7 +22090,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.22367995 + "ts": 0.225461725 }, { "core_id": 1, @@ -20340,7 +22098,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2236951 + "ts": 0.225476975 }, { "core_id": 0, @@ -20350,7 +22108,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2238338 + "ts": 0.22554665 }, { "core_id": 0, @@ -20358,7 +22116,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.223849175 + "ts": 0.225562025 }, { "core_id": 0, @@ -20366,7 +22124,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22386425 + "ts": 0.225577225 }, { "core_id": 1, @@ -20376,7 +22134,7 @@ "params": { "irq_num": 5 }, - "ts": 0.224666425 + "ts": 0.2264482 }, { "core_id": 1, @@ -20384,7 +22142,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2246842 + "ts": 0.226461775 }, { "core_id": 1, @@ -20392,7 +22150,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22469935 + "ts": 0.2264769 }, { "core_id": 0, @@ -20402,7 +22160,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2248338 + "ts": 0.22654665 }, { "core_id": 0, @@ -20410,7 +22168,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.224849175 + "ts": 0.226562 }, { "core_id": 0, @@ -20418,7 +22176,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22486425 + "ts": 0.226577075 }, { "core_id": 1, @@ -20428,7 +22186,7 @@ "params": { "irq_num": 5 }, - "ts": 0.225666425 + "ts": 0.2274482 }, { "core_id": 1, @@ -20436,7 +22194,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.225680075 + "ts": 0.227461725 }, { "core_id": 1, @@ -20444,7 +22202,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.225695225 + "ts": 0.22747685 }, { "core_id": 0, @@ -20454,7 +22212,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2258338 + "ts": 0.22754665 }, { "core_id": 0, @@ -20462,7 +22220,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2258492 + "ts": 0.22756205 }, { "core_id": 0, @@ -20470,7 +22228,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.225864425 + "ts": 0.227577275 }, { "core_id": 1, @@ -20480,7 +22238,7 @@ "params": { "irq_num": 5 }, - "ts": 0.226666425 + "ts": 0.2284482 }, { "core_id": 1, @@ -20488,7 +22246,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.22667995 + "ts": 0.228461725 }, { "core_id": 1, @@ -20496,7 +22254,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2266951 + "ts": 0.22847685 }, { "core_id": 0, @@ -20506,7 +22264,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2268338 + "ts": 0.22854665 }, { "core_id": 0, @@ -20514,7 +22272,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.226849175 + "ts": 0.228562 }, { "core_id": 0, @@ -20522,7 +22280,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22686425 + "ts": 0.228577075 }, { "core_id": 1, @@ -20532,7 +22290,7 @@ "params": { "irq_num": 5 }, - "ts": 0.227666425 + "ts": 0.2294482 }, { "core_id": 1, @@ -20540,7 +22298,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.227680075 + "ts": 0.229466 }, { "core_id": 1, @@ -20548,7 +22306,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22769535 + "ts": 0.229481125 }, { "core_id": 0, @@ -20558,7 +22316,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2278338 + "ts": 0.22954665 }, { "core_id": 0, @@ -20566,7 +22324,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.227849175 + "ts": 0.229562 }, { "core_id": 0, @@ -20574,7 +22332,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22786425 + "ts": 0.229577075 }, { "core_id": 1, @@ -20584,7 +22342,7 @@ "params": { "irq_num": 5 }, - "ts": 0.228666425 + "ts": 0.2304482 }, { "core_id": 1, @@ -20592,7 +22350,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.22868 + "ts": 0.230461725 }, { "core_id": 1, @@ -20600,7 +22358,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.228695125 + "ts": 0.23047685 }, { "core_id": 0, @@ -20610,7 +22368,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2288338 + "ts": 0.23054665 }, { "core_id": 0, @@ -20618,7 +22376,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.228849175 + "ts": 0.23056205 }, { "core_id": 0, @@ -20626,7 +22384,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.22886425 + "ts": 0.230577275 }, { "core_id": 1, @@ -20636,7 +22394,7 @@ "params": { "irq_num": 5 }, - "ts": 0.229666425 + "ts": 0.2314482 }, { "core_id": 1, @@ -20644,7 +22402,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.229680075 + "ts": 0.231461725 }, { "core_id": 1, @@ -20652,7 +22410,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.229695225 + "ts": 0.23147685 }, { "core_id": 0, @@ -20662,7 +22420,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2298338 + "ts": 0.23154665 }, { "core_id": 0, @@ -20670,7 +22428,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2298492 + "ts": 0.231562 }, { "core_id": 0, @@ -20678,7 +22436,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.229864425 + "ts": 0.231577075 }, { "core_id": 1, @@ -20688,7 +22446,7 @@ "params": { "irq_num": 5 }, - "ts": 0.230666425 + "ts": 0.2324482 }, { "core_id": 1, @@ -20696,7 +22454,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.23067995 + "ts": 0.232461725 }, { "core_id": 1, @@ -20704,7 +22462,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2306951 + "ts": 0.232476975 }, { "core_id": 0, @@ -20714,7 +22472,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2308338 + "ts": 0.23254665 }, { "core_id": 0, @@ -20722,7 +22480,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.230849175 + "ts": 0.232562025 }, { "core_id": 0, @@ -20730,7 +22488,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23086425 + "ts": 0.232577225 }, { "core_id": 1, @@ -20740,7 +22498,7 @@ "params": { "irq_num": 5 }, - "ts": 0.231666425 + "ts": 0.2334482 }, { "core_id": 1, @@ -20748,7 +22506,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.231680075 + "ts": 0.233461775 }, { "core_id": 1, @@ -20756,7 +22514,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23169535 + "ts": 0.2334769 }, { "core_id": 0, @@ -20766,7 +22524,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2318338 + "ts": 0.23354665 }, { "core_id": 0, @@ -20774,7 +22532,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.231849175 + "ts": 0.233562 }, { "core_id": 0, @@ -20782,7 +22540,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23186425 + "ts": 0.233577075 }, { "core_id": 1, @@ -20792,7 +22550,7 @@ "params": { "irq_num": 5 }, - "ts": 0.232666425 + "ts": 0.2344482 }, { "core_id": 1, @@ -20800,7 +22558,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.23268 + "ts": 0.234461725 }, { "core_id": 1, @@ -20808,7 +22566,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.232695125 + "ts": 0.23447685 }, { "core_id": 0, @@ -20818,7 +22576,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2328338 + "ts": 0.23454665 }, { "core_id": 0, @@ -20826,7 +22584,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.232849175 + "ts": 0.23456205 }, { "core_id": 0, @@ -20834,7 +22592,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23286425 + "ts": 0.234577275 }, { "core_id": 1, @@ -20844,7 +22602,7 @@ "params": { "irq_num": 5 }, - "ts": 0.233666425 + "ts": 0.2354482 }, { "core_id": 1, @@ -20852,7 +22610,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.233680075 + "ts": 0.235461725 }, { "core_id": 1, @@ -20860,7 +22618,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.233695225 + "ts": 0.23547685 }, { "core_id": 0, @@ -20870,7 +22628,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2338338 + "ts": 0.23554665 }, { "core_id": 0, @@ -20878,7 +22636,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2338492 + "ts": 0.235562 }, { "core_id": 0, @@ -20886,7 +22644,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.233864425 + "ts": 0.235577075 }, { "core_id": 1, @@ -20896,7 +22654,7 @@ "params": { "irq_num": 5 }, - "ts": 0.234666425 + "ts": 0.2364482 }, { "core_id": 1, @@ -20904,7 +22662,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.23467995 + "ts": 0.236461725 }, { "core_id": 1, @@ -20912,7 +22670,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2346951 + "ts": 0.236476975 }, { "core_id": 0, @@ -20922,7 +22680,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2348338 + "ts": 0.23654665 }, { "core_id": 0, @@ -20930,7 +22688,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.234849175 + "ts": 0.236562025 }, { "core_id": 0, @@ -20938,7 +22696,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23486425 + "ts": 0.236577225 }, { "core_id": 1, @@ -20948,7 +22706,7 @@ "params": { "irq_num": 5 }, - "ts": 0.235666425 + "ts": 0.2374482 }, { "core_id": 1, @@ -20956,7 +22714,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.235680075 + "ts": 0.237461775 }, { "core_id": 1, @@ -20964,7 +22722,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23569535 + "ts": 0.2374769 }, { "core_id": 0, @@ -20974,7 +22732,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2358338 + "ts": 0.23754665 }, { "core_id": 0, @@ -20982,7 +22740,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.235849175 + "ts": 0.237562 }, { "core_id": 0, @@ -20990,7 +22748,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23586425 + "ts": 0.237577075 }, { "core_id": 1, @@ -21000,7 +22758,7 @@ "params": { "irq_num": 5 }, - "ts": 0.236666425 + "ts": 0.2384482 }, { "core_id": 1, @@ -21008,7 +22766,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.23668355 + "ts": 0.238461725 }, { "core_id": 1, @@ -21016,7 +22774,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.236698675 + "ts": 0.23847685 }, { "core_id": 0, @@ -21026,7 +22784,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2368338 + "ts": 0.23854665 }, { "core_id": 0, @@ -21034,7 +22792,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.236849175 + "ts": 0.23856205 }, { "core_id": 0, @@ -21042,7 +22800,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23686425 + "ts": 0.238577275 }, { "core_id": 1, @@ -21052,7 +22810,7 @@ "params": { "irq_num": 5 }, - "ts": 0.237666425 + "ts": 0.2394482 }, { "core_id": 1, @@ -21060,7 +22818,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.237680075 + "ts": 0.239461725 }, { "core_id": 1, @@ -21068,7 +22826,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.237695225 + "ts": 0.23947685 }, { "core_id": 0, @@ -21078,7 +22836,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2378338 + "ts": 0.23954665 }, { "core_id": 0, @@ -21086,7 +22844,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2378492 + "ts": 0.239562 }, { "core_id": 0, @@ -21094,7 +22852,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.237864425 + "ts": 0.239577075 }, { "core_id": 1, @@ -21104,7 +22862,7 @@ "params": { "irq_num": 5 }, - "ts": 0.238666425 + "ts": 0.2404482 }, { "core_id": 1, @@ -21112,7 +22870,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.23867995 + "ts": 0.240461725 }, { "core_id": 1, @@ -21120,7 +22878,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2386951 + "ts": 0.240476975 }, { "core_id": 0, @@ -21130,7 +22888,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2388338 + "ts": 0.24054665 }, { "core_id": 0, @@ -21138,7 +22896,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.238849175 + "ts": 0.240562025 }, { "core_id": 0, @@ -21146,7 +22904,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23886425 + "ts": 0.240577225 }, { "core_id": 1, @@ -21156,7 +22914,7 @@ "params": { "irq_num": 5 }, - "ts": 0.239666425 + "ts": 0.2414482 }, { "core_id": 1, @@ -21164,7 +22922,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.239680075 + "ts": 0.2414653 }, { "core_id": 1, @@ -21172,7 +22930,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23969535 + "ts": 0.24148045 }, { "core_id": 0, @@ -21182,7 +22940,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2398338 + "ts": 0.24154665 }, { "core_id": 0, @@ -21190,7 +22948,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.239849175 + "ts": 0.241562 }, { "core_id": 0, @@ -21198,7 +22956,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.23986425 + "ts": 0.241577075 }, { "core_id": 1, @@ -21208,7 +22966,7 @@ "params": { "irq_num": 5 }, - "ts": 0.240666425 + "ts": 0.2424482 }, { "core_id": 1, @@ -21216,7 +22974,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24068 + "ts": 0.242461725 }, { "core_id": 1, @@ -21224,7 +22982,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.240695125 + "ts": 0.24247685 }, { "core_id": 0, @@ -21234,59 +22992,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2408338 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.240849175 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.24086425 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.241666425 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.241680075 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.241695225 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2418338 + "ts": 0.24254665 }, { "core_id": 0, @@ -21294,9 +23000,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.241848825 + "ts": 0.242561675 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.242561675 }, { "core_id": 0, @@ -21304,7 +23020,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.241861575 + "ts": 0.242574275 }, { "core_id": 0, @@ -21312,18 +23028,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.24187725 + "ts": 0.242589925 }, { - "addr": "0x3ffbb8a4", + "addr": "0x3ffbb038", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21335,16 +23051,16 @@ "id": 512, "in_irq": false, "size": 9, - "ts": 0.241912575 + "ts": 0.2426249 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21356,7 +23072,7 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.241947 + "ts": 0.24265915 }, { "core_id": 0, @@ -21366,10 +23082,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.241964025 + "ts": 0.2426762 }, { "core_id": 0, @@ -21379,10 +23095,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.241980025 + "ts": 0.242692225 }, { "core_id": 0, @@ -21390,8 +23106,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4\n", - "ts": 0.24205045 + "msg": "I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078\n", + "ts": 0.24274705 }, { "core_id": 0, @@ -21399,8 +23115,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb7aec]: allocated 18 bytes @ 0x3ffbb8b4\n", - "ts": 0.24205045 + "msg": "I (538) example: Task[0x3ffb72b4]: allocated 18 bytes @ 0x3ffbb078\n", + "ts": 0.24274705 }, { "core_id": 0, @@ -21410,10 +23126,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 0 }, - "ts": 0.242068275 + "ts": 0.242760425 }, { "core_id": 0, @@ -21421,9 +23137,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.2420815 + "ts": 0.242773825 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12287644 + }, + "ts": 0.242773825 }, { "core_id": 1, @@ -21433,7 +23159,7 @@ "params": { "irq_num": 31 }, - "ts": 0.242097725 + "ts": 0.24279 }, { "core_id": 0, @@ -21443,7 +23169,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.2421086 + "ts": 0.2428059 }, { "core_id": 1, @@ -21451,7 +23177,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24211935 + "ts": 0.2428166 }, { "core_id": 0, @@ -21461,7 +23187,7 @@ "params": { "irq_num": 30 }, - "ts": 0.2421332 + "ts": 0.242830325 }, { "core_id": 1, @@ -21469,9 +23195,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12289748 + "tid": 12287644 }, - "ts": 0.242144075 + "ts": 0.2428411 }, { "core_id": 0, @@ -21479,7 +23205,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2421549 + "ts": 0.24285185 }, { "core_id": 1, @@ -21489,10 +23215,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12287056, + "xQueue": 12284952, "xTicksToWait": 4294967295 }, - "ts": 0.242166875 + "ts": 0.2428641 }, { "core_id": 0, @@ -21500,7 +23226,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.242177125 + "ts": 0.24287535 }, { "core_id": 1, @@ -21510,10 +23236,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.242188525 + "ts": 0.2428926 }, { "core_id": 1, @@ -21523,10 +23249,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.2422049 + "ts": 0.24290885 }, { "core_id": 1, @@ -21534,8 +23260,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4\n", - "ts": 0.24226845 + "msg": "I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078\n", + "ts": 0.242956725 }, { "core_id": 1, @@ -21543,15 +23269,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (550) example: Task[0x3ffb86d4]: free memory @ 0x3ffbb8b4\n", - "ts": 0.24226845 + "msg": "I (538) example: Task[0x3ffb7e9c]: free memory @ 0x3ffbb078\n", + "ts": 0.242956725 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21565,7 +23291,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.24228965 + "ts": 0.242978125 }, { "core_id": 1, @@ -21575,7 +23301,7 @@ "params": { "irq_num": 31 }, - "ts": 0.24232065 + "ts": 0.2430046 }, { "core_id": 1, @@ -21583,7 +23309,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.242332125 + "ts": 0.243016 }, { "core_id": 1, @@ -21591,7 +23317,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.242348825 + "ts": 0.243032575 }, { "core_id": 1, @@ -21601,7 +23327,7 @@ "params": { "irq_num": 5 }, - "ts": 0.242666425 + "ts": 0.2434482 }, { "core_id": 1, @@ -21609,7 +23335,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.242679875 + "ts": 0.243461725 }, { "core_id": 1, @@ -21617,7 +23343,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24269545 + "ts": 0.243477425 }, { "core_id": 0, @@ -21627,7 +23353,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2428338 + "ts": 0.24354665 }, { "core_id": 0, @@ -21635,9 +23361,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.242848825 + "ts": 0.243561625 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.243561625 }, { "core_id": 0, @@ -21645,7 +23381,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.242861575 + "ts": 0.243574225 }, { "core_id": 0, @@ -21653,18 +23389,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.24287725 + "ts": 0.243589875 }, { - "addr": "0x3ffbb8b4", + "addr": "0x3ffbb078", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21676,16 +23412,16 @@ "id": 512, "in_irq": false, "size": 18, - "ts": 0.242912575 + "ts": 0.24362505 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21697,7 +23433,7 @@ "id": 512, "in_irq": false, "size": 36, - "ts": 0.24294715 + "ts": 0.24366465 }, { "core_id": 0, @@ -21707,10 +23443,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.242964175 + "ts": 0.2436816 }, { "core_id": 0, @@ -21720,10 +23456,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.242980175 + "ts": 0.243697725 }, { "core_id": 0, @@ -21731,8 +23467,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc\n", - "ts": 0.2430506 + "msg": "I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8\n", + "ts": 0.24375245 }, { "core_id": 0, @@ -21740,8 +23476,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb926c]: allocated 36 bytes @ 0x3ffbb8cc\n", - "ts": 0.2430506 + "msg": "I (539) example: Task[0x3ffb8a34]: allocated 36 bytes @ 0x3ffbb0b8\n", + "ts": 0.24375245 }, { "core_id": 0, @@ -21751,10 +23487,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 0 }, - "ts": 0.24306415 + "ts": 0.2437659 }, { "core_id": 0, @@ -21762,9 +23498,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.243080975 + "ts": 0.24377915 + }, + { + "core_id": 1, + "ctx_name": "free0", + "id": 6, + "in_irq": false, + "params": { + "tid": 12293660 + }, + "ts": 0.24377915 }, { "core_id": 1, @@ -21774,7 +23520,7 @@ "params": { "irq_num": 31 }, - "ts": 0.243097275 + "ts": 0.2437955 }, { "core_id": 0, @@ -21784,7 +23530,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.243108125 + "ts": 0.24380635 }, { "core_id": 1, @@ -21792,7 +23538,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.243118875 + "ts": 0.243817175 }, { "core_id": 0, @@ -21802,7 +23548,7 @@ "params": { "irq_num": 30 }, - "ts": 0.2431326 + "ts": 0.243830875 }, { "core_id": 1, @@ -21810,9 +23556,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12295764 + "tid": 12293660 }, - "ts": 0.24314345 + "ts": 0.24384175 }, { "core_id": 0, @@ -21820,7 +23566,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.243154275 + "ts": 0.243852625 }, { "core_id": 1, @@ -21830,10 +23576,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12293072, + "xQueue": 12290968, "xTicksToWait": 4294967295 }, - "ts": 0.24316615 + "ts": 0.243864575 }, { "core_id": 0, @@ -21841,7 +23587,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2431764 + "ts": 0.2438758 }, { "core_id": 1, @@ -21851,10 +23597,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.243187875 + "ts": 0.2438876 }, { "core_id": 1, @@ -21864,10 +23610,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.243204375 + "ts": 0.243908225 }, { "core_id": 1, @@ -21875,8 +23621,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc\n", - "ts": 0.243267825 + "msg": "I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.2439561 }, { "core_id": 1, @@ -21884,15 +23630,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (551) example: Task[0x3ffb9e54]: free memory @ 0x3ffbb8cc\n", - "ts": 0.243267825 + "msg": "I (539) example: Task[0x3ffb961c]: free memory @ 0x3ffbb0b8\n", + "ts": 0.2439561 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -21906,7 +23652,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.243288975 + "ts": 0.243977525 }, { "core_id": 1, @@ -21916,7 +23662,7 @@ "params": { "irq_num": 31 }, - "ts": 0.243315975 + "ts": 0.244004825 }, { "core_id": 1, @@ -21924,7 +23670,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2433274 + "ts": 0.244016225 }, { "core_id": 1, @@ -21932,7 +23678,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.243343975 + "ts": 0.2440328 }, { "core_id": 1, @@ -21942,7 +23688,7 @@ "params": { "irq_num": 5 }, - "ts": 0.243666425 + "ts": 0.2444482 }, { "core_id": 1, @@ -21950,7 +23696,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24367985 + "ts": 0.244461725 }, { "core_id": 1, @@ -21958,7 +23704,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24369555 + "ts": 0.244477425 }, { "core_id": 0, @@ -21968,17 +23714,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2438338 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 6, - "in_irq": true, - "params": { - "tid": 12298716 - }, - "ts": 0.2438488 + "ts": 0.24454665 }, { "core_id": 0, @@ -21986,7 +23722,79 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.243861575 + "ts": 0.244562025 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.244577225 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2454482 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.245461775 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.2454769 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.24554665 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 6, + "in_irq": true, + "params": { + "tid": 12296612 + }, + "ts": 0.245561625 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.245561625 + }, + { + "core_id": 0, + "ctx_name": "alloc1", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.245574275 }, { "core_id": 0, @@ -21994,18 +23802,18 @@ "id": 4, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.24387725 + "ts": 0.24558995 }, { - "addr": "0x3ffbb8cc", + "addr": "0x3ffbb0b8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6af3", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bb4", + "0x400880dc", "0x0", "0x0", "0x0", @@ -22017,16 +23825,16 @@ "id": 512, "in_irq": false, "size": 27, - "ts": 0.24391265 + "ts": 0.245626225 }, { - "addr": "0x3ffbb8ec", + "addr": "0x3ffbb0d8", "callers": [ - "0x40081fef", - "0x40082024", - "0x4008e668", - "0x400d6afa", - "0x40088d94", + "0x40081eff", + "0x40081f34", + "0x4008da18", + "0x400d3bbb", + "0x400880dc", "0x0", "0x0", "0x0", @@ -22038,7 +23846,7 @@ "id": 512, "in_irq": false, "size": 54, - "ts": 0.243951325 + "ts": 0.245661825 }, { "core_id": 0, @@ -22048,10 +23856,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.24396835 + "ts": 0.24568225 }, { "core_id": 0, @@ -22061,10 +23869,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.24398435 + "ts": 0.245698175 }, { "core_id": 0, @@ -22072,8 +23880,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec\n", - "ts": 0.244054675 + "msg": "I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8\n", + "ts": 0.24575295 }, { "core_id": 0, @@ -22081,8 +23889,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffba9dc]: allocated 54 bytes @ 0x3ffbb8ec\n", - "ts": 0.244054675 + "msg": "I (541) example: Task[0x3ffba1a4]: allocated 54 bytes @ 0x3ffbb0d8\n", + "ts": 0.24575295 }, { "core_id": 0, @@ -22092,10 +23900,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 0 }, - "ts": 0.2440684 + "ts": 0.24576645 }, { "core_id": 0, @@ -22103,9 +23911,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.244081625 + "ts": 0.2457796 + }, + { + "core_id": 1, + "ctx_name": "free1", + "id": 6, + "in_irq": false, + "params": { + "tid": 12299660 + }, + "ts": 0.2457796 }, { "core_id": 1, @@ -22115,7 +23933,7 @@ "params": { "irq_num": 31 }, - "ts": 0.24409795 + "ts": 0.245795925 }, { "core_id": 0, @@ -22125,7 +23943,7 @@ "params": { "xTicksToDelay": 30 }, - "ts": 0.2441088 + "ts": 0.245806775 }, { "core_id": 1, @@ -22133,7 +23951,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24411955 + "ts": 0.245817575 }, { "core_id": 0, @@ -22143,7 +23961,7 @@ "params": { "irq_num": 30 }, - "ts": 0.244133275 + "ts": 0.245831475 }, { "core_id": 1, @@ -22151,9 +23969,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12301764 + "tid": 12299660 }, - "ts": 0.244144175 + "ts": 0.245842275 }, { "core_id": 0, @@ -22161,7 +23979,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244155 + "ts": 0.245853025 }, { "core_id": 1, @@ -22171,10 +23989,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 1, - "xQueue": 12299072, + "xQueue": 12296968, "xTicksToWait": 4294967295 }, - "ts": 0.24416685 + "ts": 0.245865475 }, { "core_id": 0, @@ -22182,7 +24000,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24417815 + "ts": 0.24587655 }, { "core_id": 1, @@ -22192,10 +24010,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.244189775 + "ts": 0.245888475 }, { "core_id": 1, @@ -22205,10 +24023,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.244210225 + "ts": 0.245904775 }, { "core_id": 1, @@ -22216,8 +24034,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec\n", - "ts": 0.2442739 + "msg": "I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8\n", + "ts": 0.24595265 }, { "core_id": 1, @@ -22225,15 +24043,15 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (552) example: Task[0x3ffbb5c4]: free memory @ 0x3ffbb8ec\n", - "ts": 0.2442739 + "msg": "I (541) example: Task[0x3ffbad8c]: free memory @ 0x3ffbb0d8\n", + "ts": 0.24595265 }, { - "addr": "0x3ffbb8ec", + "addr": "0x3ffbb0d8", "callers": [ - "0x4008e674", - "0x400d6bb2", - "0x40088d94", + "0x4008da24", + "0x400d3c72", + "0x400880dc", "0x0", "0x0", "0x0", @@ -22247,7 +24065,7 @@ "id": 513, "in_irq": false, "size": 0, - "ts": 0.2442951 + "ts": 0.245978075 }, { "core_id": 1, @@ -22257,7 +24075,7 @@ "params": { "irq_num": 31 }, - "ts": 0.244322 + "ts": 0.246005475 }, { "core_id": 1, @@ -22265,7 +24083,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244333425 + "ts": 0.2460169 }, { "core_id": 1, @@ -22273,7 +24091,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24435 + "ts": 0.24603345 }, { "core_id": 1, @@ -22283,7 +24101,7 @@ "params": { "irq_num": 5 }, - "ts": 0.244666425 + "ts": 0.2464482 }, { "core_id": 1, @@ -22291,7 +24109,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24467985 + "ts": 0.246461725 }, { "core_id": 1, @@ -22299,7 +24117,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24469555 + "ts": 0.2464773 }, { "core_id": 0, @@ -22309,7 +24127,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2448338 + "ts": 0.24654665 }, { "core_id": 0, @@ -22317,7 +24135,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.244849175 + "ts": 0.24656205 }, { "core_id": 0, @@ -22325,7 +24143,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24486425 + "ts": 0.246577275 }, { "core_id": 1, @@ -22335,7 +24153,7 @@ "params": { "irq_num": 5 }, - "ts": 0.245666425 + "ts": 0.2474482 }, { "core_id": 1, @@ -22343,7 +24161,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.245680075 + "ts": 0.247461725 }, { "core_id": 1, @@ -22351,7 +24169,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24569535 + "ts": 0.24747685 }, { "core_id": 0, @@ -22361,7 +24179,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2458338 + "ts": 0.24754665 }, { "core_id": 0, @@ -22369,7 +24187,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.245849175 + "ts": 0.247562 }, { "core_id": 0, @@ -22377,7 +24195,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24586425 + "ts": 0.247577075 }, { "core_id": 1, @@ -22387,7 +24205,7 @@ "params": { "irq_num": 5 }, - "ts": 0.246666425 + "ts": 0.2484482 }, { "core_id": 1, @@ -22395,7 +24213,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24668 + "ts": 0.248461725 }, { "core_id": 1, @@ -22403,7 +24221,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.246695125 + "ts": 0.248476975 }, { "core_id": 0, @@ -22413,7 +24231,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2468338 + "ts": 0.24854665 }, { "core_id": 0, @@ -22421,7 +24239,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.246849175 + "ts": 0.248562025 }, { "core_id": 0, @@ -22429,7 +24247,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24686425 + "ts": 0.248577225 }, { "core_id": 1, @@ -22439,7 +24257,7 @@ "params": { "irq_num": 5 }, - "ts": 0.247666425 + "ts": 0.2494482 }, { "core_id": 1, @@ -22447,7 +24265,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.247680075 + "ts": 0.249461775 }, { "core_id": 1, @@ -22455,7 +24273,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.247695225 + "ts": 0.2494769 }, { "core_id": 0, @@ -22465,7 +24283,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2478338 + "ts": 0.24954665 }, { "core_id": 0, @@ -22473,7 +24291,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2478492 + "ts": 0.249562 }, { "core_id": 0, @@ -22481,7 +24299,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.247864425 + "ts": 0.249577075 }, { "core_id": 1, @@ -22491,7 +24309,7 @@ "params": { "irq_num": 5 }, - "ts": 0.248666425 + "ts": 0.2504482 }, { "core_id": 1, @@ -22499,7 +24317,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.24867995 + "ts": 0.250461725 }, { "core_id": 1, @@ -22507,7 +24325,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2486951 + "ts": 0.25047685 }, { "core_id": 0, @@ -22517,7 +24335,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2488338 + "ts": 0.25054665 }, { "core_id": 0, @@ -22525,7 +24343,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.248849175 + "ts": 0.25056205 }, { "core_id": 0, @@ -22533,7 +24351,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24886425 + "ts": 0.250577275 }, { "core_id": 1, @@ -22543,7 +24361,7 @@ "params": { "irq_num": 5 }, - "ts": 0.249666425 + "ts": 0.2514482 }, { "core_id": 1, @@ -22551,7 +24369,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.249680075 + "ts": 0.251461725 }, { "core_id": 1, @@ -22559,7 +24377,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.24969535 + "ts": 0.25147685 }, { "core_id": 0, @@ -22569,7 +24387,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2498338 + "ts": 0.25154665 }, { "core_id": 0, @@ -22577,7 +24395,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.249849175 + "ts": 0.251562 }, { "core_id": 0, @@ -22585,7 +24403,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.249868675 + "ts": 0.251577075 }, { "core_id": 1, @@ -22595,7 +24413,7 @@ "params": { "irq_num": 5 }, - "ts": 0.250666425 + "ts": 0.2524482 }, { "core_id": 1, @@ -22603,7 +24421,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.25067995 + "ts": 0.252461725 }, { "core_id": 1, @@ -22611,7 +24429,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2506951 + "ts": 0.252476975 }, { "core_id": 0, @@ -22621,7 +24439,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2508338 + "ts": 0.25254665 }, { "core_id": 0, @@ -22629,7 +24447,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.250849175 + "ts": 0.252562025 }, { "core_id": 0, @@ -22637,7 +24455,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25086425 + "ts": 0.252577225 }, { "core_id": 1, @@ -22647,7 +24465,7 @@ "params": { "irq_num": 5 }, - "ts": 0.251666425 + "ts": 0.2534482 }, { "core_id": 1, @@ -22655,7 +24473,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.251680075 + "ts": 0.253461725 }, { "core_id": 1, @@ -22663,7 +24481,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25169535 + "ts": 0.253476975 }, { "core_id": 0, @@ -22673,7 +24491,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2518338 + "ts": 0.25354665 }, { "core_id": 0, @@ -22681,7 +24499,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.251849175 + "ts": 0.253562025 }, { "core_id": 0, @@ -22689,7 +24507,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25186425 + "ts": 0.253577225 }, { "core_id": 1, @@ -22699,7 +24517,7 @@ "params": { "irq_num": 5 }, - "ts": 0.252666425 + "ts": 0.2544482 }, { "core_id": 1, @@ -22707,7 +24525,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.25268 + "ts": 0.254461775 }, { "core_id": 1, @@ -22715,7 +24533,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.252695125 + "ts": 0.2544769 }, { "core_id": 0, @@ -22725,7 +24543,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2528338 + "ts": 0.25454665 }, { "core_id": 0, @@ -22733,7 +24551,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.252849175 + "ts": 0.254562 }, { "core_id": 0, @@ -22741,7 +24559,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25286425 + "ts": 0.254577075 }, { "core_id": 1, @@ -22751,7 +24569,7 @@ "params": { "irq_num": 5 }, - "ts": 0.253666425 + "ts": 0.2554482 }, { "core_id": 1, @@ -22759,7 +24577,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.253680075 + "ts": 0.255461725 }, { "core_id": 1, @@ -22767,7 +24585,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.253695225 + "ts": 0.25547685 }, { "core_id": 0, @@ -22777,7 +24595,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2538338 + "ts": 0.25554665 }, { "core_id": 0, @@ -22785,7 +24603,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2538492 + "ts": 0.25556205 }, { "core_id": 0, @@ -22793,7 +24611,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.253864425 + "ts": 0.255577275 }, { "core_id": 1, @@ -22803,7 +24621,7 @@ "params": { "irq_num": 5 }, - "ts": 0.254666425 + "ts": 0.2564482 }, { "core_id": 1, @@ -22811,7 +24629,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.25467995 + "ts": 0.256461725 }, { "core_id": 1, @@ -22819,7 +24637,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2546951 + "ts": 0.25647685 }, { "core_id": 0, @@ -22829,7 +24647,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2548338 + "ts": 0.25654665 }, { "core_id": 0, @@ -22837,7 +24655,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.254849175 + "ts": 0.256562 }, { "core_id": 0, @@ -22845,7 +24663,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25486425 + "ts": 0.256577075 }, { "core_id": 1, @@ -22855,7 +24673,7 @@ "params": { "irq_num": 5 }, - "ts": 0.255666425 + "ts": 0.2574482 }, { "core_id": 1, @@ -22863,7 +24681,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.255680075 + "ts": 0.257461725 }, { "core_id": 1, @@ -22871,7 +24689,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25569535 + "ts": 0.257476975 }, { "core_id": 0, @@ -22881,7 +24699,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2558338 + "ts": 0.25754665 }, { "core_id": 0, @@ -22889,7 +24707,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.255849175 + "ts": 0.257562025 }, { "core_id": 0, @@ -22897,7 +24715,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25586425 + "ts": 0.257577225 }, { "core_id": 1, @@ -22907,7 +24725,7 @@ "params": { "irq_num": 5 }, - "ts": 0.256666425 + "ts": 0.2584482 }, { "core_id": 1, @@ -22915,7 +24733,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.25668 + "ts": 0.258461775 }, { "core_id": 1, @@ -22923,7 +24741,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.256695125 + "ts": 0.2584769 }, { "core_id": 0, @@ -22933,7 +24751,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2568338 + "ts": 0.25854665 }, { "core_id": 0, @@ -22941,7 +24759,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.256849175 + "ts": 0.258562 }, { "core_id": 0, @@ -22949,7 +24767,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25686425 + "ts": 0.258577075 }, { "core_id": 1, @@ -22959,7 +24777,7 @@ "params": { "irq_num": 5 }, - "ts": 0.257666425 + "ts": 0.2594482 }, { "core_id": 1, @@ -22967,7 +24785,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.257680075 + "ts": 0.259461725 }, { "core_id": 1, @@ -22975,7 +24793,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.257695225 + "ts": 0.25947685 }, { "core_id": 0, @@ -22985,7 +24803,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2578338 + "ts": 0.25954665 }, { "core_id": 0, @@ -22993,7 +24811,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2578492 + "ts": 0.25956205 }, { "core_id": 0, @@ -23001,7 +24819,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.257864425 + "ts": 0.259577275 }, { "core_id": 1, @@ -23011,7 +24829,7 @@ "params": { "irq_num": 5 }, - "ts": 0.258666425 + "ts": 0.2604482 }, { "core_id": 1, @@ -23019,7 +24837,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.25867995 + "ts": 0.260461725 }, { "core_id": 1, @@ -23027,7 +24845,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2586951 + "ts": 0.26047685 }, { "core_id": 0, @@ -23037,7 +24855,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2588338 + "ts": 0.26054665 }, { "core_id": 0, @@ -23045,7 +24863,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.258849175 + "ts": 0.260562 }, { "core_id": 0, @@ -23053,7 +24871,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25886425 + "ts": 0.260577075 }, { "core_id": 1, @@ -23063,7 +24881,7 @@ "params": { "irq_num": 5 }, - "ts": 0.259666425 + "ts": 0.2614482 }, { "core_id": 1, @@ -23071,7 +24889,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.259680075 + "ts": 0.261461725 }, { "core_id": 1, @@ -23079,7 +24897,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25969535 + "ts": 0.261476975 }, { "core_id": 0, @@ -23089,7 +24907,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2598338 + "ts": 0.26154665 }, { "core_id": 0, @@ -23097,7 +24915,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.259849175 + "ts": 0.261562025 }, { "core_id": 0, @@ -23105,7 +24923,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.25986425 + "ts": 0.261577225 }, { "core_id": 1, @@ -23115,7 +24933,7 @@ "params": { "irq_num": 5 }, - "ts": 0.260666425 + "ts": 0.2624482 }, { "core_id": 1, @@ -23123,7 +24941,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.26068 + "ts": 0.262461775 }, { "core_id": 1, @@ -23131,7 +24949,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.260695125 + "ts": 0.2624769 }, { "core_id": 0, @@ -23141,7 +24959,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2608338 + "ts": 0.26254665 }, { "core_id": 0, @@ -23149,7 +24967,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.260849175 + "ts": 0.262562 }, { "core_id": 0, @@ -23157,7 +24975,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26086425 + "ts": 0.262577075 }, { "core_id": 1, @@ -23167,7 +24985,7 @@ "params": { "irq_num": 5 }, - "ts": 0.261666425 + "ts": 0.2634482 }, { "core_id": 1, @@ -23175,7 +24993,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.261680075 + "ts": 0.263461725 }, { "core_id": 1, @@ -23183,7 +25001,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.261695225 + "ts": 0.26347685 }, { "core_id": 0, @@ -23193,7 +25011,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2618338 + "ts": 0.26354665 }, { "core_id": 0, @@ -23201,7 +25019,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2618492 + "ts": 0.26356205 }, { "core_id": 0, @@ -23209,7 +25027,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.261864425 + "ts": 0.263577275 }, { "core_id": 1, @@ -23219,7 +25037,7 @@ "params": { "irq_num": 5 }, - "ts": 0.262666425 + "ts": 0.2644482 }, { "core_id": 1, @@ -23227,7 +25045,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.262680075 + "ts": 0.264461725 }, { "core_id": 1, @@ -23235,7 +25053,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26269535 + "ts": 0.26447685 }, { "core_id": 0, @@ -23245,7 +25063,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2628338 + "ts": 0.26454665 }, { "core_id": 0, @@ -23253,7 +25071,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.262849175 + "ts": 0.264562 }, { "core_id": 0, @@ -23261,7 +25079,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26286425 + "ts": 0.264577075 }, { "core_id": 1, @@ -23271,7 +25089,7 @@ "params": { "irq_num": 5 }, - "ts": 0.263666425 + "ts": 0.2654482 }, { "core_id": 1, @@ -23279,7 +25097,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.26368 + "ts": 0.265466 }, { "core_id": 1, @@ -23287,7 +25105,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.263695125 + "ts": 0.265481125 }, { "core_id": 0, @@ -23297,7 +25115,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2638338 + "ts": 0.26554665 }, { "core_id": 0, @@ -23305,7 +25123,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.263849175 + "ts": 0.265562 }, { "core_id": 0, @@ -23313,7 +25131,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26386425 + "ts": 0.265577075 }, { "core_id": 1, @@ -23323,7 +25141,7 @@ "params": { "irq_num": 5 }, - "ts": 0.264666425 + "ts": 0.2664482 }, { "core_id": 1, @@ -23331,7 +25149,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.264680075 + "ts": 0.266461725 }, { "core_id": 1, @@ -23339,7 +25157,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.264695225 + "ts": 0.26647685 }, { "core_id": 0, @@ -23349,7 +25167,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2648338 + "ts": 0.26654665 }, { "core_id": 0, @@ -23357,7 +25175,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2648492 + "ts": 0.26656205 }, { "core_id": 0, @@ -23365,7 +25183,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.264864425 + "ts": 0.266577275 }, { "core_id": 1, @@ -23375,7 +25193,7 @@ "params": { "irq_num": 5 }, - "ts": 0.265666425 + "ts": 0.2674482 }, { "core_id": 1, @@ -23383,7 +25201,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.26567995 + "ts": 0.267461725 }, { "core_id": 1, @@ -23391,7 +25209,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2656951 + "ts": 0.26747685 }, { "core_id": 0, @@ -23401,7 +25219,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2658338 + "ts": 0.26754665 }, { "core_id": 0, @@ -23409,7 +25227,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.265849175 + "ts": 0.267562 }, { "core_id": 0, @@ -23417,7 +25235,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26586425 + "ts": 0.267577075 }, { "core_id": 1, @@ -23427,7 +25245,7 @@ "params": { "irq_num": 5 }, - "ts": 0.266666425 + "ts": 0.2684482 }, { "core_id": 1, @@ -23435,7 +25253,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.266680075 + "ts": 0.268461725 }, { "core_id": 1, @@ -23443,7 +25261,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26669535 + "ts": 0.268476975 }, { "core_id": 0, @@ -23453,7 +25271,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2668338 + "ts": 0.26854665 }, { "core_id": 0, @@ -23461,7 +25279,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.266849175 + "ts": 0.268562025 }, { "core_id": 0, @@ -23469,7 +25287,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26686425 + "ts": 0.268577225 }, { "core_id": 1, @@ -23479,7 +25297,7 @@ "params": { "irq_num": 5 }, - "ts": 0.267666425 + "ts": 0.2694482 }, { "core_id": 1, @@ -23487,7 +25305,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.26768 + "ts": 0.269461775 }, { "core_id": 1, @@ -23495,7 +25313,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.267695125 + "ts": 0.2694769 }, { "core_id": 0, @@ -23505,7 +25323,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2678338 + "ts": 0.26954665 }, { "core_id": 0, @@ -23513,7 +25331,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.267849175 + "ts": 0.269562 }, { "core_id": 0, @@ -23521,7 +25339,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26786425 + "ts": 0.269577075 }, { "core_id": 1, @@ -23531,7 +25349,7 @@ "params": { "irq_num": 5 }, - "ts": 0.268666425 + "ts": 0.2704482 }, { "core_id": 1, @@ -23539,7 +25357,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.268680075 + "ts": 0.270461725 }, { "core_id": 1, @@ -23547,7 +25365,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.268695225 + "ts": 0.27047685 }, { "core_id": 0, @@ -23557,7 +25375,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2688338 + "ts": 0.27054665 }, { "core_id": 0, @@ -23565,7 +25383,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.2688492 + "ts": 0.27056205 }, { "core_id": 0, @@ -23573,7 +25391,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.268864425 + "ts": 0.270577275 }, { "core_id": 1, @@ -23583,7 +25401,7 @@ "params": { "irq_num": 5 }, - "ts": 0.269666425 + "ts": 0.2714482 }, { "core_id": 1, @@ -23591,7 +25409,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.26967995 + "ts": 0.271461725 }, { "core_id": 1, @@ -23599,7 +25417,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2696951 + "ts": 0.27147685 }, { "core_id": 0, @@ -23609,7 +25427,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2698338 + "ts": 0.27154665 }, { "core_id": 0, @@ -23617,7 +25435,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.269849175 + "ts": 0.271562 }, { "core_id": 0, @@ -23625,7 +25443,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.26986425 + "ts": 0.271577075 }, { "core_id": 1, @@ -23635,7 +25453,7 @@ "params": { "irq_num": 5 }, - "ts": 0.270666425 + "ts": 0.2724482 }, { "core_id": 1, @@ -23643,7 +25461,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.270680075 + "ts": 0.272461725 }, { "core_id": 1, @@ -23651,7 +25469,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.27069535 + "ts": 0.272476975 }, { "core_id": 0, @@ -23661,59 +25479,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2708338 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.270849175 - }, - { - "core_id": 0, - "ctx_name": "alloc2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.27086425 - }, - { - "core_id": 1, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.271666425 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 18, - "in_irq": false, - "params": {}, - "ts": 0.27168 - }, - { - "core_id": 1, - "ctx_name": "free2", - "id": 17, - "in_irq": false, - "params": {}, - "ts": 0.271695125 - }, - { - "core_id": 0, - "ctx_name": "SysTick", - "id": 2, - "in_irq": true, - "params": { - "irq_num": 5 - }, - "ts": 0.2718338 + "ts": 0.27254665 }, { "core_id": 0, @@ -23721,9 +25487,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.2718488 + "ts": 0.272561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12284596 + }, + "ts": 0.272561625 }, { "core_id": 0, @@ -23731,7 +25507,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.271861575 + "ts": 0.272574225 }, { "core_id": 0, @@ -23739,9 +25515,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12286700 + "tid": 12284596 }, - "ts": 0.27187725 + "ts": 0.272589875 }, { "core_id": 0, @@ -23752,9 +25528,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.271895625 + "ts": 0.27260805 }, { "core_id": 0, @@ -23762,9 +25538,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.271906575 + "ts": 0.2726191 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.2726191 }, { "core_id": 0, @@ -23774,7 +25560,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.271919725 + "ts": 0.2726322 }, { "core_id": 0, @@ -23784,7 +25570,7 @@ "params": { "irq_num": 30 }, - "ts": 0.271936275 + "ts": 0.27264875 }, { "core_id": 0, @@ -23792,7 +25578,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.27194765 + "ts": 0.272660225 }, { "core_id": 0, @@ -23800,9 +25586,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.2719646 + "ts": 0.272677175 }, { "core_id": 0, @@ -23813,7 +25599,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.271982475 + "ts": 0.27269095 }, { "core_id": 0, @@ -23823,10 +25609,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.271998425 + "ts": 0.272706875 }, { "core_id": 0, @@ -23836,10 +25622,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.272014325 + "ts": 0.272722875 }, { "core_id": 0, @@ -23847,8 +25633,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Got notify val 1\n", - "ts": 0.272063675 + "msg": "I (568) example: Got notify val 1\n", + "ts": 0.272764325 }, { "core_id": 0, @@ -23856,8 +25642,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Got notify val 1\n", - "ts": 0.272063675 + "msg": "I (568) example: Got notify val 1\n", + "ts": 0.272764325 }, { "core_id": 0, @@ -23867,10 +25653,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.272079975 + "ts": 0.272784675 }, { "core_id": 0, @@ -23880,10 +25666,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.272095925 + "ts": 0.272800725 }, { "core_id": 0, @@ -23891,8 +25677,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Wait notify 1\n", - "ts": 0.272140275 + "msg": "I (568) example: Wait notify 1\n", + "ts": 0.272837275 }, { "core_id": 0, @@ -23900,8 +25686,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (580) example: Wait notify 1\n", - "ts": 0.272140275 + "msg": "I (568) example: Wait notify 1\n", + "ts": 0.272837275 }, { "core_id": 0, @@ -23911,7 +25697,7 @@ "params": { "irq_num": 30 }, - "ts": 0.27215865 + "ts": 0.2728555 }, { "core_id": 0, @@ -23919,7 +25705,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.27217005 + "ts": 0.27286685 }, { "core_id": 0, @@ -23927,7 +25713,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2721861 + "ts": 0.272882775 }, { "core_id": 1, @@ -23937,7 +25723,7 @@ "params": { "irq_num": 5 }, - "ts": 0.272666425 + "ts": 0.2734482 }, { "core_id": 1, @@ -23945,7 +25731,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.27267995 + "ts": 0.273461725 }, { "core_id": 1, @@ -23953,7 +25739,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2726951 + "ts": 0.273476975 }, { "core_id": 0, @@ -23963,7 +25749,7 @@ "params": { "irq_num": 5 }, - "ts": 0.2728338 + "ts": 0.27354665 }, { "core_id": 0, @@ -23971,9 +25757,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.2728488 + "ts": 0.273561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12290612 + }, + "ts": 0.273561625 }, { "core_id": 0, @@ -23981,7 +25777,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.272861575 + "ts": 0.273574225 }, { "core_id": 0, @@ -23989,9 +25785,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12292716 + "tid": 12290612 }, - "ts": 0.272877375 + "ts": 0.273589875 }, { "core_id": 0, @@ -24002,9 +25798,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.2728918 + "ts": 0.27360425 }, { "core_id": 0, @@ -24012,9 +25808,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.272902925 + "ts": 0.2736153 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.2736153 }, { "core_id": 0, @@ -24024,7 +25830,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.27291605 + "ts": 0.2736284 }, { "core_id": 0, @@ -24034,7 +25840,7 @@ "params": { "irq_num": 30 }, - "ts": 0.27293265 + "ts": 0.27364495 }, { "core_id": 0, @@ -24042,7 +25848,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.272944025 + "ts": 0.2736563 }, { "core_id": 0, @@ -24050,9 +25856,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.272960975 + "ts": 0.27367325 }, { "core_id": 0, @@ -24063,7 +25869,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.272974675 + "ts": 0.273687025 }, { "core_id": 0, @@ -24073,10 +25879,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2729906 + "ts": 0.27370295 }, { "core_id": 0, @@ -24086,10 +25892,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.273006525 + "ts": 0.27371895 }, { "core_id": 0, @@ -24097,8 +25903,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Got notify val 1\n", - "ts": 0.273056 + "msg": "I (569) example: Got notify val 1\n", + "ts": 0.27375645 }, { "core_id": 0, @@ -24106,8 +25912,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Got notify val 1\n", - "ts": 0.273056 + "msg": "I (569) example: Got notify val 1\n", + "ts": 0.27375645 }, { "core_id": 0, @@ -24117,10 +25923,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2730723 + "ts": 0.2737761 }, { "core_id": 0, @@ -24130,10 +25936,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.27308825 + "ts": 0.27379205 }, { "core_id": 0, @@ -24141,8 +25947,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Wait notify 2\n", - "ts": 0.2731326 + "msg": "I (569) example: Wait notify 2\n", + "ts": 0.2738286 }, { "core_id": 0, @@ -24150,8 +25956,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (581) example: Wait notify 2\n", - "ts": 0.2731326 + "msg": "I (569) example: Wait notify 2\n", + "ts": 0.2738286 }, { "core_id": 0, @@ -24161,7 +25967,7 @@ "params": { "irq_num": 30 }, - "ts": 0.273150975 + "ts": 0.273846825 }, { "core_id": 0, @@ -24169,7 +25975,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273162375 + "ts": 0.273858175 }, { "core_id": 0, @@ -24177,7 +25983,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.27317855 + "ts": 0.2738742 }, { "core_id": 1, @@ -24187,7 +25993,7 @@ "params": { "irq_num": 5 }, - "ts": 0.273666425 + "ts": 0.2744482 }, { "core_id": 1, @@ -24195,7 +26001,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.27367995 + "ts": 0.274461725 }, { "core_id": 1, @@ -24203,7 +26009,7 @@ "id": 17, "in_irq": false, "params": {}, - "ts": 0.2736951 + "ts": 0.274476975 }, { "core_id": 0, @@ -24213,7 +26019,59 @@ "params": { "irq_num": 5 }, - "ts": 0.2738338 + "ts": 0.27454665 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.274562025 + }, + { + "core_id": 0, + "ctx_name": "main", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.274577225 + }, + { + "core_id": 1, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.2754482 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 18, + "in_irq": false, + "params": {}, + "ts": 0.275461775 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 17, + "in_irq": false, + "params": {}, + "ts": 0.2754769 + }, + { + "core_id": 0, + "ctx_name": "SysTick", + "id": 2, + "in_irq": true, + "params": { + "irq_num": 5 + }, + "ts": 0.27554665 }, { "core_id": 0, @@ -24221,9 +26079,19 @@ "id": 6, "in_irq": true, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.2738488 + "ts": 0.275561625 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12296612 + }, + "ts": 0.275561625 }, { "core_id": 0, @@ -24231,7 +26099,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273861575 + "ts": 0.275574275 }, { "core_id": 0, @@ -24239,9 +26107,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12298716 + "tid": 12296612 }, - "ts": 0.273877375 + "ts": 0.27558995 }, { "core_id": 0, @@ -24252,9 +26120,9 @@ "eAction": 2, "pulPreviousNotificationValue": 0, "ulValue": 0, - "xTaskToNotify": 12254080 + "xTaskToNotify": 12274964 }, - "ts": 0.2738918 + "ts": 0.275604375 }, { "core_id": 0, @@ -24262,9 +26130,19 @@ "id": 6, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.273902925 + "ts": 0.27561535 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 6, + "in_irq": false, + "params": { + "tid": 12274964 + }, + "ts": 0.27561535 }, { "core_id": 0, @@ -24274,7 +26152,7 @@ "params": { "xTicksToDelay": 100 }, - "ts": 0.27391605 + "ts": 0.275628525 }, { "core_id": 0, @@ -24284,7 +26162,7 @@ "params": { "irq_num": 30 }, - "ts": 0.27393265 + "ts": 0.275645075 }, { "core_id": 0, @@ -24292,7 +26170,7 @@ "id": 18, "in_irq": false, "params": {}, - "ts": 0.273944025 + "ts": 0.275656425 }, { "core_id": 0, @@ -24300,9 +26178,9 @@ "id": 4, "in_irq": false, "params": { - "tid": 12254080 + "tid": 12274964 }, - "ts": 0.273960975 + "ts": 0.275673375 }, { "core_id": 0, @@ -24313,7 +26191,7 @@ "xClearCountOnExit": 0, "xTicksToWait": 4294967295 }, - "ts": 0.273974675 + "ts": 0.275687075 }, { "core_id": 0, @@ -24323,10 +26201,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.2739906 + "ts": 0.275703075 }, { "core_id": 0, @@ -24336,10 +26214,10 @@ "params": { "pvItemToQueue": 0, "xCopyPosition": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 0 }, - "ts": 0.274006525 + "ts": 0.275719225 }, { "core_id": 0, @@ -24347,8 +26225,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (582) example: Got notify val 1\n", - "ts": 0.274051775 + "msg": "I (571) example: Got notify val 1\n", + "ts": 0.2757568 }, { "core_id": 0, @@ -24356,8 +26234,8 @@ "id": 26, "in_irq": false, "lvl": 0, - "msg": "I (582) example: Got notify val 1\n", - "ts": 0.274051775 + "msg": "I (571) example: Got notify val 1\n", + "ts": 0.2757568 }, { "core_id": 0, @@ -24367,10 +26245,10 @@ "params": { "pvBuffer": 3233808384, "xJustPeek": 0, - "xQueue": 12283904, + "xQueue": 12281672, "xTicksToWait": 10 }, - "ts": 0.330505425 + "ts": 0.32703545 }, { "core_id": 0, @@ -24378,7 +26256,15 @@ "id": 11, "in_irq": false, "params": {}, - "ts": 0.330514125 + "ts": 0.327044075 + }, + { + "core_id": 1, + "ctx_name": "free2", + "id": 11, + "in_irq": false, + "params": {}, + "ts": 0.327044075 } ], "streams": { @@ -24505,12 +26391,13 @@ "xTimerPendFunctionCallFromISR": 163 }, "system": { + "SYS_DATA_SAMPLE": 23, "SYS_IDLE": 17, "SYS_INIT": 24, "SYS_ISR_ENTER": 2, "SYS_ISR_EXIT": 3, "SYS_ISR_TO_SCHEDULER": 18, - "SYS_MODULEDESC": 24, + "SYS_MODULEDESC": 22, "SYS_NAME_RESOURCE": 25, "SYS_NOP": 0, "SYS_NUMMODULES": 27, diff --git a/tools/esp_app_trace/test/sysview/heap_log0.svdat b/tools/esp_app_trace/test/sysview/heap_log0.svdat index 30f3c9e764b..fbcfd142d29 100644 Binary files a/tools/esp_app_trace/test/sysview/heap_log0.svdat and b/tools/esp_app_trace/test/sysview/heap_log0.svdat differ diff --git a/tools/esp_app_trace/test/sysview/heap_log1.svdat b/tools/esp_app_trace/test/sysview/heap_log1.svdat index 5133eb86835..59265b8893b 100644 Binary files a/tools/esp_app_trace/test/sysview/heap_log1.svdat and b/tools/esp_app_trace/test/sysview/heap_log1.svdat differ diff --git a/tools/esp_app_trace/test/sysview/heap_log_mcore.svdat b/tools/esp_app_trace/test/sysview/heap_log_mcore.svdat index 6a5b07cda83..f8ec7c43f3a 100644 Binary files a/tools/esp_app_trace/test/sysview/heap_log_mcore.svdat and b/tools/esp_app_trace/test/sysview/heap_log_mcore.svdat differ diff --git a/tools/esp_app_trace/test/sysview/sysview_tracing_heap_log.elf b/tools/esp_app_trace/test/sysview/sysview_tracing_heap_log.elf index 05d483d7859..3857389d85e 100644 Binary files a/tools/esp_app_trace/test/sysview/sysview_tracing_heap_log.elf and b/tools/esp_app_trace/test/sysview/sysview_tracing_heap_log.elf differ diff --git a/tools/esp_app_trace/test/sysview/test.sh b/tools/esp_app_trace/test/sysview/test.sh index 4906c8f3171..52351967f97 100755 --- a/tools/esp_app_trace/test/sysview/test.sh +++ b/tools/esp_app_trace/test/sysview/test.sh @@ -1,29 +1,29 @@ #!/usr/bin/env bash -{ python -m coverage debug sys \ - && python -m coverage erase &> output \ - && python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat &>> output \ - && diff output expected_output \ - && python -m coverage report \ -; } || { echo 'The test for sysviewtrace_proc has failed. Please examine the artifacts.' ; exit 1; } +{ python -m coverage debug sys && \ + python -m coverage erase > output && \ + python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat >> output && \ + diff output expected_output && \ + python -m coverage report; \ +} || { echo 'The test for sysviewtrace_proc has failed. Please examine the artifacts.' ; exit 1; } -{ python -m coverage debug sys \ - && python -m coverage erase &> output.json \ - && python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -j -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat &>> output.json \ - && diff output.json expected_output.json \ - && python -m coverage report \ -; } || { echo 'The test for sysviewtrace_proc JSON functionality has failed. Please examine the artifacts.' ; exit 1; } +{ python -m coverage debug sys && \ + python -m coverage erase > output.json && \ + python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -j -b sysview_tracing_heap_log.elf heap_log0.svdat heap_log1.svdat >> output.json && \ + diff output.json expected_output.json && \ + python -m coverage report; \ +} || { echo 'The test for sysviewtrace_proc JSON functionality has failed. Please examine the artifacts.' ; exit 1; } -{ python -m coverage debug sys \ - && python -m coverage erase &> output \ - && python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log_mcore.svdat &>> output \ - && diff output expected_output_mcore \ - && python -m coverage report \ -; } || { echo 'The test for mcore sysviewtrace_proc functionality has failed. Please examine the artifacts.' ; exit 1; } +{ python -m coverage debug sys && \ + python -m coverage erase > output && \ + python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -d -p -b sysview_tracing_heap_log.elf heap_log_mcore.svdat >> output && \ + diff output expected_output_mcore && \ + python -m coverage report; \ +} || { echo 'The test for mcore sysviewtrace_proc functionality has failed. Please examine the artifacts.' ; exit 1; } -{ python -m coverage debug sys \ - && python -m coverage erase &> output.json \ - && python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -j -b sysview_tracing_heap_log.elf heap_log_mcore.svdat &>> output.json \ - && diff output.json expected_output_mcore.json \ - && python -m coverage report \ -; } || { echo 'The test for mcore sysviewtrace_proc JSON functionality has failed. Please examine the artifacts.' ; exit 1; } +{ python -m coverage debug sys && \ + python -m coverage erase > output.json && \ + python -m coverage run -a $IDF_PATH/tools/esp_app_trace/sysviewtrace_proc.py -j -b sysview_tracing_heap_log.elf heap_log_mcore.svdat >> output.json && \ + diff output.json expected_output_mcore.json && \ + python -m coverage report; \ +} || { echo 'The test for mcore sysviewtrace_proc JSON functionality has failed. Please examine the artifacts.' ; exit 1; } diff --git a/tools/export_utils/shell_types.py b/tools/export_utils/shell_types.py index 82e3df61c14..112ede5755b 100644 --- a/tools/export_utils/shell_types.py +++ b/tools/export_utils/shell_types.py @@ -1,5 +1,6 @@ # SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 +import base64 import getpass import os import re @@ -33,7 +34,15 @@ class Shell(): self.new_esp_idf_env = new_esp_idf_env try: - self.tmp_dir_path = Path(gettempdir()) / ('esp_idf_activate_' + getpass.getuser()) + username = getpass.getuser() + username_safe = ( + # If username contains special characters, base64-encode it + base64.urlsafe_b64encode(username.encode('utf-8')).decode('ascii').rstrip('=') + # Find characters that are not ASCII alphanumeric, dot, or dash + if re.search(r'[^\w.-]', username, flags=re.ASCII) + else username + ) + self.tmp_dir_path = Path(gettempdir()) / f'esp_idf_activate_{username_safe}' except Exception as e: self.tmp_dir_path = Path(gettempdir()) / 'esp_idf_activate' warn(f'Failed to get username with error: {e}. Using default temporary directory {self.tmp_dir_path}.') diff --git a/tools/gen_soc_caps_kconfig/README.md b/tools/gen_soc_caps_kconfig/README.md index 2238c47531e..57d6d314332 100644 --- a/tools/gen_soc_caps_kconfig/README.md +++ b/tools/gen_soc_caps_kconfig/README.md @@ -19,3 +19,5 @@ Defines that are 0 or 1 will automatically be interpreted as Booleans. If it's n The script is not able to evaluate expressions, e.g X*Y. If you need a variable to be available in kconfig it needs to be a simple assignment expression. + +If some `#define` statement should be excluded from being converted into config option, use `// [gen_soc_caps:ignore]` pragma. \ No newline at end of file diff --git a/tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py b/tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py index af6cfefc02b..02c34bbdf8d 100755 --- a/tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py +++ b/tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 """ Generate Kconfig.soc_caps.in with defines from soc_caps.h @@ -9,6 +9,7 @@ import argparse import inspect import io import logging +import os import sys from difflib import unified_diff from os import path @@ -22,11 +23,12 @@ from pyparsing import Char from pyparsing import Combine from pyparsing import Group from pyparsing import hexnums +from pyparsing import Keyword from pyparsing import Literal from pyparsing import nums from pyparsing import OneOrMore from pyparsing import Optional -from pyparsing import ParserElement +from pyparsing import ParserElement # noqa: F401 # pylint: disable=unused-import from pyparsing import QuotedString from pyparsing import restOfLine from pyparsing import Suppress @@ -40,50 +42,49 @@ except ImportError: pass -class KconfigWriter(): - PREAMBLE = inspect.cleandoc(''' +class KconfigWriter: + PREAMBLE = inspect.cleandoc(""" ##################################################### # This file is auto-generated from SoC caps # using gen_soc_caps_kconfig.py, do not edit manually ##################################################### - ''') + """) KCONFIG_ENTRY_TEMPLATE = Template( - inspect.cleandoc(''' + inspect.cleandoc(""" config $name $entry_type default $value - ''')) + """) + ) KCONFIG_CONDITION_SOURCE_TEMPLATE = Template( - inspect.cleandoc(''' + inspect.cleandoc(""" if $condition source "$source_path" endif - ''')) - - def __init__(self): # type: () -> None - self.entries = set('') + """) + ) + def __init__(self, path, always_write): # type: (str, bool) -> None self.kconfig_text = io.StringIO('') self.kconfig_text.write(self.PREAMBLE) - def add_entry(self, name, entry_type, value): # type: (str, str, typing.Any) -> None + # NAME: (type, val) + self.entries = dict() # type: typing.Dict[str, typing.Tuple[str, typing.Any]] # key: config name, value: tuple of (config_type, config_value) + self.kconfig_path = path + self.always_write = always_write + def add_entry(self, name, entry_type, value): # type: (str, str, typing.Any) -> None if name in self.entries: logging.info('Duplicate entry: {}'.format(name)) return - self.entries.add(name) - self.kconfig_text.write('\n\n') - # Format values for kconfig if entry_type == 'bool': value = 'y' if value else 'n' elif entry_type == 'string': value = '"' + value + '"' - - entry = self.KCONFIG_ENTRY_TEMPLATE.substitute(name=name, entry_type=entry_type, value=value) - self.kconfig_text.write(entry) + self.entries[name] = (entry_type, value) def add_source(self, source_path, condition): # type: (str, str) -> None self.kconfig_text.write('\n\n') @@ -93,10 +94,16 @@ class KconfigWriter(): else: self.kconfig_text.write('source "' + source_path + '"') - def update_file(self, kconfig_path, always_write): # type: (Path, bool) -> bool + def update_file(self): # type: () -> bool + for entry_name in self.entries: + self.kconfig_text.write('\n\n') + config_option = self.KCONFIG_ENTRY_TEMPLATE.substitute( + name=entry_name, entry_type=self.entries[entry_name][0], value=self.entries[entry_name][1] + ) + self.kconfig_text.write(config_option) try: - with open(kconfig_path, 'r', encoding='utf-8') as f: + with open(self.kconfig_path, 'r', encoding='utf-8') as f: old_content = f.readlines() except FileNotFoundError: old_content = [''] @@ -105,17 +112,17 @@ class KconfigWriter(): new_content = self.kconfig_text.readlines() new_content[-1] += '\n' # Add final newline to end of file - file_needs_update = always_write + file_needs_update = self.always_write # Check if file was updated and print diff for users - diff = unified_diff(old_content, new_content, fromfile=str(kconfig_path), n=2) + diff = unified_diff(old_content, new_content, fromfile=str(self.kconfig_path), n=2) for line in diff: print(line, end='') file_needs_update = True if file_needs_update: - print('\n' + 'Updating file: {}'.format(kconfig_path)) - with open(kconfig_path, 'w', encoding='utf-8') as f: + print('\n' + 'Updating file: {}'.format(self.kconfig_path)) + with open(self.kconfig_path, 'w', encoding='utf-8') as f: f.writelines(new_content) return file_needs_update @@ -138,7 +145,6 @@ def parse_include(inc_line): # type: (str) -> typing.Any[typing.Type[ParserElem def parse_define(define_line): # type: (str) -> typing.Any[typing.Type[ParserElement]] - # Group for parsing literal suffix of a numbers, e.g. 100UL literal_symbol = Group(CaselessLiteral('L') | CaselessLiteral('U')) literal_suffix = OneOrMore(literal_symbol) @@ -148,23 +154,29 @@ def parse_define(define_line): # type: (str) -> typing.Any[typing.Type[ParserEl # Define value, either a hex, int or a string hex_value = Combine(Literal('0x') + Word(hexnums) + Optional(literal_suffix).suppress())('hex_value') - int_value = Combine(Optional('-') + Word(nums))('int_value') + ~Char('.') + Optional(literal_suffix)('literal_suffix') + int_value = ( + Combine(Optional('-') + Word(nums))('int_value') + ~Char('.') + Optional(literal_suffix)('literal_suffix') + ) str_value = QuotedString('"')('str_value') # Remove optional parenthesis around values - value = Optional('(').suppress() + (hex_value ^ int_value ^ str_value)('value') + Optional(')').suppress() + value = Optional('(').suppress() + (hex_value ^ int_value ^ str_value)('value') + Optional(')').suppress() - expr = '#define' + Optional(name)('name') + Optional(value) + # Define ignore pragma (if present, define will be ignored) + ignore_pragma = Literal('//') + Keyword('[gen_soc_caps:ignore]') + + expr = ( + '#define' + Optional(name)('name') + Optional(value) + Optional(ignore_pragma).set_results_name('ignore_pragma') + ) res = expr.parseString(define_line) return res -def generate_defines(soc_caps_dir, filename, always_write): # type: (Path, str, bool) -> bool - +def generate_defines(soc_caps_dir, filename, always_write): # type: (Path, str, bool) -> typing.Union[KconfigWriter, None] soc_headers = list(soc_caps_dir.glob(filename)) if soc_headers == []: - return False + return None # Sort header files to make the generated files deterministic soc_headers.sort(key=lambda file: file.name) @@ -173,13 +185,15 @@ def generate_defines(soc_caps_dir, filename, always_write): # type: (Path, str, for soc_header in soc_headers: defines.extend(get_defines(soc_header)) - writer = KconfigWriter() + writer = KconfigWriter(os.path.join(soc_caps_dir, 'Kconfig.soc_caps.in'), always_write) for line in defines: try: inc = parse_include(line) if 'inc_path' in inc and 'recursive' in inc and inc['inc_path'][-6:] == 'caps.h': - source_path = path.join('$IDF_PATH', str(soc_caps_dir), path.dirname(inc['inc_path']), 'Kconfig.soc_caps.in') + source_path = path.join( + '$IDF_PATH', str(soc_caps_dir), path.dirname(inc['inc_path']), 'Kconfig.soc_caps.in' + ) condition = inc['condition'].strip(' ') if 'condition' in inc else '' writer.add_source(source_path, condition) sub_soc_cap_dir = soc_caps_dir.joinpath(str(inc['inc_path'])).parent @@ -194,6 +208,10 @@ def generate_defines(soc_caps_dir, filename, always_write): # type: (Path, str, logging.debug('Failed to parse: {}'.format(line)) continue + if res.ignore_pragma: + # Ignore this define + continue + # Add the kconfig entry corresponding to the type we parsed if 'str_value' in res: writer.add_entry(res.name, 'string', res.str_value) @@ -209,10 +227,7 @@ def generate_defines(soc_caps_dir, filename, always_write): # type: (Path, str, elif 'hex_value' in res: writer.add_entry(res.name, 'hex', res.hex_value) - # Updates output if necessary - updated = writer.update_file(Path(soc_caps_dir) / 'Kconfig.soc_caps.in', always_write) - - return updated + return writer def get_defines(header_path): # type: (Path) -> list[str] @@ -230,12 +245,15 @@ def get_defines(header_path): # type: (Path) -> list[str] if __name__ == '__main__': - parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('-d', '--dir', help='SoC caps folder paths, support wildcards', nargs='+', default=[]) - parser.add_argument('-n', '--filename', nargs='?', default='*caps.h', - help='SoC caps filename, support wildcards') - parser.add_argument('-v', '--verbose', action='count', help='Increase the logging level of the script. Can be specified multiple times.') + parser.add_argument('-n', '--filename', nargs='?', default='*caps.h', help='SoC caps filename, support wildcards') + parser.add_argument( + '-v', + '--verbose', + action='count', + help='Increase the logging level of the script. Can be specified multiple times.', + ) parser.add_argument('--always-write', help='Always generate new output files', action='store_true') args = parser.parse_args() @@ -249,10 +267,47 @@ if __name__ == '__main__': logging.basicConfig(level=log_level) files_updated = [] + writers = [] # type: typing.List[typing.Optional[KconfigWriter]] for caps_dir in args.dir: soc_caps_dirs = Path().glob(caps_dir) - files_updated += [generate_defines(d, args.filename, args.always_write) for d in soc_caps_dirs if path.isdir(d)] + new_writers = [generate_defines(d, args.filename, args.always_write) for d in soc_caps_dirs if path.isdir(d)] + writers.extend(new_writers) + configs = dict() # type: typing.Dict[str, str] # key: config name, value: config_type + configs_with_differing_types = dict() # type: typing.Dict[str, typing.Set[str]] # key: config name, value: set of types + for writer in writers: + if writer is None: + continue + for config_name in writer.entries: + if config_name in configs: + type_in_writer = writer.entries[config_name][0] + type_in_configs = configs[config_name] + if type_in_writer != type_in_configs: + if config_name not in configs_with_differing_types: + configs_with_differing_types[config_name] = set() + configs_with_differing_types[config_name].add(type_in_writer) + configs_with_differing_types[config_name].add(type_in_configs) + + else: + configs[config_name] = writer.entries[config_name][0] + + if configs_with_differing_types: + print( + 'The following macro constants would be translated to config options with different types' + ' for different targets (which may lead to unexpected behavior).' + ) + + for config_name in configs_with_differing_types: + print( + f' {config_name} has types' + f'{", ".join(config_type for config_type in configs_with_differing_types[config_name])}' + ) + + print('Please ensure all the macro constants will translate to the same config type for all targets.') + + sys.exit(1) + + files_updated = [writer.update_file() for writer in writers if writer is not None] print('Updated {} files'.format(sum(files_updated))) sys.exit(all(files_updated)) diff --git a/tools/gen_soc_caps_kconfig/test/test_gen_soc_caps_kconfig.py b/tools/gen_soc_caps_kconfig/test/test_gen_soc_caps_kconfig.py index 4d0cd796fff..398a1539515 100755 --- a/tools/gen_soc_caps_kconfig/test/test_gen_soc_caps_kconfig.py +++ b/tools/gen_soc_caps_kconfig/test/test_gen_soc_caps_kconfig.py @@ -1,7 +1,6 @@ #!/usr/bin/env python -# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 - import sys import unittest @@ -13,7 +12,6 @@ except ImportError: class ParserTests(unittest.TestCase): - def test_parse_name(self): res = gen_soc_caps_kconfig.parse_define('#define TEST_NAME (2)') self.assertEqual(res.name, 'TEST_NAME') @@ -44,10 +42,17 @@ class ParserTests(unittest.TestCase): self.assertEqual(res.int_value, '329000') def test_parse_float(self): - # Kconfig doesnt support floats, should not be parsed as anything + # Kconfig doesn't support floats, should not be parsed as anything res = gen_soc_caps_kconfig.parse_define('#define TEST_FLOAT (3.14)') self.assertEqual(res.value, '') + def test_parse_ignore_pragma(self): + res = gen_soc_caps_kconfig.parse_define('#define TEST_IGNORE // [gen_soc_caps:ignore]') + self.assertEqual(' '.join(res.ignore_pragma), '// [gen_soc_caps:ignore]') + + res = gen_soc_caps_kconfig.parse_define('#define TEST_NO_IGNORE') + self.assertEqual(res.ignore_pragma, '') + if __name__ == '__main__': print('Running gen_soc_caps_config tests...') diff --git a/tools/idf_py_actions/create_ext.py b/tools/idf_py_actions/create_ext.py index 00d9fa28816..ccbaadf989e 100644 --- a/tools/idf_py_actions/create_ext.py +++ b/tools/idf_py_actions/create_ext.py @@ -1,7 +1,8 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import os import re +import stat import sys from shutil import copyfile from shutil import copytree @@ -29,23 +30,50 @@ def is_empty_and_create(path: str, action: str) -> None: if not os.path.exists(abspath): os.makedirs(abspath) elif not os.path.isdir(abspath): - print('Your target path is not a directory. Please remove the', os.path.abspath(abspath), - 'or use different target path.') + print( + f'Your target path is not a directory.' + f'Please remove the {os.path.abspath(abspath)} or use different target path.' + ) sys.exit(4) elif len(os.listdir(path)) > 0: - print('The directory', abspath, 'is not empty. To create a', get_type(action), - 'you must empty the directory or choose a different path.') + print( + f'The directory {abspath} is not empty. To create a {get_type(action)} you must ' + f'empty the directory or choose a different path.' + ) sys.exit(3) +def make_directory_permissions_writable(root_path: str) -> None: + """ + Ensures all directories under `root_path` have write permission for the owner. + Skips files and doesn't override existing permissions unnecessarily. + Only applies to POSIX systems (Linux/macOS). + """ + if sys.platform == 'win32': + return + + for current_root, dirs, _ in os.walk(root_path): + for dirname in dirs: + dir_path = os.path.join(current_root, dirname) + try: + current_perm = stat.S_IMODE(os.stat(dir_path).st_mode) + new_perm = current_perm | stat.S_IWUSR # mask permission for owner (write) + if new_perm != current_perm: + os.chmod(dir_path, new_perm) + except PermissionError: + continue + + def create_project(target_path: str, name: str) -> None: copytree( os.path.join(os.environ['IDF_PATH'], 'tools', 'templates', 'sample_project'), target_path, - # 'copyfile' ensures only data are copied, without any metadata (file permissions) + # 'copyfile' ensures only data are copied, without any metadata (file permissions) - for files only copy_function=copyfile, dirs_exist_ok=True, ) + # since 'copyfile' does preserve directory metadata, we need to make sure the directories are writable + make_directory_permissions_writable(target_path) main_folder = os.path.join(target_path, 'main') os.rename(os.path.join(main_folder, 'main.c'), os.path.join(main_folder, '.'.join((name, 'c')))) replace_in_file(os.path.join(main_folder, 'CMakeLists.txt'), 'main', name) @@ -56,13 +84,16 @@ def create_component(target_path: str, name: str) -> None: copytree( os.path.join(os.environ['IDF_PATH'], 'tools', 'templates', 'sample_component'), target_path, - # 'copyfile' ensures only data are copied, without any metadata (file permissions) + # 'copyfile' ensures only data are copied, without any metadata (file permissions) - for files only copy_function=copyfile, dirs_exist_ok=True, ) + # since 'copyfile' does preserve directory metadata, we need to make sure the directories are writable + make_directory_permissions_writable(target_path) os.rename(os.path.join(target_path, 'main.c'), os.path.join(target_path, '.'.join((name, 'c')))) - os.rename(os.path.join(target_path, 'include', 'main.h'), - os.path.join(target_path, 'include', '.'.join((name, 'h')))) + os.rename( + os.path.join(target_path, 'include', 'main.h'), os.path.join(target_path, 'include', '.'.join((name, 'h'))) + ) replace_in_file(os.path.join(target_path, '.'.join((name, 'c'))), 'main', name) replace_in_file(os.path.join(target_path, 'CMakeLists.txt'), 'main', name) @@ -87,45 +118,50 @@ def action_extensions(base_actions: Dict, project_path: str) -> Dict: 'create-project': { 'callback': create_new, 'short_help': 'Create a new project.', - 'help': ('Create a new project with the name NAME specified as argument. ' - 'For example: ' - '`idf.py create-project new_proj` ' - 'will create a new project in subdirectory called `new_proj` ' - 'of the current working directory. ' - "For specifying the new project's path, use either the option --path for specifying the " - 'destination directory, or the global option -C if the project should be created as a ' - 'subdirectory of the specified directory. ' - 'If the target path does not exist it will be created. If the target folder is not empty ' - 'then the operation will fail with return code 3. ' - 'If the target path is not a folder, the script will fail with return code 4. ' - 'After the execution idf.py terminates ' - 'so this operation should be used alone.'), + 'help': ( + 'Create a new project with the name NAME specified as argument. ' + 'For example: ' + '`idf.py create-project new_proj` ' + 'will create a new project in subdirectory called `new_proj` ' + 'of the current working directory. ' + "For specifying the new project's path, use either the option --path for specifying the " + 'destination directory, or the global option -C if the project should be created as a ' + 'subdirectory of the specified directory. ' + 'If the target path does not exist it will be created. If the target folder is not empty ' + 'then the operation will fail with return code 3. ' + 'If the target path is not a folder, the script will fail with return code 4. ' + 'After the execution idf.py terminates ' + 'so this operation should be used alone.' + ), 'arguments': [{'names': ['name']}], 'options': [ { 'names': ['-p', '--path'], - 'help': ('Set the path for the new project. The project ' - 'will be created directly in the given folder if it does not contain anything'), + 'help': ( + 'Set the path for the new project. The project ' + 'will be created directly in the given folder if it does not contain anything' + ), }, ], - }, 'create-component': { 'callback': create_new, 'short_help': 'Create a new component.', - 'help': ('Create a new component with the name NAME specified as argument. ' - 'For example: ' - '`idf.py create-component new_comp` ' - 'will create a new component in subdirectory called `new_comp` ' - 'of the current working directory. ' - "For specifying the new component's path use the option -C. " - 'If the target path does not exist then it will be created. ' - 'If the target folder is not empty ' - 'then the operation will fail with return code 3. ' - 'If the target path is not a folder, the script will fail with return code 4. ' - 'After the execution idf.py terminates ' - 'so this operation should be used alone.'), + 'help': ( + 'Create a new component with the name NAME specified as argument. ' + 'For example: ' + '`idf.py create-component new_comp` ' + 'will create a new component in subdirectory called `new_comp` ' + 'of the current working directory. ' + "For specifying the new component's path use the option -C. " + 'If the target path does not exist then it will be created. ' + 'If the target folder is not empty ' + 'then the operation will fail with return code 3. ' + 'If the target path is not a folder, the script will fail with return code 4. ' + 'After the execution idf.py terminates ' + 'so this operation should be used alone.' + ), 'arguments': [{'names': ['name']}], - } + }, } } diff --git a/tools/idf_tools.py b/tools/idf_tools.py index f188e07951c..386877b43c4 100755 --- a/tools/idf_tools.py +++ b/tools/idf_tools.py @@ -1008,14 +1008,37 @@ class IDFTool(object): def get_preferred_installed_version(self) -> Optional[str]: """ - Get the preferred installed version of the tool. If more versions installed, return the highest. + Get the preferred installed version of the tool. + If more versions installed, return recommended version if exists, otherwise return the highest supported version """ - recommended_versions = [k for k in self.versions_installed - if self.versions[k].status == IDFToolVersion.STATUS_RECOMMENDED - and self.versions[k].compatible_with_platform(self._platform)] - assert len(recommended_versions) <= 1 - if recommended_versions: - return recommended_versions[0] + + try: + self.find_installed_versions() + except ToolBinaryError: + pass + + if self.get_recommended_version() in self.versions_installed: + return self.get_recommended_version() + + supported_installed_versions = [ + k + for k in self.versions_installed + if self.versions[k].status == IDFToolVersion.STATUS_SUPPORTED + and self.versions[k].compatible_with_platform(self._platform) + ] + sorted_supported_installed_versions = sorted( + supported_installed_versions, key=lambda x: self.versions[x], reverse=True + ) + if sorted_supported_installed_versions: + warn( + ''.join( + [ + f'Using supported version {sorted_supported_installed_versions[0]} for tool {self.name} ', + f'as recommended version {self.get_recommended_version()} is not installed.', + ] + ) + ) + return sorted_supported_installed_versions[0] return None def find_installed_versions(self) -> None: @@ -1062,8 +1085,7 @@ class IDFTool(object): else: if ver_str != version: warn(f'tool {self.name} version {version} is installed, but has reported version {ver_str}') - else: - self.versions_installed.append(version) + self.versions_installed.append(version) if tool_error: raise ToolBinaryError @@ -1442,6 +1464,25 @@ class IDFRecord: features.add('core') self._features = list(features) + def check_feature_requirements_files(self) -> None: + """ + Check if feature requirements files exist. + If not, remove the feature from the features list. + """ + features_to_remove: Tuple[str, ...] = () + for feature in self._features: + if not os.path.isfile(feature_to_requirements_path(feature)): + info( + '\n'.join( + [ + f"Feature file '{feature_to_requirements_path(feature)}' does not exist.", + f'Removing feature {feature}', + ] + ) + ) + features_to_remove += (feature,) + self.update_features(remove=features_to_remove) + @property def targets(self) -> List[str]: return self._targets @@ -1739,6 +1780,9 @@ def expand_tools_arg(tools_spec: List[str], overall_tools: OrderedDict, targets: # Filtering by ESP_targets tools = [k for k in tools if overall_tools[k].is_supported_for_any_of_targets(targets)] + + # Processing specific version of tool - defined with '@' + tools.extend([tool_pattern for tool_pattern in tools_spec if '@' in tool_pattern]) return tools @@ -1802,6 +1846,7 @@ def process_and_check_features(idf_env_obj: IDFEnv, features_str: str) -> List[s raise SystemExit(1) idf_env_obj.get_active_idf_record().update_features(tuple(new_features), tuple(remove_features)) + idf_env_obj.get_active_idf_record().check_feature_requirements_files() return idf_env_obj.get_active_idf_record().features @@ -2078,10 +2123,6 @@ def process_tool( tool_export_paths: List[str] = [] tool_export_vars: Dict[str, str] = {} - try: - tool.find_installed_versions() - except ToolBinaryError: - pass recommended_version_to_use = tool.get_preferred_installed_version() if not tool.is_executable and recommended_version_to_use: @@ -2645,9 +2686,8 @@ def action_install_python_env(args): # type: ignore install_legacy_python_virtualenv(idf_python_env_path) env_copy = os.environ.copy() - if env_copy.get('PIP_USER') == 'yes': - warn('Found PIP_USER="yes" in the environment. Disabling PIP_USER in this shell to install packages into a virtual environment.') - env_copy['PIP_USER'] = 'no' + # Enforce disabling possible pip 'user' option to prevent installation error with virtual environment + env_copy['PIP_USER'] = 'no' constraint_file = get_constraints(idf_version) if use_constraints else None @@ -2892,8 +2932,10 @@ def action_uninstall(args: Any) -> None: for tool in installed_tools: tool_versions = os.listdir(os.path.join(tools_path, tool)) if os.path.isdir(os.path.join(tools_path, tool)) else [] try: - unused_versions = ([x for x in tool_versions if x != tools_info[tool].get_recommended_version()]) - except KeyError: # When tool that is not supported by tools_info (tools.json) anymore, remove the whole tool file + unused_versions = [x for x in tool_versions if x != tools_info[tool].get_preferred_installed_version()] + except ( + KeyError + ): # When tool that is not supported by tools_info (tools.json) anymore, remove the whole tool file unused_versions = [''] if unused_versions: unused_tools_versions[tool] = unused_versions @@ -2938,7 +2980,7 @@ def action_uninstall(args: Any) -> None: tool_name, tool_version = tool_spec.split('@', 1) tool_obj = tools_info_for_platform[tool_name] if tool_version is None: - tool_version = tool_obj.get_recommended_version() + tool_version = tool_obj.get_preferred_installed_version() # mypy-checks if tool_version is not None: archive_version = tool_obj.versions[tool_version].get_download_for_platform(CURRENT_PLATFORM) diff --git a/tools/test_build_system/build_test_app/main/KConfig.projbuild b/tools/test_build_system/build_test_app/main/KConfig.projbuild new file mode 100644 index 00000000000..4c7e3fb2446 --- /dev/null +++ b/tools/test_build_system/build_test_app/main/KConfig.projbuild @@ -0,0 +1,4 @@ +# Misspelled Kconfig file checks whether it is picked up by the build system +config FROM_MISSPELLED_KCONFIG + bool "From misspelled Kconfig" + default y diff --git a/tools/test_build_system/pytest.ini b/tools/test_build_system/pytest.ini index fe058544ee3..eeac16e6d7b 100644 --- a/tools/test_build_system/pytest.ini +++ b/tools/test_build_system/pytest.ini @@ -1,4 +1,5 @@ [pytest] +addopts = -p no:idf-ci # log related log_cli = True diff --git a/tools/test_build_system/test_build.py b/tools/test_build_system/test_build.py index bcc2d73527e..5c56d436efb 100644 --- a/tools/test_build_system/test_build.py +++ b/tools/test_build_system/test_build.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import logging import os @@ -35,7 +35,9 @@ def test_build_alternative_directories(idf_py: IdfPyFunc, func_work_dir: Path, t assert os.listdir(alt_build_dir) != [], 'No files found in new build directory!' default_build_dir = test_app_copy / 'build' if default_build_dir.exists(): - assert os.listdir(default_build_dir) == [], f'Some files were incorrectly put into the default build directory: {default_build_dir}' + assert os.listdir(default_build_dir) == [], ( + f'Some files were incorrectly put into the default build directory: {default_build_dir}' + ) except Exception: raise else: @@ -146,10 +148,17 @@ def test_build_with_sdkconfig_build_abspath(idf_py: IdfPyFunc, test_app_copy: Pa def test_build_fail_on_build_time(idf_py: IdfPyFunc, test_app_copy: Path) -> None: logging.info('Fail on build time works') - append_to_file(test_app_copy / 'CMakeLists.txt', '\n'.join(['', - 'if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/hello.txt")', - 'fail_at_build_time(test_file "hello.txt does not exists")', - 'endif()'])) + append_to_file( + test_app_copy / 'CMakeLists.txt', + '\n'.join( + [ + '', + 'if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/hello.txt")', + 'fail_at_build_time(test_file "hello.txt does not exists")', + 'endif()', + ] + ), + ) ret = idf_py('build', check=False) assert ret.returncode != 0, 'Build should fail if requirements are not satisfied' (test_app_copy / 'hello.txt').touch() @@ -160,10 +169,14 @@ def test_build_fail_on_build_time(idf_py: IdfPyFunc, test_app_copy: Path) -> Non def test_build_dfu(idf_py: IdfPyFunc) -> None: logging.info('DFU build works') ret = idf_py('dfu', check=False) - assert 'command "dfu" is not known to idf.py and is not a Ninja target' in ret.stderr, 'DFU build should fail for default chip target' + assert 'command "dfu" is not known to idf.py and is not a Ninja target' in ret.stderr, ( + 'DFU build should fail for default chip target' + ) idf_py('set-target', 'esp32s2') ret = idf_py('dfu') - assert 'build/dfu.bin" has been written. You may proceed with DFU flashing.' in ret.stdout, 'DFU build should succeed for esp32s2' + assert 'build/dfu.bin" has been written. You may proceed with DFU flashing.' in ret.stdout, ( + 'DFU build should succeed for esp32s2' + ) assert_built(BOOTLOADER_BINS + APP_BINS + PARTITION_BIN + ['build/dfu.bin']) @@ -174,23 +187,35 @@ def test_build_uf2(idf_py: IdfPyFunc) -> None: assert 'build/uf2.bin, ready to be flashed with any ESP USB Bridge' in ret.stdout, 'UF2 build should work for esp32' assert_built(BOOTLOADER_BINS + APP_BINS + PARTITION_BIN + ['build/uf2.bin']) ret = idf_py('uf2-app') - assert 'build/uf2-app.bin, ready to be flashed with any ESP USB Bridge' in ret.stdout, 'UF2 build should work for application binary' + assert 'build/uf2-app.bin, ready to be flashed with any ESP USB Bridge' in ret.stdout, ( + 'UF2 build should work for application binary' + ) assert_built(['build/uf2-app.bin']) idf_py('set-target', 'esp32s2') ret = idf_py('uf2') - assert 'build/uf2.bin, ready to be flashed with any ESP USB Bridge' in ret.stdout, 'UF2 build should work for esp32s2' + assert 'build/uf2.bin, ready to be flashed with any ESP USB Bridge' in ret.stdout, ( + 'UF2 build should work for esp32s2' + ) assert_built(BOOTLOADER_BINS + APP_BINS + PARTITION_BIN + ['build/uf2.bin']) def test_build_loadable_elf(idf_py: IdfPyFunc, test_app_copy: Path) -> None: logging.info('Loadable ELF build works') - (test_app_copy / 'sdkconfig').write_text('\n'.join(['CONFIG_APP_BUILD_TYPE_RAM=y', - 'CONFIG_VFS_SUPPORT_TERMIOS=n', - 'CONFIG_NEWLIB_NANO_FORMAT=y', - 'CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y', - 'CONFIG_ESP_ERR_TO_NAME_LOOKUP=n'])) + (test_app_copy / 'sdkconfig').write_text( + '\n'.join( + [ + 'CONFIG_APP_BUILD_TYPE_RAM=y', + 'CONFIG_VFS_SUPPORT_TERMIOS=n', + 'CONFIG_NEWLIB_NANO_FORMAT=y', + 'CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y', + 'CONFIG_ESP_ERR_TO_NAME_LOOKUP=n', + ] + ) + ) idf_py('reconfigure') - assert (test_app_copy / 'build' / 'flasher_args.json').exists(), 'flasher_args.json should be generated in a loadable ELF build' + assert (test_app_copy / 'build' / 'flasher_args.json').exists(), ( + 'flasher_args.json should be generated in a loadable ELF build' + ) idf_py('build') @@ -221,3 +246,22 @@ def test_build_cmake_executable_suffix(idf_py: IdfPyFunc, test_app_copy: Path) - append_to_file((test_app_copy / 'CMakeLists.txt'), 'set(CMAKE_EXECUTABLE_SUFFIX_CXX ".ext")') ret = idf_py('build') assert 'Project build complete' in ret.stdout, 'Build with CMAKE_EXECUTABLE_SUFFIX set failed' + + +def test_build_with_misspelled_kconfig(idf_py: IdfPyFunc, test_app_copy: Path) -> None: + logging.info('idf.py can build with misspelled Kconfig file') + ret = idf_py('build') + assert " file should be named 'Kconfig.projbuild'" in ret.stdout, 'Misspelled Kconfig file should be detected' + assert_built(BOOTLOADER_BINS + APP_BINS + PARTITION_BIN) + with open(test_app_copy / 'sdkconfig', 'r') as f: + sdkconfig = f.read() + # NOTE: Both Windows and macOS are case insensitive and implicitly included all Kconfig files, + # no matter their casing. Linux is case sensitive and will not include Kconfig files with misspelled names. + if sys.platform in ['win32', 'cygwin', 'darwin']: + assert 'CONFIG_FROM_MISSPELLED_KCONFIG' in sdkconfig, ( + 'Config options from misspelled Kconfig file should be set in sdkconfig on Windows/macOS' + ) + else: + assert 'CONFIG_FROM_MISSPELLED_KCONFIG=y' not in sdkconfig, ( + 'Config options from misspelled Kconfig file should not be set in sdkconfig on Linux-based systems' + ) diff --git a/tools/test_idf_py/pytest.ini b/tools/test_idf_py/pytest.ini index d95e773e5cd..8cb59810c32 100644 --- a/tools/test_idf_py/pytest.ini +++ b/tools/test_idf_py/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = -s -p no:pytest_embedded +addopts = -s -p no:pytest_embedded -p no:idf-ci # log related log_cli = True diff --git a/tools/test_idf_size/pytest.ini b/tools/test_idf_size/pytest.ini index d95e773e5cd..8cb59810c32 100644 --- a/tools/test_idf_size/pytest.ini +++ b/tools/test_idf_size/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = -s -p no:pytest_embedded +addopts = -s -p no:pytest_embedded -p no:idf-ci # log related log_cli = True diff --git a/tools/test_idf_tools/test_idf_tools.py b/tools/test_idf_tools/test_idf_tools.py index 87eab1dee0c..4966311a776 100755 --- a/tools/test_idf_tools/test_idf_tools.py +++ b/tools/test_idf_tools/test_idf_tools.py @@ -303,6 +303,32 @@ class TestUsage(TestUsageBase): self.assertIn(os.path.join(tool_to_test, tool_version), output) + def test_export_supported_version_cmake(self): + tool_to_test = 'cmake' + supported_version = '' + recommended_version = '' + for tool in self.tools_dict['tools']: + if tool['name'] != tool_to_test: + continue + for version in tool['versions']: + if version['status'] == 'supported': + supported_version = version['name'] + elif version['status'] == 'recommended': + recommended_version = version['name'] + + self.run_idf_tools_with_action(['install']) + output = self.run_idf_tools_with_action(['install', f'{tool_to_test}@{supported_version}']) + self.assert_tool_installed(output, tool_to_test, supported_version) + + # Remove the recommended version folder installed by install command (in case of Windows) + recommended_version_folder = os.path.join(self.temp_tools_dir, 'tools', tool_to_test, recommended_version) + if os.path.exists(recommended_version_folder): + shutil.rmtree(recommended_version_folder) + + output = self.run_idf_tools_with_action(['export']) + self.assertIn(os.path.join(tool_to_test, supported_version), output) + self.assertNotIn(os.path.join(tool_to_test, recommended_version), output) + def test_export_prefer_system_cmake(self): tool_to_test = 'cmake' self.run_idf_tools_with_action(['install']) @@ -625,42 +651,42 @@ class TestUsageWin(TestUsage): self.assertIn('version installed in tools directory: ' + tool_version, output) output = self.run_idf_tools_with_action(['export']) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64' - ), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) output = self.run_idf_tools_with_action(['list', '--outdated']) self.assertEqual('', output) @@ -718,42 +744,50 @@ class TestUsageWin(TestUsage): self.assertNotIn('version installed in tools directory: ' + DFU_UTIL_VERSION, output) output = self.run_idf_tools_with_action(['export']) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION, - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64' - ), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin'), output + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin'), + output, + ) + self.assertNotIn( + os.path.join( + self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, + 'tools', + 'esp-rom-elfs', + ESP_ROM_ELFS_VERSION, + ), + output, + ) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) def test_tools_for_esp32c3_win(self): required_tools_installed = 8 @@ -780,39 +814,44 @@ class TestUsageWin(TestUsage): self.assertNotIn('version installed in tools directory: ' + DFU_UTIL_VERSION, output) output = self.run_idf_tools_with_action(['export']) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION, - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64' - ), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin'), + output, + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin'), + output, + ) + self.assertNotIn( + os.path.join( + self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, + 'tools', + 'esp-rom-elfs', + ESP_ROM_ELFS_VERSION, + ), + output, + ) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) def test_tools_for_esp32s2_win(self): required_tools_installed = 11 @@ -838,42 +877,50 @@ class TestUsageWin(TestUsage): self.assertIn('version installed in tools directory: ' + tool_version, output) output = self.run_idf_tools_with_action(['export']) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION, - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64' - ), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertNotIn( + os.path.join( + self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, + 'tools', + 'esp-rom-elfs', + ESP_ROM_ELFS_VERSION, + ), + output, + ) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) def test_tools_for_esp32s3_win(self): required_tools_installed = 11 @@ -901,42 +948,50 @@ class TestUsageWin(TestUsage): self.assertIn('version installed in tools directory: ' + tool_version, output) output = self.run_idf_tools_with_action(['export']) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' - ), output) - self.assertNotIn(os.path.join( - self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', 'esp-rom-elfs', ESP_ROM_ELFS_VERSION, - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64' - ), output) - self.assertIn(os.path.join( - self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64' - ), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'xtensa-esp-elf', XTENSA_ELF_VERSION, 'xtensa-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'esp32ulp-elf', ESP32ULP_VERSION, 'esp32ulp-elf', 'bin'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', 'riscv32-esp-elf', RISCV_ELF_VERSION, 'riscv32-esp-elf', 'bin'), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, 'tools', 'xtensa-esp-elf-gdb', XTENSA_ESP_GDB_VERSION, 'xtensa-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertNotIn( + os.path.join( + self.temp_tools_dir, 'tools', 'riscv32-esp-elf-gdb', RISCV_ESP_GDB_VERSION, 'riscv32-esp-elf-gdb', 'bin' + ), + output, + ) + self.assertIn( + os.path.join( + self.temp_tools_dir, + 'tools', + 'esp-rom-elfs', + ESP_ROM_ELFS_VERSION, + ), + output, + ) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) + self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) def test_tools_for_esp32p4_win(self): required_tools_installed = 8 @@ -968,11 +1023,22 @@ class TestUsageWin(TestUsage): self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CMAKE, CMAKE_VERSION, 'bin'), output) self.assertIn(os.path.join(self.temp_tools_dir, 'tools', NINJA, NINJA_VERSION), output) self.assertIn(os.path.join(self.temp_tools_dir, 'tools', IDF_EXE, IDF_EXE_VERSION), output) - self.assertIn(os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.10.2-windows-x86_64'), output) - self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF, 'bin'), output) - self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', ESP32ULP, ESP32ULP_VERSION, ESP32ULP, 'bin'), output) - self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION, XTENSA_ESP_GDB, 'bin'), output) - self.assertNotIn(os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output) + self.assertIn( + os.path.join(self.temp_tools_dir, 'tools', CCACHE, CCACHE_VERSION, 'ccache-4.11.2-windows-x86_64'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', XTENSA_ELF, XTENSA_ELF_VERSION, XTENSA_ELF, 'bin'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', ESP32ULP, ESP32ULP_VERSION, ESP32ULP, 'bin'), output + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', XTENSA_ESP_GDB, XTENSA_ESP_GDB_VERSION, XTENSA_ESP_GDB, 'bin'), + output, + ) + self.assertNotIn( + os.path.join(self.temp_tools_dir, 'tools', DFU_UTIL, DFU_UTIL_VERSION, 'dfu-util-0.11-win64'), output + ) # a different test for qemu because of "on_request" def test_tools_for_qemu_with_required_win(self): diff --git a/tools/test_mkdfu/pytest.ini b/tools/test_mkdfu/pytest.ini index d95e773e5cd..8cb59810c32 100644 --- a/tools/test_mkdfu/pytest.ini +++ b/tools/test_mkdfu/pytest.ini @@ -1,5 +1,5 @@ [pytest] -addopts = -s -p no:pytest_embedded +addopts = -s -p no:pytest_embedded -p no:idf-ci # log related log_cli = True diff --git a/tools/tools.json b/tools/tools.json index ca7f86be8fd..f11159ee63d 100644 --- a/tools/tools.json +++ b/tools/tools.json @@ -26,51 +26,51 @@ "versions": [ { "linux-amd64": { - "sha256": "9d68472d4cba5cf8c2b79d94f86f92c828e76a632bd1e6be5e7706e5b304d36e", - "size": 31010320, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz" + "sha256": "27b58ab12248e04277c4fdc74038cf0a001d5142df091ab94939ad35053738fd", + "size": 36361058, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz" }, "linux-arm64": { - "sha256": "bdabc3217994815fc311c4e16e588b78f6596b5ad4ffa46c80b40e982cfb1e66", - "size": 30954580, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz" + "sha256": "24f85aa778e1605098a13ff7bd29d5760767faf012705c8915cb08b32cad0206", + "size": 35442104, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz" }, "linux-armel": { - "sha256": "d54b8d703ba897b28c627da3d27106a3906dd01ba298778a67064710bc33c76d", - "size": 28697281, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz" + "sha256": "c73e43038b6d50374cd0ee714370ce748189e0b00404d581babd2bb0115c4785", + "size": 31260410, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz" }, "linux-armhf": { - "sha256": "6187d1dd54e57927f7a7b804ff431fe0a295d5d5638c7654ee2bb7c3e0e84d4b", - "size": 26906258, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-arm-linux-gnueabihf.tar.gz" + "sha256": "5be24888e864faa22f89c999b6a7c57285763baa41bbe959abec189bd4277cd3", + "size": 31195042, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-arm-linux-gnueabihf.tar.gz" }, "linux-i686": { - "sha256": "64d3bc992ed8fdec383d49e8b803ac494605a38117c8293db8da055037de96b0", - "size": 29890994, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz" + "sha256": "dc7b8aad0fb1c6a1abfdb8dff4f08221ea08a0f28fb837f181969ac1174d4dc6", + "size": 35067894, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz" }, "macos": { - "sha256": "023e74b3fda793da4bc0509b02de776ee0dad6efaaac17bef5916fb7dc9c26b9", - "size": 44446611, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz" + "sha256": "398c429cfe696bad01d636c5488cadc87b20471c1b5ed02c60eee5ef2a775c93", + "size": 54992785, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz" }, "macos-arm64": { - "sha256": "ea757c6bf8c25238f6d2fdcc6bbab25a1b00608a0f9e19b7ddd2f37ddbdc3fb1", - "size": 37021423, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz" + "sha256": "b6d85c0d76d653bb55f9d06b0cd509eab7e99db541c88b8c849c64827e9d74a9", + "size": 43538967, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz" }, - "name": "14.2_20240403", + "name": "16.2_20250324", "status": "recommended", "win32": { - "sha256": "322e8d9b700dc32d8158e3dc55fb85ec55de48d0bb7789375ee39a28d5d655e2", - "size": 26302466, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip" + "sha256": "f748d6b65fdf66733b82e12d0d85a05e3134122416280379df129cfebe2aa4b2", + "size": 32189419, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip" }, "win64": { - "sha256": "a27a2fe20f192f8e0a51b8936428b4e1cf8935cfe008ee445cc49f6fc7f6db2e", - "size": 28366035, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip" + "sha256": "e970fc3ec8a1d0acee2432e91e0a01b348613a0425aacfa981b2fc505fe920cc", + "size": 32290997, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/xtensa-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip" } } ] @@ -105,51 +105,51 @@ "versions": [ { "linux-amd64": { - "sha256": "ce004bc0bbd71b246800d2d13b239218b272a38bd528e316f21f1af2db8a4b13", - "size": 30707431, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz" + "sha256": "f9b172d8d72d0a1e2b0b80127df29263a0cb0d0c4e998e09c27031bfac09f3ec", + "size": 36528201, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-linux-gnu.tar.gz" }, "linux-arm64": { - "sha256": "ba10f2866c61410b88c65957274280b1a62e3bed05131654ed9b6758efe18e55", - "size": 30824065, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz" + "sha256": "68bb6a85fb58b8a738f799e8fb4fa1f56cfeffc4de803ceb03c8a33cb2cd919d", + "size": 35643464, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-aarch64-linux-gnu.tar.gz" }, "linux-armel": { - "sha256": "88539db5d987f28827efac7e26080a2803b9b539342ccd2963ccfdd56d7f08f7", - "size": 29000575, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz" + "sha256": "673038ab9fb2b7391ff9252824194e3b9e40668efe9ce54d1e582a9d6c51f04a", + "size": 32154574, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-arm-linux-gnueabi.tar.gz" }, "linux-armhf": { - "sha256": "b45b9711d6a87d4c2f688a9599ce850ce02f477756e3e797c4a6c1c549127fcb", - "size": 27157938, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-arm-linux-gnueabihf.tar.gz" + "sha256": "e5fefa9b155c6b02e0291e2fecea17b1168a820838ffbdcb7ce76cbe9867e7b5", + "size": 32034954, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-arm-linux-gnueabihf.tar.gz" }, "linux-i686": { - "sha256": "0e628ee37438ab6ba05eb889a76d09e50cb98e0020a16b8e2b935c5cf19b4ed2", - "size": 29947521, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz" + "sha256": "62f05d5fe08145b25e423dd0b3f1ae260be99abf5462b8cfd918bf2231e26e30", + "size": 35410891, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-i586-linux-gnu.tar.gz" }, "macos": { - "sha256": "8f6bda832d70dad5860a639d55aba4237bd10cbac9f4822db1eece97357b34a9", - "size": 44196117, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz" + "sha256": "63ae12cfbab648e2d2ca7a700a0c615c4f36a6fbe6876c11ba108115ee0d60f2", + "size": 55359246, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-apple-darwin21.1.tar.gz" }, "macos-arm64": { - "sha256": "d88b6116e86456c8480ce9bc95aed375a35c0d091f1da0a53b86be0e6ef3d320", - "size": 36794404, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz" + "sha256": "bfbe49774f839020cef988537da0a06896dfe4a382674c62285361ed9bd4aee3", + "size": 43926592, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-aarch64-apple-darwin21.1.tar.gz" }, - "name": "14.2_20240403", + "name": "16.2_20250324", "status": "recommended", "win32": { - "sha256": "d6e7ce05805b0d8d4dd138ad239b98a1adf8da98941867d60760eb1ae5361730", - "size": 26486295, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip" + "sha256": "e8b84eec990ff514729b3770edf2b543f36670f43663ce0c3b624fb4884812ca", + "size": 32914955, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-i686-w64-mingw32.zip" }, "win64": { - "sha256": "5c9f211dc46daf6b96fad09d709284a0f0186fef8947d9f6edd6bca5b5ad4317", - "size": 27942579, - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip" + "sha256": "37c79178900c19ca7487c26af4b5ad6b0d3f34683bd0e9c2ddd39038c999e429", + "size": 32667353, + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v16.2_20250324/riscv32-esp-elf-gdb-16.2_20250324-x86_64-w64-mingw32.zip" } } ] @@ -605,46 +605,46 @@ "versions": [ { "linux-amd64": { - "sha256": "eb1fa9b21c65b45a2200af6dcc2914e32335d37b6dbbd181778dcc0dc025e70a", - "size": 2445546, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-linux-amd64-0.12.0-esp32-20250422.tar.gz" + "sha256": "766293bd7a08900d3536f87a0a7ade960f07266f16e4147f95ca5ce4e15d4c5d", + "size": 2489724, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-amd64-0.12.0-esp32-20250707.tar.gz" }, "linux-arm64": { - "sha256": "f70334a9b12a75b4d943e09fa5db30973037c39dbb54d6fa9f1a7118228b3d1c", - "size": 2330926, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-linux-arm64-0.12.0-esp32-20250422.tar.gz" + "sha256": "34b6883c372444b49950893b2fc0101aefd10d404a88ef72c97e80199f8544d3", + "size": 2371243, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-arm64-0.12.0-esp32-20250707.tar.gz" }, "linux-armel": { - "sha256": "4ac34d6fd1af86aeda87c8318732f8d691c300c285c7fd2f5037c432c63fbbb3", - "size": 2470732, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-linux-armel-0.12.0-esp32-20250422.tar.gz" + "sha256": "fd48492cf3ee16577c661fdccc14c349d34a9ab93aac5039ddf72332d4f4b70b", + "size": 2517680, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-armel-0.12.0-esp32-20250707.tar.gz" }, "linux-armhf": { - "sha256": "75372bdbcef2df64013dd36c88836e1029c52955941b69ca463397ccbd287c21", - "size": 2310816, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-linux-armhf-0.12.0-esp32-20250422.tar.gz" + "sha256": "a468cc108578a1f4553ac0502c814d47791ef79f5997a31e941908fa5119de9c", + "size": 2353427, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-linux-armhf-0.12.0-esp32-20250707.tar.gz" }, "macos": { - "sha256": "9186a7a06304c6d9201cbce4ee3c7099b393bf8d329cda17a68874f92308f6ce", - "size": 2548730, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-macos-0.12.0-esp32-20250422.tar.gz" + "sha256": "6267be53892a76d535938a1b044b685adc7d292f090447e8a3e3d0f0996474d1", + "size": 2585348, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-macos-0.12.0-esp32-20250707.tar.gz" }, "macos-arm64": { - "sha256": "2cc39318d52f393233ff1f777871aebe5b97b3fbad29556a238489263401b774", - "size": 2593819, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-macos-arm64-0.12.0-esp32-20250422.tar.gz" + "sha256": "150e938ac48a6ee031ddbc8b31043bc7f2073ab2ee4896b658918d35899673c3", + "size": 2628741, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-macos-arm64-0.12.0-esp32-20250707.tar.gz" }, - "name": "v0.12.0-esp32-20250422", + "name": "v0.12.0-esp32-20250707", "status": "recommended", "win32": { - "sha256": "ecb4f8533fa9098d10000f5f7e8b8eaa8591015b824b481078ddb2b37e7aa6f2", - "size": 2988859, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-win32-0.12.0-esp32-20250422.zip" + "sha256": "666274b04af7f36b430b6d063006051c37b8635b5175735ad5af07a1fbc6f486", + "size": 3034680, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-win32-0.12.0-esp32-20250707.zip" }, "win64": { - "sha256": "e9eae8e1a8d0e030cd81dcb08394a9137cb7338a6211dfabcdbdfb37b58c5a23", - "size": 2988858, - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250422/openocd-esp32-win64-0.12.0-esp32-20250422.zip" + "sha256": "5186ba3f7ee29fb6ab68a4ed7bb417211bad76ecdcdf9280a9187ebfd549a3c1", + "size": 3034680, + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20250707/openocd-esp32-win64-0.12.0-esp32-20250707.zip" } } ] @@ -759,7 +759,7 @@ "description": "Ccache (compiler cache)", "export_paths": [ [ - "ccache-4.10.2-windows-x86_64" + "ccache-4.11.2-windows-x86_64" ] ], "export_vars": { @@ -787,12 +787,12 @@ "version_regex": "ccache version ([0-9.]+)", "versions": [ { - "name": "4.10.2", + "name": "4.11.2", "status": "recommended", "win64": { - "sha256": "6252f081876a9a9f700fae13a5aec5d0d486b28261d7f1f72ac11c7ad9df4da9", - "size": 1610890, - "url": "https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2-windows-x86_64.zip" + "sha256": "1f39f3ad5aae3fe915e99ad1302633bc8f6718e58fa7c0de2b0ba7e080f0f08c", + "size": 1642225, + "url": "https://github.com/ccache/ccache/releases/download/v4.11.2/ccache-4.11.2-windows-x86_64.zip" } } ]