Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
12 changes: 12 additions & 0 deletions obc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,10 @@ target_link_libraries(${OUT_FILE_NAME} PRIVATE
${HAL_LIB_OPTIMIZE}
$<TARGET_OBJECTS:${HAL_LIB_NO_OPTIMIZE}>
)
target_link_libraries(${OUT_FILE_NAME} PRIVATE
${FREERTOS_LIB_OPTIMIZE}
$<TARGET_OBJECTS:${FREERTOS_LIB_NO_OPTIMIZE}>
)

# Generate .bin for the app
string(CONCAT commentStr "Generating " ${BIN_FILE_NAME})
Expand Down Expand Up @@ -196,6 +200,10 @@ target_link_libraries(OBC-bl.out PRIVATE
$<TARGET_OBJECTS:${HAL_LIB_NO_OPTIMIZE}>
f021_api_archive
)
# target_link_libraries(OBC-bl.out PRIVATE
# ${FREERTOS_LIB_OPTIMIZE}
# $<TARGET_OBJECTS:${FREERTOS_LIB_NO_OPTIMIZE}>
# )

# Tools
target_link_options(debug-tool.out PRIVATE
Expand Down Expand Up @@ -232,6 +240,10 @@ target_link_libraries(debug-tool.out PRIVATE
${HAL_LIB_OPTIMIZE}
$<TARGET_OBJECTS:${HAL_LIB_NO_OPTIMIZE}>
)
target_link_libraries(debug-tool.out PRIVATE
${FREERTOS_LIB_OPTIMIZE}
$<TARGET_OBJECTS:${FREERTOS_LIB_NO_OPTIMIZE}>
)


if (${BOARD_TYPE} MATCHES RM46_LAUNCHPAD)
Expand Down
74 changes: 36 additions & 38 deletions obc/shared/hal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.15)
include(cmake/board_lib_defs.cmake)

set(RM46_LAUNCHPAD_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/common/os_required_fns.c
${CMAKE_CURRENT_SOURCE_DIR}/common/rti_weak.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/adc.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/can.c
Expand All @@ -14,16 +13,6 @@ set(RM46_LAUNCHPAD_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/het.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/i2c.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/notification.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_assert.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_croutine.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_event_groups.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_heap.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_list.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_port.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_portasm.s
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_queue.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_tasks.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_timer.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/pinmux.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/sci.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/spi.c
Expand All @@ -41,11 +30,9 @@ set(RM46_LAUNCHPAD_HAL_SOURCES
set(RM46_LAUNCHPAD_NO_OPTIMIZE_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/sys_selftest.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/sys_startup.c
${CMAKE_CURRENT_SOURCE_DIR}/launchpad/source/os_mpu_wrappers.c
)

set(OBC_REV1_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/common/os_required_fns.c
${CMAKE_CURRENT_SOURCE_DIR}/common/rti_weak.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/adc.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/can.c
Expand All @@ -56,16 +43,6 @@ set(OBC_REV1_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/het.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/i2c.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/notification.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_assert.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_croutine.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_event_groups.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_heap.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_list.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_port.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_portasm.s
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_queue.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_tasks.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_timer.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/pinmux.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/sci.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/spi.c
Expand All @@ -83,11 +60,9 @@ set(OBC_REV1_HAL_SOURCES
set(OBC_REV1_NO_OPTIMIZE_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/sys_selftest.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/sys_startup.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev1/source/os_mpu_wrappers.c
)

set(OBC_REV2_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/common/os_required_fns.c
${CMAKE_CURRENT_SOURCE_DIR}/common/rti_weak.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/adc.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/can.c
Expand All @@ -98,16 +73,6 @@ set(OBC_REV2_HAL_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/het.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/i2c.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/notification.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_assert.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_croutine.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_event_groups.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_heap.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_list.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_port.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_portasm.s
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_queue.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_tasks.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_timer.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/pinmux.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/sci.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/spi.c
Expand All @@ -125,9 +90,28 @@ set(OBC_REV2_HAL_SOURCES
set(OBC_REV2_NO_OPTIMIZE_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/sys_selftest.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/sys_startup.c
${CMAKE_CURRENT_SOURCE_DIR}/obc_rev2/source/os_mpu_wrappers.c
)

set(FREERTOS_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/common/os_required_fns.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_assert.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_croutine.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_event_groups.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_heap.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_list.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_port.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_portasm.s
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_queue.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_tasks.c
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_timer.c
)

set(FREERTOS_NO_OPTIMIZE_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/freertos/source/os_mpu_wrappers.c
)

set(FREERTOS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/freertos/include)

if (${BOARD_TYPE} MATCHES RM46_LAUNCHPAD)
set(HAL_SOURCES ${RM46_LAUNCHPAD_HAL_SOURCES})
set(HAL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/launchpad/include)
Expand All @@ -145,23 +129,37 @@ else()
endif()

add_library(${HAL_LIB_OPTIMIZE} STATIC)
target_include_directories(${HAL_LIB_OPTIMIZE} PUBLIC ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)
target_include_directories(${HAL_LIB_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)
add_library(${FREERTOS_LIB_OPTIMIZE} STATIC)
target_include_directories(${FREERTOS_LIB_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)
target_link_libraries(${FREERTOS_LIB_OPTIMIZE} PUBLIC ${HAL_LIB_OPTIMIZE})

target_sources(${HAL_LIB_OPTIMIZE} PUBLIC ${HAL_SOURCES})
target_sources(${FREERTOS_LIB_OPTIMIZE} PUBLIC ${FREERTOS_SOURCES})

if (DEBUG MATCHES 1)
target_compile_options(${HAL_LIB_OPTIMIZE} PRIVATE -O0)
target_compile_options(${FREERTOS_LIB_OPTIMIZE} PRIVATE -O0)
else()
target_compile_options(${HAL_LIB_OPTIMIZE} PRIVATE -O2)
target_compile_options(${FREERTOS_LIB_OPTIMIZE} PRIVATE -O2)
endif()

# Higher optimization levels on some hal files will break firmware for some reason
# Compile them with no optimizations
add_library(${HAL_LIB_NO_OPTIMIZE} OBJECT)
target_include_directories(${HAL_LIB_NO_OPTIMIZE} PUBLIC ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)
target_include_directories(${HAL_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${HAL_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)
add_library(${FREERTOS_LIB_NO_OPTIMIZE} OBJECT)
target_include_directories(${FREERTOS_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/common)

target_sources(${HAL_LIB_NO_OPTIMIZE} PUBLIC ${NO_OPTIMIZE_SOURCES})
target_compile_definitions(${HAL_LIB_NO_OPTIMIZE} PRIVATE
ENABLE_TASK_STATS_COLLECTOR=${ENABLE_TASK_STATS_COLLECTOR}
)
target_sources(${FREERTOS_LIB_NO_OPTIMIZE} PUBLIC ${FREERTOS_NO_OPTIMIZE_SOURCES})
target_compile_definitions(${FREERTOS_LIB_NO_OPTIMIZE} PRIVATE
ENABLE_TASK_STATS_COLLECTOR=${ENABLE_TASK_STATS_COLLECTOR}
)

if (DEBUG MATCHES 1)
target_compile_options(${HAL_LIB_NO_OPTIMIZE} PRIVATE -O0 -g -gdwarf-3 -gstrict-dwarf)
Expand Down
2 changes: 2 additions & 0 deletions obc/shared/hal/cmake/board_lib_defs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ endif()

set(HAL_LIB_OPTIMIZE ${HAL_LIB}-optimize)
set(HAL_LIB_NO_OPTIMIZE ${HAL_LIB}-no-optimize)
set(FREERTOS_LIB_OPTIMIZE ${HAL_LIB}-freertos-optimize)
set(FREERTOS_LIB_NO_OPTIMIZE ${HAL_LIB}-freertos-no-optimize)
199 changes: 0 additions & 199 deletions obc/shared/hal/launchpad/include/FreeRTOSConfig.h

This file was deleted.

Loading
Loading