Przeglądaj źródła

Merge branch 'bugfix/esp32s2beta_enable_protocol_examples' into 'master'

Bugfix/esp32s2beta enable protocol examples

Closes IDF-1027

See merge request espressif/esp-idf!6566
Angus Gratton 6 lat temu
rodzic
commit
0e9c2cdc93

+ 29 - 0
components/xtensa/stdatomic.c

@@ -34,6 +34,25 @@
     return ret; \
     return ret; \
 }
 }
 
 
+#define FETCH_ADD(n, type) type __atomic_fetch_add_ ## n (type* ptr, type value, int memorder) \
+{ \
+    unsigned state = portENTER_CRITICAL_NESTED(); \
+    type ret = *ptr; \
+    *ptr = *ptr + value; \
+    portEXIT_CRITICAL_NESTED(state); \
+    return ret; \
+}
+
+#define FETCH_SUB(n, type) type __atomic_fetch_sub_ ## n (type* ptr, type value, int memorder) \
+{ \
+    unsigned state = portENTER_CRITICAL_NESTED(); \
+    type ret = *ptr; \
+    *ptr = *ptr - value; \
+    portEXIT_CRITICAL_NESTED(state); \
+    return ret; \
+}
+
+
 //this piece of code should only be compiled if the cpu doesn't support atomic compare and swap (s32c1i)
 //this piece of code should only be compiled if the cpu doesn't support atomic compare and swap (s32c1i)
 #if XCHAL_HAVE_S32C1I == 0
 #if XCHAL_HAVE_S32C1I == 0
 
 
@@ -44,4 +63,14 @@ CMP_EXCHANGE(2, uint16_t)
 CMP_EXCHANGE(4, uint32_t)
 CMP_EXCHANGE(4, uint32_t)
 CMP_EXCHANGE(8, uint64_t)
 CMP_EXCHANGE(8, uint64_t)
 
 
+FETCH_ADD(1, uint8_t)
+FETCH_ADD(2, uint16_t)
+FETCH_ADD(4, uint32_t)
+FETCH_ADD(8, uint64_t)
+
+FETCH_SUB(1, uint8_t)
+FETCH_SUB(2, uint16_t)
+FETCH_SUB(4, uint32_t)
+FETCH_SUB(8, uint64_t)
+
 #endif
 #endif

+ 0 - 1
examples/protocols/asio/chat_client/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(asio_chat_client)
 project(asio_chat_client)

+ 0 - 1
examples/protocols/asio/chat_server/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(asio_chat_server)
 project(asio_chat_server)

+ 0 - 1
examples/protocols/asio/tcp_echo_server/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(asio_tcp_echo_server)
 project(asio_tcp_echo_server)

+ 0 - 1
examples/protocols/asio/udp_echo_server/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(asio_udp_echo_server)
 project(asio_udp_echo_server)

+ 0 - 1
examples/protocols/esp_http_client/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(esp-http-client-example)
 project(esp-http-client-example)

+ 0 - 1
examples/protocols/http2_request/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(http2-request)
 project(http2-request)

+ 0 - 1
examples/protocols/http_server/advanced_tests/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(tests)
 project(tests)

+ 0 - 1
examples/protocols/http_server/persistent_sockets/CMakeLists.txt

@@ -6,7 +6,6 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(persistent_sockets)
 project(persistent_sockets)
 
 

+ 0 - 1
examples/protocols/http_server/restful_server/CMakeLists.txt

@@ -4,5 +4,4 @@ cmake_minimum_required(VERSION 3.5)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
-set(SUPPORTED_TARGETS esp32)
 project(restful_server)
 project(restful_server)

+ 1 - 0
examples/protocols/http_server/restful_server/main/Kconfig.projbuild

@@ -21,6 +21,7 @@ menu "Example Configuration"
                 Deploy website to host.
                 Deploy website to host.
                 It is recommended to choose this mode during developing.
                 It is recommended to choose this mode during developing.
         config EXAMPLE_WEB_DEPLOY_SD
         config EXAMPLE_WEB_DEPLOY_SD
+            depends on IDF_TARGET_ESP32
             bool "Deploy website to SD card"
             bool "Deploy website to SD card"
             help
             help
                 Deploy website to SD card.
                 Deploy website to SD card.

+ 3 - 1
examples/protocols/http_server/restful_server/main/esp_rest_main.c

@@ -7,7 +7,6 @@
    CONDITIONS OF ANY KIND, either express or implied.
    CONDITIONS OF ANY KIND, either express or implied.
 */
 */
 #include "sdkconfig.h"
 #include "sdkconfig.h"
-#include "driver/sdmmc_host.h"
 #include "driver/gpio.h"
 #include "driver/gpio.h"
 #include "esp_vfs_semihost.h"
 #include "esp_vfs_semihost.h"
 #include "esp_vfs_fat.h"
 #include "esp_vfs_fat.h"
@@ -20,6 +19,9 @@
 #include "mdns.h"
 #include "mdns.h"
 #include "lwip/apps/netbiosns.h"
 #include "lwip/apps/netbiosns.h"
 #include "protocol_examples_common.h"
 #include "protocol_examples_common.h"
+#if CONFIG_EXAMPLE_WEB_DEPLOY_SD
+#include "driver/sdmmc_host.h"
+#endif
 
 
 #define MDNS_INSTANCE "esp home web server"
 #define MDNS_INSTANCE "esp home web server"
 
 

+ 0 - 1
examples/protocols/http_server/simple/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(simple)
 project(simple)

+ 0 - 1
examples/protocols/https_mbedtls/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(https-mbedtls)
 project(https-mbedtls)

+ 0 - 1
examples/protocols/https_request/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(https_request)
 project(https_request)

+ 0 - 1
examples/protocols/https_server/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(https_server)
 project(https_server)

+ 0 - 1
examples/protocols/mqtt/publish_test/CMakeLists.txt

@@ -6,7 +6,6 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 
 
 project(mqtt_publish)
 project(mqtt_publish)

+ 0 - 1
examples/protocols/mqtt/ssl/CMakeLists.txt

@@ -6,7 +6,6 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(mqtt_ssl)
 project(mqtt_ssl)
 
 

+ 0 - 1
examples/protocols/mqtt/ssl_mutual_auth/CMakeLists.txt

@@ -6,7 +6,6 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(mqtt_ssl_mutual_auth)
 project(mqtt_ssl_mutual_auth)
 
 

+ 0 - 1
examples/protocols/mqtt/tcp/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(mqtt_tcp)
 project(mqtt_tcp)

+ 0 - 1
examples/protocols/mqtt/ws/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(mqtt_websocket)
 project(mqtt_websocket)

+ 0 - 1
examples/protocols/mqtt/wss/CMakeLists.txt

@@ -6,7 +6,6 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(mqtt_websocket_secure)
 project(mqtt_websocket_secure)
 
 

+ 0 - 1
examples/protocols/openssl_client/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(openssl_client)
 project(openssl_client)

+ 0 - 1
examples/protocols/openssl_server/CMakeLists.txt

@@ -6,6 +6,5 @@ cmake_minimum_required(VERSION 3.5)
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 # This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
 
 
-set(SUPPORTED_TARGETS esp32)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(openssl_server)
 project(openssl_server)