Skip to content

Commit

Permalink
[Mbed] DFU support to all Mbed examples applications (project-chip#14883
Browse files Browse the repository at this point in the history
)

* Use MBED_CONF_STORAGE_DEFAULT_KV insted of hardcoded definition for CHIP_CONFIG_KV_STORE_PARTITION

* Remove hack on confirmation from mbed_app.json files
Remvoe hack from BLE manager - add note

* Add Mbed OTA requestor driver implementation

* Add software version string to update description

* Move all generated sources from common Mbed cmake to OTA requestor app cmake

* Add common Mbed DFU Manager - class to manage the firmware update

* Add DFU support to all examples:
lighting-app - OTA and boot
lock-app - only boot
all-clusters-app - OTA and boot
pigweed-app - only boot
shell - OTA and boot
ota-requestor-app - OTA and boot

* Add auto-restart device after update apply

* Change log type in OTAImageProcessorImpl

* Add server command to shell example

* Add confirm and reject user repsone to buttons service
Add user response to OTA udpate available and apply functions
Docs update

* Implement OTA list image generator

Add python script to generate OTA list image
Change working directory and add APP_DIRECTORY path
Add generating OTA list image step for upgrade image build
Set vendor id and product id from mbed_app.json level

* Changes restyle

* Update vendor and product IDs for mbed examples
Cleanup data model configuration in cmake files

* Fix data parsing in OTA list image generator
  • Loading branch information
ATmobica authored and fuxingguo16 committed Apr 26, 2022
1 parent c1ed3ff commit fb1d55f
Show file tree
Hide file tree
Showing 54 changed files with 1,230 additions and 562 deletions.
68 changes: 41 additions & 27 deletions config/mbed/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ string(APPEND CHIP_GN_ARGS)

# C/C++ compiler flags which should not be forwarded to CHIP
# build system (e.g. because CHIP configures them on its own)
set(CHIP_CFLAG_EXCLUDES
set(CHIP_CFLAG_EXCLUDES
"-fno-asynchronous-unwind-tables"
"-fno-common"
"-fno-defer-pop"
Expand Down Expand Up @@ -149,7 +149,7 @@ list(APPEND CHIP_CFLAGS_CC ${CMAKE_CXX_FLAGS_INIT})
mbed_get_target_common_compile_flags(CHIP_MBEDCMSISCM_CFLAGS mbed-cmsis-cortex-m)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDCMSISCM_CFLAGS})
if(MBED_TARGET STREQUAL "CY8CPROTO_062_4343W")
mbed_get_target_common_compile_flags(CHIP_MBEDCMSISCY8_CFLAGS mbed-cy8cproto-062-4343w)
mbed_get_target_common_compile_flags(CHIP_MBEDCMSISCY8_CFLAGS mbed-cy8cproto-062-4343w)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDCMSISCY8_CFLAGS})
mbed_get_target_common_compile_flags(CHIP_MBEDPSOC6_CFLAGS mbed-psoc6)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDPSOC6_CFLAGS})
Expand All @@ -159,15 +159,15 @@ if(MBED_TARGET STREQUAL "CY8CPROTO_062_4343W")
list(APPEND CHIP_CFLAGS ${CHIP_MBEDCMSISCY8MODUS_CFLAGS})
endif()

# Add support for Mbed Posix Socket
# Add support for Mbed Posix Socket
mbed_get_target_common_compile_flags(CHIP_MBEDPOSIXSOCKET_CFLAGS mbed-os-posix-socket)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDPOSIXSOCKET_CFLAGS})

# Add support for Mbed BLE
mbed_get_target_common_compile_flags(CHIP_MBEDBLE_CFLAGS mbed-ble)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDBLE_CFLAGS})

# Add support for Mbed event
# Add support for Mbed event
mbed_get_target_common_compile_flags(CHIP_MBEDEVENTS_CFLAGS mbed-events)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDEVENTS_CFLAGS})

Expand All @@ -179,7 +179,7 @@ list(APPEND CHIP_CFLAGS ${CHIP_MBEDRTOS_CFLAGS})
mbed_get_target_common_compile_flags(CHIP_MBEDSTORAGE_CFLAGS mbed-storage-kv-global-api)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDSTORAGE_CFLAGS})

# Add support for Mbed Socket
# Add support for Mbed Socket
mbed_get_target_common_compile_flags(CHIP_MBEDNETSOCKET_CFLAGS mbed-netsocket)
list(APPEND CHIP_CFLAGS ${CHIP_MBEDNETSOCKET_CFLAGS})

Expand All @@ -190,12 +190,12 @@ endif()

mbed_get_gnu_cpp_standard(CHIP_CFLAGS_CC)

list(APPEND CHIP_CFLAGS
list(APPEND CHIP_CFLAGS
\"-D__LINUX_ERRNO_EXTENSIONS__=1\"
)

if (CONFIG_MBED_BSD_SOCKET_TRACE)
list(APPEND CHIP_CFLAGS
list(APPEND CHIP_CFLAGS
\"-DMBED_BSD_SOCKET_TRACE=1\"
)
endif()
Expand Down Expand Up @@ -240,7 +240,7 @@ set(CHIP_DEFAULT_CONFIG_FILE "<${CHIP_ROOT}/config/mbed/CHIPProjectConfig.h>")
set(CHIP_PROJECT_CONFIG ${CHIP_DEFAULT_CONFIG_FILE})

if (CONFIG_CHIP_PROJECT_CONFIG)
get_filename_component(CHIP_PROJECT_CONFIG
get_filename_component(CHIP_PROJECT_CONFIG
${CONFIG_CHIP_PROJECT_CONFIG}
REALPATH
BASE_DIR ${CMAKE_SOURCE_DIR}
Expand Down Expand Up @@ -298,7 +298,7 @@ ExternalProject_Add(
BUILD_COMMAND ninja
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ${CHIP_LIBRARIES}
CONFIGURE_ALWAYS TRUE
CONFIGURE_ALWAYS TRUE
BUILD_ALWAYS TRUE
USES_TERMINAL_CONFIGURE TRUE
USES_TERMINAL_BUILD TRUE
Expand Down Expand Up @@ -335,23 +335,23 @@ if("capsense" IN_LIST MBED_TARGET_LABELS)
target_link_libraries(${APP_TARGET} capsense)
endif()

list(APPEND CHIP_INCLUDES
list(APPEND CHIP_INCLUDES
${CHIP_ROOT}/config/mbed/mbedtls
)

list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
__LINUX_ERRNO_EXTENSIONS__=1
)

if (CONFIG_MBED_BSD_SOCKET_TRACE)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
MBED_BSD_SOCKET_TRACE=1
)
endif()

if (CONFIG_CHIP_PW_RPC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17" PARENT_SCOPE)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_PW_RPC=1
)
endif()
Expand Down Expand Up @@ -412,7 +412,7 @@ if (CONFIG_CHIP_PW_RPC_ECHO_PROTO)
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/third_party/pigweed/repo/pw_rpc/protos.proto_library/nanopb_rpc
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/third_party/pigweed/repo/pw_rpc/protos.proto_library/nanopb
)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_PW_RPC_ECHO_PROTO=1
)
endif(CONFIG_CHIP_PW_RPC_ECHO_PROTO)
Expand All @@ -425,7 +425,7 @@ if (CONFIG_CHIP_PW_RPC_COMMON_PROTO)
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/device_service.proto_library/nanopb
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/device_service.proto_library/nanopb_rpc
)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_PW_RPC_COMMON_PROTO=1
)
endif(CONFIG_CHIP_PW_RPC_COMMON_PROTO)
Expand All @@ -435,7 +435,7 @@ if (CONFIG_CHIP_PW_RPC_LIGHTING_PROTO)
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/lighting_service.proto_library/nanopb
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/lighting_service.proto_library/nanopb_rpc
)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_PW_RPC_LIGHTING_PROTO=1
)
endif(CONFIG_CHIP_PW_RPC_LIGHTING_PROTO)
Expand All @@ -445,7 +445,7 @@ if (CONFIG_CHIP_PW_RPC_LOCKING_PROTO)
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/locking_service.proto_library/nanopb
${CMAKE_CURRENT_BINARY_DIR}/protocol_buffer/gen/third_party/connectedhomeip/examples/common/pigweed/locking_service.proto_library/nanopb_rpc
)
list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_PW_RPC_LOCKING_PROTO=1
)
endif(CONFIG_CHIP_PW_RPC_LOCKING_PROTO)
Expand All @@ -454,25 +454,39 @@ endif(CONFIG_CHIP_PW_RPC)

if (CONFIG_CHIP_OTA_REQUESTOR)
target_include_directories(${APP_TARGET} PRIVATE
${CHIP_ROOT}/zzz_generated/ota-requestor-app
${CHIP_ROOT}/src/app/clusters/ota-requestor
${CHIP_ROOT}/src/platform
${CHIP_ROOT}/src/platform/mbed
${CHIP_ROOT}/src/include/platform
)

target_sources(${APP_TARGET} PRIVATE
${CHIP_ROOT}/zzz_generated/ota-requestor-app/zap-generated/callback-stub.cpp
${CHIP_ROOT}/zzz_generated/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp

${CHIP_ROOT}/src/app/clusters/ota-requestor/OTARequestor.cpp
${CHIP_ROOT}/src/app/clusters/ota-requestor/BDXDownloader.cpp
${CHIP_ROOT}/src/app/clusters/ota-requestor/ota-requestor-server.cpp

${CHIP_ROOT}/src/platform/mbed/OTAImageProcessorImpl.cpp
${CHIP_ROOT}/src/platform/mbed/OTARequestorDriverImpl.cpp
)

if (NOT ${APP_TARGET} MATCHES "shell")
target_sources(${APP_TARGET} PRIVATE
${CHIP_ROOT}/src/app/clusters/ota-requestor/ota-requestor-server.cpp
)
else()
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)
chip_configure_data_model(${APP_TARGET}
ZAP_FILE ${CHIP_ROOT}/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap
GEN_DIR ${CHIP_ROOT}/zzz_generated/ota-requestor-app/zap-generated
)
target_include_directories(${APP_TARGET} PRIVATE
${GEN_DIR}/ota-requestor-app
)
target_sources(${APP_TARGET} PRIVATE
${GEN_DIR}//ota-requestor-app/zap-generated/callback-stub.cpp
${GEN_DIR}/ota-requestor-app/zap-generated/IMClusterCommandHandler.cpp
)
endif()

list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
CHIP_OTA_REQUESTOR=1
)
endif(CONFIG_CHIP_OTA_REQUESTOR)
Expand Down Expand Up @@ -507,16 +521,16 @@ if(BOOT_ENABLED)
"-DMBED_APP_SIZE=${APP_SIZE}"
)

list(APPEND CHIP_DEFINES
list(APPEND CHIP_DEFINES
BOOT_ENABLED=1
)
endif()


target_include_directories(${APP_TARGET} PRIVATE
target_include_directories(${APP_TARGET} PRIVATE
${CHIP_INCLUDES}
)

target_compile_definitions(${APP_TARGET} PRIVATE
${CHIP_DEFINES}
${CHIP_DEFINES}
)
1 change: 1 addition & 0 deletions examples/all-clusters-app/mbed/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
build-*/
mcuboot
131 changes: 30 additions & 101 deletions examples/all-clusters-app/mbed/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
cmake_minimum_required(VERSION 3.19.0)

get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../.. REALPATH)
get_filename_component(APP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/.. REALPATH)
get_filename_component(MBED_COMMON ${CHIP_ROOT}/examples/platform/mbed REALPATH)
get_filename_component(APP_UTIL ${CHIP_ROOT}/src/app/util REALPATH)
get_filename_component(APP_CLUSTERS ${CHIP_ROOT}/src/app/clusters REALPATH)
get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH)
get_filename_component(ALL_CLUSTERS_COMMON ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH)
get_filename_component(NLIO_ROOT ${CHIP_ROOT}/third_party/nlio/repo/include REALPATH)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config.in
Expand All @@ -18,9 +17,22 @@ configure_file(

set(MBED_PATH ${MBED_OS_PATH} CACHE INTERNAL "")
set(MBED_CONFIG_PATH ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "")
set(MCUBOOT_PATH ${MBED_MCU_BOOT_PATH} CACHE INTERNAL "")
set(APP_PATH ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "")
set(APP_TYPE ${MBED_APP_TYPE} CACHE INTERNAL "")
set(BOOT_ENABLED FALSE)
set(APP_TARGET chip-mbed-all-clusters-app-example)

if(APP_TYPE STREQUAL "boot" OR APP_TYPE STREQUAL "upgrade")
set(BOOT_ENABLED TRUE)
endif()

include(${MBED_PATH}/tools/cmake/app.cmake)
if(MBED_TARGET STREQUAL "CY8CPROTO_062_4343W" AND BOOT_ENABLED)
list(REMOVE_ITEM MBED_TARGET_LABELS CM0P_SLEEP)
list(REMOVE_ITEM MBED_TARGET_DEFINITIONS COMPONENT_CM0P_SLEEP=1)
endif()
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)

project(${APP_TARGET})

Expand All @@ -34,111 +46,28 @@ add_subdirectory(${CHIP_ROOT}/config/mbed ./chip_build)
mbed_configure_app_target(${APP_TARGET})

target_include_directories(${APP_TARGET} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/main/include/
${APP_ROOT}/all-clusters-common
${APP_ROOT}/all-clusters-common/include
${APP_CLUSTERS}
main/include/
${MBED_COMMON}/util/include
${CHIP_ROOT}/src/app
${CHIP_ROOT}/third_party/nlio/repo/include
${GEN_DIR}/all-clusters-app
${ALL_CLUSTERS_COMMON}/include
${GEN_DIR}/app-common
${GEN_DIR}/all-clusters-app
${NLIO_ROOT}
)

target_sources(${APP_TARGET} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/main/main.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main/AppTask.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main/LowPowerManager.cpp

${MBED_COMMON}/util/LEDWidget.cpp

main/main.cpp
main/AppTask.cpp
${GEN_DIR}/all-clusters-app/zap-generated/callback-stub.cpp
${GEN_DIR}/all-clusters-app/zap-generated/IMClusterCommandHandler.cpp
${GEN_DIR}/app-common/app-common/zap-generated/attributes/Accessors.cpp
${GEN_DIR}/app-common/app-common/zap-generated/cluster-objects.cpp

${CHIP_ROOT}/src/app/server/EchoHandler.cpp
${CHIP_ROOT}/src/app/server/Dnssd.cpp
${CHIP_ROOT}/src/app/server/OnboardingCodesUtil.cpp
${CHIP_ROOT}/src/app/server/Server.cpp
${CHIP_ROOT}/src/app/server/CommissioningWindowManager.cpp

${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp
${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp

${APP_UTIL}/DataModelHandler.cpp
${APP_UTIL}/af-event.cpp
${APP_UTIL}/attribute-storage.cpp
${APP_UTIL}/attribute-table.cpp
${APP_UTIL}/attribute-size-util.cpp
${APP_UTIL}/binding-table.cpp
${APP_UTIL}/client-api.cpp
${APP_UTIL}/ember-print.cpp
${APP_UTIL}/ember-compatibility-functions.cpp
${APP_UTIL}/message.cpp
${APP_UTIL}/util.cpp
${APP_UTIL}/error-mapping.cpp

${APP_CLUSTERS}/application-basic-server/application-basic-server.cpp
${APP_CLUSTERS}/basic/basic.cpp
${APP_CLUSTERS}/bindings/BindingManager.cpp
${APP_CLUSTERS}/bindings/bindings.cpp
${APP_CLUSTERS}/bindings/PendingNotificationMap.cpp
${APP_CLUSTERS}/on-off-server/on-off-server.cpp
${APP_CLUSTERS}/access-control-server/access-control-server.cpp
${APP_CLUSTERS}/account-login-server/account-login-server.cpp
${APP_CLUSTERS}/application-launcher-server/application-launcher-server.cpp
${APP_CLUSTERS}/audio-output-server/audio-output-server.cpp
${APP_CLUSTERS}/barrier-control-server/barrier-control-server.cpp
${APP_CLUSTERS}/basic/basic.cpp
${APP_CLUSTERS}/bindings/bindings.cpp
${APP_CLUSTERS}/color-control-server/color-control-server.cpp
${APP_CLUSTERS}/content-launch-server/content-launch-server.cpp
${APP_CLUSTERS}/descriptor/descriptor.cpp
${APP_CLUSTERS}/door-lock-server/door-lock-server.cpp
${APP_CLUSTERS}/fixed-label-server/fixed-label-server.cpp
${APP_CLUSTERS}/user-label-server/user-label-server.cpp
${APP_CLUSTERS}/general-commissioning-server/general-commissioning-server.cpp
${APP_CLUSTERS}/groups-server/groups-server.cpp
${APP_CLUSTERS}/ias-zone-server/ias-zone-server.cpp
${APP_CLUSTERS}/keypad-input-server/keypad-input-server.cpp
${APP_CLUSTERS}/level-control/level-control.cpp
${APP_CLUSTERS}/low-power-server/low-power-server.cpp
${APP_CLUSTERS}/localization-configuration-server/localization-configuration-server.cpp
${APP_CLUSTERS}/time-format-localization-server/time-format-localization-server.cpp
${APP_CLUSTERS}/media-input-server/media-input-server.cpp
${APP_CLUSTERS}/media-playback-server/media-playback-server.cpp
${APP_CLUSTERS}/mode-select-server/mode-select-server.cpp
${APP_CLUSTERS}/network-commissioning-old/network-commissioning-ember.cpp
${APP_CLUSTERS}/network-commissioning-old/network-commissioning-old.cpp
${APP_CLUSTERS}/on-off-server/on-off-server.cpp
${APP_CLUSTERS}/scenes/scenes.cpp
${APP_CLUSTERS}/switch-server/switch-server.cpp
${APP_CLUSTERS}/target-navigator-server/target-navigator-server.cpp
${APP_CLUSTERS}/thermostat-server/thermostat-server.cpp
${APP_CLUSTERS}/thermostat-user-interface-configuration-server/thermostat-user-interface-configuration-server.cpp
${APP_CLUSTERS}/channel-server/channel-server.cpp
${APP_CLUSTERS}/operational-credentials-server/operational-credentials-server.cpp
${APP_CLUSTERS}/test-cluster-server/test-cluster-server.cpp
${APP_CLUSTERS}/occupancy-sensor-server/occupancy-sensor-server.cpp
${APP_CLUSTERS}/diagnostic-logs-server/diagnostic-logs-server.cpp
${APP_CLUSTERS}/ethernet-network-diagnostics-server/ethernet-network-diagnostics-server.cpp
${APP_CLUSTERS}/software-diagnostics-server/software-diagnostics-server.cpp
${APP_CLUSTERS}/thread-network-diagnostics-server/thread-network-diagnostics-server.cpp
${APP_CLUSTERS}/wake-on-lan-server/wake-on-lan-server.cpp
${APP_CLUSTERS}/wifi-network-diagnostics-server/wifi-network-diagnostics-server.cpp
${APP_CLUSTERS}/pump-configuration-and-control-server/pump-configuration-and-control-server.cpp
${APP_CLUSTERS}/administrator-commissioning-server/administrator-commissioning-server.cpp
${APP_CLUSTERS}/identify-server/identify-server.cpp
${APP_CLUSTERS}/window-covering-server/window-covering-server.cpp
${APP_CLUSTERS}/general-diagnostics-server/general-diagnostics-server.cpp
${APP_CLUSTERS}/group-key-mgmt-server/group-key-mgmt-server.cpp
${APP_CLUSTERS}/power-source-configuration-server/power-source-configuration-server.cpp
${APP_CLUSTERS}/power-source-server/power-source-server.cpp
${APP_CLUSTERS}/ota-requestor/ota-requestor-server.cpp
${APP_CLUSTERS}/ota-requestor/BDXDownloader.cpp
${APP_CLUSTERS}/ota-requestor/OTARequestor.cpp
${MBED_COMMON}/util/LEDWidget.cpp
${MBED_COMMON}/util/DFUManager.cpp
${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp
${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp
)

chip_configure_data_model(${APP_TARGET}
INCLUDE_SERVER
ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../all-clusters-common/all-clusters-app.zap
)

target_link_libraries(${APP_TARGET} mbed-os-posix-socket mbed-os mbed-ble mbed-events mbed-netsocket mbed-storage mbed-storage-kv-global-api mbed-mbedtls mbed-emac chip)
Expand Down
3 changes: 2 additions & 1 deletion examples/all-clusters-app/mbed/config.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ CONFIG_CHIP_BUILD_TESTS=n
CONFIG_CHIP_WITH_EXTERNAL_MBEDTLS=y
CONFIG_CHIP_PROJECT_CONFIG=main/include/CHIPProjectConfig.h
CONFIG_CHIP_BYPASS_RENDEZVOUS=n
CONFIG_MBED_BSD_SOCKET_TRACE=n
CONFIG_MBED_BSD_SOCKET_TRACE=n
CONFIG_CHIP_OTA_REQUESTOR=y
Loading

0 comments on commit fb1d55f

Please sign in to comment.