patch #7687: Autogenerating programmers and parts lists for docs

(generating the parts lists, programmers lists follows later)

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@1026 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
Rene Liebscher 2011-12-29 12:53:20 +00:00
parent 53e4a02350
commit 3a1754ce5b
8 changed files with 50 additions and 222 deletions

View File

@ -1,3 +1,13 @@
2011-12-29 Rene Liebscher <R.Liebscher@gmx.de>
patch #7687: Autogenerating programmers and parts lists for docs
(generating the parts lists, programmers lists follows later)
* doc/avrdude.texi: Add include of generated table of parts
* doc/Makefile.am: Add generating of table of parts in parts.texi
* doc/parts_comments.txt: Adding file containing part commenz references
* avrdude.1: Remove table of parts and mention "-p ?" option
* avrpart.c: Use AVR_DESCLEN for strncasecmp at list sorting
2011-12-22 Rene Liebscher <R.Liebscher@gmx.de> 2011-12-22 Rene Liebscher <R.Liebscher@gmx.de>
* configure.ac: Add writing of definition of confsubst to config.status, * configure.ac: Add writing of definition of confsubst to config.status,

View File

@ -206,127 +206,25 @@ It specifies the type of the MCU connected to the programmer. These are read fr
does not know about a part that you have, simply add it to the config does not know about a part that you have, simply add it to the config
file (be sure and submit a patch back to the author so that it can be file (be sure and submit a patch back to the author so that it can be
incorporated for the next version). See the sample config file for incorporated for the next version). See the sample config file for
the format. Currently, the following MCU types are understood: the format.
For currently supported MCU types use ? as partno, this will print a list of partno ids and official part names on the terminal. (Both can be used with the -p option.)
.Pp .Pp
.TS Following parts need special attention:
ll. .Bl -tag -width "ATmega1234"
\fBOption tag\fP \fBOfficial part name\fP .It "AT90S1200"
1200 AT90S1200 (****)
2313 AT90S2313
2333 AT90S2333
2343 AT90S2343 (*)
4414 AT90S4414
4433 AT90S4433
4434 AT90S4434
8515 AT90S8515
8535 AT90S8535
c128 AT90CAN128
c32 AT90CAN32
c64 AT90CAN64
m103 ATmega103
m128 ATmega128
m1280 ATmega1280
m1281 ATmega1281
m1284p ATmega1284P
m128rfa1 ATmega128RFA1
m16 ATmega16
m161 ATmega161
m162 ATmega162
m163 ATmega163
m164 ATmega164
m164p ATmega164P
m168 ATmega168
m168p ATmega168P
m169 ATmega169
m16u2 ATmega16U2
m2560 ATmega2560 (**)
m2561 ATmega2561 (**)
m32 ATmega32
m324p ATmega324P
m325 ATmega325
m3250 ATmega3250
m328p ATmega328P
m329 ATmega329
m3290 ATmega3290
m329p ATmega329P
m3290p ATmega3290P
m32u2 ATmega32U2
m32u4 ATmega32U4
m48 ATmega48
m64 ATmega64
m640 ATmega640
m644p ATmega644P
m644 ATmega644
m645 ATmega645
m6450 ATmega6450
m649 ATmega649
m6490 ATmega6490
m8 ATmega8
m8515 ATmega8515
m8535 ATmega8535
m88 ATmega88
m88p ATmega88P
m8u2 ATmega8U2
pwm2 AT90PWM2
pwm2b AT90PWM2B
pwm3 AT90PWM3
pwm3b AT90PWM3B
t10 ATtiny10
t12 ATtiny12 (***)
t13 ATtiny13
t15 ATtiny15
t2313 ATtiny2313
t25 ATtiny25
t26 ATtiny26
t261 ATtiny261
t4 ATtiny4
t4313 ATtiny4313
t44 ATtiny44
t45 ATtiny45
t461 ATtiny461
t5 ATtiny5
t84 ATtiny84
t85 ATtiny85
t861 ATtiny861
t88 ATtiny88
t9 ATtiny9
ucr2 AT32uca0512
usb1286 ATmega1286
usb1287 ATmega1287
usb162 ATmega162
usb646 ATmega647
usb647 ATmega647
usb82 ATmega82
x128a1 ATxmega128A1
x128a1d ATxmega128A1revD
x128a3 ATxmega128A3
x128a4 ATxmega128A4
x16a4 ATxmega16A4
x192a1 ATxmega192A1
x192a3 ATxmega192A3
x256a1 ATxmega256A1
x256a3 ATxmega256A3
x256a3b ATxmega256A3B
x32a4 ATxmega32A4
x64a1 ATxmega64A1
x64a3 ATxmega64A3
x64a4 ATxmega64A4
.TE
.Bl -tag -width "(**) "
.It "(*)"
The AT90S2323 and ATtiny22 use the same algorithm.
.It "(**)"
Flash addressing above 128 KB is not supported by all
programming hardware. Known to work are jtag2, stk500v2,
and bit-bang programmers.
.It "(***)"
The ATtiny11 uses the same algorithm, but can only be
programmed in high-voltage serial mode.
.It "(****)"
The ISP programming protocol of the AT90S1200 differs in subtle ways The ISP programming protocol of the AT90S1200 differs in subtle ways
from that of other AVRs. Thus, not all programmers support this from that of other AVRs. Thus, not all programmers support this
device. Known to work are all direct bitbang programmers, and all device. Known to work are all direct bitbang programmers, and all
programmers talking the STK500v2 protocol. programmers talking the STK500v2 protocol.
.It "AT90S2343"
The AT90S2323 and ATtiny22 use the same algorithm.
.It "ATmega2560, ATmega2561"
Flash addressing above 128 KB is not supported by all
programming hardware. Known to work are jtag2, stk500v2,
and bit-bang programmers.
.It "ATtiny11"
The ATtiny11 can only be
programmed in high-voltage serial mode.
.El .El
.It Fl b Ar baudrate .It Fl b Ar baudrate
Override the RS-232 connection baud rate specified in the respective Override the RS-232 connection baud rate specified in the respective
@ -346,7 +244,7 @@ You can use the 'default_bitclock' keyword in your
file to assign a default value to keep from having to specify this file to assign a default value to keep from having to specify this
option on every invocation. option on every invocation.
.It Fl c Ar programmer-id .It Fl c Ar programmer-id
Use the pin configuration specified by the argument. Pin Use the programmer specified by the argument. Programmers and their pin
configurations are read from the config file (see the configurations are read from the config file (see the
.Fl C .Fl C
option). New pin configurations can be easily added or modified option). New pin configurations can be easily added or modified
@ -358,6 +256,8 @@ keyword in your
.Pa ${HOME}/.avrduderc .Pa ${HOME}/.avrduderc
file to assign a default programmer to keep from having to specify file to assign a default programmer to keep from having to specify
this option on every invocation. this option on every invocation.
A full list of all supported programmers is output to the terminal
by using ? as programmer-id.
.It Fl C Ar config-file .It Fl C Ar config-file
Use the specified config file to load configuration data. This file Use the specified config file to load configuration data. This file
contains all programmer and part definitions that contains all programmer and part definitions that

View File

@ -15555,7 +15555,7 @@ part
part part
id = "x128a1d"; id = "x128a1d";
desc = "ATxmega128A1RevD"; desc = "ATxmega128A1revD";
signature = 0x1e 0x97 0x41; signature = 0x1e 0x97 0x41;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;

View File

@ -478,7 +478,7 @@ static int sort_avrparts_compare(AVRPART * p1,AVRPART * p2)
if(p1 == NULL || p2 == NULL) { if(p1 == NULL || p2 == NULL) {
return 0; return 0;
} }
return strncasecmp(p1->desc,p2->desc,AVR_IDLEN); return strncasecmp(p1->desc,p2->desc,AVR_DESCLEN);
} }
/* /*

View File

@ -20,3 +20,4 @@ mdate-sh
stamp-vti stamp-vti
texinfo.tex texinfo.tex
version.texi version.texi
parts.texi

View File

@ -22,6 +22,7 @@
# #
CLEANFILES = \ CLEANFILES = \
parts.texi \
version.texi \ version.texi \
stamp-vti stamp-vti
@ -31,7 +32,7 @@ all-local: info html ps pdf
html: avrdude-html/avrdude.html html: avrdude-html/avrdude.html
avrdude-html/avrdude.html: $(srcdir)/$(info_TEXINFOS) avrdude-html/avrdude.html: $(srcdir)/$(info_TEXINFOS) $(srcdir)/parts.texi
texi2html -split_node $(srcdir)/$(info_TEXINFOS) texi2html -split_node $(srcdir)/$(info_TEXINFOS)
if [ -e ./avrdude.html -o -e ./avrdude_1.html ]; then \ if [ -e ./avrdude.html -o -e ./avrdude_1.html ]; then \
mkdir -p avrdude-html ; \ mkdir -p avrdude-html ; \
@ -40,6 +41,16 @@ avrdude-html/avrdude.html: $(srcdir)/$(info_TEXINFOS)
mv -f avrdude avrdude-html; \ mv -f avrdude avrdude-html; \
fi; fi;
avrdude.info: parts.texi
avrdude.dvi: parts.texi
avrdude.pdf: parts.texi
parts.texi: ../avrdude$(EXEEXT) ../avrdude.conf parts_comments.txt Makefile
../avrdude$(EXEEXT) -C ../avrdude.conf -p \? 2>&1 \
| $(AWK) '$$2 ~ /^=$$/ {printf("@item @code{%s} @tab %s\n",$$1,$$3)}' \
| sed -e "`sed 's:\([^ \t]*\)[ \t]*\(.*\):s/\1$$/\1 \2/g:g' <parts_comments.txt`" \
>parts.texi
clean-local: clean-local:
rm -rf avrdude-html *.info rm -rf avrdude-html *.info

View File

@ -307,106 +307,7 @@ datasheet so that you can enter the programming specifications.
Currently, the following MCU types are understood: Currently, the following MCU types are understood:
@multitable @columnfractions .15 .3 @multitable @columnfractions .15 .3
@item @code{1200} @tab AT90S1200 (****) @include parts.texi
@item @code{2313} @tab AT90S2313
@item @code{2333} @tab AT90S2333
@item @code{2343} @tab AT90S2343 (*)
@item @code{4414} @tab AT90S4414
@item @code{4433} @tab AT90S4433
@item @code{4434} @tab AT90S4434
@item @code{8515} @tab AT90S8515
@item @code{8535} @tab AT90S8535
@item @code{c128} @tab AT90CAN128
@item @code{c32} @tab AT90CAN32
@item @code{c64} @tab AT90CAN64
@item @code{m103} @tab ATmega103
@item @code{m128} @tab ATmega128
@item @code{m1280} @tab ATmega1280
@item @code{m1281} @tab ATmega1281
@item @code{m1284p} @tab ATmega1284P
@item @code{m128rfa1} @tab ATmega128RFA1
@item @code{m16} @tab ATmega16
@item @code{m161} @tab ATmega161
@item @code{m162} @tab ATmega162
@item @code{m163} @tab ATmega163
@item @code{m164} @tab ATmega164
@item @code{m164p} @tab ATmega164P
@item @code{m168} @tab ATmega168
@item @code{m168p} @tab ATmega168P
@item @code{m169} @tab ATmega169
@item @code{m16u2} @tab ATmega16U2
@item @code{m2560} @tab ATmega2560 (**)
@item @code{m2561} @tab ATmega2561 (**)
@item @code{m32} @tab ATmega32
@item @code{m324p} @tab ATmega324P
@item @code{m325} @tab ATmega325
@item @code{m3250} @tab ATmega3250
@item @code{m328p} @tab ATmega328P
@item @code{m329} @tab ATmega329
@item @code{m3290} @tab ATmega3290
@item @code{m329p} @tab ATmega329P
@item @code{m3290p} @tab ATmega3290P
@item @code{m32u2} @tab ATmega32U2
@item @code{m32u4} @tab ATmega32U4
@item @code{m48} @tab ATmega48
@item @code{m64} @tab ATmega64
@item @code{m640} @tab ATmega640
@item @code{m644p} @tab ATmega644P
@item @code{m644} @tab ATmega644
@item @code{m645} @tab ATmega645
@item @code{m6450} @tab ATmega6450
@item @code{m649} @tab ATmega649
@item @code{m6490} @tab ATmega6490
@item @code{m8} @tab ATmega8
@item @code{m8515} @tab ATmega8515
@item @code{m8535} @tab ATmega8535
@item @code{m88} @tab ATmega88
@item @code{m88p} @tab ATmega88P
@item @code{m8u2} @tab ATmega8U2
@item @code{pwm2} @tab AT90PWM2
@item @code{pwm2b} @tab AT90PWM2B
@item @code{pwm3} @tab AT90PWM3
@item @code{pwm3b} @tab AT90PWM3B
@item @code{t10} @tab ATtiny10
@item @code{t12} @tab ATtiny12 (***)
@item @code{t13} @tab ATtiny13
@item @code{t15} @tab ATtiny15
@item @code{t2313} @tab ATtiny2313
@item @code{t25} @tab ATtiny25
@item @code{t26} @tab ATtiny26
@item @code{t261} @tab ATtiny261
@item @code{t4} @tab ATtiny4
@item @code{t4313} @tab ATtiny4313
@item @code{t44} @tab ATtiny44
@item @code{t45} @tab ATtiny45
@item @code{t461} @tab ATtiny461
@item @code{t5} @tab ATtiny5
@item @code{t84} @tab ATtiny84
@item @code{t85} @tab ATtiny85
@item @code{t861} @tab ATtiny861
@item @code{t88} @tab ATtiny88
@item @code{t9} @tab ATtiny9
@item @code{ucr2} @tab AT32uca0512
@item @code{usb1286} @tab ATmega1286
@item @code{usb1287} @tab ATmega1287
@item @code{usb162} @tab ATmega162
@item @code{usb646} @tab ATmega647
@item @code{usb647} @tab ATmega647
@item @code{usb82} @tab ATmega82
@item @code{x128a1} @tab ATxmega128A1
@item @code{x128a1d} @tab ATxmega128A1revD
@item @code{x128a3} @tab ATxmega128A3
@item @code{x128a4} @tab ATxmega128A4
@item @code{x16a4} @tab ATxmega16A4
@item @code{x192a1} @tab ATxmega192A1
@item @code{x192a3} @tab ATxmega192A3
@item @code{x256a1} @tab ATxmega256A1
@item @code{x256a3} @tab ATxmega256A3
@item @code{x256a3b} @tab ATxmega256A3B
@item @code{x32a4} @tab ATxmega32A4
@item @code{x64a1} @tab ATxmega64A1
@item @code{x64a3} @tab ATxmega64A3
@item @code{x64a4} @tab ATxmega64A4
@end multitable @end multitable
(*) The AT90S2323 and ATtiny22 use the same algorithm. (*) The AT90S2323 and ATtiny22 use the same algorithm.
@ -416,7 +317,7 @@ programming hardware. Known to work are jtag2, stk500v2,
and bit-bang programmers. and bit-bang programmers.
(***) (***)
The ATtiny11 uses the same algorithm, but can only be The ATtiny11 can only be
programmed in high-voltage serial mode. programmed in high-voltage serial mode.
(****) (****)

View File

@ -0,0 +1,5 @@
AT90S1200 (****)
AT90S2343 (*)
ATmega2560 (**)
ATmega2561 (**)
ATtiny11 (***)