From f2d53195fd86023d2ff9fcce68d2e150bfd97059 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Thu, 31 Oct 2024 14:04:11 -0600 Subject: cmake part of stack sizes --- cmd/sbc_harness/CMakeLists.txt | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) (limited to 'cmd/sbc_harness') diff --git a/cmd/sbc_harness/CMakeLists.txt b/cmd/sbc_harness/CMakeLists.txt index d59e2b5..85e61ab 100644 --- a/cmd/sbc_harness/CMakeLists.txt +++ b/cmd/sbc_harness/CMakeLists.txt @@ -5,13 +5,15 @@ if (PICO_PLATFORM STREQUAL "rp2040") -add_executable(sbc_harness +# Main compilation ############################################################# + +add_library(sbc_harness_objs main.c usb_keyboard.c ) -target_include_directories(sbc_harness PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config) -target_include_directories(sbc_harness PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(sbc_harness +target_include_directories(sbc_harness_objs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config) +target_include_directories(sbc_harness_objs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(sbc_harness_objs pico_stdlib hardware_flash @@ -20,13 +22,30 @@ target_link_libraries(sbc_harness #libdhcp libhw ) -target_compile_options(sbc_harness PUBLIC "-fcallgraph-info=su,da") +pico_enable_stdio_usb(sbc_harness_objs 0) +pico_enable_stdio_uart(sbc_harness_objs 1) +pico_enable_stdio_semihosting(sbc_harness_objs 0) +pico_enable_stdio_rtt(sbc_harness_objs 0) + +# Stack analysis ############################################################### + +target_compile_options(sbc_harness_objs PUBLIC "-fcallgraph-info=su,da") +set_source_files_properties(sbc_harness_stack.c PROPERTIES + GENERATED true +) +add_custom_command( + OUTPUT sbc_harness_stack.c + COMMAND set -o pipefail && cat -- "$,INCLUDE,\.c\.o(bj)?$>,REPLACE,\.o(bj)?$,.ci>" | sed 's,^,//,' >sbc_harness_stack.c + COMMAND_EXPAND_LISTS + DEPENDS $ + COMMENT "Calculating sbc_harness required stack sizes" +) -pico_enable_stdio_usb(sbc_harness 0) -pico_enable_stdio_uart(sbc_harness 1) -pico_enable_stdio_semihosting(sbc_harness 0) -pico_enable_stdio_rtt(sbc_harness 0) +# Link ######################################################################### +add_executable(sbc_harness) +target_link_libraries(sbc_harness sbc_harness_objs) +target_sources(sbc_harness PRIVATE sbc_harness_stack.c) pico_add_extra_outputs(sbc_harness) # create .map/.bin/.hex/.uf2 files in addition to .elf pico_set_program_url(sbc_harness "https://git.lukeshu.com/sbc-harness") -- cgit v1.2.3-2-g168b