Description
Hello everyone,
I'm struggling to get certain upload parameters (e.g. upload.protocol) to propagate using custom menu selections in a boards.txt file.
The following line will work correctly when selecting the board:
ProjectGroup.upload.protocol=pgm ...which will correctly set a flag of "-pgm" when calling the defined programming tool.
Conversely, the following will fail when attempting to specify the upload protocol from a menu option:
XtremeG_Single.menu.UploadType.WithCore.upload.protocol=xgsb ... which incorrectly results in "-{upload.protocol}" in the command line instead of "-xgsb" as I would expect.
For broader context, my boards.txt file is as follows:
# See: http://code.google.com/p/arduino/wiki/Platforms
menu.Target=Target Processor
menu.ProjectGroup=Core Speed
menu.UploadType=Upload Type
menu.CoreUtils=Utilities
# CCAV Board Menu Options:
##############################################################
# Project Group Manager Mode
##############################################################
# Project Group Common Attributes:
ProjectGroup.name=Cyber Cortex AV : Project Group Manager
ProjectGroup.build.mcu=atmega103
ProjectGroup.build.core=AVR8
ProjectGroup.upload.tool=Arduino2CorePack
ProjectGroup.upload.protocol=pgm
ProjectGroup.upload.maximum_size=131072
ProjectGroup.program.params.verbose=-v
# Project Group Core Speed
ProjectGroup.menu.ProjectGroup.16MHz=16MHz (Xtreme-R)
ProjectGroup.menu.ProjectGroup.16MHz.build.f_cpu=16000000L
ProjectGroup.menu.ProjectGroup.16MHz.upload.speed=0
ProjectGroup.menu.ProjectGroup.32MHz=32MHz (Xtreme-G / Cyber Song)
ProjectGroup.menu.ProjectGroup.32MHz.build.f_cpu=32000000L
ProjectGroup.menu.ProjectGroup.32MHz.upload.speed=0
##############################################################
# Xtreme-G:Single Processor Mode
##############################################################
# Xtreme-G Common Attributes:
XtremeG_Single.name=Cyber Cortex AV : Xtreme-G (Single Processor Mode)
XtremeG_Single.build.mcu=atmega103
XtremeG_Single.build.f_cpu=32000000L
XtremeG_Single.build.core=AVR8
XtremeG_Single.upload.tool=Arduino2CorePack
XtremeG_Single.upload.maximum_size=131072
#XtremeG_Single.program.params.verbose=-v
#XtremeG_Single.program.params.quiet=-q
XtremeG_Single.menu.UploadType.WithCore=Upload Xtreme-G Core and Program Data
XtremeG_Single.menu.UploadType.WithCore.upload.protocol=xgsb
XtremeG_Single.menu.UploadType.ProgramOnly=Upload Program Data Only
XtremeG_Single.menu.UploadType.WithCore.upload.protocol=xgs
##############################################################
# Xtreme-G:Ad-Hoc Multi Processor Mode
##############################################################
# Xtreme-G Common Attributes:
XtremeG_Multi.name=Cyber Cortex AV : Xtreme-G (Ad-Hoc Multi-Processor Mode)
XtremeG_Multi.build.mcu=atmega103
XtremeG_Multi.build.f_cpu=32000000L
XtremeG_Multi.build.core=AVR8
XtremeG_Multi.upload.tool=Arduino2CorePack
XtremeG_Multi.upload.maximum_size=131072
XtremeG_Multi.program.params.verbose=-v
#XtremeG_Multi.menu.Target=TargetProcessor
# Xtreme-G AVR8 #1:
XtremeG_Multi.menu.Target.AVR1=AVR #1
XtremeG_Multi.menu.Target.AVR1.upload.tool=Arduino2CorePack
XtremeG_Multi.menu.Target.AVR1.upload.maximum_size=131072
XtremeG_Multi.menu.Target.AVR1.upload.speed=1
# Xtreme-G AVR8 #2:
XtremeG_Multi.menu.Target.AVR2=AVR #2
XtremeG_Multi.menu.Target.AVR2.upload.tool=Arduino2CorePack
XtremeG_Multi.menu.Target.AVR2.upload.maximum_size=131072
XtremeG_Multi.menu.Target.AVR2.upload.speed=2
# Xtreme-G Upload Type:
XtremeG_Multi.menu.UploadType.WithCore=Upload Xtreme-G Core and Program Data
XtremeG_Multi.menu.UploadType.WithCore.upload.protocol=xgb
XtremeG_Multi.menu.UploadType.ProgramOnly=Upload Program Data Only
XtremeG_Multi.menu.UploadType.ProgramOnly.upload.protocol=xg
##############################################################
# Xtreme-R:Single Processor Mode
##############################################################
# Xtreme-R Common Attributes:
XtremeR_Single.name=Cyber Cortex AV : Xtreme-R (Single Processor Mode)
XtremeR_Single.build.mcu=atmega103
XtremeR_Single.build.f_cpu=16000000L
XtremeR_Single.build.core=AVR8
XtremeR_Single.upload.tool=Arduino2CorePack
XtremeR_Single.upload.maximum_size=131072
XtremeR_Single.program.params.verbose=-v
XtremeR_Single.menu.UploadType.WithCore=Upload Xtreme-R Core and Program Data
XtremeR_Single.menu.UploadType.WithCore.upload.protocol=xrsb
XtremeR_Single.menu.UploadType.WithCore.upload.speed=1
XtremeR_Single.menu.UploadType.ProgramOnly=Upload Program Data Only
XtremeR_Single.menu.UploadType.ProgramOnly.upload.protocol=xrs
XtremeR_Single.menu.UploadType.ProgramOnly.upload.speed=1
##############################################################
# Xtreme-R:Ad-Hoc Multi Processor Mode
##############################################################
# Xtreme-R Common Attributes:
XtremeR_Multi.name=Cyber Cortex AV : Xtreme-R (Ad-Hoc Multi-Processor Mode)
XtremeR_Multi.build.mcu=atmega103
XtremeR_Multi.build.f_cpu=16000000L
XtremeR_Multi.build.core=AVR8
XtremeR_Multi.upload.tool=Arduino2CorePack
XtremeR_Multi.upload.maximum_size=131072
XtremeR_Multi.program.params.verbose=-v
# Xtreme-R AVR8 #1:
XtremeR_Multi.menu.XtremeR_Multi.AVR1=AVR #1
XtremeR_Multi.menu.XtremeR_Multi.AVR1.upload.speed=1
# Xtreme-R AVR8 #2:
XtremeR_Multi.menu.XtremeR_Multi.AVR2=AVR #2
XtremeR_Multi.menu.XtremeR_Multi.AVR2.upload.speed=2
# Xtreme-R AVR8 #3:
XtremeR_Multi.menu.XtremeR_Multi.AVR3=AVR #3
XtremeR_Multi.menu.XtremeR_Multi.AVR3.upload.speed=3
# Xtreme-R AVR8 #4:
XtremeR_Multi.menu.XtremeR_Multi.AVR4=AVR #4
XtremeR_Multi.menu.XtremeR_Multi.AVR4.upload.speed=4
# Xtreme-R Upload Type:
#XtremeR_Multi.menu.UploadType.WithCore=Upload Xtreme-G Core and Program Data
#XtremeR_Multi.menu.UploadType.WithCore.upload.protocol=xrb
#XtremeR_Multi.menu.UploadType.ProgramOnly=Upload Program Data Only
#XtremeR_Multi.menu.UploadType.ProgramOnly.upload.protocol=xr
##############################################################
CyberSong.name=Cyber Cortex AV : Cyber Song
CyberSong.build.mcu=atmega103
CyberSong.build.f_cpu=32000000L
CyberSong.build.core=AVR8
CyberSong.upload.tool=Arduino2CorePack
CyberSong.upload.protocol=cs
CyberSong.upload.maximum_size=131072
CyberSong.upload.speed=1
CyberSong.menu.UploadType.WithCore=Upload CyberSong Core and Program Data
CyberSong.menu.UploadType.ProgramOnly=Upload Program Data Only
##############################################################
# Utilities
##############################################################
# Upload Base Core Common Attributes:
CoreUtils.name=Cyber Cortex AV : Utility Mode
CoreUtils.build.mcu=atmega103
CoreUtils.build.f_cpu=16000000L
CoreUtils.build.core=AVR8
CoreUtils.upload.tool=Arduino2CorePack
CoreUtils.upload.maximum_size=131072
CoreUtils.program.params.verbose=-v
# Remove Project Group Association:
CoreUtils.menu.CoreUtils.RemovePGA=Remove Project Group Association
CoreUtils.menu.CoreUtils.RemovePGA.upload.protocol=rmpga
CoreUtils.menu.CoreUtils.RemovePGA.upload.speed=0
# Init Processor 2:
CoreUtils.menu.CoreUtils.InitProc2=Load Null I/O Initialization Code to AVR #2
CoreUtils.menu.CoreUtils.InitProc2.upload.protocol=init2
CoreUtils.menu.CoreUtils.InitProc2.upload.speed=0
# Init Processor 3:
CoreUtils.menu.CoreUtils.InitProc3=Load Null I/O Initialization Code to AVR #3
CoreUtils.menu.CoreUtils.InitProc3.upload.protocol=init3
CoreUtils.menu.CoreUtils.InitProc3.upload.speed=0
# Init Processor 4:
CoreUtils.menu.CoreUtils.InitProc4=Load Null I/O Initialization Code to AVR #4
CoreUtils.menu.CoreUtils.InitProc4.upload.protocol=init4
CoreUtils.menu.CoreUtils.InitProc4.upload.speed=0
# Init Processor 2, 3, and 4:
CoreUtils.menu.CoreUtils.InitProcAll=Load Null I/O Initialization Code to AVR #2, #3, and #4
CoreUtils.menu.CoreUtils.InitProcAll.upload.protocol=initall
CoreUtils.menu.CoreUtils.InitProcAll.upload.speed=0
Is this a bug, or is there something I'm either not doing or understanding correctly?
Thanks,
Bryan