diff --git a/firmware/common/hackrf-ui.c b/firmware/common/hackrf-ui.c index 0b85e777..079cfd9e 100644 --- a/firmware/common/hackrf-ui.c +++ b/firmware/common/hackrf-ui.c @@ -59,12 +59,16 @@ static const hackrf_ui_t hackrf_ui_null = { &hackrf_ui_set_antenna_bias_null, }; +const hackrf_ui_t* portapack_detect(void) __attribute__((weak)); + static const hackrf_ui_t* ui = NULL; const hackrf_ui_t* hackrf_ui(void) { /* Detect on first use. If no UI hardware is detected, use a stub function table. */ if( ui == NULL ) { - ui = portapack_detect(); + if( portapack_detect ) { + ui = portapack_detect(); + } if( ui == NULL ) { ui = &hackrf_ui_null; } diff --git a/firmware/hackrf-common.cmake b/firmware/hackrf-common.cmake index 0d577251..88b83b77 100644 --- a/firmware/hackrf-common.cmake +++ b/firmware/hackrf-common.cmake @@ -127,6 +127,7 @@ macro(DeclareTargets) ${PATH_HACKRF_FIRMWARE_COMMON}/spi_bus.c ${PATH_HACKRF_FIRMWARE_COMMON}/spi_ssp.c ${PATH_HACKRF_FIRMWARE_COMMON}/gpio_lpc.c + ${PATH_HACKRF_FIRMWARE_COMMON}/hackrf-ui.c ) if(BOARD STREQUAL "RAD1O") @@ -140,12 +141,6 @@ macro(DeclareTargets) ${SRC_M4} ${PATH_HACKRF_FIRMWARE_COMMON}/rffc5071.c ${PATH_HACKRF_FIRMWARE_COMMON}/rffc5071_spi.c - ${PATH_HACKRF_FIRMWARE_COMMON}/cpld_jtag.c - ${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/lenval.c - ${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/micro.c - ${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/ports.c - ${PATH_HACKRF_FIRMWARE_COMMON}/hackrf-ui.c - ${PATH_HACKRF_FIRMWARE_COMMON}/ui_portapack.c ) endif() diff --git a/firmware/hackrf_usb/CMakeLists.txt b/firmware/hackrf_usb/CMakeLists.txt index b8fb3577..5c9e3935 100644 --- a/firmware/hackrf_usb/CMakeLists.txt +++ b/firmware/hackrf_usb/CMakeLists.txt @@ -46,10 +46,21 @@ set(SRC_M4 usb_api_sweep.c "${PATH_HACKRF_FIRMWARE_COMMON}/usb_queue.c" "${PATH_HACKRF_FIRMWARE_COMMON}/fault_handler.c" + "${PATH_HACKRF_FIRMWARE_COMMON}/cpld_jtag.c" "${PATH_HACKRF_FIRMWARE_COMMON}/cpld_xc2c.c" + "${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/lenval.c" + "${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/micro.c" + "${PATH_HACKRF_FIRMWARE_COMMON}/xapp058/ports.c" "${PATH_HACKRF_FIRMWARE_COMMON}/crc.c" "${PATH_HACKRF_FIRMWARE_COMMON}/rom_iap.c" "${PATH_HACKRF_FIRMWARE_COMMON}/operacake.c" ) +if(NOT BOARD STREQUAL "RAD1O") + SET(SRC_M4 + ${SRC_M4} + "${PATH_HACKRF_FIRMWARE_COMMON}/ui_portapack.c" + ) +endif() + DeclareTargets()