Skip to content
Merged
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
8 changes: 8 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 @@ -232,6 +236,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
12 changes: 7 additions & 5 deletions obc/shared/hal/cmake/board_lib_defs.cmake
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
cmake_minimum_required(VERSION 3.15)

if (${BOARD_TYPE} MATCHES RM46_LAUNCHPAD)
set(HAL_LIB rm46-launchpad-hal)
set(COMMON_LIB rm46-launchpad-common)
elseif(${BOARD_TYPE} MATCHES OBC_REVISION_1)
set(HAL_LIB obc-rev1-hal)
set(COMMON_LIB obc-rev1-common)
elseif(${BOARD_TYPE} MATCHES OBC_REVISION_2)
set(HAL_LIB obc-rev2-hal)
set(COMMON_LIB obc-rev2-common)
else()
message(FATAL_ERROR "Invalid board type: ${BOARD_TYPE}")
endif()

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

This file was deleted.

Loading
Loading