update factory.bin and update.bin

This commit is contained in:
Steven Dan
2026-03-24 17:01:02 +08:00
parent b9a2319bd6
commit 21916dc4c5

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_phaten_gs)
project(app_usb_aud_sy102)
set(APP_HW_TARGET synido.xn)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
@@ -35,6 +35,12 @@ if (HOST_OS_DETECTION)
set(EXTRA_BUILD_FLAGS ${EXTRA_BUILD_FLAGS} -DHOST_OS_DETECTION)
endif()
# Firmware version (maps to BCD_DEVICE_J.M.N in USB descriptor)
set(FW_VER_J 1)
set(FW_VER_M 0)
set(FW_VER_N 0)
set(FW_VERSION "v${FW_VER_J}.${FW_VER_M}.${FW_VER_N}")
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os
-report
-L${CMAKE_CURRENT_LIST_DIR}/../../lib_ex3d/lib_ex3d/lib
@@ -44,9 +50,9 @@ set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os
-DUSB_TILE=tile[0]
-DXUA_QUAD_SPI_FLASH=1
-D${TARGET_BOARD}
-DBCD_DEVICE_J=1
-DBCD_DEVICE_M=0
-DBCD_DEVICE_N=0
-DBCD_DEVICE_J=${FW_VER_J}
-DBCD_DEVICE_M=${FW_VER_M}
-DBCD_DEVICE_N=${FW_VER_N}
-D${CODEC_IC}
-DWINDOWS_OS_DESCRIPTOR_SUPPORT
-DDEBUG_PRINT_ENABLE=0)
@@ -154,3 +160,49 @@ set(APP_INCLUDES src src/core src/extensions ../../lib_dnr/lib_dnr)
set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
XMOS_REGISTER_APP()
###=========================================================================###
# Flash image generation
# Slot assignment (matches MODE_Fxx flag values in audiohw.xc):
# slot 1 = f3_f4_fps_uac2 (COAX_IN_FLAG = MODE_F3_F4_FPS_UAC2)
# slot 2 = f5_music_uac1 (UAC1_IN_FLAG = MODE_F5_MUSIC_UAC1) <- factory base
# slot 3 = f1_music_uac2 (OPT_IN_FLAG = MODE_F1_MUSIC_UAC2)
# slot 4 = f6_f7_fps_uac1 (USB_IN_FLAG = MODE_F6_F7_FPS_UAC1)
###=========================================================================###
set(APP_BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/bin)
set(APP_BASE ${PROJECT_NAME})
set(XE_F1 ${APP_BIN_DIR}/f1_music_uac2/${APP_BASE}_f1_music_uac2.xe)
set(XE_F3F4 ${APP_BIN_DIR}/f3_f4_fps_uac2/${APP_BASE}_f3_f4_fps_uac2.xe)
set(XE_F5 ${APP_BIN_DIR}/f5_music_uac1/${APP_BASE}_f5_music_uac1.xe)
set(XE_F6F7 ${APP_BIN_DIR}/f6_f7_fps_uac1/${APP_BASE}_f6_f7_fps_uac1.xe)
set(LOADER_OBJ ${CMAKE_CURRENT_LIST_DIR}/loader.o)
set(TARGET_XN ${CMAKE_CURRENT_LIST_DIR}/src/core/synido.xn)
# factory_<project>_<version>.bin — full factory image (base + 4 upgrade slots)
add_custom_target(factory_bin
COMMAND ${CMAKE_COMMAND} -E echo "xflash ${XE_F5} --loader ${LOADER_OBJ} --upgrade 1 ${XE_F3F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/factory_${APP_BASE}_${FW_VERSION}.bin"
COMMAND xflash ${XE_F5} --loader ${LOADER_OBJ}
--upgrade 1 ${XE_F3F4}
--upgrade 2 ${XE_F5}
--upgrade 3 ${XE_F1}
--upgrade 4 ${XE_F6F7}
-o ${CMAKE_CURRENT_LIST_DIR}/factory_${APP_BASE}_${FW_VERSION}.bin
#DEPENDS f1_music_uac2 f3_f4_fps_uac2 f5_music_uac1 f6_f7_fps_uac1
COMMENT "Generating factory image: factory_${APP_BASE}_${FW_VERSION}.bin"
VERBATIM
)
# update_<project>_<version>.bin — DFU upgrade package (upgrade slots only)
add_custom_target(update_bin
COMMAND ${CMAKE_COMMAND} -E echo "xflash --factory-version 15.2 --target-file ${TARGET_XN} --upgrade 1 ${XE_F3F4} --upgrade 2 ${XE_F5} --upgrade 3 ${XE_F1} --upgrade 4 ${XE_F6F7} -o ${CMAKE_CURRENT_LIST_DIR}/update_${APP_BASE}_${FW_VERSION}.bin"
COMMAND xflash --factory-version 15.2 --target-file ${TARGET_XN}
--upgrade 1 ${XE_F3F4}
--upgrade 2 ${XE_F5}
--upgrade 3 ${XE_F1}
--upgrade 4 ${XE_F6F7}
-o ${CMAKE_CURRENT_LIST_DIR}/update_${APP_BASE}_${FW_VERSION}.bin
#DEPENDS f1_music_uac2 f3_f4_fps_uac2 f5_music_uac1 f6_f7_fps_uac1
COMMENT "Generating update image: update_${APP_BASE}_${FW_VERSION}.bin"
VERBATIM
)