2025-02-10 18:25:49 +00:00
|
|
|
add_executable(${PROJECT_NAME}
|
|
|
|
main.c
|
|
|
|
)
|
|
|
|
|
|
|
|
# Ensure the build rules are defined
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".elf")
|
|
|
|
|
|
|
|
if(NOT TARGET size)
|
|
|
|
# Set the size utility to display the size of the final binary
|
|
|
|
add_custom_target(size ALL
|
2025-02-14 21:03:54 +00:00
|
|
|
COMMAND ${CMAKE_SIZE} -G --target=elf32-avr ${CMAKE_PROJECT_NAME}.elf
|
2025-02-10 18:25:49 +00:00
|
|
|
DEPENDS ${CMAKE_PROJECT_NAME}.elf
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT TARGET hex)
|
|
|
|
# Define how to convert ELF to HEX
|
|
|
|
add_custom_target(hex ALL
|
|
|
|
COMMAND ${CMAKE_OBJCOPY} -O ihex -R .eeprom ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.hex
|
|
|
|
DEPENDS ${CMAKE_PROJECT_NAME}.elf
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT TARGET bin)
|
|
|
|
# Define how to convert ELF to BIN
|
|
|
|
add_custom_target(bin ALL
|
|
|
|
COMMAND ${CMAKE_OBJCOPY} -O binary -R .eeprom ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.bin
|
|
|
|
DEPENDS ${CMAKE_PROJECT_NAME}.elf
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT TARGET upload)
|
|
|
|
# Upload command (adjust according to your programmer)
|
|
|
|
add_custom_target(upload ALL
|
2025-02-12 23:16:01 +00:00
|
|
|
COMMAND avrdude -c ${PROGRAMMER} -P ${PORT} -p ${AVR_MCU} -B 125kHz -U flash:w:${CMAKE_PROJECT_NAME}.hex
|
2025-02-10 18:25:49 +00:00
|
|
|
DEPENDS hex
|
|
|
|
)
|
|
|
|
endif()
|