Skip to content
Draft
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions components/acoustics-porting/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,21 @@ else()
endif()
endif()

if(NOT DEFINED PORTING_BOARD_MODEL_RESPEAKER_LITE)
set(PORTING_BOARD_MODEL_RESPEAKER_LITE 0)
endif()
if(NOT DEFINED PORTING_BOARD_MODEL_XIAO_S3)
set(PORTING_BOARD_MODEL_XIAO_S3 1)
endif()

if(PORTING_BOARD_MODEL_RESPEAKER_LITE)
message(STATUS "acoustics-porting: ReSpeaker Lite board support ENABLED.")
elseif(PORTING_BOARD_MODEL_XIAO_S3)
message(STATUS "acoustics-porting: XIAO ESP32S3 board support ENABLED (default).")
else()
message(STATUS "acoustics-porting: No specific board model enabled.")
endif()
Comment on lines +218 to +231
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里这样写缺少 mutual exclusivity 和 scalability,之后改用 menuconfig 来控制吧,也可以参考下面这种写法:

if(NOT DEFINED PORTING_BOARD_MODEL)
    set(PORTING_BOARD_MODEL "XIAO_S3" CACHE STRING "Select the target board model (e.g., XIAO_S3, RESPEAKER_LITE)")
endif()

set(SUPPORTED_BOARDS "XIAO_S3" "RESPEAKER_LITE")

if(NOT ${PORTING_BOARD_MODEL} IN_LIST SUPPORTED_BOARDS)
    message(FATAL_ERROR "Unsupported board model: '${PORTING_BOARD_MODEL}'. "
                        "Supported models are: ${SUPPORTED_BOARDS}")
endif()

if(${PORTING_BOARD_MODEL} STREQUAL "RESPEAKER_LITE")
    message(STATUS "${PROJECT_NAME}: ReSpeaker Lite board support ENABLED.")
    # ... set flags for ReSpeaker Lite
elseif(${PORTING_BOARD_MODEL} STREQUAL "XIAO_S3")
    message(STATUS "${PROJECT_NAME}: XIAO ESP32S3 board support ENABLED (default).")
    # ... set flags for XIAO S3
endif()


idf_component_register(
SRCS ${ACOUSTICS_PORTING_SRCS}
INCLUDE_DIRS ${ACOUSTICS_PORTING_INCLUDES_DIR}
Expand All @@ -209,6 +224,8 @@ target_compile_definitions(${COMPONENT_LIB} PUBLIC
LIB_OPUS_ENABLE=${LIB_OPUS_ENABLE}
PORTING_LIB_TFLM_ENABLE=${PORTING_LIB_TFLM_ENABLE}
PORTING_LIB_DL_FFT_ENABLE=${PORTING_LIB_DL_FFT_ENABLE}
PORTING_BOARD_MODEL_RESPEAKER_LITE=${PORTING_BOARD_MODEL_RESPEAKER_LITE}
PORTING_BOARD_MODEL_XIAO_S3=${PORTING_BOARD_MODEL_XIAO_S3}
)

if(LIB_OPUS_ENABLE)
Expand Down
6 changes: 6 additions & 0 deletions components/acoustics-porting/porting/device_esp32s3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,13 @@ static size_t getFreeMemorySize() noexcept

static constexpr const char DEVICE_MODEL[] = "ESP32-S3";
static constexpr const char DEVICE_VERSION[] = "1.0.0";
#if defined(PORTING_BOARD_MODEL_RESPEAKER_LITE) && PORTING_BOARD_MODEL_RESPEAKER_LITE
static constexpr const char DEVICE_NAME[] = "ReSpeaker Lite (XIAO ESP32S3)";
#elif defined(PORTING_BOARD_MODEL_XIAO_S3) && PORTING_BOARD_MODEL_XIAO_S3
static constexpr const char DEVICE_NAME[] = "XIAO ESP32-S3";
#else
static constexpr const char DEVICE_NAME[] = "XIAO ESP32-S3";
#endif
Comment on lines +61 to +67
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这的默认的逻辑建议直接 #error,另外组织形式建议修改一下:
新建 board 文件夹,里面仅仅包含不同型号开发板命名的头文件,头文件中存放配置信息,配置信息外予以宏保护

static constexpr const size_t DEVICE_MEMORY_SIZE = 8 * 1024 * 1024;
static constexpr const size_t DEVICE_NAME_LENGTH_MAX = 64;

Expand Down
Loading