1
0
mirror of https://github.com/halleysfifthinc/Toyota-AVC-LAN synced 2025-06-05 23:16:13 +00:00

Setup and bugfix programming with avrdude

This commit is contained in:
Allen Hill 2023-09-10 16:05:44 -04:00
parent 7245695bc7
commit a9ea586ed4
2 changed files with 10 additions and 17 deletions

View File

@ -3,6 +3,9 @@ include(CMakeDependentOption)
set(WITH_MCU OFF)
set(AVR_MCU "attiny3216")
set(AVR_UPLOADTOOL_PORT /dev/ttyUSB1)
set(AVR_PROGRAMMER serialupdi)
set(AVR_UPLOADTOOL_BAUDRATE 230400)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/avr-gcc-toolchain.cmake")

View File

@ -103,7 +103,7 @@ if(NOT AVR_SIZE_ARGS)
if(APPLE)
set(AVR_SIZE_ARGS -B)
else(APPLE)
set(AVR_SIZE_ARGS -C;--mcu=${AVR_MCU})
set(AVR_SIZE_ARGS -G)
endif(APPLE)
endif(NOT AVR_SIZE_ARGS)
@ -167,13 +167,12 @@ function(add_avr_executable EXECUTABLE_NAME)
endif(NOT ARGN)
# set file names
set(elf_file ${EXECUTABLE_NAME}${MCU_TYPE_FOR_FILENAME}.elf)
set(hex_file ${EXECUTABLE_NAME}${MCU_TYPE_FOR_FILENAME}.hex)
set(lst_file ${EXECUTABLE_NAME}${MCU_TYPE_FOR_FILENAME}.lst)
set(map_file ${EXECUTABLE_NAME}${MCU_TYPE_FOR_FILENAME}.map)
set(eeprom_image ${EXECUTABLE_NAME}${MCU_TYPE_FOR_FILENAME}-eeprom.hex)
set (${EXECUTABLE_NAME}_ELF_TARGET ${elf_file} PARENT_SCOPE)
set (${EXECUTABLE_NAME}_ELF_TARGET ${EXECUTABLE_NAME} PARENT_SCOPE)
set (${EXECUTABLE_NAME}_HEX_TARGET ${hex_file} PARENT_SCOPE)
set (${EXECUTABLE_NAME}_LST_TARGET ${lst_file} PARENT_SCOPE)
set (${EXECUTABLE_NAME}_MAP_TARGET ${map_file} PARENT_SCOPE)
@ -188,19 +187,10 @@ function(add_avr_executable EXECUTABLE_NAME)
LINK_FLAGS "-mmcu=${AVR_MCU} -Wl,--gc-sections -mrelax -Wl,-Map,${map_file}"
)
add_custom_command(
OUTPUT ${hex_file}
COMMAND
${AVR_OBJCOPY} -j .text -j .data -O ihex ${elf_file} ${hex_file}
COMMAND
${AVR_SIZE_TOOL} ${AVR_SIZE_ARGS} ${elf_file}
DEPENDS ${EXECUTABLE_NAME}
)
add_custom_command(
OUTPUT ${lst_file}
COMMAND
${AVR_OBJDUMP} -d ${elf_file} > ${lst_file}
${AVR_OBJDUMP} -d ${EXECUTABLE_NAME} > ${lst_file}
DEPENDS ${EXECUTABLE_NAME}
)
@ -210,7 +200,7 @@ function(add_avr_executable EXECUTABLE_NAME)
COMMAND
${AVR_OBJCOPY} -j .eeprom --set-section-flags=.eeprom=alloc,load
--change-section-lma .eeprom=0 --no-change-warnings
-O ihex ${elf_file} ${eeprom_image}
-O ihex ${EXECUTABLE_NAME} ${eeprom_image}
DEPENDS ${EXECUTABLE_NAME}
)
@ -225,9 +215,9 @@ function(add_avr_executable EXECUTABLE_NAME)
add_custom_target(
upload_${EXECUTABLE_NAME}
${AVR_UPLOADTOOL} ${AVR_UPLOADTOOL_BASE_OPTIONS} ${AVR_UPLOADTOOL_OPTIONS}
-U flash:w:${hex_file}
-U flash:w:${EXECUTABLE_NAME}:e
-P ${AVR_UPLOADTOOL_PORT}
DEPENDS ${hex_file}
DEPENDS ${EXECUTABLE_NAME}
COMMENT "Uploading ${hex_file} to ${AVR_MCU} using ${AVR_PROGRAMMER}"
)
@ -245,7 +235,7 @@ function(add_avr_executable EXECUTABLE_NAME)
# disassemble
add_custom_target(
disassemble_${EXECUTABLE_NAME}
${AVR_OBJDUMP} -h -S ${elf_file} > ${EXECUTABLE_NAME}.lst
${AVR_OBJDUMP} -h -S ${EXECUTABLE_NAME} > ${EXECUTABLE_NAME}.lst
DEPENDS ${EXECUTABLE_NAME}
)
endfunction(add_avr_executable)