dev: Сборка для Linux Sitara

This commit is contained in:
Vadim Sychev 2022-12-09 12:54:37 +03:00
parent 7d65fcf69f
commit da63bec594
5 changed files with 41 additions and 24 deletions

View File

@ -2,7 +2,9 @@ cmake_minimum_required (VERSION 3.0)
project (PN_ECHO_TEST VERSION 0.0.1) project (PN_ECHO_TEST VERSION 0.0.1)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 17)
set(TARGET_NAME pn_echo_test)
set(INC_DIRS ${INC_DIRS} ../../src/profinet) set(INC_DIRS ${INC_DIRS} ../../src/profinet)
set(INC_DIRS ${INC_DIRS} ../../src/nlohmann_json) set(INC_DIRS ${INC_DIRS} ../../src/nlohmann_json)
@ -19,8 +21,15 @@ set(SRC_FILES ${SRC_FILES} ./CreatePipes.cpp)
set(SRC_FILES ${SRC_FILES} ../../src/file_api/file_api.cpp) set(SRC_FILES ${SRC_FILES} ../../src/file_api/file_api.cpp)
set(SRC_FILES ${SRC_FILES} ./main.cpp) set(SRC_FILES ${SRC_FILES} ./main.cpp)
set(Boost_USE_STATIC_LIBS ON) set(SITARA_DEPOT ${CMAKE_SOURCE_DIR}/../../sitara_depot)
set(Boost_USE_STATIC_RUNTIME ON)
include(${SITARA_DEPOT}/compile/sitara_compile_flags.cmake)
# óáèðàåò ïðåäóïðåæäåíèÿ nlohman json î GCC7.1
add_compile_options(-Wno-psabi)
#set(Boost_USE_STATIC_LIBS ON)
#set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.74.0) find_package(Boost 1.74.0)
if(Boost_FOUND) if(Boost_FOUND)
@ -32,13 +41,21 @@ endif()
message("Boost dir: " ${Boost_INCLUDE_DIRS}) message("Boost dir: " ${Boost_INCLUDE_DIRS})
message("Boost libs:" ${Boost_LIBRARIES}) message("Boost libs:" ${Boost_LIBRARIES})
#Копирование тестового файла конфигурации устройства Profinet add_executable(${TARGET_NAME} ./main.cpp ${SRC_FILES})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/sample_app_echo_config.json
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
add_executable(pn_echo_test ./main.cpp ${SRC_FILES}) target_include_directories(${TARGET_NAME} PRIVATE
target_include_directories(pn_echo_test PRIVATE
./ ./
${INC_DIRS} ${INC_DIRS}
) )
target_link_libraries (${TARGET_NAME} PUBLIC ${Boost_LIBRARIES} pthread c rt)
install(
TARGETS ${TARGET_NAME}
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin
)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/sample_app_echo_config.json
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin
)

View File

@ -1,7 +1,7 @@
{ {
"app_settings": "app_settings":
{ {
"app_out_pipe_name": "/home/svad/Projects/profinet_io_dev/profinet_io_dev_inp", "app_out_pipe_name": "/home/root/pnet/profinet_io_dev_inp",
"app_inp_pipe_name": "/home/svad/Projects/profinet_io_dev/profinet_io_dev_out" "app_inp_pipe_name": "/home/root/pnet/profinet_io_dev_out"
} }
} }

View File

@ -24,10 +24,10 @@ set(SITARA_DEPOT ${CMAKE_SOURCE_DIR}/../sitara_depot)
include(${SITARA_DEPOT}/compile/sitara_compile_flags.cmake) include(${SITARA_DEPOT}/compile/sitara_compile_flags.cmake)
# убирает предупреждения nlohman json о GCC7.1 # убирает предупреждения nlohman json о GCC7.1
add_compile_options(-Wno-psabi) add_compile_options(-Wno-psabi)
#Если не собирается с ошибкой линкера undefined reference pthread, то добавить флаг линкера: #Если не собирается с ошибкой линкера undefined reference pthread, то добавить флаг линкера:
#add_link_options(-lrt) #add_link_options(-lrt)
add_executable(${TARGET_NAME} ./main.cpp ${SRC_FILES}) add_executable(${TARGET_NAME} ./main.cpp ${SRC_FILES})
@ -45,7 +45,7 @@ elseif(CMAKE_BUILD_TYPE STREQUAL Release)
set(LIB_LIST profinet osal ${Boost_LIBRARIES}) set(LIB_LIST profinet osal ${Boost_LIBRARIES})
endif() endif()
# убирает предупреждения nlohman json о GCC7.1 # убирает предупреждения nlohman json о GCC7.1
add_compile_options(-Wno-psabi) add_compile_options(-Wno-psabi)
set(LIB_ARCH_DIR x86_64) set(LIB_ARCH_DIR x86_64)
@ -56,7 +56,7 @@ endif()
target_link_directories(${TARGET_NAME} PUBLIC ${LIBS_INSTALL_PATH}/lib/${LIB_ARCH_DIR}) target_link_directories(${TARGET_NAME} PUBLIC ${LIBS_INSTALL_PATH}/lib/${LIB_ARCH_DIR})
#Если не собирается с ошибкой линкера undefined reference pthread, то после ${Boost_LIBRARIES} добавить pthread или -lpthread: #Если не собирается с ошибкой линкера undefined reference pthread, то после ${Boost_LIBRARIES} добавить pthread или -lpthread:
#target_link_libraries (${TARGET_NAME} PUBLIC profinet osal ${Boost_LIBRARIES} pthread) #target_link_libraries (${TARGET_NAME} PUBLIC profinet osal ${Boost_LIBRARIES} pthread)
target_link_libraries (${TARGET_NAME} PUBLIC ${LIB_LIST} pthread c rt) target_link_libraries (${TARGET_NAME} PUBLIC ${LIB_LIST} pthread c rt)
@ -67,13 +67,13 @@ install(
) )
install(FILES install(FILES
# Копирование заглушки скрипта установки параметров сети. # Копирование заглушки скрипта установки параметров сети.
# Если не копировать, то в недрах pnet после fork вызовется exit и # Если не копировать, то в недрах pnet после fork вызовется exit и
# вызовутся деструкторы объектов, что может привести к непредвиденным последствиям. # вызовутся деструкторы объектов, что может привести к непредвиденным последствиям.
${CMAKE_CURRENT_SOURCE_DIR}/set_network_parameters ${CMAKE_CURRENT_SOURCE_DIR}/set_network_parameters
#Копирование файла конфигурации #Копирование файла конфигурации
${CMAKE_CURRENT_SOURCE_DIR}/program_configure.json ${CMAKE_CURRENT_SOURCE_DIR}/program_configure.json
#Копирование тестового файла конфигурации устройства Profinet #Копирование тестового файла конфигурации устройства Profinet
${CMAKE_CURRENT_SOURCE_DIR}/profinet_device_configure.json ${CMAKE_CURRENT_SOURCE_DIR}/profinet_device_configure.json
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin
) )

View File

@ -8,7 +8,7 @@ bool App::Init(std::string profinet_config_file)
ProfinetPipesSettings profinet_pipe_settings; ProfinetPipesSettings profinet_pipe_settings;
/// Читаем настройки из файла /// Читаем настройки из файла
if (!programconf_getProfinetSettings("program_configure.json", profinet_settings, profinet_pipe_settings)) if (!programconf_getProfinetSettings(profinet_config_file, profinet_settings, profinet_pipe_settings))
{ {
return false; return false;
} }

View File

@ -3,10 +3,10 @@
{ {
"ticks_us": 1000, "ticks_us": 1000,
"cyclic_ms": 100, "cyclic_ms": 100,
"eth_dev_name": "enp6s1", "eth_dev_name": "eth0",
"profinet_device_config": "profinet_device_configure.json", "profinet_device_config": "profinet_device_configure.json",
"enable_pipes": true, "enable_pipes": true,
"out_pipe_name": "/home/svad/Projects/profinet_io_dev/profinet_io_dev_out", "out_pipe_name": "/home/root/pnet/profinet_io_dev_out",
"inp_pipe_name": "/home/svad/Projects/profinet_io_dev/profinet_io_dev_inp" "inp_pipe_name": "/home/root/pnet/profinet_io_dev_inp"
} }
} }