From 9a834c37c7e0f4fa37d0320b0ac392f2569ea84e Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Tue, 25 Jun 2024 01:18:52 +0100 Subject: [PATCH] Update avrintel.c --- src/avrintel.c | 329 ++++++++++++++++++++------------------ src/libavrdude-avrintel.h | 6 +- 2 files changed, 180 insertions(+), 155 deletions(-) diff --git a/src/avrintel.c b/src/avrintel.c index 81860442..1128b0e7 100644 --- a/src/avrintel.c +++ b/src/avrintel.c @@ -8,8 +8,8 @@ * Published under GNU General Public License, version 3 (GPL-3.0) * Meta-author Stefan Rueger * - * v 1.3 - * 20.05.2024 + * v 1.39 + * 25.06.2024 * */ @@ -98,11 +98,36 @@ int upmatchingsig(uint8_t sigs[3], char *p, size_t n) { } +/* + * const Avrintel uP_table[] contains important MCU properties that were + * curated from different sources such as ATDF files, their predecessor xml + * files and avr-libc with manual corrections verified by data sheets. Even + * though this table is independent from avrdude.conf, virtually all basic + * values such as flash size, eeprom size and the size of the smallest boot + * sector (if any) etc coincide. With respect to flash page sizes only + * ATtiny20's entries differ between here and avrdude.conf (but then, ATDF, + * avr-libc, avrdude and the datasheet all have pairwise different values). For + * EEPROM page sizes only ATtiny12, ATtiny15, ATtiny26, ATmega8515 and + * ATmega8535 show different values. Note that flashoffset here models a + * completely different entity than avrdude.conf's flash offset. + * + * Crucially, however, this table contains information about interrupt names, + * MCU configuration (named bitfields in the fuses with lists of admissible + * symbolic names and their values) and I/O register variable names with their + * addresses. The terminal commands config and regfile make good use of these + * tables. Putting all of this intelligence into avrdude.conf would blow that + * up beyond recognition. + * + * Pro tip: for a quick overview of where the information for an entry came + * from grep //.Source avrintel.c. Similarly, for memory info grep //.Mem. + */ + const Avrintel uP_table[] = { // Value of -1 typically means unknown - //mcu_name // Sources + //mcu_name // Sources //{mcu_name, mcuid, family, {sig, na, ture}, // ID //mcu_name flstart, flsize, pgsiz, nb, bootsz, eestart, eesize, ep, rambeg, ramsiz, // Mem - //mcu_naame nf, nl, ni, isr_names, nc, cfg_table}, // Config and ISRs + //mcu_name nf, nl, ni, isr_names, nc, cfg_table, // ISRs, Config + //mcu_name nr, rgftab_table, // Register file //ATtiny4 atdf, avr-gcc 12.2.0, avrdude, boot size (manual) // Sources {"ATtiny4", 0, F_AVR8L, {0x1E, 0x8F, 0x0A}, // ID @@ -155,7 +180,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATtiny11 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny11", 8, F_AVR8, {0x1E, 0x90, 0x04}, // ID - /*ATtiny11*/ 0, 0x00400, 0x001, 0, 0, 0, 0x0040, 1, 0x0060, 0x0020, // Mem + /*ATtiny11*/ 0, 0x00400, 0x001, 0, 0, 0, 0, 1, 0x0060, 0x0020, // Mem /*ATtiny11*/ 1, 1, 5, vtab_attiny11, 4, cfgtab_attiny11, // ISRs, Config /*ATtiny11*/ 14, rgftab_attiny11}, // Register file @@ -437,7 +462,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATmega16HVA2 xml, avr-gcc 12.2.0 // Sources {"ATmega16HVA2", 55, F_AVR8, {0x1E, 0x94, 0x0E}, // ID - /*ATmega16HVA2*/ 0, 0x04000, 0x080, -1, -1, -1, -1, -1, 0x0100, 0x0400, // Mem + /*ATmega16HVA2*/ 0, 0x04000, 0x080, -1, -1, 0, 0x0100, -1, 0x0100, 0x0400, // Mem /*ATmega16HVA2*/ 2, 1, 22, vtab_atmega16hva2, 9, cfgtab_atmega16hva2, // ISRs, Config /*ATmega16HVA2*/ 0, NULL}, // Register file @@ -509,7 +534,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATmega32U6 xml, avr-gcc 12.2.0, boot size (manual) // Sources {"ATmega32U6", 66, F_AVR8, {0x1E, 0x95, 0x88}, // ID - /*ATmega32U6*/ 0, 0x08000, 0x080, 4, 0x0200, -1, -1, -1, 0x0100, 0x0a00, // Mem + /*ATmega32U6*/ 0, 0x08000, 0x080, 4, 0x0200, 0, 0x0400, -1, 0x0100, 0x0a00, // Mem /*ATmega32U6*/ 3, 1, 38, vtab_atmega32u6, 15, cfgtab_atmega32u6, // ISRs, Config /*ATmega32U6*/ 0, NULL}, // Register file @@ -557,7 +582,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATmega64HVE xml, avr-gcc 12.2.0, boot size (manual) // Sources {"ATmega64HVE", 74, F_AVR8, {0x1E, 0x96, 0x10}, // ID - /*ATmega64HVE*/ 0, 0x10000, 0x080, 4, 0x0400, -1, -1, -1, 0x0100, 0x1000, // Mem + /*ATmega64HVE*/ 0, 0x10000, 0x080, 4, 0x0400, 0, 0x0400, -1, 0x0100, 0x1000, // Mem /*ATmega64HVE*/ 2, 1, 25, vtab_atmega64hve2, 13, cfgtab_atmega64hve, // ISRs, Config /*ATmega64HVE*/ 0, NULL}, // Register file @@ -779,7 +804,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATmega323 xml, avr-gcc 12.2.0, boot size (manual) // Sources {"ATmega323", 109, F_AVR8, {0x1E, 0x95, 0x01}, // ID - /*ATmega323*/ 0, 0x08000, 0x080, 4, 0x0200, -1, -1, -1, 0x0060, 0x0800, // Mem + /*ATmega323*/ 0, 0x08000, 0x080, 4, 0x0200, 0, 0x0400, -1, 0x0060, 0x0800, // Mem /*ATmega323*/ 2, 1, 21, vtab_atmega323, 12, cfgtab_atmega323, // ISRs, Config /*ATmega323*/ 0, NULL}, // Register file @@ -1097,37 +1122,37 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AT43USB320 avr-gcc 12.2.0 // Sources {"AT43USB320", 162, F_AVR8, {0xff, -1, -1}, // ID - /*AT43USB320*/ 0, 0x10000, -1, -1, -1, -1, -1, -1, 0x0060, 0x0200, // Mem + /*AT43USB320*/ 0, 0x10000, -1, -1, -1, 0, 0, -1, 0x0060, 0x0200, // Mem /*AT43USB320*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT43USB320*/ 0, NULL}, // Register file //AT43USB355 avr-gcc 12.2.0 // Sources {"AT43USB355", 163, F_AVR8, {0xff, -1, -1}, // ID - /*AT43USB355*/ 0, 0x06000, -1, -1, -1, -1, -1, -1, 0x0060, 0x0400, // Mem + /*AT43USB355*/ 0, 0x06000, -1, -1, -1, 0, 0, -1, 0x0060, 0x0400, // Mem /*AT43USB355*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT43USB355*/ 0, NULL}, // Register file //AT76C711 avr-gcc 12.2.0 // Sources {"AT76C711", 164, F_AVR8, {0xff, -1, -1}, // ID - /*AT76C711*/ 0, 0x04000, -1, -1, -1, -1, -1, -1, 0x0060, 0x07a0, // Mem + /*AT76C711*/ 0, 0x04000, -1, -1, -1, 0, 0, -1, 0x0060, 0x07a0, // Mem /*AT76C711*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT76C711*/ 0, NULL}, // Register file //AT86RF401 avr-gcc 12.2.0 // Sources {"AT86RF401", 165, F_AVR8, {0x1E, 0x91, 0x81}, // ID - /*AT86RF401*/ 0, 0x00800, -1, -1, -1, -1, -1, -1, 0x0060, 0x0080, // Mem + /*AT86RF401*/ 0, 0x00800, -1, -1, -1, 0, 0x0080, -1, 0x0060, 0x0080, // Mem /*AT86RF401*/ 0, 1, 3, vtab_at86rf401, 0, NULL, // ISRs, Config /*AT86RF401*/ 0, NULL}, // Register file //AT89S51 avrdude // Sources {"AT89S51", 372, F_AVR8, {0x1E, 0x51, 0x06}, // ID - /*AT89S51*/ 0, 0x01000, 0x001, -1, -1, 0, 0, 0, -1, -1, // Mem + /*AT89S51*/ 0, 0x01000, 0x001, 0, 0, 0, 0, 0, -1, -1, // Mem /*AT89S51*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT89S51*/ 0, NULL}, // Register file //AT89S52 avrdude // Sources {"AT89S52", 373, F_AVR8, {0x1E, 0x52, 0x06}, // ID - /*AT89S52*/ 0, 0x02000, 0x001, -1, -1, 0, 0, 0, -1, -1, // Mem + /*AT89S52*/ 0, 0x02000, 0x001, 0, 0, 0, 0, 0, -1, -1, // Mem /*AT89S52*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT89S52*/ 0, NULL}, // Register file @@ -1187,13 +1212,13 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AT90SCR100 avr-gcc 12.2.0, boot size (manual) // Sources {"AT90SCR100", 175, F_AVR8, {0x1E, 0x96, 0xC1}, // ID - /*AT90SCR100*/ 0, 0x10000, 0x100, 4, 0x0200, -1, -1, -1, 0x0100, 0x1000, // Mem + /*AT90SCR100*/ 0, 0x10000, 0x100, 4, 0x0200, 0, 0x0800, -1, 0x0100, 0x1000, // Mem /*AT90SCR100*/ 3, 1, 38, vtab_at90scr100h, 13, cfgtab_at90scr100h, // ISRs, Config /*AT90SCR100*/ 0, NULL}, // Register file //AT90SCR100H xml, from AT90SCR100 // Sources {"AT90SCR100H", 376, F_AVR8, {0x1E, 0x96, 0xC1}, // ID - /*AT90SCR100H*/ -1, -1, -1, 4, 0x0200, -1, -1, -1, 0x0100, 0x1000, // Mem + /*AT90SCR100H*/ -1, 0x10000, 0x100, 4, 0x0200, 0, 0x0800, -1, 0x0100, 0x1000, // Mem /*AT90SCR100H*/ 3, 1, 38, vtab_at90scr100h, 13, cfgtab_at90scr100h, // ISRs, Config /*AT90SCR100H*/ 0, NULL}, // Register file @@ -1313,7 +1338,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AT90C8534 avr-gcc 12.2.0 // Sources {"AT90C8534", 194, F_AVR8, {0xff, -1, -1}, // ID - /*AT90C8534*/ 0, 0x02000, -1, -1, -1, -1, -1, -1, 0x0060, 0x0100, // Mem + /*AT90C8534*/ 0, 0x02000, -1, -1, -1, 0, 0x0200, -1, 0x0060, 0x0100, // Mem /*AT90C8534*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT90C8534*/ 0, NULL}, // Register file @@ -1331,7 +1356,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AT94K avr-gcc 12.2.0 // Sources {"AT94K", 196, F_AVR8, {0xff, -1, -1}, // ID - /*AT94K*/ 0, 0x08000, -1, -1, -1, -1, -1, -1, 0x0060, 0x0fa0, // Mem + /*AT94K*/ 0, 0x08000, -1, -1, -1, 0, 0, -1, 0x0060, 0x0fa0, // Mem /*AT94K*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AT94K*/ 0, NULL}, // Register file @@ -1445,7 +1470,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATA6289 xml, avr-gcc 12.2.0, boot size (manual) // Sources {"ATA6289", 215, F_AVR8, {0x1E, 0x93, 0x82}, // ID - /*ATA6289*/ 0, 0x02000, 0x040, 4, 0x0100, -1, -1, -1, 0x0100, 0x0200, // Mem + /*ATA6289*/ 0, 0x02000, 0x040, 4, 0x0100, 0x00040, 0x0100, -1, 0x0100, 0x0200, // Mem /*ATA6289*/ 2, 1, 27, vtab_ata6289, 17, cfgtab_ata6289, // ISRs, Config /*ATA6289*/ 0, NULL}, // Register file @@ -1511,7 +1536,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //M3000 avr-gcc 12.2.0 // Sources {"M3000", 226, F_AVR8, {0xff, -1, -1}, // ID - /*M3000*/ 0, 0x10000, -1, -1, -1, -1, -1, -1, 0x1000, 0x1000, // Mem + /*M3000*/ 0, 0x10000, -1, -1, -1, 0, 0, -1, 0x1000, 0x1000, // Mem /*M3000*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*M3000*/ 0, NULL}, // Register file @@ -1662,7 +1687,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATxmega64A4 avrdude // Sources {"ATxmega64A4", 251, F_XMEGA, {0x1E, 0x96, 0x46}, // ID - /*ATxmega64A4*/ 0, 0x11000, 0x100, -1, -1, 0, 0x0800, 32, -1, -1, // Mem + /*ATxmega64A4*/ 0, 0x11000, 0x100, 1, 0x1000, 0, 0x0800, 32, 0x2000, 0x1000, // Mem /*ATxmega64A4*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*ATxmega64A4*/ 0, NULL}, // Register file @@ -1734,7 +1759,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATxmega128A4 avrdude // Sources {"ATxmega128A4", 263, F_XMEGA, {0x1E, 0x97, 0x46}, // ID - /*ATxmega128A4*/ 0, 0x22000, 0x200, -1, -1, 0, 0x0800, 32, -1, -1, // Mem + /*ATxmega128A4*/ 0, 0x22000, 0x100, 1, 0x2000, 0, 0x0800, 32, 0x2000, 0x2000, // Mem /*ATxmega128A4*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*ATxmega128A4*/ 0, NULL}, // Register file @@ -1752,7 +1777,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATxmega192A1 avrdude // Sources {"ATxmega192A1", 266, F_XMEGA, {0x1E, 0x97, 0x4E}, // ID - /*ATxmega192A1*/ 0, 0x32000, 0x200, -1, -1, 0, 0x0800, 32, -1, -1, // Mem + /*ATxmega192A1*/ 0, 0x32000, 0x200, 1, 0x2000, 0, 0x0800, 32, 0x2000, 0x4000, // Mem /*ATxmega192A1*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*ATxmega192A1*/ 0, NULL}, // Register file @@ -1782,7 +1807,7 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATxmega256A1 avrdude // Sources {"ATxmega256A1", 271, F_XMEGA, {0x1E, 0x98, 0x46}, // ID - /*ATxmega256A1*/ 0, 0x42000, 0x200, -1, -1, 0, 0x1000, 32, -1, -1, // Mem + /*ATxmega256A1*/ 0, 0x42000, 0x200, 1, 0x2000, 0, 0x1000, 32, 0x2000, 0x4000, // Mem /*ATxmega256A1*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*ATxmega256A1*/ 0, NULL}, // Register file @@ -1837,199 +1862,199 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATtiny202 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny202", 280, F_AVR8X, {0x1E, 0x91, 0x23}, // ID - /*ATtiny202*/ 0, 0x00800, 0x040, 1, 0, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem + /*ATtiny202*/ 0, 0x00800, 0x040, 1, 0x0100, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem /*ATtiny202*/ 10, 1, 26, vtab_attiny402, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny202*/ 217, rgftab_attiny202}, // Register file //ATtiny204 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny204", 281, F_AVR8X, {0x1E, 0x91, 0x22}, // ID - /*ATtiny204*/ 0, 0x00800, 0x040, 1, 0, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem + /*ATtiny204*/ 0, 0x00800, 0x040, 1, 0x0100, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem /*ATtiny204*/ 10, 1, 26, vtab_attiny404, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny204*/ 235, rgftab_attiny204}, // Register file //ATtiny212 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny212", 282, F_AVR8X, {0x1E, 0x91, 0x21}, // ID - /*ATtiny212*/ 0, 0x00800, 0x040, 1, 0, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem + /*ATtiny212*/ 0, 0x00800, 0x040, 1, 0x0100, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem /*ATtiny212*/ 10, 1, 26, vtab_attiny412, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny212*/ 247, rgftab_attiny212}, // Register file //ATtiny214 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny214", 283, F_AVR8X, {0x1E, 0x91, 0x20}, // ID - /*ATtiny214*/ 0, 0x00800, 0x040, 1, 0, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem + /*ATtiny214*/ 0, 0x00800, 0x040, 1, 0x0100, 0x01400, 0x0040, 32, 0x3f80, 0x0080, // Mem /*ATtiny214*/ 10, 1, 26, vtab_attiny814, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny214*/ 265, rgftab_attiny214}, // Register file //ATtiny402 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny402", 284, F_AVR8X, {0x1E, 0x92, 0x27}, // ID - /*ATtiny402*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny402*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny402*/ 10, 1, 26, vtab_attiny402, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny402*/ 217, rgftab_attiny202}, // Register file //ATtiny404 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny404", 285, F_AVR8X, {0x1E, 0x92, 0x26}, // ID - /*ATtiny404*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny404*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny404*/ 10, 1, 26, vtab_attiny404, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny404*/ 235, rgftab_attiny204}, // Register file //ATtiny406 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny406", 286, F_AVR8X, {0x1E, 0x92, 0x25}, // ID - /*ATtiny406*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny406*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny406*/ 10, 1, 26, vtab_attiny406, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny406*/ 253, rgftab_attiny406}, // Register file //ATtiny412 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny412", 287, F_AVR8X, {0x1E, 0x92, 0x23}, // ID - /*ATtiny412*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny412*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny412*/ 10, 1, 26, vtab_attiny412, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny412*/ 247, rgftab_attiny212}, // Register file //ATtiny414 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny414", 288, F_AVR8X, {0x1E, 0x92, 0x22}, // ID - /*ATtiny414*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny414*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny414*/ 10, 1, 26, vtab_attiny814, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny414*/ 265, rgftab_attiny214}, // Register file //ATtiny416 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny416", 289, F_AVR8X, {0x1E, 0x92, 0x21}, // ID - /*ATtiny416*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny416*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny416*/ 10, 1, 26, vtab_attiny817, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny416*/ 283, rgftab_attiny416}, // Register file //ATtiny416auto atdf, avrdude // Sources {"ATtiny416auto", 290, F_AVR8X, {0x1E, 0x92, 0x28}, // ID - /*ATtiny416auto*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny416auto*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny416auto*/ 10, 1, 26, vtab_attiny817, 23, cfgtab_attiny416auto, // ISRs, Config /*ATtiny416auto*/ 283, rgftab_attiny416auto}, // Register file //ATtiny417 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny417", 291, F_AVR8X, {0x1E, 0x92, 0x20}, // ID - /*ATtiny417*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem + /*ATtiny417*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3f00, 0x0100, // Mem /*ATtiny417*/ 10, 1, 26, vtab_attiny817, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny417*/ 283, rgftab_attiny417}, // Register file //ATtiny424 atdf, avrdude // Sources {"ATtiny424", 292, F_AVR8X, {0x1E, 0x92, 0x2C}, // ID - /*ATtiny424*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny424*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny424*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny424*/ 307, rgftab_attiny1624}, // Register file //ATtiny426 atdf, avrdude // Sources {"ATtiny426", 293, F_AVR8X, {0x1E, 0x92, 0x2B}, // ID - /*ATtiny426*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny426*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny426*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny426*/ 308, rgftab_attiny426}, // Register file //ATtiny427 atdf, avrdude // Sources {"ATtiny427", 294, F_AVR8X, {0x1E, 0x92, 0x2A}, // ID - /*ATtiny427*/ 0, 0x01000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny427*/ 0, 0x01000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny427*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny427*/ 308, rgftab_attiny426}, // Register file //ATtiny804 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny804", 295, F_AVR8X, {0x1E, 0x93, 0x25}, // ID - /*ATtiny804*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny804*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny804*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny804*/ 255, rgftab_attiny804}, // Register file //ATtiny806 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny806", 296, F_AVR8X, {0x1E, 0x93, 0x24}, // ID - /*ATtiny806*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny806*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny806*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny806*/ 255, rgftab_attiny804}, // Register file //ATtiny807 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny807", 297, F_AVR8X, {0x1E, 0x93, 0x23}, // ID - /*ATtiny807*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny807*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny807*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny807*/ 255, rgftab_attiny804}, // Register file //ATtiny814 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny814", 298, F_AVR8X, {0x1E, 0x93, 0x22}, // ID - /*ATtiny814*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny814*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny814*/ 10, 1, 26, vtab_attiny814, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny814*/ 265, rgftab_attiny814}, // Register file //ATtiny816 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny816", 299, F_AVR8X, {0x1E, 0x93, 0x21}, // ID - /*ATtiny816*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny816*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny816*/ 10, 1, 26, vtab_attiny817, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny816*/ 283, rgftab_attiny417}, // Register file //ATtiny817 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny817", 300, F_AVR8X, {0x1E, 0x93, 0x20}, // ID - /*ATtiny817*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem + /*ATtiny817*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3e00, 0x0200, // Mem /*ATtiny817*/ 10, 1, 26, vtab_attiny817, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny817*/ 283, rgftab_attiny417}, // Register file //ATtiny824 atdf, avrdude // Sources {"ATtiny824", 301, F_AVR8X, {0x1E, 0x93, 0x29}, // ID - /*ATtiny824*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem + /*ATtiny824*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem /*ATtiny824*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny824*/ 307, rgftab_attiny1624}, // Register file //ATtiny826 atdf, avrdude // Sources {"ATtiny826", 302, F_AVR8X, {0x1E, 0x93, 0x28}, // ID - /*ATtiny826*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem + /*ATtiny826*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem /*ATtiny826*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny826*/ 308, rgftab_attiny426}, // Register file //ATtiny827 atdf, avrdude // Sources {"ATtiny827", 303, F_AVR8X, {0x1E, 0x93, 0x27}, // ID - /*ATtiny827*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem + /*ATtiny827*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0080, 32, 0x3c00, 0x0400, // Mem /*ATtiny827*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny827*/ 308, rgftab_attiny426}, // Register file //ATtiny1604 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1604", 304, F_AVR8X, {0x1E, 0x94, 0x25}, // ID - /*ATtiny1604*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem + /*ATtiny1604*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem /*ATtiny1604*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny1604*/ 255, rgftab_attiny804}, // Register file //ATtiny1606 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1606", 305, F_AVR8X, {0x1E, 0x94, 0x24}, // ID - /*ATtiny1606*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem + /*ATtiny1606*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem /*ATtiny1606*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny1606*/ 255, rgftab_attiny804}, // Register file //ATtiny1607 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1607", 306, F_AVR8X, {0x1E, 0x94, 0x23}, // ID - /*ATtiny1607*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem + /*ATtiny1607*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem /*ATtiny1607*/ 10, 1, 31, vtab_attiny1607, 15, cfgtab_attiny804, // ISRs, Config /*ATtiny1607*/ 255, rgftab_attiny804}, // Register file //ATtiny1614 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1614", 307, F_AVR8X, {0x1E, 0x94, 0x22}, // ID - /*ATtiny1614*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1614*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1614*/ 10, 1, 31, vtab_attiny1614, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny1614*/ 308, rgftab_attiny1614}, // Register file //ATtiny1616 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1616", 308, F_AVR8X, {0x1E, 0x94, 0x21}, // ID - /*ATtiny1616*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1616*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1616*/ 10, 1, 31, vtab_attiny3217, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny1616*/ 326, rgftab_attiny1616}, // Register file //ATtiny1617 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny1617", 309, F_AVR8X, {0x1E, 0x94, 0x20}, // ID - /*ATtiny1617*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1617*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1617*/ 10, 1, 31, vtab_attiny3217, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny1617*/ 326, rgftab_attiny1616}, // Register file //ATtiny1624 atdf, avrdude // Sources {"ATtiny1624", 310, F_AVR8X, {0x1E, 0x94, 0x2A}, // ID - /*ATtiny1624*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1624*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1624*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny1624*/ 307, rgftab_attiny1624}, // Register file //ATtiny1626 atdf, avrdude // Sources {"ATtiny1626", 311, F_AVR8X, {0x1E, 0x94, 0x29}, // ID - /*ATtiny1626*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1626*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1626*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny1626*/ 308, rgftab_attiny426}, // Register file //ATtiny1627 atdf, avrdude // Sources {"ATtiny1627", 312, F_AVR8X, {0x1E, 0x94, 0x28}, // ID - /*ATtiny1627*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATtiny1627*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATtiny1627*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny1627*/ 308, rgftab_attiny426}, // Register file @@ -2041,433 +2066,433 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //ATtiny3216 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny3216", 314, F_AVR8X, {0x1E, 0x95, 0x21}, // ID - /*ATtiny3216*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem + /*ATtiny3216*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem /*ATtiny3216*/ 10, 1, 31, vtab_attiny3217, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny3216*/ 326, rgftab_attiny3216}, // Register file //ATtiny3217 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATtiny3217", 315, F_AVR8X, {0x1E, 0x95, 0x22}, // ID - /*ATtiny3217*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem + /*ATtiny3217*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3800, 0x0800, // Mem /*ATtiny3217*/ 10, 1, 31, vtab_attiny3217, 23, cfgtab_attiny204, // ISRs, Config /*ATtiny3217*/ 326, rgftab_attiny3216}, // Register file //ATtiny3224 atdf, avrdude // Sources {"ATtiny3224", 316, F_AVR8X, {0x1E, 0x95, 0x28}, // ID - /*ATtiny3224*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem + /*ATtiny3224*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem /*ATtiny3224*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny3224*/ 307, rgftab_attiny1624}, // Register file //ATtiny3226 atdf, avrdude // Sources {"ATtiny3226", 317, F_AVR8X, {0x1E, 0x95, 0x27}, // ID - /*ATtiny3226*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem + /*ATtiny3226*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem /*ATtiny3226*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny3226*/ 308, rgftab_attiny426}, // Register file //ATtiny3227 atdf, avrdude // Sources {"ATtiny3227", 318, F_AVR8X, {0x1E, 0x95, 0x26}, // ID - /*ATtiny3227*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem + /*ATtiny3227*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3400, 0x0c00, // Mem /*ATtiny3227*/ 10, 1, 30, vtab_attiny3227, 16, cfgtab_attiny1624, // ISRs, Config /*ATtiny3227*/ 308, rgftab_attiny426}, // Register file //ATmega808 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega808", 319, F_AVR8X, {0x1E, 0x93, 0x26}, // ID - /*ATmega808*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem + /*ATmega808*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem /*ATmega808*/ 10, 1, 36, vtab_atmega4808, 15, cfgtab_atmega808, // ISRs, Config /*ATmega808*/ 406, rgftab_atmega808}, // Register file //ATmega809 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega809", 320, F_AVR8X, {0x1E, 0x93, 0x2A}, // ID - /*ATmega809*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem + /*ATmega809*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3c00, 0x0400, // Mem /*ATmega809*/ 10, 1, 40, vtab_atmega4809, 15, cfgtab_atmega808, // ISRs, Config /*ATmega809*/ 432, rgftab_atmega809}, // Register file //ATmega1608 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega1608", 321, F_AVR8X, {0x1E, 0x94, 0x27}, // ID - /*ATmega1608*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATmega1608*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATmega1608*/ 10, 1, 36, vtab_atmega4808, 15, cfgtab_atmega808, // ISRs, Config /*ATmega1608*/ 406, rgftab_atmega808}, // Register file //ATmega1609 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega1609", 322, F_AVR8X, {0x1E, 0x94, 0x26}, // ID - /*ATmega1609*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem + /*ATmega1609*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0100, 32, 0x3800, 0x0800, // Mem /*ATmega1609*/ 10, 1, 40, vtab_atmega4809, 15, cfgtab_atmega808, // ISRs, Config /*ATmega1609*/ 432, rgftab_atmega809}, // Register file //ATmega3208 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega3208", 323, F_AVR8X, {0x1E, 0x95, 0x30}, // ID - /*ATmega3208*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3000, 0x1000, // Mem + /*ATmega3208*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3000, 0x1000, // Mem /*ATmega3208*/ 10, 1, 36, vtab_atmega4808, 15, cfgtab_atmega808, // ISRs, Config /*ATmega3208*/ 406, rgftab_atmega3208}, // Register file //ATmega3209 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega3209", 324, F_AVR8X, {0x1E, 0x95, 0x31}, // ID - /*ATmega3209*/ 0, 0x08000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x3000, 0x1000, // Mem + /*ATmega3209*/ 0, 0x08000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x3000, 0x1000, // Mem /*ATmega3209*/ 10, 1, 40, vtab_atmega4809, 15, cfgtab_atmega808, // ISRs, Config /*ATmega3209*/ 432, rgftab_atmega3209}, // Register file //ATmega4808 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega4808", 325, F_AVR8X, {0x1E, 0x96, 0x50}, // ID - /*ATmega4808*/ 0, 0x0c000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x2800, 0x1800, // Mem + /*ATmega4808*/ 0, 0x0c000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x2800, 0x1800, // Mem /*ATmega4808*/ 10, 1, 36, vtab_atmega4808, 15, cfgtab_atmega808, // ISRs, Config /*ATmega4808*/ 406, rgftab_atmega3208}, // Register file //ATmega4809 atdf, avr-gcc 12.2.0, avrdude // Sources {"ATmega4809", 326, F_AVR8X, {0x1E, 0x96, 0x51}, // ID - /*ATmega4809*/ 0, 0x0c000, 0x080, 1, 0, 0x01400, 0x0100, 64, 0x2800, 0x1800, // Mem + /*ATmega4809*/ 0, 0x0c000, 0x080, 1, 0x0100, 0x01400, 0x0100, 64, 0x2800, 0x1800, // Mem /*ATmega4809*/ 10, 1, 40, vtab_atmega4809, 15, cfgtab_atmega808, // ISRs, Config /*ATmega4809*/ 432, rgftab_atmega3209}, // Register file //AVR8EA28 avrdude // Sources {"AVR8EA28", 327, F_AVR8X, {0x1E, 0x93, 0x2C}, // ID - /*AVR8EA28*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0200, 8, -1, -1, // Mem + /*AVR8EA28*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, -1, -1, // Mem /*AVR8EA28*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AVR8EA28*/ 0, NULL}, // Register file //AVR8EA32 avrdude // Sources {"AVR8EA32", 328, F_AVR8X, {0x1E, 0x93, 0x2B}, // ID - /*AVR8EA32*/ 0, 0x02000, 0x040, 1, 0, 0x01400, 0x0200, 8, -1, -1, // Mem + /*AVR8EA32*/ 0, 0x02000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, -1, -1, // Mem /*AVR8EA32*/ -1, -1, 0, NULL, 0, NULL, // ISRs, Config /*AVR8EA32*/ 0, NULL}, // Register file //AVR16DD14 atdf, avrdude // Sources {"AVR16DD14", 329, F_AVR8X, {0x1E, 0x94, 0x34}, // ID - /*AVR16DD14*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DD14*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DD14*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR16DD14*/ 401, rgftab_avr32dd14}, // Register file //AVR16DU14 atdf, avrdude // Sources {"AVR16DU14", 386, F_AVR8X, {0x1E, 0x94, 0x3B}, // ID - /*AVR16DU14*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DU14*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DU14*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR16DU14*/ 371, rgftab_avr16du14}, // Register file //AVR16EB14 atdf, avrdude // Sources {"AVR16EB14", 380, F_AVR8X, {0x1E, 0x94, 0x49}, // ID - /*AVR16EB14*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EB14*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EB14*/ 16, 4, 31, vtab_avr16eb32, 18, cfgtab_avr16eb14, // ISRs, Config /*AVR16EB14*/ 391, rgftab_avr16eb14}, // Register file //AVR16DD20 atdf, avrdude // Sources {"AVR16DD20", 330, F_AVR8X, {0x1E, 0x94, 0x33}, // ID - /*AVR16DD20*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DD20*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DD20*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR16DD20*/ 401, rgftab_avr32dd14}, // Register file //AVR16DU20 atdf, avrdude // Sources {"AVR16DU20", 387, F_AVR8X, {0x1E, 0x94, 0x3A}, // ID - /*AVR16DU20*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DU20*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DU20*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR16DU20*/ 372, rgftab_avr16du20}, // Register file //AVR16EB20 atdf, avrdude // Sources {"AVR16EB20", 381, F_AVR8X, {0x1E, 0x94, 0x40}, // ID - /*AVR16EB20*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EB20*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EB20*/ 16, 4, 31, vtab_avr16eb32, 18, cfgtab_avr16eb14, // ISRs, Config /*AVR16EB20*/ 393, rgftab_avr16eb20}, // Register file //AVR16DD28 atdf, avrdude // Sources {"AVR16DD28", 331, F_AVR8X, {0x1E, 0x94, 0x32}, // ID - /*AVR16DD28*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DD28*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DD28*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR16DD28*/ 401, rgftab_avr32dd14}, // Register file //AVR16DU28 atdf, avrdude // Sources {"AVR16DU28", 388, F_AVR8X, {0x1E, 0x94, 0x39}, // ID - /*AVR16DU28*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DU28*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DU28*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR16DU28*/ 372, rgftab_avr16du20}, // Register file //AVR16EA28 atdf, avrdude // Sources {"AVR16EA28", 332, F_AVR8X, {0x1E, 0x94, 0x37}, // ID - /*AVR16EA28*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EA28*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EA28*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR16EA28*/ 402, rgftab_avr16ea28}, // Register file //AVR16EB28 atdf, avrdude // Sources {"AVR16EB28", 382, F_AVR8X, {0x1E, 0x94, 0x3F}, // ID - /*AVR16EB28*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EB28*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EB28*/ 16, 4, 31, vtab_avr16eb32, 18, cfgtab_avr16eb14, // ISRs, Config /*AVR16EB28*/ 393, rgftab_avr16eb20}, // Register file //AVR16DD32 atdf, avrdude // Sources {"AVR16DD32", 333, F_AVR8X, {0x1E, 0x94, 0x31}, // ID - /*AVR16DD32*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DD32*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DD32*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR16DD32*/ 401, rgftab_avr32dd14}, // Register file //AVR16DU32 atdf, avrdude // Sources {"AVR16DU32", 389, F_AVR8X, {0x1E, 0x94, 0x38}, // ID - /*AVR16DU32*/ 0, 0x04000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem + /*AVR16DU32*/ 0, 0x04000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7800, 0x0800, // Mem /*AVR16DU32*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR16DU32*/ 372, rgftab_avr16du20}, // Register file //AVR16EA32 atdf, avrdude // Sources {"AVR16EA32", 334, F_AVR8X, {0x1E, 0x94, 0x36}, // ID - /*AVR16EA32*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EA32*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EA32*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR16EA32*/ 402, rgftab_avr16ea28}, // Register file //AVR16EB32 atdf, avrdude // Sources {"AVR16EB32", 383, F_AVR8X, {0x1E, 0x94, 0x3E}, // ID - /*AVR16EB32*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EB32*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EB32*/ 16, 4, 31, vtab_avr16eb32, 18, cfgtab_avr16eb14, // ISRs, Config /*AVR16EB32*/ 393, rgftab_avr16eb20}, // Register file //AVR16EA48 atdf, avrdude // Sources {"AVR16EA48", 335, F_AVR8X, {0x1E, 0x94, 0x35}, // ID - /*AVR16EA48*/ 0, 0x04000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem + /*AVR16EA48*/ 0, 0x04000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7800, 0x0800, // Mem /*AVR16EA48*/ 16, 4, 45, vtab_avr64ea48, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR16EA48*/ 502, rgftab_avr64ea48}, // Register file //AVR32DD14 atdf, avrdude // Sources {"AVR32DD14", 336, F_AVR8X, {0x1E, 0x95, 0x3B}, // ID - /*AVR32DD14*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DD14*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DD14*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR32DD14*/ 401, rgftab_avr32dd14}, // Register file //AVR32DU14 atdf, avrdude // Sources {"AVR32DU14", 390, F_AVR8X, {0x1E, 0x95, 0x4F}, // ID - /*AVR32DU14*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DU14*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DU14*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU14*/ 371, rgftab_avr16du14}, // Register file //AVR32DD20 atdf, avrdude // Sources {"AVR32DD20", 337, F_AVR8X, {0x1E, 0x95, 0x3A}, // ID - /*AVR32DD20*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DD20*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DD20*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR32DD20*/ 401, rgftab_avr32dd14}, // Register file //AVR32DU20 atdf, avrdude // Sources {"AVR32DU20", 391, F_AVR8X, {0x1E, 0x95, 0x4E}, // ID - /*AVR32DU20*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DU20*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DU20*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU20*/ 372, rgftab_avr16du20}, // Register file //AVR32DA28 atdf, avrdude // Sources {"AVR32DA28", 338, F_AVR8X, {0x1E, 0x95, 0x34}, // ID - /*AVR32DA28*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DA28*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DA28*/ 16, 4, 41, vtab_avr128da28, 15, cfgtab_avr32da28, // ISRs, Config /*AVR32DA28*/ 432, rgftab_avr32da28}, // Register file //AVR32DB28 atdf, avrdude // Sources {"AVR32DB28", 339, F_AVR8X, {0x1E, 0x95, 0x37}, // ID - /*AVR32DB28*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DB28*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DB28*/ 16, 4, 42, vtab_avr128db28, 16, cfgtab_avr32db28, // ISRs, Config /*AVR32DB28*/ 462, rgftab_avr32db28}, // Register file //AVR32DD28 atdf, avrdude // Sources {"AVR32DD28", 340, F_AVR8X, {0x1E, 0x95, 0x39}, // ID - /*AVR32DD28*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DD28*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DD28*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR32DD28*/ 401, rgftab_avr32dd14}, // Register file //AVR32DU28 atdf, avrdude // Sources {"AVR32DU28", 392, F_AVR8X, {0x1E, 0x95, 0x40}, // ID - /*AVR32DU28*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DU28*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DU28*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU28*/ 372, rgftab_avr16du20}, // Register file //AVR32EA28 atdf, avrdude // Sources {"AVR32EA28", 341, F_AVR8X, {0x1E, 0x95, 0x3E}, // ID - /*AVR32EA28*/ 0, 0x08000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem + /*AVR32EA28*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem /*AVR32EA28*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR32EA28*/ 402, rgftab_avr16ea28}, // Register file //AVR32DA32 atdf, avrdude // Sources {"AVR32DA32", 342, F_AVR8X, {0x1E, 0x95, 0x33}, // ID - /*AVR32DA32*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DA32*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DA32*/ 16, 4, 44, vtab_avr128da32, 15, cfgtab_avr32da28, // ISRs, Config /*AVR32DA32*/ 447, rgftab_avr32da32}, // Register file //AVR32DB32 atdf, avrdude // Sources {"AVR32DB32", 343, F_AVR8X, {0x1E, 0x95, 0x36}, // ID - /*AVR32DB32*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DB32*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DB32*/ 16, 4, 44, vtab_avr128db32, 16, cfgtab_avr32db28, // ISRs, Config /*AVR32DB32*/ 477, rgftab_avr32db32}, // Register file //AVR32DD32 atdf, avrdude // Sources {"AVR32DD32", 344, F_AVR8X, {0x1E, 0x95, 0x38}, // ID - /*AVR32DD32*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DD32*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DD32*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR32DD32*/ 401, rgftab_avr32dd14}, // Register file //AVR32DU32 atdf, avrdude // Sources {"AVR32DU32", 393, F_AVR8X, {0x1E, 0x95, 0x3F}, // ID - /*AVR32DU32*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem + /*AVR32DU32*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem /*AVR32DU32*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU32*/ 372, rgftab_avr16du20}, // Register file //AVR32EA32 atdf, avrdude // Sources {"AVR32EA32", 345, F_AVR8X, {0x1E, 0x95, 0x3D}, // ID - /*AVR32EA32*/ 0, 0x08000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem + /*AVR32EA32*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem /*AVR32EA32*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR32EA32*/ 402, rgftab_avr16ea28}, // Register file //AVR32DA48 atdf, avrdude // Sources {"AVR32DA48", 346, F_AVR8X, {0x1E, 0x95, 0x32}, // ID - /*AVR32DA48*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DA48*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DA48*/ 16, 4, 58, vtab_avr128da48, 15, cfgtab_avr32da28, // ISRs, Config /*AVR32DA48*/ 600, rgftab_avr32da48}, // Register file //AVR32DB48 atdf, avrdude // Sources {"AVR32DB48", 347, F_AVR8X, {0x1E, 0x95, 0x35}, // ID - /*AVR32DB48*/ 0, 0x08000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem + /*AVR32DB48*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem /*AVR32DB48*/ 16, 4, 61, vtab_avr128db48, 16, cfgtab_avr32db28, // ISRs, Config /*AVR32DB48*/ 643, rgftab_avr32db48}, // Register file //AVR32EA48 atdf, avrdude // Sources {"AVR32EA48", 348, F_AVR8X, {0x1E, 0x95, 0x3C}, // ID - /*AVR32EA48*/ 0, 0x08000, 0x040, 1, 0, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem + /*AVR32EA48*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7000, 0x1000, // Mem /*AVR32EA48*/ 16, 4, 45, vtab_avr64ea48, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR32EA48*/ 502, rgftab_avr64ea48}, // Register file //AVR64DD14 atdf, avrdude // Sources {"AVR64DD14", 349, F_AVR8X, {0x1E, 0x96, 0x1D}, // ID - /*AVR64DD14*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DD14*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DD14*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR64DD14*/ 401, rgftab_avr32dd14}, // Register file //AVR64DD20 atdf, avrdude // Sources {"AVR64DD20", 350, F_AVR8X, {0x1E, 0x96, 0x1C}, // ID - /*AVR64DD20*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DD20*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DD20*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR64DD20*/ 401, rgftab_avr32dd14}, // Register file //AVR64DA28 atdf, avrdude // Sources {"AVR64DA28", 351, F_AVR8X, {0x1E, 0x96, 0x15}, // ID - /*AVR64DA28*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DA28*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DA28*/ 16, 4, 41, vtab_avr128da28, 15, cfgtab_avr32da28, // ISRs, Config /*AVR64DA28*/ 433, rgftab_avr64da28}, // Register file //AVR64DB28 atdf, avrdude // Sources {"AVR64DB28", 352, F_AVR8X, {0x1E, 0x96, 0x19}, // ID - /*AVR64DB28*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DB28*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DB28*/ 16, 4, 42, vtab_avr128db28, 16, cfgtab_avr32db28, // ISRs, Config /*AVR64DB28*/ 462, rgftab_avr32db28}, // Register file //AVR64DD28 atdf, avrdude // Sources {"AVR64DD28", 353, F_AVR8X, {0x1E, 0x96, 0x1B}, // ID - /*AVR64DD28*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DD28*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DD28*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR64DD28*/ 401, rgftab_avr32dd14}, // Register file //AVR64DU28 atdf, avrdude // Sources {"AVR64DU28", 384, F_AVR8X, {0x1E, 0x96, 0x22}, // ID - /*AVR64DU28*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DU28*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DU28*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR64DU28*/ 372, rgftab_avr16du20}, // Register file //AVR64EA28 atdf, avrdude // Sources {"AVR64EA28", 354, F_AVR8X, {0x1E, 0x96, 0x20}, // ID - /*AVR64EA28*/ 0, 0x10000, 0x080, 1, 0, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem + /*AVR64EA28*/ 0, 0x10000, 0x080, 1, 0x0100, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem /*AVR64EA28*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR64EA28*/ 402, rgftab_avr16ea28}, // Register file //AVR64DA32 atdf, avrdude // Sources {"AVR64DA32", 355, F_AVR8X, {0x1E, 0x96, 0x14}, // ID - /*AVR64DA32*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DA32*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DA32*/ 16, 4, 44, vtab_avr128da32, 15, cfgtab_avr32da28, // ISRs, Config /*AVR64DA32*/ 448, rgftab_avr64da32}, // Register file //AVR64DB32 atdf, avrdude // Sources {"AVR64DB32", 356, F_AVR8X, {0x1E, 0x96, 0x18}, // ID - /*AVR64DB32*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DB32*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DB32*/ 16, 4, 44, vtab_avr128db32, 16, cfgtab_avr32db28, // ISRs, Config /*AVR64DB32*/ 477, rgftab_avr32db32}, // Register file //AVR64DD32 atdf, avrdude // Sources {"AVR64DD32", 357, F_AVR8X, {0x1E, 0x96, 0x1A}, // ID - /*AVR64DD32*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DD32*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DD32*/ 16, 4, 36, vtab_avr64dd32, 17, cfgtab_avr32dd14, // ISRs, Config /*AVR64DD32*/ 401, rgftab_avr32dd14}, // Register file //AVR64DU32 atdf, avrdude // Sources {"AVR64DU32", 385, F_AVR8X, {0x1E, 0x96, 0x21}, // ID - /*AVR64DU32*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem + /*AVR64DU32*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x6000, 0x2000, // Mem /*AVR64DU32*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR64DU32*/ 372, rgftab_avr16du20}, // Register file //AVR64EA32 atdf, avrdude // Sources {"AVR64EA32", 358, F_AVR8X, {0x1E, 0x96, 0x1F}, // ID - /*AVR64EA32*/ 0, 0x10000, 0x080, 1, 0, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem + /*AVR64EA32*/ 0, 0x10000, 0x080, 1, 0x0100, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem /*AVR64EA32*/ 16, 4, 37, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR64EA32*/ 402, rgftab_avr16ea28}, // Register file //AVR64DA48 atdf, avrdude // Sources {"AVR64DA48", 359, F_AVR8X, {0x1E, 0x96, 0x13}, // ID - /*AVR64DA48*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DA48*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DA48*/ 16, 4, 58, vtab_avr128da48, 15, cfgtab_avr32da28, // ISRs, Config /*AVR64DA48*/ 601, rgftab_avr64da48}, // Register file //AVR64DB48 atdf, avrdude // Sources {"AVR64DB48", 360, F_AVR8X, {0x1E, 0x96, 0x17}, // ID - /*AVR64DB48*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DB48*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DB48*/ 16, 4, 61, vtab_avr128db48, 16, cfgtab_avr32db28, // ISRs, Config /*AVR64DB48*/ 643, rgftab_avr32db48}, // Register file //AVR64EA48 atdf, avrdude // Sources {"AVR64EA48", 361, F_AVR8X, {0x1E, 0x96, 0x1E}, // ID - /*AVR64EA48*/ 0, 0x10000, 0x080, 1, 0, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem + /*AVR64EA48*/ 0, 0x10000, 0x080, 1, 0x0100, 0x01400, 0x0200, 8, 0x6800, 0x1800, // Mem /*AVR64EA48*/ 16, 4, 45, vtab_avr64ea48, 16, cfgtab_avr64ea48, // ISRs, Config /*AVR64EA48*/ 502, rgftab_avr64ea48}, // Register file //AVR64DA64 atdf, avrdude // Sources {"AVR64DA64", 362, F_AVR8X, {0x1E, 0x96, 0x12}, // ID - /*AVR64DA64*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DA64*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DA64*/ 16, 4, 64, vtab_avr128da64, 15, cfgtab_avr32da28, // ISRs, Config /*AVR64DA64*/ 659, rgftab_avr64da64}, // Register file //AVR64DB64 atdf, avrdude // Sources {"AVR64DB64", 363, F_AVR8X, {0x1E, 0x96, 0x16}, // ID - /*AVR64DB64*/ 0, 0x10000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem + /*AVR64DB64*/ 0, 0x10000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x6000, 0x2000, // Mem /*AVR64DB64*/ 16, 4, 65, vtab_avr128db64, 16, cfgtab_avr32db28, // ISRs, Config /*AVR64DB64*/ 698, rgftab_avr64db64}, // Register file //AVR128DA28 atdf, avrdude // Sources {"AVR128DA28", 364, F_AVR8X, {0x1E, 0x97, 0x0A}, // ID - /*AVR128DA28*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DA28*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DA28*/ 16, 4, 41, vtab_avr128da28, 15, cfgtab_avr32da28, // ISRs, Config /*AVR128DA28*/ 433, rgftab_avr64da28}, // Register file //AVR128DB28 atdf, avrdude // Sources {"AVR128DB28", 365, F_AVR8X, {0x1E, 0x97, 0x0E}, // ID - /*AVR128DB28*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DB28*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DB28*/ 16, 4, 42, vtab_avr128db28, 16, cfgtab_avr32db28, // ISRs, Config /*AVR128DB28*/ 462, rgftab_avr32db28}, // Register file //AVR128DA32 atdf, avrdude // Sources {"AVR128DA32", 366, F_AVR8X, {0x1E, 0x97, 0x09}, // ID - /*AVR128DA32*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DA32*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DA32*/ 16, 4, 44, vtab_avr128da32, 15, cfgtab_avr32da28, // ISRs, Config /*AVR128DA32*/ 448, rgftab_avr64da32}, // Register file //AVR128DB32 atdf, avrdude // Sources {"AVR128DB32", 367, F_AVR8X, {0x1E, 0x97, 0x0D}, // ID - /*AVR128DB32*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DB32*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DB32*/ 16, 4, 44, vtab_avr128db32, 16, cfgtab_avr32db28, // ISRs, Config /*AVR128DB32*/ 477, rgftab_avr32db32}, // Register file //AVR128DA48 atdf, avrdude // Sources {"AVR128DA48", 368, F_AVR8X, {0x1E, 0x97, 0x08}, // ID - /*AVR128DA48*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DA48*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DA48*/ 16, 4, 58, vtab_avr128da48, 15, cfgtab_avr32da28, // ISRs, Config /*AVR128DA48*/ 601, rgftab_avr64da48}, // Register file //AVR128DB48 atdf, avrdude // Sources {"AVR128DB48", 369, F_AVR8X, {0x1E, 0x97, 0x0C}, // ID - /*AVR128DB48*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DB48*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DB48*/ 16, 4, 61, vtab_avr128db48, 16, cfgtab_avr32db28, // ISRs, Config /*AVR128DB48*/ 643, rgftab_avr32db48}, // Register file //AVR128DA64 atdf, avrdude // Sources {"AVR128DA64", 370, F_AVR8X, {0x1E, 0x97, 0x07}, // ID - /*AVR128DA64*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DA64*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DA64*/ 16, 4, 64, vtab_avr128da64, 15, cfgtab_avr32da28, // ISRs, Config /*AVR128DA64*/ 659, rgftab_avr64da64}, // Register file //AVR128DB64 atdf, avrdude // Sources {"AVR128DB64", 371, F_AVR8X, {0x1E, 0x97, 0x0B}, // ID - /*AVR128DB64*/ 0, 0x20000, 0x200, 1, 0, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem + /*AVR128DB64*/ 0, 0x20000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x4000, 0x4000, // Mem /*AVR128DB64*/ 16, 4, 65, vtab_avr128db64, 16, cfgtab_avr32db28, // ISRs, Config /*AVR128DB64*/ 698, rgftab_avr64db64}, // Register file }; @@ -11430,8 +11455,8 @@ const Configitem cfgtab_attiny204[23] = { {"rstpincfg", 3, _values_rstpincfg_attiny204, "syscfg0", 5, 0x0c, 2, 1, "reset pin configuration"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of pages]"}, - {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of pages]"}, + {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of blocks]"}, + {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of blocks]"}, {"lb", 2, _values_lb_attiny204, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; @@ -11453,8 +11478,8 @@ const Configitem cfgtab_attiny1624[16] = { {"toutdis", 2, _values_toutdis_attiny1624, "syscfg0", 5, 0x10, 4, 1, "timeout"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of pages]"}, - {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of pages]"}, + {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of blocks]"}, + {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of blocks]"}, {"lb", 2, _values_lb_attiny204, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; @@ -11477,8 +11502,8 @@ const Configitem cfgtab_avr32dd14[17] = { {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 0, "startup time"}, {"mvsyscfg", 2, _values_mvsyscfg_avr32dd14, "syscfg1", 6, 0x18, 3, 1, "MVIO system configuration"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, }; @@ -11497,8 +11522,8 @@ const Configitem cfgtab_avr64ea48[16] = { {"crcsel", 2, _values_crcsel_avr32dd14, "syscfg0", 5, 0x20, 5, 0, "CRC select"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, }; @@ -12924,8 +12949,8 @@ const Configitem cfgtab_attiny416auto[23] = { {"rstpincfg", 3, _values_rstpincfg_attiny204, "syscfg0", 5, 0x0c, 2, 1, "reset pin configuration"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of pages]"}, - {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of pages]"}, + {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of blocks]"}, + {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of blocks]"}, {"lb", 2, _values_lb_attiny204, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; @@ -12943,8 +12968,8 @@ const Configitem cfgtab_attiny804[15] = { {"rstpincfg", 3, _values_rstpincfg_attiny204, "syscfg0", 5, 0x0c, 2, 1, "reset pin configuration"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of pages]"}, - {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of pages]"}, + {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of blocks]"}, + {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of blocks]"}, {"lb", 2, _values_lb_attiny204, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; @@ -12962,8 +12987,8 @@ const Configitem cfgtab_atmega808[15] = { {"rstpincfg", 2, _values_rstpincfg_avr32dd14, "syscfg0", 5, 0x08, 3, 0, "reset pin configuration"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of pages]"}, - {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of pages]"}, + {"append", 0, NULL, "append", 7, 0xff, 0, 0x00, "application code section end [# of blocks]"}, + {"bootend", 0, NULL, "bootend", 8, 0xff, 0, 0x00, "boot section end [# of blocks]"}, {"lb", 2, _values_lb_attiny204, "lock", 0, 0xff, 0, 0xc5, "lock bits"}, }; @@ -12987,8 +13012,8 @@ const Configitem cfgtab_avr16du14[20] = { {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 0, "startup time"}, {"usbsink", 2, _values_usbsink_avr16du14, "syscfg1", 6, 0x08, 3, 1, "USB Voltage Regulator Current Sink Enable"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"nvmlevel", 2, _values_nvmlevel_avr16du14, "pdicfg", 10, 0x03, 0, 3, "NVM protection level"}, {"nvmkey", 2, _values_nvmkey_avr16du14, "pdicfg", 10, 0xfff0, 4, 0x00, "NVM protection activation key"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, @@ -13009,8 +13034,8 @@ const Configitem cfgtab_avr16eb14[18] = { {"crcsel", 2, _values_crcsel_avr32dd14, "syscfg0", 5, 0x20, 5, 0, "CRC select"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 7, "startup time"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"nvmlevel", 2, _values_nvmlevel_avr16eb14, "pdicfg", 10, 0x03, 0, 3, "NVM protection level"}, {"nvmkey", 2, _values_nvmkey_avr16du14, "pdicfg", 10, 0xfff0, 4, 0x00, "NVM protection activation key"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, @@ -13033,8 +13058,8 @@ const Configitem cfgtab_avr32da28[15] = { {"crcsel", 2, _values_crcsel_avr32dd14, "syscfg0", 5, 0x20, 5, 0, "CRC select"}, {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 0, "startup time"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, }; @@ -13056,8 +13081,8 @@ const Configitem cfgtab_avr32db28[16] = { {"crcsrc", 4, _values_crcsrc_attiny204, "syscfg0", 5, 0xc0, 6, 3, "CRC source"}, {"sut", 8, _values_sut_attiny204, "syscfg1", 6, 0x07, 0, 0, "startup time"}, {"mvsyscfg", 2, _values_mvsyscfg_avr32dd14, "syscfg1", 6, 0x18, 3, 1, "MVIO system configuration"}, - {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of pages]"}, - {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of pages]"}, + {"codesize", 0, NULL, "codesize", 7, 0xff, 0, 0x00, "code section size [# of blocks]"}, + {"bootsize", 0, NULL, "bootsize", 8, 0xff, 0, 0x00, "boot section size [# of blocks]"}, {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, }; diff --git a/src/libavrdude-avrintel.h b/src/libavrdude-avrintel.h index a7732ef1..463fbd6b 100644 --- a/src/libavrdude-avrintel.h +++ b/src/libavrdude-avrintel.h @@ -11,8 +11,8 @@ * Published under GNU General Public License, version 3 (GPL-3.0) * Meta-author Stefan Rueger * - * v 1.3 - * 20.05.2024 + * v 1.39 + * 25.06.2024 * */ @@ -55,7 +55,7 @@ typedef struct { // Value of -1 typically means unknown uint16_t mcuid; // ID of MCU in 0..2039 uint8_t avrarch; // F_AVR8L, F_AVR8, F_XMEGA or F_AVR8X uint8_t sigs[3]; // Signature bytes - int32_t flashoffset; // Flash offset + int32_t flashoffset; // Flash offset in dual-chip MCUs (not flash->offset) int32_t flashsize; // Flash size int16_t pagesize; // Flash page size int8_t nboots; // Number of supported boot sections