132 lines
3.6 KiB
CMake
132 lines
3.6 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
if (NOT DEFINED PICO_SDK_PATH AND DEFINED ENV{PICO_SDK_PATH})
|
|
set(PICO_SDK_PATH "$ENV{PICO_SDK_PATH}")
|
|
endif()
|
|
if (DEFINED PICO_SDK_PATH)
|
|
get_filename_component(
|
|
PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH
|
|
BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
|
set(ENV{PICO_SDK_PATH} "${PICO_SDK_PATH}")
|
|
endif()
|
|
|
|
# Default this port to Pico 2.
|
|
if (NOT PICO_BOARD)
|
|
set(PICO_BOARD pico2 CACHE STRING "Pico SDK board for the BACnet Pico port" FORCE)
|
|
endif()
|
|
if (NOT DEFINED ENV{PICO_BOARD})
|
|
set(ENV{PICO_BOARD} "${PICO_BOARD}")
|
|
endif()
|
|
|
|
include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake)
|
|
|
|
project(bacnet_pico_port C CXX ASM)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
pico_sdk_init()
|
|
|
|
set(BACNET_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..)
|
|
set(BACNET_SRC ${BACNET_ROOT}/src)
|
|
set(BACNET_CORE ${BACNET_SRC}/bacnet)
|
|
set(BACNET_BASIC ${BACNET_SRC}/bacnet/basic)
|
|
|
|
set(BACNET_COMMON_SOURCES
|
|
${BACNET_BASIC}/binding/address.c
|
|
${BACNET_BASIC}/object/client/device-client.c
|
|
${BACNET_BASIC}/npdu/h_npdu.c
|
|
${BACNET_BASIC}/service/h_apdu.c
|
|
${BACNET_BASIC}/service/h_cov.c
|
|
${BACNET_BASIC}/service/h_dcc.c
|
|
${BACNET_BASIC}/service/h_noserv.c
|
|
${BACNET_BASIC}/service/h_rd.c
|
|
${BACNET_BASIC}/service/h_rp.c
|
|
${BACNET_BASIC}/service/h_rpm.c
|
|
${BACNET_BASIC}/service/h_whohas.c
|
|
${BACNET_BASIC}/service/h_whois.c
|
|
${BACNET_BASIC}/service/h_wp.c
|
|
${BACNET_BASIC}/service/s_iam.c
|
|
${BACNET_BASIC}/service/s_ihave.c
|
|
${BACNET_BASIC}/sys/datetime_mstimer.c
|
|
${BACNET_BASIC}/sys/days.c
|
|
${BACNET_BASIC}/sys/dst.c
|
|
${BACNET_BASIC}/sys/debug.c
|
|
${BACNET_BASIC}/sys/ringbuf.c
|
|
${BACNET_BASIC}/sys/fifo.c
|
|
${BACNET_BASIC}/sys/mstimer.c
|
|
${BACNET_BASIC}/tsm/tsm.c
|
|
${BACNET_CORE}/abort.c
|
|
${BACNET_CORE}/bacaction.c
|
|
${BACNET_CORE}/bacaddr.c
|
|
${BACNET_CORE}/bacapp.c
|
|
${BACNET_CORE}/bacdcode.c
|
|
${BACNET_CORE}/bacdest.c
|
|
${BACNET_CORE}/bacdevobjpropref.c
|
|
${BACNET_CORE}/bacerror.c
|
|
${BACNET_CORE}/bacint.c
|
|
${BACNET_CORE}/bacreal.c
|
|
${BACNET_CORE}/bacstr.c
|
|
${BACNET_CORE}/datalink/cobs.c
|
|
${BACNET_CORE}/datalink/crc.c
|
|
${BACNET_CORE}/datalink/dlmstp.c
|
|
${BACNET_CORE}/datalink/mstp.c
|
|
${BACNET_CORE}/datalink/mstptext.c
|
|
${BACNET_CORE}/datetime.c
|
|
${BACNET_CORE}/dcc.c
|
|
${BACNET_CORE}/hostnport.c
|
|
${BACNET_CORE}/iam.c
|
|
${BACNET_CORE}/ihave.c
|
|
${BACNET_CORE}/indtext.c
|
|
${BACNET_CORE}/memcopy.c
|
|
${BACNET_CORE}/npdu.c
|
|
${BACNET_CORE}/proplist.c
|
|
${BACNET_CORE}/rd.c
|
|
${BACNET_CORE}/reject.c
|
|
${BACNET_CORE}/rp.c
|
|
${BACNET_CORE}/rpm.c
|
|
${BACNET_CORE}/timestamp.c
|
|
${BACNET_CORE}/whohas.c
|
|
${BACNET_CORE}/whois.c
|
|
${BACNET_CORE}/wp.c
|
|
)
|
|
|
|
set(BACNET_MSTP_SOURCES
|
|
${BACNET_COMMON_SOURCES}
|
|
${CMAKE_CURRENT_LIST_DIR}/dlenv.c
|
|
${CMAKE_CURRENT_LIST_DIR}/rs485.c
|
|
${CMAKE_CURRENT_LIST_DIR}/mstimer_init.c
|
|
${CMAKE_CURRENT_LIST_DIR}/main.c
|
|
)
|
|
|
|
add_executable(bacnet-pico-mstp ${BACNET_MSTP_SOURCES})
|
|
|
|
target_include_directories(bacnet-pico-mstp PRIVATE
|
|
${CMAKE_CURRENT_LIST_DIR}
|
|
${BACNET_SRC}
|
|
)
|
|
|
|
target_compile_definitions(bacnet-pico-mstp PRIVATE
|
|
BACDL_MSTP
|
|
MAX_APDU=480
|
|
BACNET_BIG_ENDIAN=0
|
|
PRINT_ENABLED=0
|
|
MAX_TSM_TRANSACTIONS=1
|
|
CRC_USE_TABLE
|
|
BACAPP_MINIMAL
|
|
BACAPP_TIMESTAMP
|
|
BACNET_STACK_DEPRECATED_DISABLE
|
|
BACNET_PROTOCOL_REVISION=16
|
|
)
|
|
|
|
target_link_libraries(bacnet-pico-mstp
|
|
pico_stdlib
|
|
hardware_uart
|
|
hardware_gpio
|
|
hardware_timer
|
|
)
|
|
|
|
pico_enable_stdio_usb(bacnet-pico-mstp 1)
|
|
pico_enable_stdio_uart(bacnet-pico-mstp 0)
|
|
pico_add_extra_outputs(bacnet-pico-mstp)
|