Support rtkernel with built in cmake

pull/107/head
Joakim Plate 2021-11-12 17:15:40 +01:00
parent a4d75c3cc4
commit cbcff01120
5 changed files with 40 additions and 104 deletions

View File

@ -2,7 +2,9 @@
# refer to the root source directory of the project as ${SOES_SOURCE_DIR} and
# to the root binary directory of the project as ${SOES_BINARY_DIR}.
cmake_minimum_required (VERSION 2.8.12)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${RTK}/cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
list(APPEND CMAKE_PREFIX_PATH "${RTK}")
project (SOES)
set (SOES_VERSION_MAJOR 3)

View File

@ -1,47 +0,0 @@
# Guard against multiple inclusion
if(_RT_KERNEL_CMAKE_)
return()
endif()
set(_RT_KERNEL_CMAKE_ TRUE)
cmake_minimum_required (VERSION 3.1.2)
# Get environment variables
set(RTK $ENV{RTK} CACHE STRING
"Location of rt-kernel tree")
# Avoid warning when re-running cmake
set(DUMMY ${CMAKE_TOOLCHAIN_FILE})
include_directories(
${RTK}/include/
${RTK}/include/arch/${ARCH}
${RTK}/include/kern
${RTK}/include/drivers
${RTK}/lwip/src/include
${RTK}/bsp/${BSP}/include
${SOES_SOURCE_DIR}/soes/include/sys/gcc
)
link_directories(
${RTK}/lib/${ARCH}/${CPU}
)
# No support for shared libs
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
# Common compile flags
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Werror -fomit-frame-pointer -fno-strict-aliasing)
# Add machine flags to C_FLAGS so they take effect for linking also
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MACHINE_FLAGS}" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MACHINE_FLAGS}" CACHE STRING "" FORCE)
# Default libs
set(RTK_LIBS "-l${BSP} -l${ARCH} -lkern -ldev -lsio -lblock -lfs -lusb -llwip -lptpd -leth -li2c -lrtc -lcan -lnand -lspi -lnor -lpwm -ladc -ltrace -lcounter -lc -lm -lshell")
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostartfiles -T${RTK}/bsp/${BSP}/${BSP}.ld -Wl,--start-group <LINK_LIBRARIES> ${RTK_LIBS} -Wl,--end-group")
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostartfiles -T${RTK}/bsp/${BSP}/${BSP}.ld -Wl,--start-group <LINK_LIBRARIES> ${RTK_LIBS} -Wl,--end-group")

View File

@ -0,0 +1,37 @@
if(${ARCH} STREQUAL "xmc4")
set(SOES_DEMO applications/rtl_xmc4_dynpdo)
include_directories(
${SOES_SOURCE_DIR}/soes/include/sys/gcc
${SOES_SOURCE_DIR}/${SOES_DEMO}
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4
)
set(HAL_SOURCES
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4/esc_hw.c
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4/esc_hw_eep.c
)
endif()
if(${ARCH} STREQUAL "kinetis")
set(SOES_DEMO applications/rtl_slavedemo)
include_directories(
${SOES_SOURCE_DIR}/${SOES_DEMO}
)
set(HAL_SOURCES
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-twrk60/esc_hw.c
)
endif()
find_package(rtkernel REQUIRED)
# Common compile flags
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Werror -fomit-frame-pointer -fno-strict-aliasing)
link_libraries(${BSP} ${ARCH} kern dev sio block fs usb lwip ptpd eth i2c rtc can nand spi nor pwm adc trace counter c m shell)

View File

@ -1,27 +0,0 @@
# Guard against multiple inclusion
if(_TOOLCHAIN_CMAKE_)
return()
endif()
set(_TOOLCHAIN_CMAKE_ TRUE)
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME rt-kernel)
# specify the cross compiler
CMAKE_FORCE_C_COMPILER(arm-eabi-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(arm-eabi-g++ GNU)
set(ARCH kinetis)
set(CPU cortex-m4f)
set(BSP twrk60f)
set(MACHINE_FLAGS "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16")
set(SOES_DEMO applications/rtl_slavedemo)
include_directories(
${SOES_SOURCE_DIR}/${SOES_DEMO}
)
set(HAL_SOURCES
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-twrk60/esc_hw.c
)

View File

@ -1,29 +0,0 @@
# Guard against multiple inclusion
if(_TOOLCHAIN_CMAKE_)
return()
endif()
set(_TOOLCHAIN_CMAKE_ TRUE)
INCLUDE(CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME rt-kernel)
# specify the cross compiler
CMAKE_FORCE_C_COMPILER(arm-eabi-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(arm-eabi-g++ GNU)
set(ARCH xmc4)
set(CPU cortex-m4f)
set(BSP xmc48relax)
set(MACHINE_FLAGS "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16")
set(SOES_DEMO applications/rtl_xmc4_dynpdo)
include_directories(
${SOES_SOURCE_DIR}/${SOES_DEMO}
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4
)
set(HAL_SOURCES
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4/esc_hw.c
${SOES_SOURCE_DIR}/soes/hal/rt-kernel-xmc4/esc_hw_eep.c
)