[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Part Definitions

 
part
    desc             = <description>;         # quoted string, the long part name, eg, "ATmega328p"
    id               = <id>;                  # quoted string, normally an abbreviated part name
    variants         = <str1> [, <str2> ...]; # quoted strings, each starts so "<alt-name>: ..."
    family_id        = <id>;                  # quoted string, e.g., "megaAVR" or "tinyAVR"
    prog_modes       = PM_<i/f> {| PM_<i/f>}  # interfaces, e.g., PM_SPM|PM_ISP|PM_HVPP|PM_debugWIRE
    mcuid            = <num>;                 # unique id in 0..2039 for 8-bit AVRs
    archnum          = <num>;                 # avr-gcc architecture number for the part
    n_interrupts     = <num>;                 # number of interrupts, used for vector bootloaders
    n_page_erase     = <num>;                 # if set, number of pages erased during SPM erase
    n_boot_sections  = <num>;                 # Number of boot sections
    boot_section_size = <num>;                # Size of (smallest) boot section, if any
    hvupdi_variant   = <num>;                 # numeric -1 (n/a) or 0..2
    stk500_devcode   = <num>;                 # numeric
    avr910_devcode   = <num>;                 # numeric
    is_at90s1200     = <yes/no>;              # AT90S1200 part
    signature        = <num> <num> <num>;     # signature bytes
    usbpid           = <num>;                 # DFU USB PID
    chip_erase_delay = <num>;                 # microseconds
    reset            = dedicated | io;
    retry_pulse      = reset | sck;
    # STK500 parameters (parallel programming IO lines)
    pagel            = <num>;                 # page load pin name in hex, e.g., 0xD7
    bs2              = <num>;                 # byte select 2 pin name in hex, e.g., 0xA0
    serial           = <yes/no>;              # can use serial programming
    parallel         = <yes/no/pseudo>;       # can use parallel programming
    # STK500v2 parameters, to be taken from Atmel's ATDF files
    timeout          = <num>;
    stabdelay        = <num>;
    cmdexedelay      = <num>;
    synchloops       = <num>;
    bytedelay        = <num>;
    pollvalue        = <num>;
    pollindex        = <num>;
    predelay         = <num>;
    postdelay        = <num>;
    pollmethod       = <num>;
    hvspcmdexedelay  = <num>;
    # STK500v2 HV programming parameters, from ATDFs
    pp_controlstack  = <num>, <num>, ...;     # PP only
    hvsp_controlstack = <num>, <num>, ...;    # HVSP only
    flash_instr      = <num>, <num>, <num>;
    eeprom_instr     = <num>, <num>, ...;
    hventerstabdelay = <num>;
    progmodedelay    = <num>;                 # PP only
    latchcycles      = <num>;
    togglevtg        = <num>;
    poweroffdelay    = <num>;
    resetdelayms     = <num>;
    resetdelayus     = <num>;
    hvleavestabdelay = <num>;
    resetdelay       = <num>;
    synchcycles      = <num>;                 # HVSP only
    chiperasepulsewidth = <num>;              # PP only
    chiperasepolltimeout = <num>;
    chiperasetime    = <num>;                 # HVSP only
    programfusepulsewidth = <num>;            # PP only
    programfusepolltimeout = <num>;
    programlockpulsewidth = <num>;            # PP only
    programlockpolltimeout = <num>;
    # debugWIRE and/or JTAG ICE mkII parameters, also from ATDF files
    allowfullpagebitstream = <yes/no>;
    enablepageprogramming = <yes/no>;
    idr              = <num>;                 # IO addr of IDR (OCD) reg
    rampz            = <num>;                 # IO addr of RAMPZ reg
    spmcr            = <num>;                 # mem addr of SPMC[S]R reg
    eecr             = <num>;                 # mem addr of EECR reg
    eind             = <num>;                 # mem addr of EIND reg
    mcu_base         = <num>;                 # MCU control block in ATxmega devices
    nvm_base         = <num>;                 # NVM controller in ATxmega devices
    ocd_base         = <num>;                 # OCD module in AVR8X/UPDI devices
    syscfg_base      = <num>;                 # Chip revision ID in AVR8X/UPDI devices
    ocdrev           = <num>;                 # JTAGICE3 parameter from ATDF files
    pgm_enable       = <instruction format>;
    chip_erase       = <instruction format>;
    # parameters for bootloaders
    autobaud_sync    = <num>;                 # autobaud detection byte, default 0x30
    factory_fcpu     = <num>;                 # F_CPU in Hz on reset and factory-set fuses

    memory <memstr>
        paged           = <yes/no>;           # yes/no (flash of classic parts only)
        offset          = <num>;              # memory offset
        size            = <num>;              # bytes
        page_size       = <num>;              # bytes
        num_pages       = <num>;              # numeric
        initval         = <num>;              # factory setting of fuses and lockbits
        bitmask         = <num>;              # bits used (only in fuses and lockbits)
        n_word_writes   = <num>;              # TPI only: if set, number of words to write
        min_write_delay = <num>;              # micro-seconds
        max_write_delay = <num>;              # micro-seconds
        readback        = <num> <num>;        # pair of byte values
        readback_p1     = <num>;              # byte value (first component)
        readback_p2     = <num>;              # byte value (second component)
        pwroff_after_write = <yes/no>;        # yes/no
        mode            = <num>;              # STK500 v2 file parameter from ATDF files
        delay           = <num>;              #   "
        blocksize       = <num>;              #   "
        readsize        = <num>;              #   "
        read            = <instruction format>;
        write           = <instruction format>;
        read_lo         = <instruction format>;
        read_hi         = <instruction format>;
        write_lo        = <instruction format>;
        write_hi        = <instruction format>;
        loadpage_lo     = <instruction format>;
        loadpage_hi     = <instruction format>;
        writepage       = <instruction format>;
    ;
;

If any of the above parameters are not specified, the default value of 0 is used for numerics (except for mcuid, hvupdi_variant, ocdrev, initval and bitmask, all of which default to -1, and for autobaud_sync which defaults to 0x30) or the empty string "" for string values. If a required parameter is left empty, AVRDUDE will complain. Almost all occurrences of numbers (with the exception of pin numbers and where they are separated by space, e.g., in signature and readback) can also be given as simple expressions involving arithemtic and bitwise operators.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Stefan Rueger on August 24, 2024 using texi2html 1.82.