@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.15)
33include (cmake/board_lib_defs.cmake)
44
55set (RM46_LAUNCHPAD_HAL_SOURCES
6- ${CMAKE_CURRENT_SOURCE_DIR} /common/os_required_fns.c
76 ${CMAKE_CURRENT_SOURCE_DIR} /common/rti_weak.c
87 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /adc.c
98 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /can.c
@@ -14,16 +13,6 @@ set(RM46_LAUNCHPAD_HAL_SOURCES
1413 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /het.c
1514 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /i2c.c
1615 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /notification.c
17- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_assert.c
18- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_croutine.c
19- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_event_groups.c
20- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_heap.c
21- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_list.c
22- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_port.c
23- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_portasm.s
24- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_queue.c
25- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_tasks.c
26- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_timer.c
2716 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /pinmux.c
2817 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /sci.c
2918 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /spi.c
@@ -41,11 +30,9 @@ set(RM46_LAUNCHPAD_HAL_SOURCES
4130set (RM46_LAUNCHPAD_NO_OPTIMIZE_SOURCES
4231 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /sys_selftest.c
4332 ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /sys_startup.c
44- ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/source /os_mpu_wrappers.c
4533)
4634
4735set (OBC_REV1_HAL_SOURCES
48- ${CMAKE_CURRENT_SOURCE_DIR} /common/os_required_fns.c
4936 ${CMAKE_CURRENT_SOURCE_DIR} /common/rti_weak.c
5037 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /adc.c
5138 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /can.c
@@ -56,16 +43,6 @@ set(OBC_REV1_HAL_SOURCES
5643 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /het.c
5744 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /i2c.c
5845 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /notification.c
59- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_assert.c
60- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_croutine.c
61- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_event_groups.c
62- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_heap.c
63- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_list.c
64- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_port.c
65- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_portasm.s
66- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_queue.c
67- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_tasks.c
68- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_timer.c
6946 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /pinmux.c
7047 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /sci.c
7148 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /spi.c
@@ -83,11 +60,9 @@ set(OBC_REV1_HAL_SOURCES
8360set (OBC_REV1_NO_OPTIMIZE_SOURCES
8461 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /sys_selftest.c
8562 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /sys_startup.c
86- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev1/source /os_mpu_wrappers.c
8763)
8864
8965set (OBC_REV2_HAL_SOURCES
90- ${CMAKE_CURRENT_SOURCE_DIR} /common/os_required_fns.c
9166 ${CMAKE_CURRENT_SOURCE_DIR} /common/rti_weak.c
9267 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /adc.c
9368 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /can.c
@@ -98,16 +73,6 @@ set(OBC_REV2_HAL_SOURCES
9873 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /het.c
9974 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /i2c.c
10075 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /notification.c
101- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_assert.c
102- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_croutine.c
103- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_event_groups.c
104- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_heap.c
105- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_list.c
106- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_port.c
107- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_portasm.s
108- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_queue.c
109- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_tasks.c
110- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_timer.c
11176 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /pinmux.c
11277 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /sci.c
11378 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /spi.c
@@ -125,9 +90,28 @@ set(OBC_REV2_HAL_SOURCES
12590set (OBC_REV2_NO_OPTIMIZE_SOURCES
12691 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /sys_selftest.c
12792 ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /sys_startup.c
128- ${CMAKE_CURRENT_SOURCE_DIR} /obc_rev2/source /os_mpu_wrappers.c
12993)
13094
95+ set (FREERTOS_SOURCES
96+ ${CMAKE_CURRENT_SOURCE_DIR} /common/os_required_fns.c
97+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_assert.c
98+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_croutine.c
99+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_event_groups.c
100+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_heap.c
101+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_list.c
102+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_port.c
103+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_portasm.s
104+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_queue.c
105+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_tasks.c
106+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_timer.c
107+ )
108+
109+ set (FREERTOS_NO_OPTIMIZE_SOURCES
110+ ${CMAKE_CURRENT_SOURCE_DIR} /freertos/source /os_mpu_wrappers.c
111+ )
112+
113+ set (FREERTOS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} /freertos/include )
114+
131115if (${BOARD_TYPE} MATCHES RM46_LAUNCHPAD)
132116 set (HAL_SOURCES ${RM46_LAUNCHPAD_HAL_SOURCES} )
133117 set (HAL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} /launchpad/include )
@@ -145,23 +129,37 @@ else()
145129endif ()
146130
147131add_library (${HAL_LIB_OPTIMIZE} STATIC )
148- target_include_directories (${HAL_LIB_OPTIMIZE} PUBLIC ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
132+ target_include_directories (${HAL_LIB_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
133+ add_library (${FREERTOS_LIB_OPTIMIZE} STATIC )
134+ target_include_directories (${FREERTOS_LIB_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
135+ target_link_libraries (${FREERTOS_LIB_OPTIMIZE} PUBLIC ${HAL_LIB_OPTIMIZE} )
136+
149137target_sources (${HAL_LIB_OPTIMIZE} PUBLIC ${HAL_SOURCES} )
138+ target_sources (${FREERTOS_LIB_OPTIMIZE} PUBLIC ${FREERTOS_SOURCES} )
150139
151140if (DEBUG MATCHES 1)
152141 target_compile_options (${HAL_LIB_OPTIMIZE} PRIVATE -O0)
142+ target_compile_options (${FREERTOS_LIB_OPTIMIZE} PRIVATE -O0)
153143else ()
154144 target_compile_options (${HAL_LIB_OPTIMIZE} PRIVATE -O2)
145+ target_compile_options (${FREERTOS_LIB_OPTIMIZE} PRIVATE -O2)
155146endif ()
156147
157148# Higher optimization levels on some hal files will break firmware for some reason
158149# Compile them with no optimizations
159150add_library (${HAL_LIB_NO_OPTIMIZE} OBJECT)
160- target_include_directories (${HAL_LIB_NO_OPTIMIZE} PUBLIC ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
151+ target_include_directories (${HAL_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
152+ add_library (${FREERTOS_LIB_NO_OPTIMIZE} OBJECT)
153+ target_include_directories (${FREERTOS_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} /common)
154+
161155target_sources (${HAL_LIB_NO_OPTIMIZE} PUBLIC ${NO_OPTIMIZE_SOURCES} )
162156target_compile_definitions (${HAL_LIB_NO_OPTIMIZE} PRIVATE
163157 ENABLE_TASK_STATS_COLLECTOR=${ENABLE_TASK_STATS_COLLECTOR}
164158)
159+ target_sources (${FREERTOS_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_NO_OPTIMIZE_SOURCES} )
160+ target_compile_definitions (${FREERTOS_LIB_NO_OPTIMIZE} PRIVATE
161+ ENABLE_TASK_STATS_COLLECTOR=${ENABLE_TASK_STATS_COLLECTOR}
162+ )
165163
166164if (DEBUG MATCHES 1)
167165 target_compile_options (${HAL_LIB_NO_OPTIMIZE} PRIVATE -O0 -g -gdwarf-3 -gstrict-dwarf)
0 commit comments