mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 02:37:19 +02:00
Merge branch 'register_gcov_tick_hook_once_v5.1' into 'release/v5.1'
fix(gcov): avoid multiple tick hook registration (v5.1) See merge request espressif/esp-idf!29273
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -106,12 +106,16 @@ static int esp_dbg_stub_gcov_entry(void)
|
|||||||
|
|
||||||
void gcov_rtio_init(void)
|
void gcov_rtio_init(void)
|
||||||
{
|
{
|
||||||
uint32_t capabilities = 0;
|
uint32_t stub_entry = 0;
|
||||||
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
|
||||||
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
|
assert(esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_GCOV, &stub_entry) == ESP_OK);
|
||||||
if (esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &capabilities) == ESP_OK) {
|
if (stub_entry != 0) {
|
||||||
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, capabilities | ESP_DBG_STUB_CAP_GCOV_TASK);
|
/* "__gcov_init()" can be called several times. We must avoid multiple tick hook registration */
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
|
||||||
|
assert(esp_dbg_stub_entry_get(ESP_DBG_STUB_ENTRY_CAPABILITIES, &stub_entry) == ESP_OK);
|
||||||
|
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_CAPABILITIES, stub_entry | ESP_DBG_STUB_CAP_GCOV_TASK);
|
||||||
esp_register_freertos_tick_hook(gcov_create_task_tick_hook);
|
esp_register_freertos_tick_hook(gcov_create_task_tick_hook);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user