Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ jobs:
uses: FreeRTOS/CI-CD-Github-Actions/spellings@main
with:
path: ./
exclude-dirs: source/portable/NetworkInterface/STM32

formatting:
runs-on: ubuntu-latest
Expand All @@ -136,7 +135,6 @@ jobs:
uses: FreeRTOS/CI-CD-Github-Actions/formatting@main
with:
path: ./
exclude-dirs: source/portable/NetworkInterface/STM32

doxygen:
runs-on: ubuntu-latest
Expand Down
86 changes: 51 additions & 35 deletions source/portable/NetworkInterface/STM32/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,60 @@ if (NOT ( (FREERTOS_PLUS_TCP_NETWORK_IF STREQUAL "STM32") ) )
endif()

#------------------------------------------------------------------------------
add_library( freertos_plus_tcp_network_if STATIC )

set( FREERTOS_PLUS_TCP_STM32_IF_DRIVER "None" CACHE STRING "The driver sources to use with STM32 Network interface" )

target_sources( freertos_plus_tcp_network_if
PRIVATE
NetworkInterface.c
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F4>:
Drivers/F4/stm32f4xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F7>:
Drivers/F7/stm32f7xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H5>:
Drivers/H5/stm32h5xx_hal_eth_ex.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H5>:
Drivers/H5/stm32h5xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H7>:
Drivers/H7/stm32h7xx_hal_eth_ex.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H7>:
Drivers/H7/stm32h7xx_hal_eth.c>
add_library(freertos_plus_tcp_network_if STATIC)

set(FREERTOS_PLUS_TCP_STM32_IF_DRIVER "None" CACHE STRING "The driver sources to use with STM32 Network interface")
set_property(CACHE FREERTOS_PLUS_TCP_STM32_IF_DRIVER PROPERTY STRINGS F4 F7 H5 H7 None)

set(_repo "")
set(_tag "")
if(FREERTOS_PLUS_TCP_STM32_IF_DRIVER STREQUAL "F4")
set(_repo https://github.com/STMicroelectronics/stm32f4xx-hal-driver.git)
set(_tag v1.8.4)
elseif(FREERTOS_PLUS_TCP_STM32_IF_DRIVER STREQUAL "F7")
set(_repo https://github.com/STMicroelectronics/stm32f7xx-hal-driver.git)
set(_tag v1.3.2)
elseif(FREERTOS_PLUS_TCP_STM32_IF_DRIVER STREQUAL "H5")
set(_repo https://github.com/STMicroelectronics/stm32h5xx-hal-driver.git)
set(_tag v1.5.0)
elseif(FREERTOS_PLUS_TCP_STM32_IF_DRIVER STREQUAL "H7")
set(_repo https://github.com/STMicroelectronics/stm32h7xx-hal-driver.git)
set(_tag v1.11.5)
endif()

if(_repo STREQUAL "")
message(FATAL_ERROR "Set FREERTOS_PLUS_TCP_STM32_IF_DRIVER to one of: F4, F7, H5, H7.")
endif()

include(FetchContent)
FetchContent_Declare(stm32_eth_driver
GIT_REPOSITORY ${_repo}
GIT_TAG ${_tag}
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(stm32_eth_driver)

target_sources(freertos_plus_tcp_network_if
PRIVATE
NetworkInterface.c
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F4>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32f4xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F7>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32f7xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H5>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32h5xx_hal_eth_ex.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H5>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32h5xx_hal_eth.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H7>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32h7xx_hal_eth_ex.c>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H7>:${stm32_eth_driver_SOURCE_DIR}/Src/stm32h7xx_hal_eth.c>
)

target_include_directories( freertos_plus_tcp_network_if
PUBLIC
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F4>:
Drivers/F4>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},F7>:
Drivers/F7>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H5>:
Drivers/H5>
$<$<STREQUAL:${FREERTOS_PLUS_TCP_STM32_IF_DRIVER},H7>:
Drivers/H7>
target_include_directories(freertos_plus_tcp_network_if
PUBLIC
${stm32_eth_driver_SOURCE_DIR}/Inc
)

target_link_libraries( freertos_plus_tcp_network_if
PUBLIC
freertos_plus_tcp_port
freertos_plus_tcp_network_if_common
PRIVATE
freertos_kernel
freertos_plus_tcp
PUBLIC
freertos_plus_tcp_port
freertos_plus_tcp_network_if_common
PRIVATE
freertos_kernel
freertos_plus_tcp
)
Loading
Loading