From 5558937950d112714cfb7641ed90a8be001d1593 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 4 Apr 2023 12:53:17 +0200 Subject: [PATCH 1/7] pkg/esp32_sdk: patches for compilation with gcc 12.2 (cherry picked from commit c4881cc1488ddb3b9d8026938826e3a30d8b80ed) --- ...terrupt-type-to-riscv-interrupt-type.patch | 25 ++++ ...lude-stddef.h-for-size_t-deklaration.patch | 24 +++ ...sp32s3-fix-return-types-in-functions.patch | 141 ++++++++++++++++++ 3 files changed, 190 insertions(+) create mode 100644 pkg/esp32_sdk/patches/0028-hal-cast-esp-interrupt-type-to-riscv-interrupt-type.patch create mode 100644 pkg/esp32_sdk/patches/0029-nfs_flash-include-stddef.h-for-size_t-deklaration.patch create mode 100644 pkg/esp32_sdk/patches/0030-bt-controller-esp32s3-fix-return-types-in-functions.patch diff --git a/pkg/esp32_sdk/patches/0028-hal-cast-esp-interrupt-type-to-riscv-interrupt-type.patch b/pkg/esp32_sdk/patches/0028-hal-cast-esp-interrupt-type-to-riscv-interrupt-type.patch new file mode 100644 index 000000000000..d588f1057fa2 --- /dev/null +++ b/pkg/esp32_sdk/patches/0028-hal-cast-esp-interrupt-type-to-riscv-interrupt-type.patch @@ -0,0 +1,25 @@ +From 19f7ed9aaab8be94571779fc8b738d3479e0aa23 Mon Sep 17 00:00:00 2001 +From: Gunar Schorcht +Date: Tue, 4 Apr 2023 09:55:00 +0200 +Subject: [PATCH 28/29] hal: cast esp interrupt type to riscv interrupt type + +--- + components/hal/esp32c3/include/hal/interrupt_controller_ll.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/hal/esp32c3/include/hal/interrupt_controller_ll.h b/components/hal/esp32c3/include/hal/interrupt_controller_ll.h +index 70afe314cfe..3c3ef3b953e 100644 +--- a/components/hal/esp32c3/include/hal/interrupt_controller_ll.h ++++ b/components/hal/esp32c3/include/hal/interrupt_controller_ll.h +@@ -124,7 +124,7 @@ static inline void intr_cntrl_ll_set_int_level(int intr, int level) + */ + static inline void intr_cntrl_ll_set_int_type(int intr, int_type_t type) + { +- esprv_intc_int_set_type(BIT(intr), type); ++ esprv_intc_int_set_type(BIT(intr), (enum intr_type)type); + } + + #ifdef __cplusplus +-- +2.34.1 + diff --git a/pkg/esp32_sdk/patches/0029-nfs_flash-include-stddef.h-for-size_t-deklaration.patch b/pkg/esp32_sdk/patches/0029-nfs_flash-include-stddef.h-for-size_t-deklaration.patch new file mode 100644 index 000000000000..2a8ecc052191 --- /dev/null +++ b/pkg/esp32_sdk/patches/0029-nfs_flash-include-stddef.h-for-size_t-deklaration.patch @@ -0,0 +1,24 @@ +From 0e52f50f9c53eac78f5c70aed1f140b8ba3a3031 Mon Sep 17 00:00:00 2001 +From: Gunar Schorcht +Date: Tue, 4 Apr 2023 09:55:45 +0200 +Subject: [PATCH 29/29] nfs_flash: include stddef.h for size_t deklaration + +--- + components/nvs_flash/src/intrusive_list.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/components/nvs_flash/src/intrusive_list.h b/components/nvs_flash/src/intrusive_list.h +index bb580502ec7..695020c415f 100644 +--- a/components/nvs_flash/src/intrusive_list.h ++++ b/components/nvs_flash/src/intrusive_list.h +@@ -14,6 +14,7 @@ + #ifndef intrusive_list_h + #define intrusive_list_h + ++#include + #include + #include + +-- +2.34.1 + diff --git a/pkg/esp32_sdk/patches/0030-bt-controller-esp32s3-fix-return-types-in-functions.patch b/pkg/esp32_sdk/patches/0030-bt-controller-esp32s3-fix-return-types-in-functions.patch new file mode 100644 index 000000000000..cde309f996ec --- /dev/null +++ b/pkg/esp32_sdk/patches/0030-bt-controller-esp32s3-fix-return-types-in-functions.patch @@ -0,0 +1,141 @@ +From e175ea4902cebfdd5b4edc470feff2dadbec408a Mon Sep 17 00:00:00 2001 +From: Gunar Schorcht +Date: Wed, 5 Apr 2023 01:17:12 +0200 +Subject: [PATCH 30/30] bt/controller/esp32s3: fix return types in functions + +Since the size of int and int32_t is the same, changing int to int32_t and vise versa to fix the compilation issue due to function declaration conflict isn't any risk. +--- + components/bt/controller/esp32s3/bt.c | 52 +++++++++++++-------------- + 1 file changed, 26 insertions(+), 26 deletions(-) + +diff --git a/components/bt/controller/esp32s3/bt.c b/components/bt/controller/esp32s3/bt.c +index 64e10ad4a70..ee68c6b834b 100644 +--- a/components/bt/controller/esp32s3/bt.c ++++ b/components/bt/controller/esp32s3/bt.c +@@ -268,7 +268,7 @@ extern char _bt_tmp_bss_end; + */ + static void interrupt_set_wrapper(int32_t cpu_no, int32_t intr_source, int32_t intr_num, int32_t intr_prio); + static void interrupt_clear_wrapper(int32_t intr_source, int32_t intr_num); +-static void interrupt_handler_set_wrapper(int n, void *fn, void *arg); ++static void interrupt_handler_set_wrapper(int32_t n, void *fn, void *arg); + static void IRAM_ATTR interrupt_disable(void); + static void IRAM_ATTR interrupt_restore(void); + static void IRAM_ATTR task_yield_from_isr(void); +@@ -486,28 +486,28 @@ static void semphr_delete_wrapper(void *semphr) + vSemaphoreDelete(semphr); + } + +-static int IRAM_ATTR semphr_take_from_isr_wrapper(void *semphr, void *hptw) ++static int32_t IRAM_ATTR semphr_take_from_isr_wrapper(void *semphr, void *hptw) + { +- return (int)xSemaphoreTakeFromISR(semphr, hptw); ++ return xSemaphoreTakeFromISR(semphr, hptw); + } + +-static int IRAM_ATTR semphr_give_from_isr_wrapper(void *semphr, void *hptw) ++static int32_t IRAM_ATTR semphr_give_from_isr_wrapper(void *semphr, void *hptw) + { +- return (int)xSemaphoreGiveFromISR(semphr, hptw); ++ return xSemaphoreGiveFromISR(semphr, hptw); + } + +-static int semphr_take_wrapper(void *semphr, uint32_t block_time_ms) ++static int32_t semphr_take_wrapper(void *semphr, uint32_t block_time_ms) + { + if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) { +- return (int)xSemaphoreTake(semphr, portMAX_DELAY); ++ return xSemaphoreTake(semphr, portMAX_DELAY); + } else { +- return (int)xSemaphoreTake(semphr, block_time_ms / portTICK_PERIOD_MS); ++ return xSemaphoreTake(semphr, block_time_ms / portTICK_PERIOD_MS); + } + } + +-static int semphr_give_wrapper(void *semphr) ++static int32_t semphr_give_wrapper(void *semphr) + { +- return (int)xSemaphoreGive(semphr); ++ return xSemaphoreGive(semphr); + } + + static void *mutex_create_wrapper(void) +@@ -520,14 +520,14 @@ static void mutex_delete_wrapper(void *mutex) + vSemaphoreDelete(mutex); + } + +-static int mutex_lock_wrapper(void *mutex) ++static int32_t mutex_lock_wrapper(void *mutex) + { +- return (int)xSemaphoreTake(mutex, portMAX_DELAY); ++ return xSemaphoreTake(mutex, portMAX_DELAY); + } + +-static int mutex_unlock_wrapper(void *mutex) ++static int32_t mutex_unlock_wrapper(void *mutex) + { +- return (int)xSemaphoreGive(mutex); ++ return xSemaphoreGive(mutex); + } + + static void *queue_create_wrapper(uint32_t queue_len, uint32_t item_size) +@@ -540,37 +540,37 @@ static void queue_delete_wrapper(void *queue) + vQueueDelete(queue); + } + +-static int queue_send_wrapper(void *queue, void *item, uint32_t block_time_ms) ++static int32_t queue_send_wrapper(void *queue, void *item, uint32_t block_time_ms) + { + if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) { +- return (int)xQueueSend(queue, item, portMAX_DELAY); ++ return xQueueSend(queue, item, portMAX_DELAY); + } else { +- return (int)xQueueSend(queue, item, block_time_ms / portTICK_PERIOD_MS); ++ return xQueueSend(queue, item, block_time_ms / portTICK_PERIOD_MS); + } + } + +-static int IRAM_ATTR queue_send_from_isr_wrapper(void *queue, void *item, void *hptw) ++static int32_t IRAM_ATTR queue_send_from_isr_wrapper(void *queue, void *item, void *hptw) + { + return (int)xQueueSendFromISR(queue, item, hptw); + } + +-static int queue_recv_wrapper(void *queue, void *item, uint32_t block_time_ms) ++static int32_t queue_recv_wrapper(void *queue, void *item, uint32_t block_time_ms) + { + if (block_time_ms == OSI_FUNCS_TIME_BLOCKING) { +- return (int)xQueueReceive(queue, item, portMAX_DELAY); ++ return xQueueReceive(queue, item, portMAX_DELAY); + } else { +- return (int)xQueueReceive(queue, item, block_time_ms / portTICK_PERIOD_MS); ++ return xQueueReceive(queue, item, block_time_ms / portTICK_PERIOD_MS); + } + } + +-static int IRAM_ATTR queue_recv_from_isr_wrapper(void *queue, void *item, void *hptw) ++static int32_t IRAM_ATTR queue_recv_from_isr_wrapper(void *queue, void *item, void *hptw) + { +- return (int)xQueueReceiveFromISR(queue, item, hptw); ++ return xQueueReceiveFromISR(queue, item, hptw); + } + +-static int task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id) ++static int32_t task_create_wrapper(void *task_func, const char *name, uint32_t stack_depth, void *param, uint32_t prio, void *task_handle, uint32_t core_id) + { +- return (uint32_t)xTaskCreatePinnedToCore(task_func, name, stack_depth, param, prio, task_handle, (core_id < portNUM_PROCESSORS ? core_id : tskNO_AFFINITY)); ++ return xTaskCreatePinnedToCore(task_func, name, stack_depth, param, prio, task_handle, (core_id < portNUM_PROCESSORS ? core_id : tskNO_AFFINITY)); + } + + static void task_delete_wrapper(void *task_handle) +@@ -592,7 +592,7 @@ static void *malloc_internal_wrapper(size_t size) + return p; + } + +-static int IRAM_ATTR read_mac_wrapper(uint8_t mac[6]) ++static int32_t IRAM_ATTR read_mac_wrapper(uint8_t mac[6]) + { + int ret = esp_read_mac(mac, ESP_MAC_BT); + ESP_LOGI(BT_LOG_TAG, "Bluetooth MAC: %02x:%02x:%02x:%02x:%02x:%02x\n", +-- +2.34.1 + From 0e92a6c77d6126f457418467b108e8cd364bdf68 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 4 Apr 2023 13:21:22 +0200 Subject: [PATCH 2/7] cpu/esp_common: fix compilation issues gcc 12.2 (cherry picked from commit 3d1f3fea46eb3447d3138b53597a7afbdbefc143) --- cpu/esp_common/esp-now/esp_now_netdev.c | 10 ++++----- cpu/esp_common/esp-wifi/esp_wifi_netdev.c | 26 +++++++++++------------ cpu/esp_common/esp-xtensa/irq_arch.c | 7 +++--- cpu/esp_common/esp-xtensa/thread_arch.c | 4 ++-- cpu/esp_common/freertos/ringbuf.c | 1 + 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/cpu/esp_common/esp-now/esp_now_netdev.c b/cpu/esp_common/esp-now/esp_now_netdev.c index 97b44f44b16d..428881953a0a 100644 --- a/cpu/esp_common/esp-now/esp_now_netdev.c +++ b/cpu/esp_common/esp-now/esp_now_netdev.c @@ -79,7 +79,7 @@ static bool _esp_now_add_peer(const uint8_t* bssid, uint8_t channel, const uint8 memcpy(peer.peer_addr, bssid, ESP_NOW_ETH_ALEN); peer.channel = channel; - peer.ifidx = ESP_IF_WIFI_AP; + peer.ifidx = WIFI_IF_AP; if (esp_now_params.key) { peer.encrypt = true; @@ -391,13 +391,13 @@ esp_now_netdev_t *netdev_esp_now_setup(void) } /* set the Station and SoftAP configuration */ - result = esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config_sta); + result = esp_wifi_set_config(WIFI_IF_STA, &wifi_config_sta); if (result != ESP_OK) { LOG_TAG_ERROR("esp_now", "esp_wifi_set_config station failed with " "return value %d\n", result); return NULL; } - result = esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config_ap); + result = esp_wifi_set_config(WIFI_IF_AP, &wifi_config_ap); if (result != ESP_OK) { LOG_TAG_ERROR("esp_now", "esp_wifi_set_config softap failed with return value %d\n", @@ -416,7 +416,7 @@ esp_now_netdev_t *netdev_esp_now_setup(void) #if !ESP_NOW_UNICAST /* all ESP-NOW nodes get the shared mac address on their station interface */ - esp_wifi_set_mac(ESP_IF_WIFI_STA, (uint8_t*)_esp_now_mac); + esp_wifi_set_mac(WIFI_IF_STA, (uint8_t*)_esp_now_mac); #endif #endif /* MODULE_ESP_WIFI */ @@ -471,7 +471,7 @@ int esp_now_set_channel(uint8_t channel) /* channel is controlled by `esp_now`, try to reconfigure SoftAP */ uint8_t old_channel = wifi_config_ap.ap.channel; wifi_config_ap.ap.channel = channel; - esp_err_t result = esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config_ap); + esp_err_t result = esp_wifi_set_config(WIFI_IF_AP, &wifi_config_ap); if (result != ESP_OK) { LOG_TAG_ERROR("esp_now", "esp_wifi_set_config softap failed with return value %d\n", diff --git a/cpu/esp_common/esp-wifi/esp_wifi_netdev.c b/cpu/esp_common/esp-wifi/esp_wifi_netdev.c index 30bb661a0549..2602ea9f221a 100644 --- a/cpu/esp_common/esp-wifi/esp_wifi_netdev.c +++ b/cpu/esp_common/esp-wifi/esp_wifi_netdev.c @@ -501,13 +501,13 @@ static esp_err_t IRAM_ATTR _esp_system_event_handler(void *ctx, system_event_t * #ifdef MODULE_ESP_WIFI_AP case SYSTEM_EVENT_AP_START: _esp_wifi_started = 1; - esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_AP, _esp_wifi_rx_cb); + esp_wifi_internal_reg_rxcb(WIFI_IF_AP, _esp_wifi_rx_cb); ESP_WIFI_DEBUG("WiFi started"); break; case SYSTEM_EVENT_AP_STOP: _esp_wifi_started = 0; - esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_AP, NULL); + esp_wifi_internal_reg_rxcb(WIFI_IF_AP, NULL); ESP_WIFI_DEBUG("WiFi stopped"); break; @@ -560,7 +560,7 @@ static esp_err_t IRAM_ATTR _esp_system_event_handler(void *ctx, system_event_t * esp_now_set_channel(_esp_wifi_channel); #endif /* register RX callback function */ - esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_STA, _esp_wifi_rx_cb); + esp_wifi_internal_reg_rxcb(WIFI_IF_STA, _esp_wifi_rx_cb); _esp_wifi_dev.connected = true; _esp_wifi_dev.event_conn++; @@ -575,7 +575,7 @@ static esp_err_t IRAM_ATTR _esp_system_event_handler(void *ctx, system_event_t * reason, _esp_wifi_get_disc_reason(reason)); /* unregister RX callback function */ - esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_STA, NULL); + esp_wifi_internal_reg_rxcb(WIFI_IF_STA, NULL); _esp_wifi_dev.connected = false; _esp_wifi_dev.event_disc++; @@ -661,10 +661,10 @@ static int _esp_wifi_send(netdev_t *netdev, const iolist_t *iolist) critical_exit(); #ifdef MODULE_ESP_WIFI_AP - if (esp_wifi_internal_tx(ESP_IF_WIFI_AP, dev->tx_buf, dev->tx_len) == ESP_OK) { + if (esp_wifi_internal_tx(WIFI_IF_AP, dev->tx_buf, dev->tx_len) == ESP_OK) { #else /* MODULE_ESP_WIFI_AP */ /* send the the packet to the peer(s) mac address */ - if (esp_wifi_internal_tx(ESP_IF_WIFI_STA, dev->tx_buf, dev->tx_len) == ESP_OK) { + if (esp_wifi_internal_tx(WIFI_IF_STA, dev->tx_buf, dev->tx_len) == ESP_OK) { #endif #ifndef MCU_ESP8266 /* for ESP8266 it is done in _esp_wifi_tx_cb */ @@ -758,9 +758,9 @@ static int _esp_wifi_get(netdev_t *netdev, netopt_t opt, void *val, size_t max_l case NETOPT_ADDRESS: assert(max_len >= ETHERNET_ADDR_LEN); #ifdef MODULE_ESP_WIFI_AP - esp_wifi_get_mac(ESP_MAC_WIFI_SOFTAP, (uint8_t *)val); + esp_wifi_get_mac(WIFI_IF_AP, (uint8_t *)val); #else /* MODULE_ESP_WIFI_AP */ - esp_wifi_get_mac(ESP_MAC_WIFI_STA, (uint8_t *)val); + esp_wifi_get_mac(WIFI_IF_STA, (uint8_t *)val); #endif /* MODULE_ESP_WIFI_AP */ return ETHERNET_ADDR_LEN; case NETOPT_LINK: @@ -789,9 +789,9 @@ static int _esp_wifi_set(netdev_t *netdev, netopt_t opt, const void *val, size_t case NETOPT_ADDRESS: assert(max_len == ETHERNET_ADDR_LEN); #ifdef MODULE_ESP_WIFI_AP - esp_wifi_set_mac(ESP_MAC_WIFI_SOFTAP, (uint8_t *)val); + esp_wifi_set_mac(WIFI_IF_AP, (uint8_t *)val); #else /* MODULE_ESP_WIFI_AP */ - esp_wifi_set_mac(ESP_MAC_WIFI_STA, (uint8_t *)val); + esp_wifi_set_mac(WIFI_IF_STA, (uint8_t *)val); #endif /* MODULE_ESP_WIFI_AP */ return ETHERNET_ADDR_LEN; default: @@ -972,13 +972,13 @@ void esp_wifi_setup (esp_wifi_netdev_t* dev) #if defined(MCU_ESP8266) || defined(MODULE_ESP_WIFI_AP) #if IS_ACTIVE(ESP_WIFI_SSID_DYNAMIC) uint8_t mac[ETHERNET_ADDR_LEN]; - esp_wifi_get_mac(ESP_MAC_WIFI_SOFTAP, mac); + esp_wifi_get_mac(WIFI_IF_AP, mac); sprintf((char*)wifi_config_ap.ap.ssid, "%s_%02x%02x%02x%02x%02x%02x", WIFI_SSID, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); wifi_config_ap.ap.ssid_len = strlen((char*)wifi_config_ap.ap.ssid); #endif /* IS_ACTIVE(ESP_WIFI_SSID_DYNAMIC) */ /* set the SoftAP configuration */ - result = esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config_ap); + result = esp_wifi_set_config(WIFI_IF_AP, &wifi_config_ap); if (result != ESP_OK) { ESP_WIFI_LOG_ERROR("esp_wifi_set_config softap failed with return value %d", result); return; @@ -989,7 +989,7 @@ void esp_wifi_setup (esp_wifi_netdev_t* dev) #ifndef MODULE_ESP_WIFI_AP /* set the Station configuration */ - result = esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config_sta); + result = esp_wifi_set_config(WIFI_IF_STA, &wifi_config_sta); if (result != ESP_OK) { ESP_WIFI_LOG_ERROR("esp_wifi_set_config station failed with return value %d", result); return; diff --git a/cpu/esp_common/esp-xtensa/irq_arch.c b/cpu/esp_common/esp-xtensa/irq_arch.c index e98e0afbd9ee..f2b326a174a2 100644 --- a/cpu/esp_common/esp-xtensa/irq_arch.c +++ b/cpu/esp_common/esp-xtensa/irq_arch.c @@ -28,6 +28,7 @@ #include "esp/common_macros.h" #include "esp/xtensa_ops.h" +#include "xtensa/config/core-isa.h" #include "xtensa/xtensa_context.h" #define ENABLE_DEBUG 0 @@ -46,7 +47,7 @@ unsigned int IRAM irq_disable(void) interrupt level (bits 3..0) */ state &= 0xf; - DEBUG("%s %02x(%02x)\n", __func__, XCHAL_EXCM_LEVEL, state); + DEBUG("%s %02x(%02x)\n", __func__, XCHAL_EXCM_LEVEL, (unsigned)state); return state; } @@ -63,7 +64,7 @@ unsigned int IRAM irq_enable(void) interrupt level (bits 3..0) */ state &= 0xf; - DEBUG("%s %02x(%02x)\n", __func__, 0, state); + DEBUG("%s %02x(%02x)\n", __func__, 0, (unsigned)state); return state; } @@ -84,7 +85,7 @@ void IRAM irq_restore(unsigned int state) "rsync \n" : "+a" (old) : "a" (state) : "memory"); - DEBUG("%s %02x(%02x)\n", __func__, state, old & 0xf); + DEBUG("%s %02x(%02x)\n", __func__, (unsigned)state, (unsigned)old & 0xf); } /** diff --git a/cpu/esp_common/esp-xtensa/thread_arch.c b/cpu/esp_common/esp-xtensa/thread_arch.c index c7c7370a9123..ce1d3b579fb4 100644 --- a/cpu/esp_common/esp-xtensa/thread_arch.c +++ b/cpu/esp_common/esp-xtensa/thread_arch.c @@ -275,7 +275,7 @@ void IRAM_ATTR thread_yield_higher(void) #if defined(ENABLE_DEBUG) && defined(DEVELHELP) thread_t *active_thread = thread_get_active(); if (active_thread) { - DEBUG("%u old task %u %s %u\n", system_get_time(), + DEBUG("%"PRIu32" old task %u %s %u\n", system_get_time(), active_thread->pid, active_thread->name, active_thread->sp - active_thread-> stack_start); } @@ -302,7 +302,7 @@ void IRAM_ATTR thread_yield_higher(void) #if defined(ENABLE_DEBUG) && defined(DEVELHELP) active_thread = thread_get_active(); if (active_thread) { - DEBUG("%u new task %u %s %u\n", system_get_time(), + DEBUG("%"PRIu32" new task %u %s %u\n", system_get_time(), active_thread->pid, active_thread->name, active_thread->sp - active_thread-> stack_start); } diff --git a/cpu/esp_common/freertos/ringbuf.c b/cpu/esp_common/freertos/ringbuf.c index 3a1379be8217..bcb485f7b03d 100644 --- a/cpu/esp_common/freertos/ringbuf.c +++ b/cpu/esp_common/freertos/ringbuf.c @@ -38,6 +38,7 @@ RingbufHandle_t xRingbufferCreate(size_t xBufferSize, RingbufferType_t xBufferTy return NULL; } handle->item_size = 0; + handle->buf = NULL; ringbuffer_init((ringbuffer_t *)handle, handle->buf, xBufferSize); return handle; From 94e731aea5299498eee93395a8066da480dff801 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Wed, 5 Apr 2023 13:47:34 +0200 Subject: [PATCH 3/7] cpu/esp32: fix compilation with gcc 12.2 (cherry picked from commit 0de2570802ab224054f05926f5dc35984a147c92) --- cpu/esp32/Makefile.include | 13 +++++++++++++ cpu/esp32/bootloader/Makefile | 7 +++++++ cpu/esp32/esp-idf/esp_idf_cflags.mk | 7 +++++++ cpu/esp32/esp-idf/esp_idf_support.c | 2 +- cpu/esp32/include/periph_cpu.h | 10 ---------- cpu/esp32/periph/adc.c | 26 ++++++++++++++++++++------ cpu/esp32/periph/flashpage.c | 4 ++-- cpu/esp32/periph/gpio.c | 4 ++-- cpu/esp32/periph/gpio_ll.c | 20 ++++++++++++++++++-- cpu/esp32/periph/gpio_ll_irq.c | 22 +++++++++++++++++++++- cpu/esp32/periph/rtt.c | 2 +- cpu/esp32/periph/rtt_hw_rtc.c | 5 ----- cpu/esp32/startup.c | 4 ++-- cpu/esp32/syscalls.c | 5 +++-- 14 files changed, 97 insertions(+), 34 deletions(-) diff --git a/cpu/esp32/Makefile.include b/cpu/esp32/Makefile.include index 956a132e2f71..be081ccd77cd 100644 --- a/cpu/esp32/Makefile.include +++ b/cpu/esp32/Makefile.include @@ -207,6 +207,13 @@ CFLAGS += -D_CONST=const # TODO no relaxation yet ifneq (,$(filter riscv%,$(TARGET_ARCH))) CFLAGS += -mno-relax -march=rv32imc -mabi=ilp32 -DRISCV_NO_RELAX + GCC_NEW_RISCV_ISA ?= $(shell echo "typedef int dont_be_pedantic;" | \ + $(TARGET_ARCH)-gcc -march=rv32imac -mabi=ilp32 \ + -misa-spec=2.2 -E - > /dev/null 2>&1 && \ + echo 1 || echo 0) + ifeq (1,$(GCC_NEW_RISCV_ISA)) + CFLAGS += -misa-spec=2.2 + endif endif ifneq (,$(filter xtensa%,$(TARGET_ARCH))) @@ -243,6 +250,12 @@ endif LINKFLAGS += -nostdlib -lgcc -Wl,-gc-sections +# all ESP32x SoCs have to load executable code into IRAM +# warning 'LOAD segment with RWX permissions' has to be disabled therefore +ifeq (1,$(GCC_NEW_RISCV_ISA)) + LINKFLAGS += -Wl,--no-warn-rwx-segments +endif + # Libraries needed when using esp_wifi_any pseudomodule ifneq (,$(filter esp_wifi_any,$(USEMODULE))) LINKFLAGS += -L$(ESP32_SDK_LIB_WIFI_DIR)/$(CPU_FAM) diff --git a/cpu/esp32/bootloader/Makefile b/cpu/esp32/bootloader/Makefile index dfb4a5df0664..df77159c0dde 100644 --- a/cpu/esp32/bootloader/Makefile +++ b/cpu/esp32/bootloader/Makefile @@ -171,6 +171,13 @@ ifneq (,$(filter riscv32%,$(TARGET_ARCH))) CFLAGS += -Wno-error=format= CFLAGS += -nostartfiles CFLAGS += -Wno-format + GCC_NEW_RISCV_ISA ?= $(shell echo "typedef int dont_be_pedantic;" | \ + $(TARGET_ARCH)-gcc -march=rv32imac -mabi=ilp32 \ + -misa-spec=2.2 -E - > /dev/null 2>&1 && \ + echo 1 || echo 0) + ifeq (1,$(GCC_NEW_RISCV_ISA)) + CFLAGS += -misa-spec=2.2 + endif endif ifneq (,$(filter xtensa%,$(TARGET_ARCH))) diff --git a/cpu/esp32/esp-idf/esp_idf_cflags.mk b/cpu/esp32/esp-idf/esp_idf_cflags.mk index a78bccfe0bca..e83e21478686 100644 --- a/cpu/esp32/esp-idf/esp_idf_cflags.mk +++ b/cpu/esp32/esp-idf/esp_idf_cflags.mk @@ -42,4 +42,11 @@ ifneq (,$(filter riscv32%,$(TARGET_ARCH))) CFLAGS += -Wno-error=format= CFLAGS += -nostartfiles CFLAGS += -Wno-format + GCC_NEW_RISCV_ISA ?= $(shell echo "typedef int dont_be_pedantic;" | \ + $(TARGET_ARCH)-gcc -march=rv32imac -mabi=ilp32 \ + -misa-spec=2.2 -E - > /dev/null 2>&1 && \ + echo 1 || echo 0) + ifeq (1,$(GCC_NEW_RISCV_ISA)) + CFLAGS += -misa-spec=2.2 + endif endif diff --git a/cpu/esp32/esp-idf/esp_idf_support.c b/cpu/esp32/esp-idf/esp_idf_support.c index 6378932aa09c..eb23ee349a66 100644 --- a/cpu/esp32/esp-idf/esp_idf_support.c +++ b/cpu/esp32/esp-idf/esp_idf_support.c @@ -111,7 +111,7 @@ void IRAM_ATTR esp_log_writev(esp_log_level_t level, * We use the log level set for the given tag instead of using * the given log level. */ - esp_log_level_t act_level = LOG_DEBUG; + esp_log_level_t act_level = (esp_log_level_t)LOG_DEBUG; size_t i; for (i = 0; i < ARRAY_SIZE(_log_levels); i++) { if (strcmp(tag, _log_levels[i].tag) == 0) { diff --git a/cpu/esp32/include/periph_cpu.h b/cpu/esp32/include/periph_cpu.h index be07c9b679e8..fe2aaeea3139 100644 --- a/cpu/esp32/include/periph_cpu.h +++ b/cpu/esp32/include/periph_cpu.h @@ -212,16 +212,6 @@ typedef enum { #define GPIO_DRIVE_20 GPIO_DRIVE_STRONG /**< 20 mA (default) */ #define GPIO_DRIVE_30 GPIO_DRIVE_STRONGEST /**< 30 mA */ -#define HAVE_GPIO_IRQ_TRIG_T -typedef enum { - GPIO_TRIGGER_NONE = 0, - GPIO_TRIGGER_EDGE_RISING = 1, - GPIO_TRIGGER_EDGE_FALLING = 2, - GPIO_TRIGGER_EDGE_BOTH = 3, - GPIO_TRIGGER_LEVEL_LOW = 4, - GPIO_TRIGGER_LEVEL_HIGH = 5 -} gpio_irq_trig_t; - /* END: GPIO LL overwrites */ #endif /* ndef DOXYGEN */ diff --git a/cpu/esp32/periph/adc.c b/cpu/esp32/periph/adc.c index e79f40275a69..b552ab054969 100644 --- a/cpu/esp32/periph/adc.c +++ b/cpu/esp32/periph/adc.c @@ -131,16 +131,22 @@ int adc_init(adc_t line) } if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_1) { + /* ensure compatibility of given adc_channel_t with adc1_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC1_CHANNEL_MAX); /* initialize the ADC1 unit if needed */ _adc1_ctrl_init(); /* set the attenuation and configure its associated GPIO pin mux */ - adc1_config_channel_atten(_adc_hw[rtcio].adc_channel, ADC_ATTEN_DB_11); + adc1_config_channel_atten((adc1_channel_t)_adc_hw[rtcio].adc_channel, + ADC_ATTEN_DB_11); } else if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_2) { + /* ensure compatibility of given adc_channel_t with adc2_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC2_CHANNEL_MAX); /* initialize the ADC2 unit if needed */ _adc2_ctrl_init(); /* set the attenuation and configure its associated GPIO pin mux */ - adc2_config_channel_atten(_adc_hw[rtcio].adc_channel, ADC_ATTEN_DB_11); + adc2_config_channel_atten((adc2_channel_t)_adc_hw[rtcio].adc_channel, + ADC_ATTEN_DB_11); } else { return -1; @@ -165,13 +171,17 @@ int32_t adc_sample(adc_t line, adc_res_t res) if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_1) { adc1_config_width(_adc_esp_res_map[res].res); - raw = adc1_get_raw(_adc_hw[rtcio].adc_channel); + /* ensure compatibility of given adc_channel_t with adc1_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC1_CHANNEL_MAX); + raw = adc1_get_raw((adc1_channel_t)_adc_hw[rtcio].adc_channel); if (raw < 0) { return -1; } } else if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_2) { - if (adc2_get_raw(_adc_hw[rtcio].adc_channel, + /* ensure compatibility of given adc_channel_t with adc2_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC2_CHANNEL_MAX); + if (adc2_get_raw((adc2_channel_t)_adc_hw[rtcio].adc_channel, _adc_esp_res_map[res].res, &raw) < 0) { return -1; } @@ -189,10 +199,14 @@ int adc_set_attenuation(adc_t line, adc_atten_t atten) assert(rtcio != RTCIO_NA); if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_1) { - return adc1_config_channel_atten(_adc_hw[rtcio].adc_channel, atten); + /* ensure compatibility of given adc_channel_t with adc1_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC1_CHANNEL_MAX); + return adc1_config_channel_atten((adc1_channel_t)_adc_hw[rtcio].adc_channel, atten); } else if (_adc_hw[rtcio].adc_ctrl == ADC_UNIT_2) { - return adc2_config_channel_atten(_adc_hw[rtcio].adc_channel, atten); + /* ensure compatibility of given adc_channel_t with adc2_channel_t */ + assert(_adc_hw[rtcio].adc_channel < (adc_channel_t)ADC2_CHANNEL_MAX); + return adc2_config_channel_atten((adc2_channel_t)_adc_hw[rtcio].adc_channel, atten); } return -1; diff --git a/cpu/esp32/periph/flashpage.c b/cpu/esp32/periph/flashpage.c index 44e2bc02f972..99bb2fea9c6f 100644 --- a/cpu/esp32/periph/flashpage.c +++ b/cpu/esp32/periph/flashpage.c @@ -76,8 +76,8 @@ void IRAM_ATTR esp_flashpage_init(void) p_addr, 64, p_numof, 0); Cache_Resume_ICache(autoload); - DEBUG("%s DCache MMU set paddr=%08x vaddr=%08x size=%d n=%u\n", __func__, - p_addr, (uint32_t)&_fp_mem_start, CONFIG_ESP_FLASHPAGE_CAPACITY, + DEBUG("%s DCache MMU set paddr=%08"PRIx32" vaddr=%08"PRIx32" size=%d n=%"PRIu32"\n", + __func__, p_addr, (uint32_t)&_fp_mem_start, CONFIG_ESP_FLASHPAGE_CAPACITY, p_numof); if (res != ESP_OK) { diff --git a/cpu/esp32/periph/gpio.c b/cpu/esp32/periph/gpio.c index 5de146b697fd..cb1b70569ee9 100644 --- a/cpu/esp32/periph/gpio.c +++ b/cpu/esp32/periph/gpio.c @@ -229,8 +229,8 @@ int gpio_init(gpio_t pin, gpio_mode_t mode) (mode == GPIO_OD_PU) || (mode == GPIO_IN_OD_PU)) ? GPIO_PULLUP_ENABLE : GPIO_PULLUP_DISABLE; - cfg.pull_down_en = (mode == GPIO_IN_PD) ? GPIO_PULLUP_ENABLE - : GPIO_PULLUP_DISABLE; + cfg.pull_down_en = (mode == GPIO_IN_PD) ? GPIO_PULLDOWN_ENABLE + : GPIO_PULLDOWN_DISABLE; cfg.intr_type = GPIO_INTR_DISABLE; #ifdef ESP_PM_WUP_PINS diff --git a/cpu/esp32/periph/gpio_ll.c b/cpu/esp32/periph/gpio_ll.c index 9622d3e110f0..af02263d3088 100644 --- a/cpu/esp32/periph/gpio_ll.c +++ b/cpu/esp32/periph/gpio_ll.c @@ -149,9 +149,25 @@ int gpio_ll_init(gpio_port_t port, uint8_t pin, const gpio_conf_t *conf) } /* if output pin, try to set drive strength */ + gpio_drive_cap_t strength; + switch (conf->drive_strength) { + case GPIO_DRIVE_WEAKEST: + strength = GPIO_DRIVE_CAP_0; + break; + case GPIO_DRIVE_WEAK: + strength = GPIO_DRIVE_CAP_1; + break; + case GPIO_DRIVE_STRONG: + strength = GPIO_DRIVE_CAP_2; + break; + case GPIO_DRIVE_STRONGEST: + strength = GPIO_DRIVE_CAP_3; + break; + default: + strength = GPIO_DRIVE_CAP_DEFAULT; + } if ((cfg.pin_bit_mask & SOC_GPIO_VALID_OUTPUT_GPIO_MASK) && - (esp_idf_gpio_set_drive_capability(gpio, - conf->drive_strength) != ESP_OK)) { + (esp_idf_gpio_set_drive_capability(gpio, strength) != ESP_OK)) { return -ENOTSUP; } diff --git a/cpu/esp32/periph/gpio_ll_irq.c b/cpu/esp32/periph/gpio_ll_irq.c index cd461a15dc11..919b77d52566 100644 --- a/cpu/esp32/periph/gpio_ll_irq.c +++ b/cpu/esp32/periph/gpio_ll_irq.c @@ -75,7 +75,27 @@ int gpio_ll_irq(gpio_port_t port, uint8_t pin, gpio_irq_trig_t trig, gpio_isr_service_installed = true; /* set the interrupt type for the pin */ - if (esp_idf_gpio_set_intr_type(gpio, trig) != ESP_OK) { + gpio_int_type_t type; + switch (trig) { + case GPIO_TRIGGER_EDGE_FALLING: + type = GPIO_INTR_NEGEDGE; + break; + case GPIO_TRIGGER_EDGE_RISING: + type = GPIO_INTR_POSEDGE; + break; + case GPIO_TRIGGER_EDGE_BOTH: + type = GPIO_INTR_ANYEDGE; + break; + case GPIO_TRIGGER_LEVEL_HIGH: + type = GPIO_INTR_HIGH_LEVEL; + break; + case GPIO_TRIGGER_LEVEL_LOW: + type = GPIO_INTR_LOW_LEVEL; + break; + default: + type = GPIO_INTR_DISABLE; + } + if (esp_idf_gpio_set_intr_type(gpio, type) != ESP_OK) { return -1; } diff --git a/cpu/esp32/periph/rtt.c b/cpu/esp32/periph/rtt.c index fac348177dc2..dd9e9099244b 100644 --- a/cpu/esp32/periph/rtt.c +++ b/cpu/esp32/periph/rtt.c @@ -58,7 +58,7 @@ extern uint32_t rtc_clk_slow_freq_get_hz(void); /* forward declaration of functions */ void rtt_restore_counter(bool sys_time); static void _rtt_update_hw_alarm(void); -static void IRAM_ATTR _rtt_isr(void *arg); +static void _rtt_isr(void *arg); /* forward declarations of driver functions */ uint64_t _rtc_get_counter(void); diff --git a/cpu/esp32/periph/rtt_hw_rtc.c b/cpu/esp32/periph/rtt_hw_rtc.c index 2d888cb82c42..6f12d634bd6e 100644 --- a/cpu/esp32/periph/rtt_hw_rtc.c +++ b/cpu/esp32/periph/rtt_hw_rtc.c @@ -135,13 +135,8 @@ static void _rtc_set_alarm(uint32_t alarm, rtt_cb_t cb, void *arg) RTCCNTL.slp_timer0 = rtc_alarm & 0xffffffff; RTCCNTL.slp_timer1.slp_val_hi = rtc_alarm >> 32; -#if __xtensa__ - DEBUG("%s %08x%08x \n", __func__, - RTCCNTL.slp_timer1.slp_val_hi, RTCCNTL.slp_timer0); -#else DEBUG("%s %08x%08x \n", __func__, (unsigned)RTCCNTL.slp_timer1.slp_val_hi, (unsigned)RTCCNTL.slp_timer0); -#endif /* enable RTC timer alarm */ RTCCNTL.slp_timer1.main_timer_alarm_en = 1; diff --git a/cpu/esp32/startup.c b/cpu/esp32/startup.c index 22cf2ed6f420..8c96a17caafe 100644 --- a/cpu/esp32/startup.c +++ b/cpu/esp32/startup.c @@ -240,8 +240,8 @@ static NORETURN void IRAM system_init (void) /* set log levels for SDK library outputs */ extern void esp_log_level_set(const char* tag, esp_log_level_t level); - esp_log_level_set("wifi", LOG_DEBUG); - esp_log_level_set("gpio", LOG_DEBUG); + esp_log_level_set("wifi", (esp_log_level_t)LOG_DEBUG); + esp_log_level_set("gpio", (esp_log_level_t)LOG_DEBUG); /* init watchdogs */ system_wdt_init(); diff --git a/cpu/esp32/syscalls.c b/cpu/esp32/syscalls.c index 23fa853729e4..aa215985a97d 100644 --- a/cpu/esp32/syscalls.c +++ b/cpu/esp32/syscalls.c @@ -382,8 +382,9 @@ void system_wdt_init(void) wdt_hal_write_protect_enable(&rwdt); #if defined(CPU_FAM_ESP32) - DEBUG("%s TIMERG0 wdtconfig0=%08x wdtconfig1=%08x wdtconfig2=%08x " - "wdtconfig3=%08x wdtconfig4=%08x regclk=%08x\n", __func__, + DEBUG("%s TIMERG0 wdtconfig0=%08"PRIx32" wdtconfig1=%08"PRIx32 + " wdtconfig2=%08"PRIx32" wdtconfig3=%08"PRIx32 + " wdtconfig4=%08"PRIx32" regclk=%08"PRIx32"\n", __func__, TIMERG0.wdt_config0.val, TIMERG0.wdt_config1.val, TIMERG0.wdt_config2, TIMERG0.wdt_config3, TIMERG0.wdt_config4, TIMERG0.clk.val); From fcd8e8eae4f790e1603d6f342ae53d20d827a5ad Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 4 Apr 2023 13:27:54 +0200 Subject: [PATCH 4/7] cpu/esp32: disable warnings in ESP-IDF for gcc 12.2 (cherry picked from commit d8d9a9bdc4a68fb211722a6395da08aa1b2281c1) --- cpu/esp32/bootloader/Makefile | 4 ++++ cpu/esp32/esp-idf/esp_idf_cflags.mk | 8 ++++++++ cpu/esp32/esp-idf/nvs_flash/Makefile | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/cpu/esp32/bootloader/Makefile b/cpu/esp32/bootloader/Makefile index df77159c0dde..54b0c7bb92bf 100644 --- a/cpu/esp32/bootloader/Makefile +++ b/cpu/esp32/bootloader/Makefile @@ -164,6 +164,10 @@ INCLUDES = \ # CONFIG_ESPTOOLPY_FLASHFREQ_* and CONFIG_FLASHMODE_* CFLAGS = -include '$(RIOTBUILD_CONFIG_HEADER_C)' \ +# TODO: required to be able to compile with GCC 12.1, remove them after upgrade to ESP-IDF 5.1 +CFLAGS += -Wno-error=format= +CFLAGS += -Wno-format + ifneq (,$(filter riscv32%,$(TARGET_ARCH))) INCLUDES += -I$(ESP32_SDK_DIR)/components/riscv/include CFLAGS += -DCONFIG_IDF_TARGET_ARCH_RISCV diff --git a/cpu/esp32/esp-idf/esp_idf_cflags.mk b/cpu/esp32/esp-idf/esp_idf_cflags.mk index e83e21478686..b503f0e7a7ad 100644 --- a/cpu/esp32/esp-idf/esp_idf_cflags.mk +++ b/cpu/esp32/esp-idf/esp_idf_cflags.mk @@ -34,6 +34,14 @@ CFLAGS += -Wno-enum-compare # those are false positives. CFLAGS += -Wno-cast-align +# TODO: required to be able to compile with GCC 12.1, remove them after upgrade to ESP-IDF 5.1 +CFLAGS += -Wno-attributes +CFLAGS += -Wno-enum-conversion +CFLAGS += -Wno-error=format= +CFLAGS += -Wno-format +CFLAGS += -Wno-use-after-free +CFLAGS += -Wno-incompatible-pointer-types + # additional CFLAGS required for RISC-V architecture ifneq (,$(filter riscv32%,$(TARGET_ARCH))) INCLUDES += -I$(ESP32_SDK_DIR)/components/riscv/include diff --git a/cpu/esp32/esp-idf/nvs_flash/Makefile b/cpu/esp32/esp-idf/nvs_flash/Makefile index aa45b59000f5..9642bbeefae1 100644 --- a/cpu/esp32/esp-idf/nvs_flash/Makefile +++ b/cpu/esp32/esp-idf/nvs_flash/Makefile @@ -30,6 +30,10 @@ include ../esp_idf.mk # those are false positives. CFLAGS += -Wno-cast-align +# TODO: required to be able to compile with GCC 12.1, remove them after upgrade to ESP-IDF 5.1 +CFLAGS += -Wno-error=format= +CFLAGS += -Wno-format + # additional CFLAGS required for RISC-V architecture ifneq (,$(filter riscv32%,$(TARGET_ARCH))) CFLAGS += -Wno-error=format= From 2e6288989a23247c67312e6c5969ac1982e0bd39 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 1 May 2023 21:16:11 +0200 Subject: [PATCH 5/7] tree wide: fix typos in comments found by codespell This will not change generated binaries, only the Doxygen output and source code will have less typos. (cherry picked from commit c3500eb6e072784b34fd9a1cc0210f6c1837491e) --- boards/e180-zg120b-tb/doc.txt | 2 +- boards/ikea-tradfri/doc.txt | 2 +- boards/slstk3400a/doc.txt | 2 +- boards/slstk3401a/doc.txt | 2 +- boards/slstk3402a/doc.txt | 4 ++-- boards/sltb001a/doc.txt | 2 +- boards/slwstk6220a/doc.txt | 2 +- boards/stk3200/doc.txt | 2 +- boards/stk3600/doc.txt | 2 +- boards/stk3700/doc.txt | 2 +- cpu/gd32v/periph/i2c.c | 2 +- cpu/native/async_read.c | 2 +- cpu/native/include/async_read.h | 8 ++++---- cpu/nrf52/include/periph_cpu.h | 4 ++-- cpu/nrf9160/include/periph_cpu.h | 4 ++-- drivers/bq2429x/include/bq2429x_internal.h | 2 +- drivers/cc110x/cc110x_rx_tx.c | 2 +- drivers/cc110x/include/cc110x_params.h | 2 +- drivers/include/nrf24l01p_ng.h | 4 ++-- drivers/netdev/ieee802154.c | 2 +- drivers/soft_uart/soft_uart.c | 2 +- pkg/openwsn/contrib/openwsn.c | 2 +- .../routing/ipv6_auto_subnets/gnrc_ipv6_auto_subnets.c | 2 +- tests/driver_nrf24l01p_lowlevel/main.c | 2 +- 24 files changed, 31 insertions(+), 31 deletions(-) diff --git a/boards/e180-zg120b-tb/doc.txt b/boards/e180-zg120b-tb/doc.txt index 67647fdc2719..e9855de4237e 100644 --- a/boards/e180-zg120b-tb/doc.txt +++ b/boards/e180-zg120b-tb/doc.txt @@ -40,7 +40,7 @@ peripherals, different energy modes and short wake-up times. | HWCRYPTO | — | — | | AES128/AES256, SHA1, SHA256 | | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | USART0 | RX: PA1, TX: PA0 | Default STDIO output | diff --git a/boards/ikea-tradfri/doc.txt b/boards/ikea-tradfri/doc.txt index 89008dc1e531..b62417bde99b 100644 --- a/boards/ikea-tradfri/doc.txt +++ b/boards/ikea-tradfri/doc.txt @@ -65,7 +65,7 @@ Pin 1 is on the top-left side with only 6 contacts. | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PD15, MISO: PD14, CLK: PD13 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | USART0 | RX: PB15, TX: PB14 | Default STDIO output | | | 1 | LEUART0 | RX: PB15, TX: PB14 | Baud rate limited (see below) | diff --git a/boards/slstk3400a/doc.txt b/boards/slstk3400a/doc.txt index 1e7703cca2c7..20e4de4beb59 100644 --- a/boards/slstk3400a/doc.txt +++ b/boards/slstk3400a/doc.txt @@ -67,7 +67,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | | SPI | 0 | USART0 | MOSI: PE10, MISO: PE11, CLK: PE12 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | UART | 0 | USART1 | RX: PA0, TX: PF2 | Default STDIO output | | | 1 | LEUART0 | RX: PD5, TX: PD4 | Baud rate limited (see below) | diff --git a/boards/slstk3401a/doc.txt b/boards/slstk3401a/doc.txt index 822dc379d38f..cb0a0f07ff26 100644 --- a/boards/slstk3401a/doc.txt +++ b/boards/slstk3401a/doc.txt @@ -67,7 +67,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PC6, MISO: PC7, CLK: PC8 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | USART0 | RX: PA1, TX: PA0 | Default STDIO output | | | 1 | LEUART0 | RX: PD11, TX: PD10 | Baud rate limited (see below) | diff --git a/boards/slstk3402a/doc.txt b/boards/slstk3402a/doc.txt index 5322dcf0bf7c..3c4443e28361 100644 --- a/boards/slstk3402a/doc.txt +++ b/boards/slstk3402a/doc.txt @@ -68,8 +68,8 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PC6, MISO: PC7, CLK: PC8 | | -| Timer | 0 | WTIMER0 + WTIMER1 | | WTIMER0 is used as prescaler (must be adjecent) | -| Timer | 1 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | WTIMER0 + WTIMER1 | | WTIMER0 is used as prescaler (must be adjacent) | +| Timer | 1 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 2 | LETIMER0 | | | | UART | 0 | USART0 | RX: PA1, TX: PA0 | Default STDIO output | | | 1 | LEUART0 | RX: PD11, TX: PD10 | Baud rate limited (see below) | diff --git a/boards/sltb001a/doc.txt b/boards/sltb001a/doc.txt index fe9263fe8555..5081eeab739c 100644 --- a/boards/sltb001a/doc.txt +++ b/boards/sltb001a/doc.txt @@ -65,7 +65,7 @@ is the top-left contact, marked on the silkscreen. | RTT | — | RTCC | | 1 Hz interval. Either RTT or RTC (see below) | | RTC | — | RTCC | | 1 Hz interval. Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PC6, MISO: PC7, CLK: PC8 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | USART0 | RX: PA1, TX: PA0 | Default STDIO output | | | 1 | LEUART0 | RX: PD11, TX: PD10 | Baud rate limited (see below) | diff --git a/boards/slwstk6220a/doc.txt b/boards/slwstk6220a/doc.txt index fbf69e38026f..9f87d8d10231 100644 --- a/boards/slwstk6220a/doc.txt +++ b/boards/slwstk6220a/doc.txt @@ -69,7 +69,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTT | — | RTC | | Either RTT or RTC (see below) | | RTC | — | RTC | | Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PD0, MISO: PD1, CLK: PD2 | | -| Timer | 0 | TIMER1 + TIMER2 | | TIMER1 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER1 + TIMER2 | | TIMER1 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | UART0 | RX: PE1, TX: PE0 | STDIO output | | | 1 | LEUART0 | RX: PD5, TX: PD4 | Baud rate limited (see below) | diff --git a/boards/stk3200/doc.txt b/boards/stk3200/doc.txt index e6b7cef6fdf6..cd5eeb3b72b9 100644 --- a/boards/stk3200/doc.txt +++ b/boards/stk3200/doc.txt @@ -67,7 +67,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTT | — | RTC | | Either RTT or RTC (see below) | | RTC | — | RTC | | Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PD7, MISO: PD6, CLK: PC15 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | UART | 0 | LEUART0 | RX: PD5, TX: PD4 | STDIO Output, Baud rate limited (see below) | ### User interface diff --git a/boards/stk3600/doc.txt b/boards/stk3600/doc.txt index ef0bb7fd2458..0d23a51cd13d 100644 --- a/boards/stk3600/doc.txt +++ b/boards/stk3600/doc.txt @@ -71,7 +71,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTC | — | RTC | | Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PD0, MISO: PD1, CLK: PD2 | | | | 1 | USART2 | MOSI: NC, MISO: PC3, CLK: PC4 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | UART0 | RX: PE1, TX: PE0 | STDIO output | | | 1 | LEUART0 | RX: PD5, TX: PD4 | Baud rate limited (see below) | diff --git a/boards/stk3700/doc.txt b/boards/stk3700/doc.txt index 95a6d1711a5e..0f58d6803b61 100644 --- a/boards/stk3700/doc.txt +++ b/boards/stk3700/doc.txt @@ -71,7 +71,7 @@ PIN 1 is the bottom-left contact when the header faces you horizontally. | RTC | — | RTC | | Either RTC or RTT (see below) | | SPI | 0 | USART1 | MOSI: PD0, MISO: PD1, CLK: PD2 | | | | 1 | USART2 | MOSI: NC, MISO: PC3, CLK: PC4 | | -| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjecent) | +| Timer | 0 | TIMER0 + TIMER1 | | TIMER0 is used as prescaler (must be adjacent) | | | 1 | LETIMER0 | | | | UART | 0 | UART0 | RX: PE1, TX: PE0 | STDIO output | | | 1 | LEUART0 | RX: PD5, TX: PD4 | Baud rate limited (see below) | diff --git a/cpu/gd32v/periph/i2c.c b/cpu/gd32v/periph/i2c.c index 9917f225fc53..5b599c260c0b 100644 --- a/cpu/gd32v/periph/i2c.c +++ b/cpu/gd32v/periph/i2c.c @@ -362,7 +362,7 @@ int _i2c_read_cmd(i2c_t dev, uint8_t *data) switch (_i2c_dev[dev].state) { case I2C_RXB_NOT_EMPTY_BT_COMPLETE: case I2C_RXB_NOT_EMPTY: - /* RBNE is cleared by reding STAT0 followed by reading the data register */ + /* RBNE is cleared by reading STAT0 followed by reading the data register */ i2c->STAT0; *data = i2c->DATA; return 0; diff --git a/cpu/native/async_read.c b/cpu/native/async_read.c index 085a6c87f059..570553540651 100644 --- a/cpu/native/async_read.c +++ b/cpu/native/async_read.c @@ -1,5 +1,5 @@ /** - * Multiple asynchronus read on file descriptors + * Multiple asynchronous read on file descriptors * * Copyright (C) 2015 Ludwig Knüpfer , * Martine Lenders diff --git a/cpu/native/include/async_read.h b/cpu/native/include/async_read.h index e180bcd476e1..1c2edd9a5639 100644 --- a/cpu/native/include/async_read.h +++ b/cpu/native/include/async_read.h @@ -11,7 +11,7 @@ * @{ * * @file - * @brief Multiple asynchronus read on file descriptors + * @brief Multiple asynchronous read on file descriptors * * @author Takuo Yonezawa */ @@ -33,7 +33,7 @@ extern "C" { #endif /** - * @brief asynchronus read callback type + * @brief asynchronous read callback type */ typedef void (*native_async_read_callback_t)(int fd, void *arg); @@ -48,14 +48,14 @@ typedef struct { } async_read_t; /** - * @brief initialize asynchronus read system + * @brief initialize asynchronous read system * * This registers SIGIO signal handler. */ void native_async_read_setup(void); /** - * @brief shutdown asynchronus read system + * @brief shutdown asynchronous read system * * This deregisters SIGIO signal handler. */ diff --git a/cpu/nrf52/include/periph_cpu.h b/cpu/nrf52/include/periph_cpu.h index 4e2b6863ef83..61981acee7b6 100644 --- a/cpu/nrf52/include/periph_cpu.h +++ b/cpu/nrf52/include/periph_cpu.h @@ -246,7 +246,7 @@ typedef struct { typedef void (*spi_twi_irq_cb_t)(void *arg); /** - * @brief Reqister a SPI IRQ handler for a shared I2C/SPI irq vector + * @brief Register a SPI IRQ handler for a shared I2C/SPI irq vector * * @param bus bus to register the IRQ handler on * @param cb callback to call on IRQ @@ -256,7 +256,7 @@ void spi_twi_irq_register_spi(NRF_SPIM_Type *bus, spi_twi_irq_cb_t cb, void *arg); /** - * @brief Reqister a I2C IRQ handler for a shared I2C/SPI irq vector + * @brief Register a I2C IRQ handler for a shared I2C/SPI irq vector * * @param bus bus to register the IRQ handler on * @param cb callback to call on IRQ diff --git a/cpu/nrf9160/include/periph_cpu.h b/cpu/nrf9160/include/periph_cpu.h index d6ba9ab48fff..f5fbbb72fe5c 100644 --- a/cpu/nrf9160/include/periph_cpu.h +++ b/cpu/nrf9160/include/periph_cpu.h @@ -190,7 +190,7 @@ typedef enum { typedef void (*spi_twi_irq_cb_t)(void *arg); /** - * @brief Reqister a SPI IRQ handler for a shared I2C/SPI irq vector + * @brief Register a SPI IRQ handler for a shared I2C/SPI irq vector * * @param bus bus to register the IRQ handler on * @param cb callback to call on IRQ @@ -200,7 +200,7 @@ void spi_twi_irq_register_spi(NRF_SPIM_Type *bus, spi_twi_irq_cb_t cb, void *arg); /** - * @brief Reqister a I2C IRQ handler for a shared I2C/SPI irq vector + * @brief Register a I2C IRQ handler for a shared I2C/SPI irq vector * * @param bus bus to register the IRQ handler on * @param cb callback to call on IRQ diff --git a/drivers/bq2429x/include/bq2429x_internal.h b/drivers/bq2429x/include/bq2429x_internal.h index df3a947185bc..18c8f368e652 100644 --- a/drivers/bq2429x/include/bq2429x_internal.h +++ b/drivers/bq2429x/include/bq2429x_internal.h @@ -11,7 +11,7 @@ * * @{ * @file - * @brief Internal address, registers, constatns for the BQ2429x family + * @brief Internal address, registers, constants for the BQ2429x family * power ICs. * * @author Jean Pierre Dudey diff --git a/drivers/cc110x/cc110x_rx_tx.c b/drivers/cc110x/cc110x_rx_tx.c index f19f396adf79..89f720f6c965 100644 --- a/drivers/cc110x/cc110x_rx_tx.c +++ b/drivers/cc110x/cc110x_rx_tx.c @@ -316,7 +316,7 @@ void cc110x_isr(netdev_t *netdev) gpio_irq_enable(dev->params.gdo0); gpio_irq_enable(dev->params.gdo2); cc110x_release(dev); - /* Pass event to uper layer, if needed */ + /* Pass event to upper layer, if needed */ if (post_isr_event != NETDEV_NO_EVENT) { dev->netdev.event_callback(&dev->netdev, post_isr_event); } diff --git a/drivers/cc110x/include/cc110x_params.h b/drivers/cc110x/include/cc110x_params.h index 14f1cf4b58f8..383884235abe 100644 --- a/drivers/cc110x/include/cc110x_params.h +++ b/drivers/cc110x/include/cc110x_params.h @@ -49,7 +49,7 @@ extern "C" { #endif #ifndef CC110X_PARAM_SPI_CLOCK -#define CC110X_PARAM_SPI_CLOCK SPI_CLK_5MHZ /**< SPI clock frequence to use */ +#define CC110X_PARAM_SPI_CLOCK SPI_CLK_5MHZ /**< SPI clock frequency to use */ #endif #ifndef CC110X_PARAM_PATABLE diff --git a/drivers/include/nrf24l01p_ng.h b/drivers/include/nrf24l01p_ng.h index 4b3a873659eb..869bf85819dc 100644 --- a/drivers/include/nrf24l01p_ng.h +++ b/drivers/include/nrf24l01p_ng.h @@ -281,7 +281,7 @@ uint8_t nrf24l01p_ng_get_crc(const nrf24l01p_ng_t *dev, * * @retval 0 Success * @retval -EINVAL Bad Tx power configuration value - * @retval -EAGAIN Current state does not permit changin Tx power + * @retval -EAGAIN Current state does not permit changing Tx power */ int nrf24l01p_ng_set_tx_power(nrf24l01p_ng_t *dev, nrf24l01p_ng_tx_power_t power); @@ -333,7 +333,7 @@ uint8_t nrf24l01p_ng_get_channel(const nrf24l01p_ng_t *dev); * * @retval 0 Success * @retval -EINVAL Bad address length - * @return -EAGAIN Current state does not permit changin Rx address + * @return -EAGAIN Current state does not permit changing Rx address */ int nrf24l01p_ng_set_rx_address(nrf24l01p_ng_t *dev, const uint8_t *addr, nrf24l01p_ng_pipe_t pipe); diff --git a/drivers/netdev/ieee802154.c b/drivers/netdev/ieee802154.c index 8ae614e494e1..cf5a39d4b44f 100644 --- a/drivers/netdev/ieee802154.c +++ b/drivers/netdev/ieee802154.c @@ -201,7 +201,7 @@ int netdev_ieee802154_set(netdev_ieee802154_t *dev, netopt_t opt, const void *va uint16_t chan = *((uint16_t *)value); /* real validity needs to be checked by device, since sub-GHz and * 2.4 GHz band radios have different legal values. Here we only - * check that it fits in an 8-bit variabl*/ + * check that it fits in an 8-bit variable */ assert(chan <= UINT8_MAX); dev->chan = chan; res = sizeof(uint16_t); diff --git a/drivers/soft_uart/soft_uart.c b/drivers/soft_uart/soft_uart.c index 99aa8c7e20d4..23d0a25dc1bc 100644 --- a/drivers/soft_uart/soft_uart.c +++ b/drivers/soft_uart/soft_uart.c @@ -43,7 +43,7 @@ struct uart_ctx { void* rx_cb_arg; /**< RX callback arg */ uint32_t bit_time; /**< timer ticks per bit */ uint16_t byte_tx; /**< current TX byte */ - uint16_t byte_rx; /**< curretn RX byte */ + uint16_t byte_rx; /**< current RX byte */ uint8_t bits_tx; /**< TX bit pos */ uint8_t state_rx; /**< RX state */ #ifdef MODULE_SOFT_UART_MODECFG diff --git a/pkg/openwsn/contrib/openwsn.c b/pkg/openwsn/contrib/openwsn.c index d195eaaea316..340ad2e67cb8 100644 --- a/pkg/openwsn/contrib/openwsn.c +++ b/pkg/openwsn/contrib/openwsn.c @@ -10,7 +10,7 @@ /** * @{ * @file - * @brief OpenWSN bootstraping functions implementation + * @brief OpenWSN bootstrapping functions implementation * * @author Peter Kietzmann * @author Francisco Molina diff --git a/sys/net/gnrc/routing/ipv6_auto_subnets/gnrc_ipv6_auto_subnets.c b/sys/net/gnrc/routing/ipv6_auto_subnets/gnrc_ipv6_auto_subnets.c index 92c50ee02ea7..e02a726003bc 100644 --- a/sys/net/gnrc/routing/ipv6_auto_subnets/gnrc_ipv6_auto_subnets.c +++ b/sys/net/gnrc/routing/ipv6_auto_subnets/gnrc_ipv6_auto_subnets.c @@ -121,7 +121,7 @@ #endif /** - * @brief How long to wait for other routers annoucements before resending + * @brief How long to wait for other routers announcements before resending * or creating subnets when the retry counter is exhausted */ #ifndef CONFIG_GNRC_IPV6_AUTO_SUBNETS_TIMEOUT_MS diff --git a/tests/driver_nrf24l01p_lowlevel/main.c b/tests/driver_nrf24l01p_lowlevel/main.c index 96bda154a9d1..459367f678a4 100644 --- a/tests/driver_nrf24l01p_lowlevel/main.c +++ b/tests/driver_nrf24l01p_lowlevel/main.c @@ -229,7 +229,7 @@ int cmd_send(int argc, char **argv) } /* trigger transmitting */ nrf24l01p_transmit(&nrf24l01p_0); - /* wait while data is pysically transmitted */ + /* wait while data is physically transmitted */ ztimer_sleep(ZTIMER_USEC, DELAY_DATA_ON_AIR); /* get status of the transceiver */ status = nrf24l01p_get_status(&nrf24l01p_0); From 6648b34d8c9def776304c1dda4edb5a744ae793e Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 1 May 2023 21:30:04 +0200 Subject: [PATCH 6/7] sys/ztimer: fix typo in debug output (cherry picked from commit 8fbbc40b3ec3d66697b99363da72ffc0300a9896) --- sys/ztimer/mock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/ztimer/mock.c b/sys/ztimer/mock.c index f1cbe74b36ca..a10f104142b0 100644 --- a/sys/ztimer/mock.c +++ b/sys/ztimer/mock.c @@ -165,7 +165,7 @@ void ztimer_mock_init(ztimer_mock_t *self, unsigned width) self->running = 1; #endif - DEBUG("zmock_init: %p width=%u mask=0x%08" PRIx32 " runnnig=%u\n", (void *)self, width, + DEBUG("zmock_init: %p width=%u mask=0x%08" PRIx32 " running=%u\n", (void *)self, width, self->mask, self->running); if (max_value < UINT32_MAX) { self->super.ops->set(&self->super, self->super.max_value >> 1); From a3e77f6f281d765dd1fe8e8c0a49eae681b811d0 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 1 May 2023 21:17:17 +0200 Subject: [PATCH 7/7] dist/tools/codespell: ignore false positives Add two false positives to the list of words to ignore. (cherry picked from commit 73e7e307955525f8a12caf450ca01c6388e4111c) --- dist/tools/codespell/ignored_words.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dist/tools/codespell/ignored_words.txt b/dist/tools/codespell/ignored_words.txt index 6a91d33f894d..f738fa0a9687 100644 --- a/dist/tools/codespell/ignored_words.txt +++ b/dist/tools/codespell/ignored_words.txt @@ -17,6 +17,9 @@ dout # ALS (Ambient Light Sensing) => ALSO als +# CAF (Comp. A Enable Output Filter (MSP430) or Copy All Frames (SAM0) or C++ Actor Framework) => CALF +caf + # Technik (From "Beuth Hochschule für Technik Berlin") => Technique technik @@ -150,3 +153,6 @@ donot # Didi (Ayman El Didi) => Did didi + +# loath => loathe (both correct, one is an adjective, the other a verb) +loath