diff --git a/avr-gcc-toolchain.cmake b/avr-gcc-toolchain.cmake new file mode 100644 index 0000000..be063e8 --- /dev/null +++ b/avr-gcc-toolchain.cmake @@ -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) +