Udate the avrdude.conf introductory documentation

This commit is contained in:
Stefan Rueger 2022-07-20 00:57:26 +01:00
parent 6afa115a5f
commit 4ada98a1a8
1 changed files with 95 additions and 62 deletions

View File

@ -12,7 +12,7 @@
# #
# DO NOT MODIFY THIS FILE. Modifications will be overwritten the next # DO NOT MODIFY THIS FILE. Modifications will be overwritten the next
# time a "make install" is run. For user-specific additions, use the # time a "make install" is run. For user-specific additions, use the
# "-C +filename" commandline option. # "-C +filename" command line option.
# #
# Possible entry formats are: # Possible entry formats are:
# #
@ -34,12 +34,12 @@
# rdyled = <num> ; # pin number # rdyled = <num> ; # pin number
# pgmled = <num> ; # pin number # pgmled = <num> ; # pin number
# vfyled = <num> ; # pin number # vfyled = <num> ; # pin number
# usbvid = <hexnum>; # USB VID (Vendor ID) # usbvid = <hexnum> ; # USB VID (Vendor ID)
# usbpid = <hexnum> [, <hexnum> ...] # USB PID (Product ID) (1) # usbpid = <hexnum> [, <hexnum> ...] ; # USB PID (Product ID) (1)
# usbdev = <interface>; # USB interface or other device info # usbdev = <interface> ; # USB interface or other device info
# usbvendor = <vendorname>; # USB Vendor Name # usbvendor = <vendorname> ; # USB Vendor Name
# usbproduct = <productname>; # USB Product Name # usbproduct = <productname> ; # USB Product Name
# usbsn = <serialno>; # USB Serial Number # usbsn = <serialno> ; # USB Serial Number
# hvupdi_support = <num> [, <num>, ... ] ; # UPDI HV Variants Support # hvupdi_support = <num> [, <num>, ... ] ; # UPDI HV Variants Support
# #
# To invert a bit, use = ~ <num>, the spaces are important. # To invert a bit, use = ~ <num>, the spaces are important.
@ -51,29 +51,31 @@
# ; # ;
# #
# part # part
# id = <id> ; # quoted string
# desc = <description> ; # quoted string # desc = <description> ; # quoted string
# id = <id> ; # quoted string
# family_id = <id> ; # quoted string, eg, "megaAVR" or "tinyAVR"
# hvupdi_variant = <num> ; # numeric -1 (n/a) or 0..2
# devicecode = <num> ; # deprecated, use stk500_devcode
# stk500_devcode = <num> ; # numeric
# avr910_devcode = <num> ; # numeric
# has_jtag = <yes/no> ; # part has JTAG i/f # has_jtag = <yes/no> ; # part has JTAG i/f
# has_debugwire = <yes/no> ; # part has debugWire i/f # has_debugwire = <yes/no> ; # part has debugWire i/f
# has_pdi = <yes/no> ; # part has PDI i/f # has_pdi = <yes/no> ; # part has PDI i/f
# has_updi = <yes/no> ; # part has UPDI i/f # has_updi = <yes/no> ; # part has UPDI i/f
# has_tpi = <yes/no> ; # part has TPI i/f # has_tpi = <yes/no> ; # part has TPI i/f
# devicecode = <num> ; # deprecated, use stk500_devcode # is_at90s1200 = <yes/no> ; # AT90S1200 part
# stk500_devcode = <num> ; # numeric # is_avr32 = <yes/no> ; # AVR32 part
# avr910_devcode = <num> ; # numeric
# signature = <num> <num> <num> ; # signature bytes # signature = <num> <num> <num> ; # signature bytes
# usbpid = <num> ; # DFU USB PID # usbpid = <num> ; # DFU USB PID
# chip_erase_delay = <num> ; # micro-seconds # chip_erase_delay = <num> ; # micro-seconds
# reset = dedicated | io; # reset = dedicated | io ;
# retry_pulse = reset | sck; # retry_pulse = reset | sck ;
# pgm_enable = <instruction format> ;
# chip_erase = <instruction format> ;
# chip_erase_delay = <num> ; # chip erase delay (us) # chip_erase_delay = <num> ; # chip erase delay (us)
# # STK500 parameters (parallel programming IO lines) # # STK500 parameters (parallel programming IO lines)
# pagel = <num> ; # pin name in hex, i.e., 0xD7 # pagel = <num> ; # pin name in hex, i.e., 0xD7
# bs2 = <num> ; # pin name in hex, i.e., 0xA0 # bs2 = <num> ; # pin name in hex, i.e., 0xA0
# serial = <yes/no> ; # can use serial downloading # serial = <yes/no> ; # can use serial downloading
# parallel = <yes/no/pseudo>; # can use par. programming # parallel = <yes/no/pseudo> ; # can use par. programming
# # STK500v2 parameters, to be taken from Atmel's XML files # # STK500v2 parameters, to be taken from Atmel's XML files
# timeout = <num> ; # timeout = <num> ;
# stabdelay = <num> ; # stabdelay = <num> ;
@ -85,52 +87,59 @@
# predelay = <num> ; # predelay = <num> ;
# postdelay = <num> ; # postdelay = <num> ;
# pollmethod = <num> ; # pollmethod = <num> ;
# mode = <num> ;
# delay = <num> ;
# blocksize = <num> ;
# readsize = <num> ;
# hvspcmdexedelay = <num> ; # hvspcmdexedelay = <num> ;
# # STK500v2 HV programming parameters, from XML # # STK500v2 HV programming parameters, from XML
# pp_controlstack = <num>, <num>, ...; # PP only # pp_controlstack = <num>, <num>, ... ; # PP only
# hvsp_controlstack = <num>, <num>, ...; # HVSP only # hvsp_controlstack = <num>, <num>, ... ; # HVSP only
# hventerstabdelay = <num>; # flash_instr = <num>, <num>, <num> ;
# progmodedelay = <num>; # PP only # eeprom_instr = <num>, <num>, ... ;
# latchcycles = <num>; # hventerstabdelay = <num> ;
# togglevtg = <num>; # progmodedelay = <num> ; # PP only
# poweroffdelay = <num>; # latchcycles = <num> ;
# resetdelayms = <num>; # togglevtg = <num> ;
# resetdelayus = <num>; # poweroffdelay = <num> ;
# hvleavestabdelay = <num>; # resetdelayms = <num> ;
# resetdelay = <num>; # resetdelayus = <num> ;
# synchcycles = <num>; # HVSP only # hvleavestabdelay = <num> ;
# chiperasepulsewidth = <num>; # PP only # resetdelay = <num> ;
# chiperasepolltimeout = <num>; # synchcycles = <num> ; # HVSP only
# chiperasetime = <num>; # HVSP only # chiperasepulsewidth = <num> ; # PP only
# programfusepulsewidth = <num>; # PP only # chiperasepolltimeout = <num> ;
# programfusepolltimeout = <num>; # chiperasetime = <num> ; # HVSP only
# programlockpulsewidth = <num>; # PP only # programfusepulsewidth = <num> ; # PP only
# programlockpolltimeout = <num>; # programfusepolltimeout = <num> ;
# programlockpulsewidth = <num> ; # PP only
# programlockpolltimeout = <num> ;
# # JTAG ICE mkII parameters, also from XML files # # JTAG ICE mkII parameters, also from XML files
# allowfullpagebitstream = <yes/no> ; # allowfullpagebitstream = <yes/no> ;
# enablepageprogramming = <yes/no> ; # enablepageprogramming = <yes/no> ;
# idr = <num> ; # IO addr of IDR (OCD) reg. # idr = <num> ; # IO addr of IDR (OCD) reg
# rampz = <num> ; # IO addr of RAMPZ reg. # rampz = <num> ; # IO addr of RAMPZ reg
# spmcr = <num> ; # mem addr of SPMC[S]R reg. # spmcr = <num> ; # mem addr of SPMC[S]R reg
# eecr = <num> ; # mem addr of EECR reg. # eecr = <num> ; # mem addr of EECR reg only when != 0x3c
# # (only when != 0x3c) # mcu_base = <num> ;
# is_at90s1200 = <yes/no> ; # AT90S1200 part # nvm_base = <num> ;
# is_avr32 = <yes/no> ; # AVR32 part # ocd_base = <num> ;
# ocdrev = <num> ;
# pgm_enable = <instruction format> ;
# chip_erase = <instruction format> ;
# #
# memory <memtype> # memory <memtype>
# paged = <yes/no> ; # yes / no # paged = <yes/no> ; # yes/no (flash only, do not use for EEPROM)
# offset = <num> ; # memory offset
# size = <num> ; # bytes # size = <num> ; # bytes
# page_size = <num> ; # bytes # page_size = <num> ; # bytes
# num_pages = <num> ; # numeric # num_pages = <num> ; # numeric
# min_write_delay = <num> ; # micro-seconds # min_write_delay = <num> ; # micro-seconds
# max_write_delay = <num> ; # micro-seconds # max_write_delay = <num> ; # micro-seconds
# readback_p1 = <num> ; # byte value # readback = <num> <num> ; # pair of byte values
# readback_p2 = <num> ; # byte value # readback_p1 = <num> ; # byte value (first component)
# pwroff_after_write = <yes/no> ; # yes / no # readback_p2 = <num> ; # byte value (second component)
# pwroff_after_write = <yes/no> ; # yes/no
# mode = <num> ; # STK500 v2 file parameter, to be taken from Atmel's XML files
# delay = <num> ; # "
# blocksize = <num> ; # "
# readsize = <num> ; # "
# read = <instruction format> ; # read = <instruction format> ;
# write = <instruction format> ; # write = <instruction format> ;
# read_lo = <instruction format> ; # read_lo = <instruction format> ;
@ -144,7 +153,8 @@
# ; # ;
# #
# If any of the above parameters are not specified, the default value # If any of the above parameters are not specified, the default value
# of 0 is used for numerics or the empty string ("") for string # of 0 is used for numerics (except for hvupdi_variant and ocdrev,
# where the default value is -1) or the empty string ("") for string
# values. If a required parameter is left empty, AVRDUDE will # values. If a required parameter is left empty, AVRDUDE will
# complain. # complain.
# #
@ -152,7 +162,12 @@
# using the following syntax. In this case specified integer and # using the following syntax. In this case specified integer and
# string values override parameter values from the parent part. New # string values override parameter values from the parent part. New
# memory definitions are added to the definitions inherited from the # memory definitions are added to the definitions inherited from the
# parent. # parent. If, however, a new memory definition refers to an existing
# one of the same name for that part then, from v7.1, the existing
# memory definition is extended, and components overwritten with new
# values. Assigning NULL removes an inherited SPI instruction format,
# memory definition, control stack, eeprom or flash instruction, eg,
# as in memory "efuse" = NULL;
# #
# part parent <id> # quoted string # part parent <id> # quoted string
# id = <id> ; # quoted string # id = <id> ; # quoted string
@ -181,7 +196,7 @@
# #
# INSTRUCTION FORMATS # INSTRUCTION FORMATS
# #
# Instruction formats are specified as a comma seperated list of # Instruction formats are specified as a comma separated list of
# string values containing information (bit specifiers) about each # string values containing information (bit specifiers) about each
# of the 32 bits of the instruction. Bit specifiers may be one of # of the 32 bits of the instruction. Bit specifiers may be one of
# the following formats: # the following formats:
@ -190,10 +205,11 @@
# #
# '0' = the bit is always clear on input as well as output # '0' = the bit is always clear on input as well as output
# #
# 'x' = the bit is ignored on input and output # 'x' = the bit is ignored on input and output and set as 0
# #
# 'a' = the bit is an address bit, the bit-number matches this bit # 'a' = the bit is an address bit; from v 7.1 the bit-number
# specifier's position within the current instruction byte # is set to match the right bit position for the
# instruction to "just work"
# #
# 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12 # 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12
# is address bit 12 on input, a0 is address bit 0. # is address bit 12 on input, a0 is address bit 0.
@ -204,9 +220,26 @@
# #
# Each instruction must be composed of 32 bit specifiers. The # Each instruction must be composed of 32 bit specifiers. The
# instruction specification closely follows the instruction data # instruction specification closely follows the instruction data
# provided in Atmel's data sheets for their parts. # provided in Atmel's data sheets for their parts. Note that flash
# addresses always refer to *word* addresses whilst all other
# memory types specify *byte* addresses.
# #
# See below for some examples. # Example for signature read on the ATmega328P:
# read = "0 0 1 1 0 0 0 0", "0 0 0 x x x x x",
# "x x x x x x a1 a0", "o o o o o o o o";
#
# As the address bit numbers in the SPI opcodes are highly
# systematic, they don't really need to be specified. A compact
# version of the format specification neither uses bit-numbers for
# address lines nor spaces. If such a string is longer than 7
# characters, then the characters 0, 1, x, a, i and o will be
# recognised as the corresponding bit, whilst any of the characters
# ., -, _ or / can act as arbitrary visual separators, which are
# ignored. Examples:
#
# loadpage_lo = "0100.0000--000x.xxxx--xxaa.aaaa--iiii.iiii";
#
# loadpage_lo = "0100.0000", "000x.xxxx", "xxaa.aaaa", "iiii.iiii";
# #
# #
# The following are STK500 part device codes to use for the # The following are STK500 part device codes to use for the