avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avrdude-dev] Atmel's XML part description files


From: Erik Walthinsen
Subject: Re: [avrdude-dev] Atmel's XML part description files
Date: Fri, 11 Feb 2005 17:57:50 -0800
User-agent: Debian Thunderbird 1.0 (X11/20050116)

Brian Dean wrote:
So why are there several dozen additional parameters needed for the V2
protocol?  What additional information is required?  If you let me
know what additional parameters are necessary, I will see about
extending our existing parser and data stuctures to accomodate them.

Here's the file I came up with comparing the stk500v2 appnote against what is currently in avrdude.conf:

----------
LEGEND:
  x: already have afaict
  ?: pretty sure we already have it
  ~: could derive, but safer to make explicit

IspEnterProgMode
        timeout
        stabDelay
        cmdexeDelay
        synchLoops
        byteDelay
        pollValue
~       polllndex
x       cmd1
x       cmd2
x       cmd3
x       cmd4

IspLeaveProgMode
        preDelay
        postDelay

IspChipErase
x       eraseDelay
        pollMethod
x       cmd1
x       cmd2
x       cmd3
x       cmd4

IspProgramFlash
        mode
        delay
?       cmd1    (load page, write program memory)
?       cmd2    (write program memory page)
?       cmd3    (read program memory)
        pollVal1
        pollVal2

IspReadFlash
x       blockSize
?       cmd1    (read program memory command byte 1, ignore LO/HI bit)

EEPROM Program
        mode
        delay
?       cmd1    (load page, write eeprom)
?       cmd2    (write eeprom page)
?       cmd3    (read eeprom)
        pollVal1
        pollVal2

EEPROM Read
        blockSize
?       cmd1    (read eeprom command byte 1)

Fuse writing
x       cmd1
x       cmd2
x       cmd3
x       cmd4

Fuse reading
~       pollIndex
x       cmd1
x       cmd2
x       cmd3
x       cmd4

Lock read/write same as fuses, different stk500v2 commands
----------

At this point I count 16 fields that I can't see already somewhere. Many of the fields are verbatim commands already found in text form in the file. The flash/eeprom programming commands are actually each the first byte from one of the commandsets, afaict.

pollIndex is an interesting one, the appnote says it's "0 for no polling, 3 for AVR, 4 for AT89xx". What it is is the byte offset of the return value from any given command, specifically the 'o's in the command descriptions in avrdude.conf. OTOH, the value is contained in the XML file and is probably easier to add into the config than to parse out the hard way from the 'o's in the command sequences. There aren't any at89xx descriptors in the avrdude.conf I have (CVS from about a week ago), so I'm not really sure how the value '4' makes sense, if all the command sequences are only 4 bytes... Guess I'll have to check an at89xx datasheet.

If I can get a patch that adds these fields to the parser, I can probably get to code-complete within a day or two, and get the stuff all tested and theoretically working soon thereafter.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]