Added the toolchain file for AVR-GCC, currently defaulting to using the 328P at 16MHz

This commit is contained in:
jakeg00dwin 2024-06-14 15:02:44 -07:00
parent 943274d3da
commit abaaaaaa0d
1 changed files with 44 additions and 0 deletions

44
avr-gcc-toolchain.cmake Normal file
View File

@ -0,0 +1,44 @@
# ###############################
# AVR-GCC toolchain file
# ###############################
# Specify the cross-compiler
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR avr)
# Specify the compiler and linker
set(AVR_MCU atmega328p) # The old Classic
#set(AVR_MCU attiny85) # The older ATtiny series, avr25
#set(AVR_MCU attiny404) # this is the avrxmega3 series
#set(AVR_MCU avr64dd28) # Newer DX series, avrxmega2
# The default frequency of an 328p devboard using the external crystal.
#set(F_CPU 16000000)
#set(F_CPU 8000000)
add_compile_definitions(F_CPU=16000000UL)
# add_compile_definitions(MCU=atmega328p)
add_compile_definitions(__AVR_ATmega328P__)
# Define the toolchain executables
set(CMAKE_C_COMPILER avr-gcc)
set(CMAKE_CXX_COMPILER avr-g++)
set(CMAKE_ASM_COMPILER avr-gcc)
set(CMAKE_LINKER avr-ld)
set(CMAKE_OBJCOPY avr-objcopy)
set(CMAKE_SIZE avr-size)
# Define compile options
#set(CMAKE_C_FLAGS_INIT "-mmcu=${AVR_MCU} -DF_CPU=16000000UL")
#set(CMAKE_CXX_FLAGS_INIT "-mmcu=${AVR_MCU} -DF_CPU=16000000UL")
#set(CMAKE_EXE_LINKER_FLAGS_INIT "-mmcu=${AVR_MCU}")
set(CMAKE_C_FLAGS "-mmcu=${AVR_MCU} -DF_CPU=16000000UL")
set(CMAKE_CXX_FLAGS "-mmcu=${AVR_MCU} -DF_CPU=16000000UL")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-mmcu=${AVR_MCU}")
# Define the archiver and other tools
set(CMAKE_AR avr-ar)
set(CMAKE_RANLIB avr-ranlib)