patch #7671: Sorting programmers and parts lists for console output

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@1019 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
Rene Liebscher 2011-12-16 20:44:07 +00:00
parent 67bae11bad
commit 74f8658ea2
8 changed files with 178 additions and 80 deletions

View File

@ -2558,7 +2558,7 @@ part
part part
id = "m103"; id = "m103";
desc = "ATMEGA103"; desc = "ATmega103";
stk500_devcode = 0xB1; stk500_devcode = 0xB1;
avr910_devcode = 0x41; avr910_devcode = 0x41;
signature = 0x1e 0x97 0x01; signature = 0x1e 0x97 0x01;
@ -2698,7 +2698,7 @@ part
part part
id = "m64"; id = "m64";
desc = "ATMEGA64"; desc = "ATmega64";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0xA0; stk500_devcode = 0xA0;
avr910_devcode = 0x45; avr910_devcode = 0x45;
@ -2879,7 +2879,7 @@ part
part part
id = "m128"; id = "m128";
desc = "ATMEGA128"; desc = "ATmega128";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0xB2; stk500_devcode = 0xB2;
avr910_devcode = 0x43; avr910_devcode = 0x43;
@ -3628,7 +3628,7 @@ part
part part
id = "m16"; id = "m16";
desc = "ATMEGA16"; desc = "ATmega16";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; stk500_devcode = 0x82;
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -3806,7 +3806,7 @@ part
part part
id = "m164p"; id = "m164p";
desc = "ATMEGA164P"; desc = "ATmega164P";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -3997,7 +3997,7 @@ part
part part
id = "m324p"; id = "m324p";
desc = "ATMEGA324P"; desc = "ATmega324P";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -4379,7 +4379,7 @@ part
part part
id = "m644"; id = "m644";
desc = "ATMEGA644"; desc = "ATmega644";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -4569,7 +4569,7 @@ part
part part
id = "m644p"; id = "m644p";
desc = "ATMEGA644P"; desc = "ATmega644P";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -4761,7 +4761,7 @@ part
part part
id = "m1284p"; id = "m1284p";
desc = "ATMEGA1284P"; desc = "ATmega1284P";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74; avr910_devcode = 0x74;
@ -4951,7 +4951,7 @@ part
part part
id = "m162"; id = "m162";
desc = "ATMEGA162"; desc = "ATmega162";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x83; stk500_devcode = 0x83;
avr910_devcode = 0x63; avr910_devcode = 0x63;
@ -5147,7 +5147,7 @@ part
part part
id = "m163"; id = "m163";
desc = "ATMEGA163"; desc = "ATmega163";
stk500_devcode = 0x81; stk500_devcode = 0x81;
avr910_devcode = 0x64; avr910_devcode = 0x64;
signature = 0x1e 0x94 0x02; signature = 0x1e 0x94 0x02;
@ -5305,7 +5305,7 @@ part
part part
id = "m169"; id = "m169";
desc = "ATMEGA169"; desc = "ATmega169";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x85; stk500_devcode = 0x85;
avr910_devcode = 0x78; avr910_devcode = 0x78;
@ -5485,7 +5485,7 @@ part
part part
id = "m329"; id = "m329";
desc = "ATMEGA329"; desc = "ATmega329";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -5669,7 +5669,7 @@ part
part part
id = "m329p"; id = "m329p";
desc = "ATMEGA329P"; desc = "ATmega329P";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -5854,7 +5854,7 @@ part
part part
id = "m3290"; id = "m3290";
desc = "ATMEGA3290"; desc = "ATmega3290";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -6039,7 +6039,7 @@ part
part part
id = "m3290p"; id = "m3290p";
desc = "ATMEGA3290P"; desc = "ATmega3290P";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -6222,7 +6222,7 @@ part
part part
id = "m649"; id = "m649";
desc = "ATMEGA649"; desc = "ATmega649";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -6407,7 +6407,7 @@ part
part part
id = "m6490"; id = "m6490";
desc = "ATMEGA6490"; desc = "ATmega6490";
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x85; # no STK500 support, only STK500v2 # stk500_devcode = 0x85; # no STK500 support, only STK500v2
# avr910_devcode = 0x?; # try the ATmega169 one: # avr910_devcode = 0x?; # try the ATmega169 one:
@ -6600,7 +6600,7 @@ part
part part
id = "m32"; id = "m32";
desc = "ATMEGA32"; desc = "ATmega32";
has_jtag = yes; has_jtag = yes;
stk500_devcode = 0x91; stk500_devcode = 0x91;
avr910_devcode = 0x72; avr910_devcode = 0x72;
@ -6775,7 +6775,7 @@ part
part part
id = "m161"; id = "m161";
desc = "ATMEGA161"; desc = "ATmega161";
stk500_devcode = 0x80; stk500_devcode = 0x80;
avr910_devcode = 0x60; avr910_devcode = 0x60;
signature = 0x1e 0x94 0x01; signature = 0x1e 0x94 0x01;
@ -6915,7 +6915,7 @@ part
part part
id = "m8"; id = "m8";
desc = "ATMEGA8"; desc = "ATmega8";
stk500_devcode = 0x70; stk500_devcode = 0x70;
avr910_devcode = 0x76; avr910_devcode = 0x76;
signature = 0x1e 0x93 0x07; signature = 0x1e 0x93 0x07;
@ -7076,7 +7076,7 @@ part
part part
id = "m8515"; id = "m8515";
desc = "ATMEGA8515"; desc = "ATmega8515";
stk500_devcode = 0x63; stk500_devcode = 0x63;
avr910_devcode = 0x3A; avr910_devcode = 0x3A;
signature = 0x1e 0x93 0x06; signature = 0x1e 0x93 0x06;
@ -7234,7 +7234,7 @@ part
part part
id = "m8535"; id = "m8535";
desc = "ATMEGA8535"; desc = "ATmega8535";
stk500_devcode = 0x64; stk500_devcode = 0x64;
avr910_devcode = 0x69; avr910_devcode = 0x69;
signature = 0x1e 0x93 0x08; signature = 0x1e 0x93 0x08;
@ -7392,7 +7392,7 @@ part
part part
id = "t26"; id = "t26";
desc = "ATTINY26"; desc = "ATtiny26";
stk500_devcode = 0x21; stk500_devcode = 0x21;
avr910_devcode = 0x5e; avr910_devcode = 0x5e;
signature = 0x1e 0x91 0x09; signature = 0x1e 0x91 0x09;
@ -7549,7 +7549,7 @@ part
part part
id = "t261"; id = "t261";
desc = "ATTINY261"; desc = "ATtiny261";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB4, 0x00, 0x10; flash_instr = 0xB4, 0x00, 0x10;
eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
@ -7738,7 +7738,7 @@ part
part part
id = "t461"; id = "t461";
desc = "ATTINY461"; desc = "ATtiny461";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB4, 0x00, 0x10; flash_instr = 0xB4, 0x00, 0x10;
eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
@ -7927,7 +7927,7 @@ part
part part
id = "t861"; id = "t861";
desc = "ATTINY861"; desc = "ATtiny861";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB4, 0x00, 0x10; flash_instr = 0xB4, 0x00, 0x10;
eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
@ -8115,7 +8115,7 @@ part
part part
id = "m48"; id = "m48";
desc = "ATMEGA48"; desc = "ATmega48";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -8302,7 +8302,7 @@ part
part part
id = "m88"; id = "m88";
desc = "ATMEGA88"; desc = "ATmega88";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -8488,7 +8488,7 @@ part
part part
id = "m88p"; id = "m88p";
desc = "ATMEGA88P"; desc = "ATmega88P";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -8675,7 +8675,7 @@ part
part part
id = "m168"; id = "m168";
desc = "ATMEGA168"; desc = "ATmega168";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -8863,7 +8863,7 @@ part
part part
id = "m168p"; id = "m168p";
desc = "ATMEGA168P"; desc = "ATmega168P";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -9051,7 +9051,7 @@ part
part part
id = "t88"; id = "t88";
desc = "attiny88"; desc = "ATtiny88";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -9237,7 +9237,7 @@ part
part part
id = "m328p"; id = "m328p";
desc = "ATMEGA328P"; desc = "ATmega328P";
has_debugwire = yes; has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11; flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
@ -11065,7 +11065,7 @@ part
part part
id = "m640"; id = "m640";
desc = "ATMEGA640"; desc = "ATmega640";
signature = 0x1e 0x96 0x08; signature = 0x1e 0x96 0x08;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -11253,7 +11253,7 @@ part
part part
id = "m1280"; id = "m1280";
desc = "ATMEGA1280"; desc = "ATmega1280";
signature = 0x1e 0x97 0x03; signature = 0x1e 0x97 0x03;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -11442,7 +11442,7 @@ part
part part
id = "m1281"; id = "m1281";
desc = "ATMEGA1281"; desc = "ATmega1281";
signature = 0x1e 0x97 0x04; signature = 0x1e 0x97 0x04;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -11630,7 +11630,7 @@ part
part part
id = "m2560"; id = "m2560";
desc = "ATMEGA2560"; desc = "ATmega2560";
signature = 0x1e 0x98 0x01; signature = 0x1e 0x98 0x01;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -11823,7 +11823,7 @@ part
part part
id = "m2561"; id = "m2561";
desc = "ATMEGA2561"; desc = "ATmega2561";
signature = 0x1e 0x98 0x02; signature = 0x1e 0x98 0x02;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -12017,7 +12017,7 @@ part
part part
id = "m128rfa1"; id = "m128rfa1";
desc = "ATMEGA128RFA1"; desc = "ATmega128RFA1";
signature = 0x1e 0xa7 0x01; signature = 0x1e 0xa7 0x01;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0xB2; # stk500_devcode = 0xB2;
@ -14614,7 +14614,7 @@ part
part part
id = "m325"; id = "m325";
desc = "ATMEGA325"; desc = "ATmega325";
signature = 0x1e 0x95 0x05; signature = 0x1e 0x95 0x05;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x??; # No STK500v1 support? # stk500_devcode = 0x??; # No STK500v1 support?
@ -14803,7 +14803,7 @@ part
part part
id = "m645"; id = "m645";
desc = "ATMEGA645"; desc = "ATmega645";
signature = 0x1E 0x96 0x05; signature = 0x1E 0x96 0x05;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x??; # No STK500v1 support? # stk500_devcode = 0x??; # No STK500v1 support?
@ -14992,7 +14992,7 @@ part
part part
id = "m3250"; id = "m3250";
desc = "ATMEGA3250"; desc = "ATmega3250";
signature = 0x1E 0x95 0x06; signature = 0x1E 0x95 0x06;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x??; # No STK500v1 support? # stk500_devcode = 0x??; # No STK500v1 support?
@ -15181,7 +15181,7 @@ part
part part
id = "m6450"; id = "m6450";
desc = "ATMEGA6450"; desc = "ATmega6450";
signature = 0x1E 0x96 0x06; signature = 0x1E 0x96 0x06;
has_jtag = yes; has_jtag = yes;
# stk500_devcode = 0x??; # No STK500v1 support? # stk500_devcode = 0x??; # No STK500v1 support?
@ -15365,12 +15365,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA64A1 # ATxmega64A1
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x64a1"; id = "x64a1";
desc = "ATXMEGA64A1"; desc = "ATxmega64A1";
signature = 0x1e 0x96 0x4e; signature = 0x1e 0x96 0x4e;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -15462,12 +15462,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA128A1 # ATxmega128A1
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x128a1"; id = "x128a1";
desc = "ATXMEGA128A1"; desc = "ATxmega128A1";
signature = 0x1e 0x97 0x4c; signature = 0x1e 0x97 0x4c;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -15559,12 +15559,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA128A1REVD # ATxmega128A1RevD
#------------------------------------------------------------ #------------------------------------------------------------
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;
@ -15656,12 +15656,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA192A1 # ATxmega192A1
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x192a1"; id = "x192a1";
desc = "ATXMEGA192A1"; desc = "ATxmega192A1";
signature = 0x1e 0x97 0x4e; signature = 0x1e 0x97 0x4e;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -15753,12 +15753,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA256A1 # ATxmega256A1
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x256a1"; id = "x256a1";
desc = "ATXMEGA256A1"; desc = "ATxmega256A1";
signature = 0x1e 0x98 0x46; signature = 0x1e 0x98 0x46;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -15850,12 +15850,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA64A3 # ATxmega64A3
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x64a3"; id = "x64a3";
desc = "ATXMEGA64A3"; desc = "ATxmega64A3";
signature = 0x1e 0x96 0x42; signature = 0x1e 0x96 0x42;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -15947,12 +15947,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA128A3 # ATxmega128A3
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x128a3"; id = "x128a3";
desc = "ATXMEGA128A3"; desc = "ATxmega128A3";
signature = 0x1e 0x97 0x42; signature = 0x1e 0x97 0x42;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16044,12 +16044,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA192A3 # ATxmega192A3
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x192a3"; id = "x192a3";
desc = "ATXMEGA192A3"; desc = "ATxmega192A3";
signature = 0x1e 0x97 0x44; signature = 0x1e 0x97 0x44;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16141,12 +16141,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA256A3 # ATxmega256A3
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x256a3"; id = "x256a3";
desc = "ATXMEGA256A3"; desc = "ATxmega256A3";
signature = 0x1e 0x98 0x42; signature = 0x1e 0x98 0x42;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16238,12 +16238,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA256A3B # ATxmega256A3B
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x256a3b"; id = "x256a3b";
desc = "ATXMEGA256A3B"; desc = "ATxmega256A3B";
signature = 0x1e 0x98 0x43; signature = 0x1e 0x98 0x43;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16335,12 +16335,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA16A4 # ATxmega16A4
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x16a4"; id = "x16a4";
desc = "ATXMEGA16A4"; desc = "ATxmega16A4";
signature = 0x1e 0x94 0x41; signature = 0x1e 0x94 0x41;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16432,12 +16432,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA32A4 # ATxmega32A4
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x32a4"; id = "x32a4";
desc = "ATXMEGA32A4"; desc = "ATxmega32A4";
signature = 0x1e 0x95 0x41; signature = 0x1e 0x95 0x41;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16529,12 +16529,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA64A4 # ATxmega64A4
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x64a4"; id = "x64a4";
desc = "ATXMEGA64A4"; desc = "ATxmega64A4";
signature = 0x1e 0x96 0x46; signature = 0x1e 0x96 0x46;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;
@ -16626,12 +16626,12 @@ part
; ;
#------------------------------------------------------------ #------------------------------------------------------------
# ATXMEGA128A4 # ATxmega128A4
#------------------------------------------------------------ #------------------------------------------------------------
part part
id = "x128a4"; id = "x128a4";
desc = "ATXMEGA128A4"; desc = "ATxmega128A4";
signature = 0x1e 0x97 0x46; signature = 0x1e 0x97 0x46;
has_jtag = yes; has_jtag = yes;
has_pdi = yes; has_pdi = yes;

View File

@ -470,6 +470,24 @@ void walk_avrparts(LISTID avrparts, walk_avrparts_cb cb, void *cookie)
} }
} }
/*
* Compare function to sort the list of programmers
*/
static int sort_avrparts_compare(AVRPART * p1,AVRPART * p2)
{
if(p1 == NULL || p2 == NULL) {
return 0;
}
return strncasecmp(p1->desc,p2->desc,AVR_IDLEN);
}
/*
* Sort the list of programmers given as "programmers"
*/
void sort_avrparts(LISTID avrparts)
{
lsort(avrparts,(int (*)(void*, void*)) sort_avrparts_compare);
}
static char * reset_disp_str(int r) static char * reset_disp_str(int r)

View File

@ -221,8 +221,8 @@ void avr_display(FILE * f, AVRPART * p, const char * prefix, int verbose);
typedef void (*walk_avrparts_cb)(const char *name, const char *desc, typedef void (*walk_avrparts_cb)(const char *name, const char *desc,
const char *cfgname, int cfglineno, const char *cfgname, int cfglineno,
void *cookie); void *cookie);
void walk_avrparts(LISTID programmers, walk_avrparts_cb cb, void *cookie); void walk_avrparts(LISTID avrparts, walk_avrparts_cb cb, void *cookie);
void sort_avrparts(LISTID avrparts);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -1280,6 +1280,43 @@ lsrch ( LISTID lid, void * p, int (* compare)(void * p1, void * p2) )
return NULL; return NULL;
} }
/*----------------------------------------------------------------------
| lsort
|
| sort list - sorts list inplace (using bubble sort)
|
----------------------------------------------------------------------*/
void
lsort ( LISTID lid, int (* compare)(void * p1, void * p2) )
{
LIST * l;
LISTNODE * lt; /* this */
LISTNODE * ln; /* next */
int unsorted = 1;
l = (LIST *)lid;
CKLMAGIC(l);
while(unsorted){
lt = l->top;
unsorted = 0;
while (lt!=NULL) {
CKMAGIC(lt);
ln = lt->next;
if (ln!= NULL && compare(lt->data,ln->data) > 0) {
void * p = ln->data;
ln->data = lt->data;
lt->data = p;
unsorted = 1;
}
lt = ln;
}
}
CKLMAGIC(l);
}
int lprint ( FILE * f, LISTID lid ) int lprint ( FILE * f, LISTID lid )
{ {

View File

@ -104,6 +104,8 @@ void * lrmv_d ( LISTID lid, void * data_ptr );
LISTID lcat ( LISTID lid1, LISTID lid2 ); LISTID lcat ( LISTID lid1, LISTID lid2 );
void lsort ( LISTID lid, int (*compare)(void * p1, void * p2));
void * lsrch ( LISTID lid, void * p, int (*compare)(void *p1,void *p2)); void * lsrch ( LISTID lid, void * p, int (*compare)(void *p1,void *p2));
int lprint ( FILE * f, LISTID lid ); int lprint ( FILE * f, LISTID lid );

View File

@ -198,9 +198,13 @@ static void list_programmers_callback(const char *name, const char *desc,
void *cookie) void *cookie)
{ {
struct list_walk_cookie *c = (struct list_walk_cookie *)cookie; struct list_walk_cookie *c = (struct list_walk_cookie *)cookie;
if (verbose){
fprintf(c->f, "%s%-8s = %-30s [%s:%d]\n", fprintf(c->f, "%s%-16s = %-30s [%s:%d]\n",
c->prefix, name, desc, cfgname, cfglineno); c->prefix, name, desc, cfgname, cfglineno);
} else {
fprintf(c->f, "%s%-16s = %-s\n",
c->prefix, name, desc);
}
} }
static void list_programmers(FILE * f, const char *prefix, LISTID programmers) static void list_programmers(FILE * f, const char *prefix, LISTID programmers)
@ -210,6 +214,8 @@ static void list_programmers(FILE * f, const char *prefix, LISTID programmers)
c.f = f; c.f = f;
c.prefix = prefix; c.prefix = prefix;
sort_programmers(programmers);
walk_programmers(programmers, list_programmers_callback, &c); walk_programmers(programmers, list_programmers_callback, &c);
} }
@ -219,8 +225,13 @@ static void list_avrparts_callback(const char *name, const char *desc,
{ {
struct list_walk_cookie *c = (struct list_walk_cookie *)cookie; struct list_walk_cookie *c = (struct list_walk_cookie *)cookie;
fprintf(c->f, "%s%-4s = %-15s [%s:%d]\n", if (verbose){
fprintf(c->f, "%s%-8s = %-18s [%s:%d]\n",
c->prefix, name, desc, cfgname, cfglineno); c->prefix, name, desc, cfgname, cfglineno);
} else {
fprintf(c->f, "%s%-8s = %s\n",
c->prefix, name, desc);
}
} }
static void list_parts(FILE * f, const char *prefix, LISTID avrparts) static void list_parts(FILE * f, const char *prefix, LISTID avrparts)
@ -230,6 +241,8 @@ static void list_parts(FILE * f, const char *prefix, LISTID avrparts)
c.f = f; c.f = f;
c.prefix = prefix; c.prefix = prefix;
sort_avrparts(avrparts);
walk_avrparts(avrparts, list_avrparts_callback, &c); walk_avrparts(avrparts, list_avrparts_callback, &c);
} }

View File

@ -218,11 +218,37 @@ PROGRAMMER * locate_programmer(LISTID programmers, const char * configid)
void walk_programmers(LISTID programmers, walk_programmers_cb cb, void *cookie) void walk_programmers(LISTID programmers, walk_programmers_cb cb, void *cookie)
{ {
LNODEID ln1; LNODEID ln1;
LNODEID ln2;
PROGRAMMER * p; PROGRAMMER * p;
for (ln1 = lfirst(programmers); ln1; ln1 = lnext(ln1)) { for (ln1 = lfirst(programmers); ln1; ln1 = lnext(ln1)) {
p = ldata(ln1); p = ldata(ln1);
cb((char *)ldata(lfirst(p->id)), p->desc, p->config_file, p->lineno, cookie); for (ln2=lfirst(p->id); ln2; ln2=lnext(ln2)) {
cb(ldata(ln2), p->desc, p->config_file, p->lineno, cookie);
}
} }
} }
/*
* Compare function to sort the list of programmers
*/
static int sort_programmer_compare(PROGRAMMER * p1,PROGRAMMER * p2)
{
char* id1;
char* id2;
if(p1 == NULL || p2 == NULL) {
return 0;
}
id1 = ldata(lfirst(p1->id));
id2 = ldata(lfirst(p2->id));
return strncasecmp(id1,id2,AVR_IDLEN);
}
/*
* Sort the list of programmers given as "programmers"
*/
void sort_programmers(LISTID programmers)
{
lsort(programmers,(int (*)(void*, void*)) sort_programmer_compare);
}

View File

@ -140,6 +140,8 @@ typedef void (*walk_programmers_cb)(const char *name, const char *desc,
void *cookie); void *cookie);
void walk_programmers(LISTID programmers, walk_programmers_cb cb, void *cookie); void walk_programmers(LISTID programmers, walk_programmers_cb cb, void *cookie);
void sort_programmers(LISTID programmers);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif