summaryrefslogtreecommitdiff
path: root/cmd/sbc_harness/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/sbc_harness/CMakeLists.txt')
-rw-r--r--cmd/sbc_harness/CMakeLists.txt54
1 files changed, 42 insertions, 12 deletions
diff --git a/cmd/sbc_harness/CMakeLists.txt b/cmd/sbc_harness/CMakeLists.txt
index 6199e0c..6e722d7 100644
--- a/cmd/sbc_harness/CMakeLists.txt
+++ b/cmd/sbc_harness/CMakeLists.txt
@@ -1,6 +1,6 @@
# cmd/sbc_harness/CMakeLists.txt - Build script for main sbc_harness.uf2 firmware file
#
-# Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
+# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
if (PICO_PLATFORM STREQUAL "rp2040")
@@ -10,23 +10,42 @@ if (PICO_PLATFORM STREQUAL "rp2040")
add_library(sbc_harness_objs OBJECT
main.c
usb_keyboard.c
+ tusb_log.c
+
+ fs_harness_flash_bin.c
+ fs_harness_uptime_txt.c
)
target_include_directories(sbc_harness_objs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config)
target_include_directories(sbc_harness_objs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories(sbc_harness_objs PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(sbc_harness_objs
- pico_stdlib
+ pico_runtime
+ pico_stdio_uart
+
hardware_flash
+ hardware_watchdog
libmisc
+ libfmt
libusb
libdhcp
- libhw
+ libhw_cr
+ lib9p_srv
+ lib9p_util
+)
+pico_minimize_runtime(sbc_harness_objs
+ INCLUDE PRINTF PRINTF_MINIMAL PRINTF_LONG_LONG PRINTF_PTRDIFF_T
+)
+target_compile_definitions(sbc_harness_objs PRIVATE
+ #PICO_USE_FASTEST_SUPPORTED_CLOCK=1
+
+ # Calculated by `./3rd-party/pico-sdk/src/rp2_common/hardware_clocks/scripts/vcocalc.py --cmake-only 170`
+ PLL_SYS_REFDIV=2
+ PLL_SYS_VCO_FREQ_HZ=1530000000
+ PLL_SYS_POSTDIV1=3
+ PLL_SYS_POSTDIV2=3
+ SYS_CLK_HZ=170000000
)
-pico_minimize_runtime(sbc_harness_objs)
-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)
suppress_tinyusb_warnings()
@@ -37,10 +56,6 @@ add_stack_analysis(sbc_harness_stack.c sbc_harness_objs)
# Link #########################################################################
add_executable(sbc_harness)
-set_source_files_properties("$<TARGET_OBJECTS:sbc_harness_objs>" PROPERTIES
- EXTERNAL_OBJECT true
- GENERATED true
-)
target_sources(sbc_harness PRIVATE
sbc_harness_stack.c
"$<TARGET_OBJECTS:sbc_harness_objs>"
@@ -48,7 +63,22 @@ target_sources(sbc_harness PRIVATE
target_link_libraries(sbc_harness
pico_standard_link
)
+target_link_options(sbc_harness PRIVATE "$<TARGET_PROPERTY:sbc_harness_objs,LINK_OPTIONS>")
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")
+# Embed ########################################################################
+
+target_embed_sources(sbc_harness_objs sbc_harness static.h
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS.md
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/agpl-3.0.txt
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/pico-sdk.bsd3.txt
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/printf.mit.txt
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/tinyusb.mit.txt
+ static/Documentation/YOUR_RIGHTS_AND_OBLIGATIONS/newlib.txt
+ static/Documentation/harness_rom_bin.txt
+ static/Documentation/harness_flash_bin.txt
+ static/Documentation/harness_uptime_txt.txt
+)
+
endif()