Merge branch 'contrib/github_pr_10895' into 'master'

Fix possible conversion errors by using __builtin_ffsll (GitHub PR)

Closes IDFGH-9541

See merge request espressif/esp-idf!23429
pull/11344/head
Jakob Hasse 2023-05-04 10:41:46 +08:00
commit 0a3cfce671
5 zmienionych plików z 48 dodań i 4 usunięć

Wyświetl plik

@ -413,9 +413,9 @@ FORCE_INLINE_ATTR void esp_cpu_intr_edge_ack(int intr_num)
{
assert(intr_num >= 0 && intr_num < SOC_CPU_INTR_NUM);
#ifdef __XTENSA__
xthal_set_intclear(1 << intr_num);
xthal_set_intclear((unsigned) (1 << intr_num));
#else
rv_utils_intr_edge_ack(intr_num);
rv_utils_intr_edge_ack((unsigned) intr_num);
#endif
}

Wyświetl plik

@ -102,7 +102,7 @@ FORCE_INLINE_ATTR uint32_t rv_utils_intr_get_enabled_mask(void)
return REG_READ(INTERRUPT_CORE0_CPU_INT_ENABLE_REG);
}
FORCE_INLINE_ATTR void rv_utils_intr_edge_ack(int intr_num)
FORCE_INLINE_ATTR void rv_utils_intr_edge_ack(unsigned int intr_num)
{
REG_SET_BIT(INTERRUPT_CORE0_CPU_INT_CLEAR_REG, intr_num);
}

Wyświetl plik

@ -152,7 +152,7 @@ FORCE_INLINE_ATTR void xt_utils_set_watchpoint(int wp_num,
{
// Initialize DBREAKC bits (see Table 4–143 or isa_rm.pdf)
uint32_t dbreakc_reg = 0x3F;
dbreakc_reg = dbreakc_reg << (__builtin_ffs(size) - 1);
dbreakc_reg = dbreakc_reg << (__builtin_ffsll(size) - 1);
dbreakc_reg = dbreakc_reg & 0x3F;
if (on_read) {
dbreakc_reg |= BIT(30);

Wyświetl plik

@ -1,5 +1,8 @@
idf_component_register(SRCS cxx_build_test_main.cpp
test_soc_reg_macros.cpp
test_esp_hw_support.cpp
INCLUDE_DIRS "."
PRIV_REQUIRES driver
REQUIRES soc)
set_source_files_properties(test_esp_hw_support.cpp PROPERTIES COMPILE_FLAGS -Wsign-conversion)

Wyświetl plik

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#include "esp_cpu.h"
#include "clk_ctrl_os.h"
//#include "clk_tree.h" TODO: outdated header name (IDF-7286)
#include "dport_access.h"
#include "esp_async_memcpy.h"
#include "esp_chip_info.h"
#include "esp_crc.h"
#include "esp_etm.h"
#include "esp_fault.h"
#include "esp_interface.h"
#include "esp_intr_alloc.h"
#include "esp_mac.h"
#include "esp_memory_utils.h"
#include "esp_memprot_err.h"
#include "esp_memprot.h"
#include "esp_memprot_types.h"
#include "esp_random.h"
#include "esp_sleep.h"
#include "esp_wake_stub.h"
#include "intr_types.h"
#include "rtc_wdt.h"
#include "spinlock.h"
#include "soc/soc_caps.h"
#if SOC_HMAC_SUPPORTED
#include "esp_hmac.h"
#endif
#if SOC_DIG_SIGN_SUPPORTED
#include "esp_ds_err.h"
#include "esp_ds.h"
#endif
extern "C" void app_main() { }