This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G3507-Q1: CMAKE entry into reset handler

Part Number: MSPM0G3507-Q1

Hi Team,

I have a customer that is trying to build externally with CMAKE for MSPM0. They are working with the PE Micro tools (https://software-dl.ti.com/msp430/esd/MSPM0-SDK/1_00_00_04/docs/chinese/tools/doc_guide/doc_guide-srcs/pemicro_CN.html#) and had it successfully working with the Out of Box Example. However, when they go to flash their application, the M0 booting up into the Default Handler. This seems to be from the entry point address is 0xC0 in my .out file when it should be 0xC4. They added a workaround by adding ENTRY(Reset_Handler) to the top of their linker script, but wanted to check there was something else that would be causing it to automatically go into the Default Handler that could be fixed. Any ideas what could be causing this?

I have attached their CMAKE files for reference.

Thanks!

-Jack

cmake_minimum_required(VERSION 3.18.1)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(BUILDCONFIG "" CACHE STRING "Build Configuration")
set(BUILDVERSION "" CACHE STRING "M.M.P")
set(MSPM0_SDK_BASEPATH "${CMAKE_SOURCE_DIR}/SDK/mspm0_sdk_1_20_01_06")
set(FREERTOS_BASEPATH "${CMAKE_SOURCE_DIR}/SDK/freertos")
set(GCC_BASEPATH "C:/ti/ccs1250/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major/arm-none-eabi")

set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/gcc_arm_eabi_mspM0_toolchain.cmake")

project(EC LANGUAGES C)

set(THE_PROJECT_DIR ${CMAKE_SOURCE_DIR})
get_filename_component(PARENT_DIR ${THE_PROJECT_DIR} NAME)

add_library(Mirror_Target)
set_property(TARGET Mirror_Target PROPERTY C_STANDARD 11)


####################################INCLUDE DIRECTORIES##################################
include_directories("Generated_Code")

include_directories("Sources")

include_directories("Sources/Utils")
include_directories("Sources/Utils/ML-U0001-MagnaStatus")
include_directories("Sources/Utils/ML-U0003-MagnaErrorHandler")

include_directories("Sources/DAL")
include_directories("Sources/DAL/TI_OPT4001_Q1")

include_directories("Sources/PAL")
include_directories("Sources/PAL/M0_I2C")

include_directories("Sources/FAL")
include_directories("Sources/FAL/MagnaEC")

include_directories("Sources/Subsystems")
include_directories("Sources/Subsystems/EC")

#SDK INCLUDES
include_directories("${MSPM0_SDK_BASEPATH}")
include_directories("${MSPM0_SDK_BASEPATH}/source/third_party/CMSIS/Core/Include")
include_directories("${MSPM0_SDK_BASEPATH}/source")

include_directories("${GCC_BASEPATH}/arm-none-eabi/include/newlib-nano")
include_directories("${GCC_BASEPATH}/arm-none-eabi/include")

##################################SOURCES##############################################
target_sources(Mirror_Target PRIVATE "${MSPM0_SDK_BASEPATH}/source/ti/devices/msp/m0p/startup_system_files/gcc/startup_mspm0g350x_gcc.c")
target_sources(Mirror_Target PRIVATE "Generated_Code/ti_msp_dl_config.c")
target_sources(Mirror_Target PRIVATE "Sources/GDODemo_main.c")
target_sources(Mirror_Target PRIVATE "Sources/FAL/MagnaEC/ECInterface.c")
target_sources(Mirror_Target PRIVATE "Sources/DAL/TI_OPT4001_Q1/TI_OPT4001_Q1.c")
target_sources(Mirror_Target PRIVATE "Sources/DAL/TI_OPT4001_Q1/TI_OPT4001_Q1_Interface.c")
target_sources(Mirror_Target PRIVATE "Sources/PAL/M0_I2C/M0_I2C_Interface.c")

##################################LIBRARIES##############################################
# target_link_libraries(Mirror_Target PRIVATE "${FREERTOS_BASEPATH}/Debug/libfreertos_builds_LP_MSPM0G3507_release_gcc.a")

target_link_libraries(Mirror_Target PRIVATE "${MSPM0_SDK_BASEPATH}/source/ti/driverlib/lib/gcc/m0p/mspm0g1x0x_g3x0x/driverlib.a")
target_link_libraries(Mirror_Target PRIVATE "${GCC_BASEPATH}/lib/thumb/v6-m/nofp/libc.a")
target_link_libraries(Mirror_Target PRIVATE "${GCC_BASEPATH}/lib/thumb/v6-m/nofp/libm.a")
target_link_libraries(Mirror_Target PRIVATE "${GCC_BASEPATH}/lib/thumb/v6-m/nofp/libnosys.a")
target_link_libraries(Mirror_Target PRIVATE "${GCC_BASEPATH}/../lib/gcc/arm-none-eabi/9.2.1/thumb/v6-m/nofp/libgcc.a")

target_link_libraries(Mirror_Target PRIVATE "${THE_PROJECT_DIR}/Sources/FAL/MagnaEC/MMNA_ML-F0001-MAGNA-EC_DEV_windows__2.0.0.37.a")

##################################EXECUTABLES##############################################
add_executable(${PROJECT_NAME}_${PARENT_DIR}_${BUILDVERSION}.out $<TARGET_OBJECTS:Mirror_Target>)
target_link_libraries(${PROJECT_NAME}_${PARENT_DIR}_${BUILDVERSION}.out Mirror_Target)

https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/device_5F00_linker.lds

https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/gcc_5F00_arm_5F00_eabi_5F00_mspM0_5F00_toolchain.cmake