diff --git a/src/avrintel.c b/src/avrintel.c index dbae4dd0..4c8b473a 100644 --- a/src/avrintel.c +++ b/src/avrintel.c @@ -9,7 +9,7 @@ * Meta-author Stefan Rueger * * v 1.40 - * 31.08.2024 + * 16.11.2024 * */ @@ -2205,8 +2205,8 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR16EA28 atdf, avrdude // Sources {"AVR16EA28", 332, F_AVR8X, {0x1E, 0x94, 0x37}, // ID /*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 + /*AVR16EA28*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR16EA28*/ 444, rgftab_avr16ea28}, // Register file //AVR16EB28 atdf, avrdude // Sources {"AVR16EB28", 382, F_AVR8X, {0x1E, 0x94, 0x3F}, // ID @@ -2229,8 +2229,8 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR16EA32 atdf, avrdude // Sources {"AVR16EA32", 334, F_AVR8X, {0x1E, 0x94, 0x36}, // ID /*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 + /*AVR16EA32*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR16EA32*/ 444, rgftab_avr16ea28}, // Register file //AVR16EB32 atdf, avrdude // Sources {"AVR16EB32", 383, F_AVR8X, {0x1E, 0x94, 0x3E}, // ID @@ -2256,6 +2256,12 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown /*AVR32DU14*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU14*/ 371, rgftab_avr16du14}, // Register file + //AVR32EB14 atdf // Sources + {"AVR32EB14", 398, F_AVR8X, {0x1E, 0x95, 0x2D}, // ID + /*AVR32EB14*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7400, 0x0c00, // Mem + /*AVR32EB14*/ 16, 4, 31, vtab_avr32eb32, 18, cfgtab_avr16eb14, // ISRs, Config + /*AVR32EB14*/ 391, rgftab_avr16eb14}, // Register file + //AVR32DD20 atdf, avrdude // Sources {"AVR32DD20", 337, F_AVR8X, {0x1E, 0x95, 0x3A}, // ID /*AVR32DD20*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0100, 1, 0x7000, 0x1000, // Mem @@ -2268,6 +2274,12 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown /*AVR32DU20*/ 16, 4, 34, vtab_avr64du32, 20, cfgtab_avr16du14, // ISRs, Config /*AVR32DU20*/ 372, rgftab_avr16du20}, // Register file + //AVR32EB20 atdf // Sources + {"AVR32EB20", 399, F_AVR8X, {0x1E, 0x95, 0x2C}, // ID + /*AVR32EB20*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7400, 0x0c00, // Mem + /*AVR32EB20*/ 16, 4, 31, vtab_avr32eb32, 18, cfgtab_avr16eb14, // ISRs, Config + /*AVR32EB20*/ 393, rgftab_avr16eb20}, // Register file + //AVR32DA28 atdf, avrdude // Sources {"AVR32DA28", 338, F_AVR8X, {0x1E, 0x95, 0x34}, // ID /*AVR32DA28*/ 0, 0x08000, 0x200, 1, 0x0200, 0x01400, 0x0200, 1, 0x7000, 0x1000, // Mem @@ -2295,8 +2307,14 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR32EA28 atdf, avrdude // Sources {"AVR32EA28", 341, F_AVR8X, {0x1E, 0x95, 0x3E}, // ID /*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 + /*AVR32EA28*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR32EA28*/ 444, rgftab_avr16ea28}, // Register file + + //AVR32EB28 atdf // Sources + {"AVR32EB28", 400, F_AVR8X, {0x1E, 0x95, 0x2B}, // ID + /*AVR32EB28*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7400, 0x0c00, // Mem + /*AVR32EB28*/ 16, 4, 31, vtab_avr32eb32, 18, cfgtab_avr16eb14, // ISRs, Config + /*AVR32EB28*/ 393, rgftab_avr16eb20}, // Register file //AVR32DA32 atdf, avrdude // Sources {"AVR32DA32", 342, F_AVR8X, {0x1E, 0x95, 0x33}, // ID @@ -2325,8 +2343,14 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR32EA32 atdf, avrdude // Sources {"AVR32EA32", 345, F_AVR8X, {0x1E, 0x95, 0x3D}, // ID /*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 + /*AVR32EA32*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR32EA32*/ 444, rgftab_avr16ea28}, // Register file + + //AVR32EB32 atdf // Sources + {"AVR32EB32", 401, F_AVR8X, {0x1E, 0x95, 0x2A}, // ID + /*AVR32EB32*/ 0, 0x08000, 0x040, 1, 0x0100, 0x01400, 0x0200, 8, 0x7400, 0x0c00, // Mem + /*AVR32EB32*/ 16, 4, 31, vtab_avr32eb32, 18, cfgtab_avr16eb14, // ISRs, Config + /*AVR32EB32*/ 393, rgftab_avr16eb20}, // Register file //AVR32DA48 atdf, avrdude // Sources {"AVR32DA48", 346, F_AVR8X, {0x1E, 0x95, 0x32}, // ID @@ -2385,8 +2409,8 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR64EA28 atdf, avrdude // Sources {"AVR64EA28", 354, F_AVR8X, {0x1E, 0x96, 0x20}, // ID /*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 + /*AVR64EA28*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR64EA28*/ 444, rgftab_avr16ea28}, // Register file //AVR64DA32 atdf, avrdude // Sources {"AVR64DA32", 355, F_AVR8X, {0x1E, 0x96, 0x14}, // ID @@ -2415,8 +2439,8 @@ const Avrintel uP_table[] = { // Value of -1 typically means unknown //AVR64EA32 atdf, avrdude // Sources {"AVR64EA32", 358, F_AVR8X, {0x1E, 0x96, 0x1F}, // ID /*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 + /*AVR64EA32*/ 16, 4, 43, vtab_avr64ea32, 16, cfgtab_avr64ea48, // ISRs, Config + /*AVR64EA32*/ 444, rgftab_avr16ea28}, // Register file //AVR64DA48 atdf, avrdude // Sources {"AVR64DA48", 359, F_AVR8X, {0x1E, 0x96, 0x13}, // ID @@ -7259,6 +7283,41 @@ const char * const vtab_avr16eb32[vts_avr16eb32] = { "NVMCTRL_EEREADY/NVMCTRL_FLREADY/NVMCTRL_NVMREADY", // 30: NVM EEPROM Ready/NVM Flash Ready/NVM Ready }; +// AVR32EB32 AVR32EB28 AVR32EB20 AVR32EB14 +const char * const vtab_avr32eb32[vts_avr32eb32] = { + "RESET", // 0: Reset (various reasons) + "CRCSCAN_NMI", // 1: CRCSCAN Non-maskable Interrupt + "BOD_VLM", // 2: Brown-out Detector Voltage Level Monitor + "RTC_CNT", // 3: RTC Counter Interrupt + "RTC_PIT", // 4: RTC Periodic Interrupt Timer + "CCL_CCL", // 5: Configurable Custom Logic + "PORTA_PORT", // 6: Interrupt PORT A + "WEX0_FAULTDET/WEX0_FDFEVA/WEX0_FDFEVB/WEX0_FDFEVC", // 7: Waveform Extention 0 Fault Detection/Waveform Extention 0 Fault Detection on Event Input A/Waveform Extention 0 Fault Detection on Event Input B/Waveform Extention 0 Fault Detection on Event Input C + "TCE0_OVF", // 8: TC E0 Overflow + "TCE0_CMP0", // 9: TC E0 Compare 0 + "TCE0_CMP1", // 10: TC E0 Compare 1 + "TCE0_CMP2", // 11: TC E0 Compare 2 + "TCE0_CMP3", // 12: TC E0 Compare 3 + "TCB0_INT", // 13: TC B0 Interrupt + "TCB1_INT", // 14: TC B1 Interrupt + "TWI0_TWIP", // 15: 2-Wire Interface 0 Peripheral + "TWI0_TWIM", // 16: 2-Wire Interface 0 Controller + "SPI0_INT", // 17: SPI 0 Interrupt + "USART0_RXC", // 18: USART 0 Receive Complete + "USART0_DRE", // 19: USART 0 Data Register Empty + "USART0_TXC", // 20: USART 0 Transmit Complete + "PORTD_PORT", // 21: Interrupt PORT D + "TCF0_INT", // 22: TC F0 Interrupt + "AC0_AC", // 23: AC0 AC Interrupt + "ADC0_ERROR", // 24: ADC 0 Error + "ADC0_RESRDY", // 25: ADC 0 Result Ready + "ADC0_SAMPRDY", // 26: ADC 0 Sample Ready + "AC1_AC", // 27: AC1 AC Interrupt + "PORTC_PORT", // 28: Interrupt PORT C + "PORTF_PORT", // 29: Interrupt PORT F + "NVMCTRL_EEREADY/NVMCTRL_FLREADY/NVMCTRL_NVMREADY", // 30: NVM EEPROM Ready/NVM Flash Ready/NVM Ready +}; + // AVR32DA48 const char * const vtab_avr32da48[vts_avr32da48] = { "RESET", // 0: Reset (various reasons) @@ -7447,6 +7506,12 @@ const char * const vtab_avr64ea32[vts_avr64ea32] = { "USART2_RXC", // 34: USART 2 Receive Complete "USART2_DRE", // 35: USART 2 Data Register Empty "USART2_TXC", // 36: USART 2 Transmit Complete + "TCB3_INT", // 37: TC B3 Interrupt + "TCA1_LUNF/TCA1_OVF", // 38: TC A1 Low Underflow/TC A1 Overflow + "TCA1_HUNF", // 39: TC A1 High Underflow + "TCA1_CMP0/TCA1_LCMP0", // 40: TC A1 Compare 0/TC A1 Low Compare 0 + "TCA1_CMP1/TCA1_LCMP1", // 41: TC A1 Compare 1/TC A1 Low Compare 1 + "TCA1_CMP2/TCA1_LCMP2", // 42: TC A1 Compare 2/TC A1 Low Compare 2 }; // AVR64EA48 AVR32EA48 AVR16EA48 @@ -9359,12 +9424,12 @@ static const Configvalue _values_eesave_atmega328[2] = { * ATtiny3216 ATtiny3217 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 * ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 * AVR16DU20 AVR16EB20 AVR16DD28 AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 - * AVR16EB32 AVR16EA48 AVR32DU14 AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 - * AVR32EA28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 - * AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 - * AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S - * AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 - * AVR128DA64S AVR128DB64 + * AVR16EB32 AVR16EA48 AVR32DU14 AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 + * AVR32DD28 AVR32DU28 AVR32EA28 AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 + * AVR32EB32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 + * AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 + * AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 + * AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_eesave_attiny204[2] = { {0, "eex_erased", "EEPROM content is erased during chip erase"}, @@ -9673,8 +9738,8 @@ static const Configvalue _values_bodlevel_avr32dd14[4] = { }; /* - * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 + * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EB14 + * AVR32EB20 AVR32EA28 AVR32EB28 AVR32EA32 AVR32EB32 AVR32EA48 AVR64EA28 AVR64EA32 */ static const Configvalue _values_bodlevel_avr64ea48[4] = { {0, "bod_disabled", "brownout detection disabled"}, @@ -9940,12 +10005,12 @@ static const Configvalue _values_sut_atmega64hve[4] = { * ATtiny3216 ATtiny3217 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 * ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 * AVR16DU20 AVR16EB20 AVR16DD28 AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 - * AVR16EB32 AVR16EA48 AVR32DU14 AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 - * AVR32EA28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 - * AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 - * AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S - * AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 - * AVR128DA64S AVR128DB64 + * AVR16EB32 AVR16EA48 AVR32DU14 AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 + * AVR32DD28 AVR32DU28 AVR32EA28 AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 + * AVR32EB32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 + * AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 + * AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 + * AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_sut_attiny204[8] = { {0, "sut_0ms", "startup time 0 ms"}, @@ -10657,11 +10722,12 @@ static const Configvalue _values_wdtperiod_attiny204[12] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_wdtperiod_avr32dd14[12] = { {0x00, "t_off", "watchdog timer off"}, @@ -10704,11 +10770,12 @@ static const Configvalue _values_wdtwindow_attiny204[12] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_wdtwindow_avr32dd14[12] = { {0x00, "t_off", "window mode off"}, @@ -10742,11 +10809,12 @@ static const Configvalue _values_bodsleep_attiny204[3] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_bodsleep_avr32dd14[3] = { {0, "bod_disabled", "brownout detection disabled"}, @@ -10772,11 +10840,12 @@ static const Configvalue _values_bodactive_attiny204[4] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_bodactive_avr32dd14[4] = { {0, "bod_disabled", "brownout detection disabled"}, @@ -10801,11 +10870,12 @@ static const Configvalue _values_bodsampfreq_attiny204[2] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_bodsampfreq_avr32dd14[2] = { {0, "bod_128hz", "128 Hz sampling frequency"}, @@ -10826,8 +10896,8 @@ static const Configvalue _values_freqsel_attiny204[2] = { }; /* - * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 + * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EB14 + * AVR32EB20 AVR32EA28 AVR32EB28 AVR32EA32 AVR32EB32 AVR32EA48 AVR64EA28 AVR64EA32 */ static const Configvalue _values_freqsel_avr64ea48[2] = { {0, "fcpu_20mhz", "OSCHF running at 20 MHz"}, @@ -10966,8 +11036,8 @@ static const Configvalue _values_rstpincfg_avr32dd14[2] = { }; /* - * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 + * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EB14 + * AVR32EB20 AVR32EA28 AVR32EB28 AVR32EA32 AVR32EB32 AVR32EA48 AVR64EA28 AVR64EA32 */ static const Configvalue _values_rstpincfg_avr64ea48[2] = { {0, "none", "no external reset"}, @@ -10992,12 +11062,12 @@ static const Configvalue _values_rstpincfg_avr32da28[2] = { * ATtiny3216 ATtiny3217 ATtiny3224 ATtiny3226 ATtiny3227 ATmega808 ATmega809 ATmega1608 * ATmega1609 ATmega3208 ATmega3209 ATmega4808 ATmega4809 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 * AVR16DU20 AVR16EB20 AVR16DD28 AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 - * AVR16EB32 AVR16EA48 AVR32DU14 AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 - * AVR32EA28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 - * AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 - * AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S - * AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 - * AVR128DA64S AVR128DB64 + * AVR16EB32 AVR16EA48 AVR32DU14 AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 + * AVR32DD28 AVR32DU28 AVR32EA28 AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 + * AVR32EB32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 + * AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 + * AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 + * AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_crcsrc_attiny204[4] = { {0, "flash", "CRC of entire flash (boot, application code and application data)"}, @@ -11039,8 +11109,8 @@ static const Configvalue _values_updipincfg_avr32dd14[2] = { }; /* - * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EA28 - * AVR32EA32 AVR32EA48 AVR64EA28 AVR64EA32 + * AVR64EA48 AVR16EB14 AVR16EB20 AVR16EA28 AVR16EB28 AVR16EA32 AVR16EB32 AVR16EA48 AVR32EB14 + * AVR32EB20 AVR32EA28 AVR32EB28 AVR32EA32 AVR32EB32 AVR32EA48 AVR64EA28 AVR64EA32 */ static const Configvalue _values_updipincfg_avr64ea48[2] = { {0, "gpio", "PF7 configured as GPIO pin"}, @@ -11050,11 +11120,12 @@ static const Configvalue _values_updipincfg_avr64ea48[2] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_crcsel_avr32dd14[2] = { {0, "crc16", "enable CRC16"}, @@ -11074,11 +11145,12 @@ static const Configvalue _values_mvsyscfg_avr32dd14[2] = { /* * AVR32DD14 AVR64EA48 AVR16DD14 AVR16DU14 AVR16EB14 AVR16DD20 AVR16DU20 AVR16EB20 AVR16DD28 * AVR16DU28 AVR16EA28 AVR16EB28 AVR16DD32 AVR16DU32 AVR16EA32 AVR16EB32 AVR16EA48 AVR32DU14 - * AVR32DD20 AVR32DU20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 AVR32DA32 AVR32DB32 - * AVR32DD32 AVR32DU32 AVR32EA32 AVR32DA48 AVR32DB48 AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 - * AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 - * AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 AVR128DA28S AVR128DB28 AVR128DA32 - * AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 AVR128DA64 AVR128DA64S AVR128DB64 + * AVR32EB14 AVR32DD20 AVR32DU20 AVR32EB20 AVR32DA28 AVR32DB28 AVR32DD28 AVR32DU28 AVR32EA28 + * AVR32EB28 AVR32DA32 AVR32DB32 AVR32DD32 AVR32DU32 AVR32EA32 AVR32EB32 AVR32DA48 AVR32DB48 + * AVR32EA48 AVR64DD14 AVR64DD20 AVR64DA28 AVR64DB28 AVR64DD28 AVR64DU28 AVR64EA28 AVR64DA32 + * AVR64DB32 AVR64DD32 AVR64DU32 AVR64EA32 AVR64DA48 AVR64DB48 AVR64DA64 AVR64DB64 AVR128DA28 + * AVR128DA28S AVR128DB28 AVR128DA32 AVR128DA32S AVR128DB32 AVR128DA48 AVR128DA48S AVR128DB48 + * AVR128DA64 AVR128DA64S AVR128DB64 */ static const Configvalue _values_key_avr32dd14[2] = { {0x5cc5c55c, "nolock", "no locks"}, @@ -11114,8 +11186,8 @@ static const Configvalue _values_usbsink_avr16du14[2] = { /* * AVR16DU14 AVR16EB14 AVR16DU20 AVR16EB20 AVR16DU28 AVR16EB28 AVR16DU32 AVR16EB32 AVR32DU14 - * AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 AVR128DA28S AVR128DA32S AVR128DA48S - * AVR128DA64S + * AVR32EB14 AVR32DU20 AVR32EB20 AVR32DU28 AVR32EB28 AVR32DU32 AVR32EB32 AVR64DU28 AVR64DU32 + * AVR128DA28S AVR128DA32S AVR128DA48S AVR128DA64S */ static const Configvalue _values_nvmlevel_avr16du14[2] = { {2, "nvmaccdis", "NVM access through UPDI disabled"}, @@ -11124,8 +11196,8 @@ static const Configvalue _values_nvmlevel_avr16du14[2] = { /* * AVR16DU14 AVR16EB14 AVR16DU20 AVR16EB20 AVR16DU28 AVR16EB28 AVR16DU32 AVR16EB32 AVR32DU14 - * AVR32DU20 AVR32DU28 AVR32DU32 AVR64DU28 AVR64DU32 AVR128DA28S AVR128DA32S AVR128DA48S - * AVR128DA64S + * AVR32EB14 AVR32DU20 AVR32EB20 AVR32DU28 AVR32EB28 AVR32DU32 AVR32EB32 AVR64DU28 AVR64DU32 + * AVR128DA28S AVR128DA32S AVR128DA48S AVR128DA64S */ static const Configvalue _values_nvmkey_avr16du14[2] = { {0x00, "notact", "not active"}, @@ -13109,7 +13181,7 @@ const Configitem cfgtab_avr16du14[20] = { {"key", 2, _values_key_avr32dd14, "lock", 0, 0xffffffff, 0, 0x5cc5c55c, "lock key"}, }; -// AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 +// AVR16EB14 AVR16EB20 AVR16EB28 AVR16EB32 AVR32EB14 AVR32EB20 AVR32EB28 AVR32EB32 const Configitem cfgtab_avr16eb14[18] = { {"wdtperiod", 12, _values_wdtperiod_avr32dd14, "wdtcfg", 0, 0x0f, 0, 0x00, "watchdog timeout period"}, {"wdtwindow", 12, _values_wdtwindow_avr32dd14, "wdtcfg", 0, 0xf0, 4, 0x00, "watchdog window timeout period"}, @@ -44564,7 +44636,7 @@ const Register_file rgftab_avr16du14[371] = { // I/O memory [0, 4159] {"nvmctrl.addr", 0x100c, 4, -1, -1, "address register (32 bits)"}, }; -// AVR16EB14 +// AVR16EB14 AVR32EB14 const Register_file rgftab_avr16eb14[391] = { // I/O memory [0, 4159] {"vporta.dir", 0x0000, 1, -1, 0x00, "data direction register"}, {"vporta.out", 0x0001, 1, -1, 0x00, "I/O port output register"}, @@ -45335,7 +45407,7 @@ const Register_file rgftab_avr16du20[372] = { // I/O memory [0, 4159] {"nvmctrl.addr", 0x100c, 4, -1, -1, "address register (32 bits)"}, }; -// AVR16EB20 AVR16EB28 AVR16EB32 +// AVR16EB20 AVR16EB28 AVR16EB32 AVR32EB20 AVR32EB28 AVR32EB32 const Register_file rgftab_avr16eb20[393] = { // I/O memory [0, 4159] {"vporta.dir", 0x0000, 1, -1, 0x00, "data direction register"}, {"vporta.out", 0x0001, 1, -1, 0x00, "I/O port output register"}, @@ -45733,7 +45805,7 @@ const Register_file rgftab_avr16eb20[393] = { // I/O memory [0, 4159] }; // AVR16EA28 AVR16EA32 AVR32EA28 AVR32EA32 AVR64EA28 AVR64EA32 -const Register_file rgftab_avr16ea28[402] = { // I/O memory [0, 4159] +const Register_file rgftab_avr16ea28[444] = { // I/O memory [0, 4159] {"vporta.dir", 0x0000, 1, -1, 0x00, "data direction register"}, {"vporta.out", 0x0001, 1, -1, 0x00, "I/O port output register"}, {"vporta.in", 0x0002, 1, -1, 0x00, "I/O port input register"}, @@ -46096,6 +46168,38 @@ const Register_file rgftab_avr16ea28[402] = { // I/O memory [0, 4159] {"tca0.cmp0buf", 0x0a38, 2, -1, -1, "compare 0 buffer register (16 bits)"}, {"tca0.cmp1buf", 0x0a3a, 2, -1, -1, "compare 1 buffer register (16 bits)"}, {"tca0.cmp2buf", 0x0a3c, 2, -1, -1, "compare 2 buffer register (16 bits)"}, + {"tca1.ctrla", 0x0a40, 1, -1, 0x00, "control register A"}, + {"tca1.ctrlb", 0x0a41, 1, -1, 0x00, "control register B"}, + {"tca1.ctrlc", 0x0a42, 1, -1, 0x00, "control register C"}, + {"tca1.ctrld", 0x0a43, 1, -1, 0x00, "control register D"}, + {"tca1.ctrleclr", 0x0a44, 1, -1, 0x00, "control register E clear"}, + {"tca1.ctrleset", 0x0a45, 1, -1, 0x00, "control register E set"}, + {"tca1.ctrlfclr", 0x0a46, 1, -1, 0x00, "control register F clear"}, + {"tca1.ctrlfset", 0x0a47, 1, -1, 0x00, "control register F set"}, + {"tca1.evctrl", 0x0a49, 1, -1, 0x00, "event control register"}, + {"tca1.intctrl", 0x0a4a, 1, -1, 0x00, "interrupt control register"}, + {"tca1.intflags", 0x0a4b, 1, -1, 0x00, "interrupt flags register"}, + {"tca1.dbgctrl", 0x0a4e, 1, -1, 0x00, "debug control register"}, + {"tca1.temp", 0x0a4f, 1, -1, -1, "temporary register for 16-bit access"}, + {"tca1.cnt", 0x0a60, 2, -1, -1, "counter (16 bits)"}, + {"tca1.lcnt", 0x0a60, 1, -1, -1, "low byte counter"}, + {"tca1.hcnt", 0x0a61, 1, -1, -1, "high byte counter"}, + {"tca1.per", 0x0a66, 2, -1, -1, "period register (16 bits)"}, + {"tca1.lper", 0x0a66, 1, -1, -1, "low byte period register"}, + {"tca1.hper", 0x0a67, 1, -1, -1, "high byte period register"}, + {"tca1.cmp0", 0x0a68, 2, -1, -1, "compare 0 register (16 bits)"}, + {"tca1.lcmp0", 0x0a68, 1, -1, -1, "low byte compare register"}, + {"tca1.hcmp0", 0x0a69, 1, -1, -1, "high byte compare register 0"}, + {"tca1.cmp1", 0x0a6a, 2, -1, -1, "compare 1 register (16 bits)"}, + {"tca1.lcmp1", 0x0a6a, 1, -1, -1, "low byte compare register"}, + {"tca1.hcmp1", 0x0a6b, 1, -1, -1, "high byte compare register 1"}, + {"tca1.cmp2", 0x0a6c, 2, -1, -1, "compare 2 register (16 bits)"}, + {"tca1.lcmp2", 0x0a6c, 1, -1, -1, "low byte compare register"}, + {"tca1.hcmp2", 0x0a6d, 1, -1, -1, "high byte compare register 2"}, + {"tca1.perbuf", 0x0a76, 2, -1, -1, "period buffer register (16 bits)"}, + {"tca1.cmp0buf", 0x0a78, 2, -1, -1, "compare 0 buffer register (16 bits)"}, + {"tca1.cmp1buf", 0x0a7a, 2, -1, -1, "compare 1 buffer register (16 bits)"}, + {"tca1.cmp2buf", 0x0a7c, 2, -1, -1, "compare 2 buffer register (16 bits)"}, {"tcb0.ctrla", 0x0b00, 1, -1, 0x00, "control register A"}, {"tcb0.ctrlb", 0x0b01, 1, -1, 0x00, "control register B"}, {"tcb0.evctrl", 0x0b04, 1, -1, 0x00, "event control register"}, @@ -46126,6 +46230,16 @@ const Register_file rgftab_avr16ea28[402] = { // I/O memory [0, 4159] {"tcb2.temp", 0x0b29, 1, -1, -1, "temporary register for 16-bit access"}, {"tcb2.cnt", 0x0b2a, 2, -1, 0x0000, "counter (16 bits)"}, {"tcb2.ccmp", 0x0b2c, 2, -1, -1, "compare or capture register (16 bits)"}, + {"tcb3.ctrla", 0x0b30, 1, -1, 0x00, "control register A"}, + {"tcb3.ctrlb", 0x0b31, 1, -1, 0x00, "control register B"}, + {"tcb3.evctrl", 0x0b34, 1, -1, 0x00, "event control register"}, + {"tcb3.intctrl", 0x0b35, 1, -1, 0x00, "interrupt control register"}, + {"tcb3.intflags", 0x0b36, 1, -1, 0x00, "interrupt flags register"}, + {"tcb3.status", 0x0b37, 1, -1, 0x00, "status register"}, + {"tcb3.dbgctrl", 0x0b38, 1, -1, 0x00, "debug control register"}, + {"tcb3.temp", 0x0b39, 1, -1, -1, "temporary register for 16-bit access"}, + {"tcb3.cnt", 0x0b3a, 2, -1, 0x0000, "counter (16 bits)"}, + {"tcb3.ccmp", 0x0b3c, 2, -1, -1, "compare or capture register (16 bits)"}, {"syscfg.revid", 0x0f01, 1, -1, -1, "revision ID register"}, {"syscfg.ocdmctrl", 0x0f04, 1, -1, -1, "OCD message control register"}, {"syscfg.ocdmstatus", 0x0f05, 1, -1, 0x00, "OCD message status register"}, diff --git a/src/libavrdude-avrintel.h b/src/libavrdude-avrintel.h index 2208fabf..9f9512cf 100644 --- a/src/libavrdude-avrintel.h +++ b/src/libavrdude-avrintel.h @@ -12,7 +12,7 @@ * Meta-author Stefan Rueger * * v 1.40 - * 31.08.2024 + * 16.11.2024 * */ @@ -82,7 +82,7 @@ typedef struct { // Value of -1 typically means unknown #define UB_N_MCU 2040 // mcuid is in 0..2039 -extern const Avrintel uP_table[398]; +extern const Avrintel uP_table[402]; // MCU id: running number in arbitrary order; once assigned never change for backward compatibility @@ -441,18 +441,22 @@ extern const Avrintel uP_table[398]; #define id_avr16ea48 335u #define id_avr32dd14 336u #define id_avr32du14 390u +#define id_avr32eb14 398u #define id_avr32dd20 337u #define id_avr32du20 391u +#define id_avr32eb20 399u #define id_avr32da28 338u #define id_avr32db28 339u #define id_avr32dd28 340u #define id_avr32du28 392u #define id_avr32ea28 341u +#define id_avr32eb28 400u #define id_avr32da32 342u #define id_avr32db32 343u #define id_avr32dd32 344u #define id_avr32du32 393u #define id_avr32ea32 345u +#define id_avr32eb32 401u #define id_avr32da48 346u #define id_avr32db48 347u #define id_avr32ea48 348u @@ -816,27 +820,31 @@ extern const Avrintel uP_table[398]; #define vts_avr16eb20 31 #define vts_avr16dd28 36 #define vts_avr16du28 34 -#define vts_avr16ea28 37 +#define vts_avr16ea28 43 #define vts_avr16eb28 31 #define vts_avr16dd32 36 #define vts_avr16du32 34 -#define vts_avr16ea32 37 +#define vts_avr16ea32 43 #define vts_avr16eb32 31 #define vts_avr16ea48 45 #define vts_avr32dd14 36 #define vts_avr32du14 34 +#define vts_avr32eb14 31 #define vts_avr32dd20 36 #define vts_avr32du20 34 +#define vts_avr32eb20 31 #define vts_avr32da28 41 #define vts_avr32db28 42 #define vts_avr32dd28 36 #define vts_avr32du28 34 -#define vts_avr32ea28 37 +#define vts_avr32ea28 43 +#define vts_avr32eb28 31 #define vts_avr32da32 44 #define vts_avr32db32 44 #define vts_avr32dd32 36 #define vts_avr32du32 34 -#define vts_avr32ea32 37 +#define vts_avr32ea32 43 +#define vts_avr32eb32 31 #define vts_avr32da48 61 #define vts_avr32db48 61 #define vts_avr32ea48 45 @@ -846,12 +854,12 @@ extern const Avrintel uP_table[398]; #define vts_avr64db28 42 #define vts_avr64dd28 36 #define vts_avr64du28 34 -#define vts_avr64ea28 37 +#define vts_avr64ea28 43 #define vts_avr64da32 44 #define vts_avr64db32 44 #define vts_avr64dd32 36 #define vts_avr64du32 34 -#define vts_avr64ea32 37 +#define vts_avr64ea32 43 #define vts_avr64da48 58 #define vts_avr64db48 61 #define vts_avr64ea48 45 @@ -1200,27 +1208,31 @@ extern const Avrintel uP_table[398]; #define vbu_avr16eb20 31 #define vbu_avr16dd28 36 #define vbu_avr16du28 34 -#define vbu_avr16ea28 37 +#define vbu_avr16ea28 43 #define vbu_avr16eb28 31 #define vbu_avr16dd32 36 #define vbu_avr16du32 34 -#define vbu_avr16ea32 37 +#define vbu_avr16ea32 43 #define vbu_avr16eb32 31 #define vbu_avr16ea48 45 #define vbu_avr32dd14 36 #define vbu_avr32du14 34 +#define vbu_avr32eb14 31 #define vbu_avr32dd20 36 #define vbu_avr32du20 34 +#define vbu_avr32eb20 31 #define vbu_avr32da28 41 #define vbu_avr32db28 42 #define vbu_avr32dd28 36 #define vbu_avr32du28 34 -#define vbu_avr32ea28 37 +#define vbu_avr32ea28 43 +#define vbu_avr32eb28 31 #define vbu_avr32da32 41 #define vbu_avr32db32 44 #define vbu_avr32dd32 36 #define vbu_avr32du32 34 -#define vbu_avr32ea32 37 +#define vbu_avr32ea32 43 +#define vbu_avr32eb32 31 #define vbu_avr32da48 58 #define vbu_avr32db48 59 #define vbu_avr32ea48 45 @@ -1230,12 +1242,12 @@ extern const Avrintel uP_table[398]; #define vbu_avr64db28 42 #define vbu_avr64dd28 36 #define vbu_avr64du28 34 -#define vbu_avr64ea28 37 +#define vbu_avr64ea28 43 #define vbu_avr64da32 41 #define vbu_avr64db32 44 #define vbu_avr64dd32 36 #define vbu_avr64du32 34 -#define vbu_avr64ea32 37 +#define vbu_avr64ea32 43 #define vbu_avr64da48 58 #define vbu_avr64db48 59 #define vbu_avr64ea48 45 @@ -1690,6 +1702,11 @@ extern const char * const vtab_avr16eb32[31]; #define vtab_avr16eb20 vtab_avr16eb32 #define vtab_avr16eb14 vtab_avr16eb32 +extern const char * const vtab_avr32eb32[31]; +#define vtab_avr32eb28 vtab_avr32eb32 +#define vtab_avr32eb20 vtab_avr32eb32 +#define vtab_avr32eb14 vtab_avr32eb32 + extern const char * const vtab_avr32da48[61]; extern const char * const vtab_avr64dd32[36]; @@ -1716,7 +1733,7 @@ extern const char * const vtab_avr64du32[34]; #define vtab_avr16du20 vtab_avr64du32 #define vtab_avr16du14 vtab_avr64du32 -extern const char * const vtab_avr64ea32[37]; +extern const char * const vtab_avr64ea32[43]; #define vtab_avr64ea28 vtab_avr64ea32 #define vtab_avr32ea32 vtab_avr64ea32 #define vtab_avr32ea28 vtab_avr64ea32 @@ -2231,6 +2248,10 @@ extern const Configitem cfgtab_avr16eb14[18]; #define cfgtab_avr16eb20 cfgtab_avr16eb14 #define cfgtab_avr16eb28 cfgtab_avr16eb14 #define cfgtab_avr16eb32 cfgtab_avr16eb14 +#define cfgtab_avr32eb14 cfgtab_avr16eb14 +#define cfgtab_avr32eb20 cfgtab_avr16eb14 +#define cfgtab_avr32eb28 cfgtab_avr16eb14 +#define cfgtab_avr32eb32 cfgtab_avr16eb14 extern const Configitem cfgtab_avr32da28[15]; #define cfgtab_avr32da32 cfgtab_avr32da28 @@ -2720,6 +2741,7 @@ extern const Register_file rgftab_avr16du14[371]; #define rgftab_avr32du14 rgftab_avr16du14 extern const Register_file rgftab_avr16eb14[391]; +#define rgftab_avr32eb14 rgftab_avr16eb14 extern const Register_file rgftab_avr16du20[372]; #define rgftab_avr16du28 rgftab_avr16du20 @@ -2733,8 +2755,11 @@ extern const Register_file rgftab_avr16du20[372]; extern const Register_file rgftab_avr16eb20[393]; #define rgftab_avr16eb28 rgftab_avr16eb20 #define rgftab_avr16eb32 rgftab_avr16eb20 +#define rgftab_avr32eb20 rgftab_avr16eb20 +#define rgftab_avr32eb28 rgftab_avr16eb20 +#define rgftab_avr32eb32 rgftab_avr16eb20 -extern const Register_file rgftab_avr16ea28[402]; +extern const Register_file rgftab_avr16ea28[444]; #define rgftab_avr16ea32 rgftab_avr16ea28 #define rgftab_avr32ea28 rgftab_avr16ea28 #define rgftab_avr32ea32 rgftab_avr16ea28