Skip to content
Snippets Groups Projects
Commit f9c059dc authored by Erik Strand's avatar Erik Strand
Browse files

Make something build

However it doesn't run...
parent 635935df
Branches
No related tags found
No related merge requests found
cmake_minimum_required(VERSION 3.13) # 3.13 is required for target_link_options
project(HelloSAMD51 C)
#set(CMAKE_SYSTEM_NAME Generic)
#set(CMAKE_SYSTEM_PROCESSOR arm)
#set(CMAKE_CROSSCOMPILING 1)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_CROSSCOMPILING 1)
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
#set(CMAKE_C_LINKER "arm-none-eabi-gcc")
set(CMAKE_C_LINK_FLAGS "")
set(MCU_DEFINE "__SAMD51J19A__")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_BUILD_TYPE "Debug")
endif()
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
add_library(asf INTERFACE)
target_include_directories(asf INTERFACE
add_library(asf
samd51/startup/startup_samd51.c
samd51/startup/system_samd51.c
)
target_include_directories(asf PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/samd51
${CMAKE_CURRENT_SOURCE_DIR}/samd51/CMSIS/Include
${CMAKE_CURRENT_SOURCE_DIR}/samd51/include
${CMAKE_CURRENT_SOURCE_DIR}/samd51/startup
)
target_link_options(asf INTERFACE
target_link_libraries(asf m)
target_link_options(asf PUBLIC
-mthumb
-mabi=aapcs-linux
-mlong-calls
#-mlong-calls
-mcpu=cortex-m4
-mfloat-abi=softfp
-mfpu=fpv4-sp-d16
-mfloat-abi=softfp
-DSAMD51
-T${CMAKE_CURRENT_SOURCE_DIR}/samd51/startup/samd51j19a_flash.ld
-L${CMAKE_CURRENT_SOURCE_DIR}/samd51/startup
#-Wl,--start-group
#-Wl,--end-group
#-Wl,-Map="main.map"
--specs=nano.specs
-Wl,--gc-sections
)
add_executable(hello_world
main.c
)
target_link_libraries(hello_world asf)
target_compile_options(hello_world PRIVATE
target_compile_options(asf PUBLIC
-D${MCU_DEFINE}
-x c
-DDEBUG
-Os
-ffunction-sections
-g3
#-g3
-Wall
-c
-std=gnu99
-mthumb # use T32 instruction set instead of A32 (don't know if this matters)
-mabi=aapcs-linux
#-mlong-calls # changes how functions are called
-mcpu=cortex-m4
-mfpu=fpv4-sp-d16
-mfloat-abi=softfp # this flag specifies whether to use software or hardware float operations
-DSAMD51
)
add_executable(hello_world
main.c
)
target_link_libraries(hello_world asf)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment