Skip to content

Custom menu selections are unable to change upload parameters #2323

Closed
@fabuloussilicon

Description

@fabuloussilicon

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions