cuu 5276f48b6d update multi booter
switch order of picomite and sd_boot to make more space for progs of multi booter

bin folder name changed to firmware

ui interface improvments
2025-05-25 15:40:46 +08:00

105 lines
3.3 KiB
CMake

# .-------------------------------------------------------------------------.
# | MIT Licensed : Copyright 2022, "Hippy" |
# `-------------------------------------------------------------------------'
# ***************************************************************************
# * This project - Build a combined booter and some apps *
# ***************************************************************************
set(PROJECT pico_multi_booter)
set(BOOT boot)
set(OUTPUT combined.uf2)
# .-------------------------------------------------------------------------.
# | The usual CMake prerequisites |
# `-------------------------------------------------------------------------'
cmake_minimum_required(VERSION 3.12)
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(${PROJECT} C CXX ASM)
pico_sdk_init()
# .-------------------------------------------------------------------------.
# | The other things we need to complete the build |
# `-------------------------------------------------------------------------'
find_package(Python3 REQUIRED COMPONENTS Interpreter)
add_subdirectory(picomite)
add_subdirectory(sd_boot)
### build boot.uf2
add_executable(${BOOT} boot.c)
target_link_libraries(${BOOT} pico_stdlib
hardware_pio
)
target_compile_options(${BOOT} PRIVATE
-Os
-Wall
-Werror
-Wno-unused-variable
-Wno-unused-function
)
pico_enable_stdio_usb(${BOOT} 0)
pico_enable_stdio_uart(${BOOT} 1)
pico_add_uf2_output(${BOOT})
target_link_libraries(${BOOT}
hardware_resets
cmsis_core
)
pico_set_binary_type(${BOOT} copy_to_ram)
add_custom_target(BUILT_${BOOT}
COMMENT "Record Build Details for '${BOOT}'"
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BOOT}.uf2
COMMAND ${Python3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/applink.py BUILT
${CMAKE_CURRENT_BINARY_DIR}
${BOOT}
)
# ***************************************************************************
# * Build the BOOT plus all the APPS *
# ***************************************************************************
add_dependencies(BUILT_boot boot)
add_dependencies(PREPARE_sd_boot BUILT_boot)
add_dependencies(sd_boot PREPARE_sd_boot)
add_dependencies(BUILT_sd_boot sd_boot)
add_dependencies(PREPARE_picomite BUILT_sd_boot)
add_dependencies(picomite PREPARE_picomite)
add_dependencies(BUILT_picomite picomite)
# ***************************************************************************
# * Join the BOOT and all APP '.uf2' files together *
# ***************************************************************************
set(UF2S boot.uf2 sd_boot.uf2 picomite.uf2)
add_custom_target(JOIN
COMMENT "Combine the '.uf2' files"
COMMAND ${Python3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/applink.py JOIN
${CMAKE_CURRENT_BINARY_DIR}
${OUTPUT}
${UF2S}
)
add_dependencies(JOIN BUILT_picomite)
add_custom_target(${PROJECT} ALL DEPENDS JOIN)
# ***************************************************************************
# * Finished *
# ***************************************************************************