~aleteoryx/muditaos

58af354908b1889fb98bd667af596a07463e10f6 — Mateusz Grzegorzek 4 years ago 69077de
[EGD-6979] Fix for "Unable to catch hard faults on rt1051 via GDB"

`CrashCatcher_armv7m.S` wasn't properly linked to
`CrashCatcher::CrashCatcher`, which cause that HFs on rt1051
wasn't caught via GDB.
Added `CrashCatcherARM` library that solves
above issue.
4 files changed, 16 insertions(+), 2 deletions(-)

M CMakeLists.txt
M Target_RT1051.cmake
A board/rt1051/CMakeLists.txt
M products/PurePhone/CMakeLists.txt
M CMakeLists.txt => CMakeLists.txt +2 -0
@@ 114,6 114,8 @@ add_subdirectory(third-party)

if (${PROJECT_TARGET} STREQUAL "TARGET_Linux")
    add_subdirectory(board/linux/libiosyscalls)
elseif(${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
    add_subdirectory(board/rt1051)
endif()

add_subdirectory(source)

M Target_RT1051.cmake => Target_RT1051.cmake +0 -2
@@ 68,7 68,6 @@ set(TARGET_COMPILE_FEATURES
        CACHE INTERNAL "" )


set_property(SOURCE ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/crashdump/CrashCatcher_armv7m.S PROPERTY LANGUAGE C)
set(TARGET_SOURCES

        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/_exit.c


@@ 78,7 77,6 @@ set(TARGET_SOURCES
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/xip/evkbimxrt1050_flexspi_nor_config.c
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/xip/evkbimxrt1050_sdram_ini_dcd.c
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/xip/fsl_flexspi_nor_boot.c
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/crashdump/CrashCatcher_armv7m.S
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/crashdump/crashcatcher_impl.cpp
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/crashdump/crashdumpwriter_vfs.cpp
        ${CMAKE_CURRENT_LIST_DIR}/board/rt1051/crashdump/consoledump.cpp

A board/rt1051/CMakeLists.txt => board/rt1051/CMakeLists.txt +13 -0
@@ 0,0 1,13 @@
add_library(CrashCatcherARM STATIC)

target_sources(CrashCatcherARM
    PRIVATE
        crashdump/CrashCatcher_armv7m.S
)

set_source_files_properties(crashdump/CrashCatcher_armv7m.S PROPERTIES LANGUAGE C)

target_link_libraries(CrashCatcherARM
    PRIVATE
        CrashCatcher::CrashCatcher
)

M products/PurePhone/CMakeLists.txt => products/PurePhone/CMakeLists.txt +1 -0
@@ 58,6 58,7 @@ target_link_libraries(PurePhone
        messagetype
        "$<$<STREQUAL:${PROJECT_TARGET},TARGET_Linux>:iosyscalls>"
        "$<$<STREQUAL:${PROJECT_TARGET},TARGET_RT1051>:CrashCatcher::CrashCatcher>"
        "$<$<STREQUAL:${PROJECT_TARGET},TARGET_RT1051>:CrashCatcherARM>"
    )

target_link_options(PurePhone PUBLIC ${TARGET_LINK_OPTIONS})