@@ -2,10 +2,10 @@ cmake_minimum_required(VERSION 3.16)
22set (PROJ_NAME stm32-blackpill)
33
44include (FetchContent)
5- FetchContent_Declare( stm32_cmake
6- GIT_REPOSITORY https://github.com/ObKo/stm32-cmake
7- GIT_TAG v2.1.0
8- GIT_SHALLOW TRUE
5+ FetchContent_Declare(stm32_cmake
6+ GIT_REPOSITORY https://github.com/ObKo/stm32-cmake
7+ GIT_TAG v2.1.0
8+ GIT_SHALLOW TRUE
99)
1010FetchContent_Populate(stm32_cmake)
1111set (CMAKE_TOOLCHAIN_FILE ${stm32_cmake_SOURCE_DIR} /cmake/stm32_gcc.cmake)
@@ -20,107 +20,107 @@ find_package(CMSIS COMPONENTS STM32F401CC REQUIRED)
2020find_package (HAL COMPONENTS STM32F4 REQUIRED)
2121
2222add_compile_options (
23- -mcpu=cortex-m4
24- -mfpu=fpv4-sp-d16
25- -mfloat-abi=hard
26- )
23+ -mcpu=cortex-m4
24+ -mfpu=fpv4-sp-d16
25+ -mfloat-abi=hard
26+ )
2727
2828set (CMAKE_INCLUDE_CURRENT_DIR ON )
29- set ( FREERTOS_HEAP "4" )
30- set ( FREERTOS_PORT "GCC_ARM_CM4F" )
29+ set (FREERTOS_HEAP "4" )
30+ set (FREERTOS_PORT "GCC_ARM_CM4F" )
3131
3232add_library (freertos_config INTERFACE )
3333target_include_directories (freertos_config SYSTEM
34- INTERFACE
35- ${CMAKE_CURRENT_SOURCE_DIR}
36- )
37- FetchContent_Declare( freertos_kernel
38- GIT_REPOSITORY https://github.com/FreeRTOS/FreeRTOS-Kernel.git
39- GIT_TAG V11.1.0
40- GIT_SHALLOW TRUE
34+ INTERFACE
35+ ${CMAKE_CURRENT_SOURCE_DIR}
36+ )
37+ FetchContent_Declare(freertos_kernel
38+ GIT_REPOSITORY https://github.com/FreeRTOS/FreeRTOS-Kernel.git
39+ GIT_TAG V11.1.0
40+ GIT_SHALLOW TRUE
4141)
4242
4343FetchContent_MakeAvailable(freertos_kernel)
4444
4545set (WIZ_CHIP W5500)
4646
4747FetchContent_Declare(
48- wizchip
49- GIT_REPOSITORY https://github.com/donghoonpark/wizchip-cmake
50- GIT_SHALLOW TRUE
48+ wizchip
49+ GIT_REPOSITORY https://github.com/donghoonpark/wizchip-cmake
50+ GIT_SHALLOW TRUE
5151)
5252
5353FetchContent_MakeAvailable(wizchip)
5454
5555FetchContent_Declare(
56- nanomodbus
57- GIT_REPOSITORY https://github.com/debevv/nanoMODBUS
58- GIT_TAG v1.18.1
59- GIT_SHALLOW TRUE
56+ nanomodbus
57+ GIT_REPOSITORY https://github.com/debevv/nanoMODBUS
58+ GIT_TAG v1.18.1
59+ GIT_SHALLOW TRUE
6060)
6161
6262FetchContent_GetProperties(nanomodbus)
63- if (NOT nanomodbus_POPULATED)
64- FetchContent_Populate(nanomodbus)
65- endif ()
63+ if (NOT nanomodbus_POPULATED)
64+ FetchContent_Populate(nanomodbus)
65+ endif ()
6666
6767add_library (nanomodbus ${nanomodbus_SOURCE_DIR} /nanomodbus.c)
6868target_include_directories (nanomodbus PUBLIC ${nanomodbus_SOURCE_DIR} )
6969
7070set (TARGET_NAMES modbus_rtu modbus_tcp)
7171
72- foreach (TARGET_NAME ${TARGET_NAMES} )
72+ foreach (TARGET_NAME ${TARGET_NAMES} )
73+
74+ add_executable (${TARGET_NAME}
75+ ${TARGET_NAME} .c
76+ bsp/blackpill/blackpill.c
77+ nmbs/port.c
78+ )
7379
74- add_executable ( ${TARGET_NAME}
75- ${TARGET_NAME} .c
76- bsp/blackpill/blackpill.c
77- nmbs/port.c
78- )
80+ target_include_directories (
81+ ${TARGET_NAME} PRIVATE
82+ ${CMAKE_CURRENT_SOURCE_DIR} /bsp
83+ ${CMAKE_CURRENT_SOURCE_DIR} /nmbs
84+ )
7985
80- target_include_directories (
81- ${TARGET_NAME} PRIVATE
82- ${CMAKE_CURRENT_SOURCE_DIR} /bsp
83- ${CMAKE_CURRENT_SOURCE_DIR} /nmbs
84- )
86+ if (${TARGET_NAME} STREQUAL "modbus_rtu" )
87+ target_compile_definitions (
88+ ${TARGET_NAME} PRIVATE
89+ NMBS_RTU
90+ )
91+ elseif (${TARGET_NAME} STREQUAL "modbus_tcp" )
92+ target_compile_definitions (
93+ ${TARGET_NAME} PRIVATE
94+ NMBS_TCP
95+ )
96+ endif ()
97+
98+ target_link_libraries (
99+ ${TARGET_NAME}
100+ STM32::NoSys
101+ CMSIS::STM32::F401CC
102+ HAL::STM32::F4::CORTEX
103+ HAL::STM32::F4::RCC
104+ HAL::STM32::F4::PWR
105+ HAL::STM32::F4::GPIO
106+ HAL::STM32::F4::TIM
107+ HAL::STM32::F4::UART
108+ HAL::STM32::F4::USART
109+ HAL::STM32::F4::SPI
110+ HAL::STM32::F4::DMA
111+ wizchip
112+ freertos_kernel
113+ nanomodbus
114+ )
85115
86- if (${TARGET_NAME} STREQUAL "modbus_rtu" )
87- target_compile_definitions (
88- ${TARGET_NAME} PRIVATE
89- NMBS_RTU
116+ add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
117+ COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET_NAME} >
90118 )
91- elseif (${TARGET_NAME} STREQUAL "modbus_tcp" )
92- target_compile_definitions (
93- ${TARGET_NAME} PRIVATE
94- NMBS_TCP
119+ add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
120+ COMMAND ${CMAKE_OBJCOPY} -O ihex $<TARGET_FILE:${TARGET_NAME} > ${TARGET_NAME} .hex
95121 )
96- endif ()
97-
98- target_link_libraries (
99- ${TARGET_NAME}
100- STM32::NoSys
101- CMSIS::STM32::F401CC
102- HAL::STM32::F4::CORTEX
103- HAL::STM32::F4::RCC
104- HAL::STM32::F4::PWR
105- HAL::STM32::F4::GPIO
106- HAL::STM32::F4::TIM
107- HAL::STM32::F4::UART
108- HAL::STM32::F4::USART
109- HAL::STM32::F4::SPI
110- HAL::STM32::F4::DMA
111- wizchip
112- freertos_kernel
113- nanomodbus
114- )
115-
116- add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
117- COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET_NAME} >
118- )
119- add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
120- COMMAND ${CMAKE_OBJCOPY} -O ihex $<TARGET_FILE:${TARGET_NAME} > ${TARGET_NAME} .hex
121- )
122- add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
123- COMMAND ${CMAKE_OBJCOPY} -O binary $<TARGET_FILE:${TARGET_NAME} > ${TARGET_NAME} .bin
124- )
125-
126- endforeach ()
122+ add_custom_command (TARGET ${TARGET_NAME} POST_BUILD
123+ COMMAND ${CMAKE_OBJCOPY} -O binary $<TARGET_FILE:${TARGET_NAME} > ${TARGET_NAME} .bin
124+ )
125+
126+ endforeach ()
0 commit comments