{$IFNDEF FPC_DOTTEDUNITS} unit samd51p19a; {$ENDIF FPC_DOTTEDUNITS} (* Copyright (c) 2020 Microchip Technology Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the Licence at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. *) interface {$PACKRECORDS C} {$GOTO ON} {$SCOPEDENUMS ON} {$DEFINE INTERFACE} {$UNDEF IMPLEMENTATION} {$DEFINE __CORTEXM4} {$DEFINE __NVIC_PRIO_BITS3 } const __FPU_PRESENT=1; __MPU_PRESENT=1; __NVIC_PRIO_BITS=3; type TIRQn_Enum = ( NonMaskableInt_IRQn = -14, HardFault_IRQn = -13, MemoryManagement_IRQn = -12, BusFault_IRQn = -11, UsageFault_IRQn = -10, SVCall_IRQn = -5, DebugMonitor_IRQn = -4, PendSV_IRQn = -2, SysTick_IRQn = -1, PM_IRQn = 0, MCLK_IRQn = 1, OSCCTRL_0_IRQn = 2, OSCCTRL_1_IRQn = 3, OSCCTRL_2_IRQn = 4, OSCCTRL_3_IRQn = 5, OSCCTRL_4_IRQn = 6, OSC32KCTRL_IRQn = 7, SUPC_0_IRQn = 8, SUPC_1_IRQn = 9, WDT_IRQn = 10, RTC_IRQn = 11, EIC_0_IRQn = 12, EIC_1_IRQn = 13, EIC_2_IRQn = 14, EIC_3_IRQn = 15, EIC_4_IRQn = 16, EIC_5_IRQn = 17, EIC_6_IRQn = 18, EIC_7_IRQn = 19, EIC_8_IRQn = 20, EIC_9_IRQn = 21, EIC_10_IRQn = 22, EIC_11_IRQn = 23, EIC_12_IRQn = 24, EIC_13_IRQn = 25, EIC_14_IRQn = 26, EIC_15_IRQn = 27, FREQM_IRQn = 28, NVMCTRL_0_IRQn = 29, NVMCTRL_1_IRQn = 30, DMAC_0_IRQn = 31, DMAC_1_IRQn = 32, DMAC_2_IRQn = 33, DMAC_3_IRQn = 34, DMAC_4_IRQn = 35, EVSYS_0_IRQn = 36, EVSYS_1_IRQn = 37, EVSYS_2_IRQn = 38, EVSYS_3_IRQn = 39, EVSYS_4_IRQn = 40, PAC_IRQn = 41, RAMECC_IRQn = 45, SERCOM0_0_IRQn = 46, SERCOM0_1_IRQn = 47, SERCOM0_2_IRQn = 48, SERCOM0_3_IRQn = 49, SERCOM1_0_IRQn = 50, SERCOM1_1_IRQn = 51, SERCOM1_2_IRQn = 52, SERCOM1_3_IRQn = 53, SERCOM2_0_IRQn = 54, SERCOM2_1_IRQn = 55, SERCOM2_2_IRQn = 56, SERCOM2_3_IRQn = 57, SERCOM3_0_IRQn = 58, SERCOM3_1_IRQn = 59, SERCOM3_2_IRQn = 60, SERCOM3_3_IRQn = 61, SERCOM4_0_IRQn = 62, SERCOM4_1_IRQn = 63, SERCOM4_2_IRQn = 64, SERCOM4_3_IRQn = 65, SERCOM5_0_IRQn = 66, SERCOM5_1_IRQn = 67, SERCOM5_2_IRQn = 68, SERCOM5_3_IRQn = 69, SERCOM6_0_IRQn = 70, SERCOM6_1_IRQn = 71, SERCOM6_2_IRQn = 72, SERCOM6_3_IRQn = 73, SERCOM7_0_IRQn = 74, SERCOM7_1_IRQn = 75, SERCOM7_2_IRQn = 76, SERCOM7_3_IRQn = 77, USB_0_IRQn = 80, USB_1_IRQn = 81, USB_2_IRQn = 82, USB_3_IRQn = 83, TCC0_0_IRQn = 85, TCC0_1_IRQn = 86, TCC0_2_IRQn = 87, TCC0_3_IRQn = 88, TCC0_4_IRQn = 89, TCC0_5_IRQn = 90, TCC0_6_IRQn = 91, TCC1_0_IRQn = 92, TCC1_1_IRQn = 93, TCC1_2_IRQn = 94, TCC1_3_IRQn = 95, TCC1_4_IRQn = 96, TCC2_0_IRQn = 97, TCC2_1_IRQn = 98, TCC2_2_IRQn = 99, TCC2_3_IRQn = 100, TCC3_0_IRQn = 101, TCC3_1_IRQn = 102, TCC3_2_IRQn = 103, TCC4_0_IRQn = 104, TCC4_1_IRQn = 105, TCC4_2_IRQn = 106, TC0_IRQn = 107, TC1_IRQn = 108, TC2_IRQn = 109, TC3_IRQn = 110, TC4_IRQn = 111, TC5_IRQn = 112, TC6_IRQn = 113, TC7_IRQn = 114, PDEC_0_IRQn = 115, PDEC_1_IRQn = 116, PDEC_2_IRQn = 117, ADC0_0_IRQn = 118, ADC0_1_IRQn = 119, ADC1_0_IRQn = 120, ADC1_1_IRQn = 121, AC_IRQn = 122, DAC_0_IRQn = 123, DAC_1_IRQn = 124, DAC_2_IRQn = 125, DAC_3_IRQn = 126, DAC_4_IRQn = 127, I2S_IRQn = 128, PCC_IRQn = 129, AES_IRQn = 130, TRNG_IRQn = 131, ICM_IRQn = 132, PUKCC_IRQn = 133, QSPI_IRQn = 134, SDHC0_IRQn = 135, SDHC1_IRQn = 136 ); TAC_Registers = record CTRLA : byte; //0000 Control A CTRLB : byte; //0001 Control B EVCTRL : word; //0002 Event Control INTENCLR : byte; //0004 Interrupt Enable Clear INTENSET : byte; //0005 Interrupt Enable Set INTFLAG : byte; //0006 Interrupt Flag Status and Clear STATUSA : byte; //0007 Status A STATUSB : byte; //0008 Status B DBGCTRL : byte; //0009 Debug Control WINCTRL : byte; //000A Window Control RESERVED0 : byte; SCALER : array[0..1] of byte; //000C Scaler n RESERVED1 : word; COMPCTRL : array[0..1] of longWord; //0010 Comparator Control n RESERVED2 : array[1..8] of byte; SYNCBUSY : longWord; //0020 Synchronization Busy CALIB : word; //0024 Calibration end; TADC_Registers = record CTRLA : word; //0000 Control A EVCTRL : byte; //0002 Event Control DBGCTRL : byte; //0003 Debug Control INPUTCTRL : word; //0004 Input Control CTRLB : word; //0006 Control B REFCTRL : byte; //0008 Reference Control RESERVED0 : byte; AVGCTRL : byte; //000A Average Control SAMPCTRL : byte; //000B Sample Time Control WINLT : word; //000C Window Monitor Lower Threshold WINUT : word; //000E Window Monitor Upper Threshold GAINCORR : word; //0010 Gain Correction OFFSETCORR : word; //0012 Offset Correction SWTRIG : byte; //0014 Software Trigger RESERVED1 : array[1..23] of byte; INTENCLR : byte; //002C Interrupt Enable Clear INTENSET : byte; //002D Interrupt Enable Set INTFLAG : byte; //002E Interrupt Flag Status and Clear STATUS : byte; //002F Status SYNCBUSY : longWord; //0030 Synchronization Busy DSEQDATA : longWord; //0034 DMA Sequencial Data DSEQCTRL : longWord; //0038 DMA Sequential Control DSEQSTAT : longWord; //003C DMA Sequencial Status RESULT : word; //0040 Result Conversion Value RESERVED2 : word; RESS : word; //0044 Last Sample Result RESERVED3 : word; CALIB : word; //0048 Calibration end; TAES_Registers = record CTRLA : longWord; //0000 Control A CTRLB : byte; //0004 Control B INTENCLR : byte; //0005 Interrupt Enable Clear INTENSET : byte; //0006 Interrupt Enable Set INTFLAG : byte; //0007 Interrupt Flag Status DATABUFPTR : byte; //0008 Data buffer pointer DBGCTRL : byte; //0009 Debug control RESERVED0 : word; KEYWORD : array[0..7] of longWord; //000C Keyword n RESERVED1 : array[1..12] of byte; INDATA : longWord; //0038 Indata INTVECTV : array[0..3] of longWord; //003C Initialisation Vector n RESERVED2 : array[1..16] of byte; HASHKEY : array[0..3] of longWord; //005C Hash key n GHASH : array[0..3] of longWord; //006C Galois Hash n RESERVED3 : longWord; CIPLEN : longWord; //0080 Cipher Length RANDSEED : longWord; //0084 Random Seed end; TCCL_Registers = record CTRL : byte; //0000 Control RESERVED0 : array[1..3] of byte; SEQCTRL : array[0..1] of byte; //0004 SEQ Control x RESERVED1 : word; LUTCTRL : array[0..3] of longWord; //0008 LUT Control x end; TCMCC_Registers = record &TYPE : longWord; //0000 Cache Type Register CFG : longWord; //0004 Cache Configuration Register CTRL : longWord; //0008 Cache Control Register SR : longWord; //000C Cache Status Register LCKWAY : longWord; //0010 Cache Lock per Way Register RESERVED0 : array[1..12] of byte; MAINT0 : longWord; //0020 Cache Maintenance Register 0 MAINT1 : longWord; //0024 Cache Maintenance Register 1 MCFG : longWord; //0028 Cache Monitor Configuration Register MEN : longWord; //002C Cache Monitor Enable Register MCTRL : longWord; //0030 Cache Monitor Control Register MSR : longWord; //0034 Cache Monitor Status Register end; TDAC_Registers = record CTRLA : byte; //0000 Control A CTRLB : byte; //0001 Control B EVCTRL : byte; //0002 Event Control RESERVED0 : byte; INTENCLR : byte; //0004 Interrupt Enable Clear INTENSET : byte; //0005 Interrupt Enable Set INTFLAG : byte; //0006 Interrupt Flag Status and Clear STATUS : byte; //0007 Status SYNCBUSY : longWord; //0008 Synchronization Busy DACCTRL : array[0..1] of word; //000C DAC n Control DATA : array[0..1] of word; //0010 DAC n Data DATABUF : array[0..1] of word; //0014 DAC n Data Buffer DBGCTRL : byte; //0018 Debug Control RESERVED1 : array[1..3] of byte; RESULT : array[0..1] of word; //001C Filter Result end; TDMAC_CHANNEL_Registers = record CHCTRLA : longWord; //0000 Channel n Control A CHCTRLB : byte; //0004 Channel n Control B CHPRILVL : byte; //0005 Channel n Priority Level CHEVCTRL : byte; //0006 Channel n Event Control RESERVED0 : array[1..5] of byte; CHINTENCLR : byte; //000C Channel n Interrupt Enable Clear CHINTENSET : byte; //000D Channel n Interrupt Enable Set CHINTFLAG : byte; //000E Channel n Interrupt Flag Status and Clear CHSTATUS : byte; //000F Channel n Status end; TDMAC_Registers = record CTRL : word; //0000 Control CRCCTRL : word; //0002 CRC Control CRCDATAIN : longWord; //0004 CRC Data Input CRCCHKSUM : longWord; //0008 CRC Checksum CRCSTATUS : byte; //000C CRC Status DBGCTRL : byte; //000D Debug Control RESERVED0 : word; SWTRIGCTRL : longWord; //0010 Software Trigger Control PRICTRL0 : longWord; //0014 Priority Control 0 RESERVED1 : array[1..8] of byte; INTPEND : word; //0020 Interrupt Pending RESERVED2 : word; INTSTATUS : longWord; //0024 Interrupt Status BUSYCH : longWord; //0028 Busy Channels PENDCH : longWord; //002C Pending Channels ACTIVE : longWord; //0030 Active Channel and Levels BASEADDR : longWord; //0034 Descriptor Memory Section Base Address WRBADDR : longWord; //0038 Write-Back Memory Section Base Address RESERVED3 : longWord; CHANNEL : array[0..31] of TDMAC_CHANNEL_Registers; //0040 end; TDMAC_DESCRIPTOR_Registers = record BTCTRL : word; //0000 Block Transfer Control BTCNT : word; //0002 Block Transfer Count SRCADDR : longWord; //0004 Block Transfer Source Address DSTADDR : longWord; //0008 Block Transfer Destination Address DESCADDR : longWord; //000C Next Descriptor Address end; TDSU_Registers = record CTRL : byte; //0000 Control STATUSA : byte; //0001 Status A STATUSB : byte; //0002 Status B RESERVED0 : byte; ADDR : longWord; //0004 Address LENGTH : longWord; //0008 Length DATA : longWord; //000C Data DCC : array[0..1] of longWord; //0010 Debug Communication Channel n DID : longWord; //0018 Device Identification CFG : longWord; //001C Configuration RESERVED1 : array[1..208] of byte; DCFG : array[0..1] of longWord; //00F0 Device Configuration RESERVED2 : array[1..3848] of byte; ENTRY0 : longWord; //1000 CoreSight ROM Table Entry 0 ENTRY1 : longWord; //1004 CoreSight ROM Table Entry 1 &END : longWord; //1008 CoreSight ROM Table End RESERVED3 : array[1..4032] of byte; MEMTYPE : longWord; //1FCC CoreSight ROM Table Memory Type PID4 : longWord; //1FD0 Peripheral Identification 4 PID5 : longWord; //1FD4 Peripheral Identification 5 PID6 : longWord; //1FD8 Peripheral Identification 6 PID7 : longWord; //1FDC Peripheral Identification 7 PID0 : longWord; //1FE0 Peripheral Identification 0 PID1 : longWord; //1FE4 Peripheral Identification 1 PID2 : longWord; //1FE8 Peripheral Identification 2 PID3 : longWord; //1FEC Peripheral Identification 3 CID0 : longWord; //1FF0 Component Identification 0 CID1 : longWord; //1FF4 Component Identification 1 CID2 : longWord; //1FF8 Component Identification 2 CID3 : longWord; //1FFC Component Identification 3 end; TEIC_Registers = record CTRLA : byte; //0000 Control A NMICTRL : byte; //0001 Non-Maskable Interrupt Control NMIFLAG : word; //0002 Non-Maskable Interrupt Flag Status and Clear SYNCBUSY : longWord; //0004 Synchronization Busy EVCTRL : longWord; //0008 Event Control INTENCLR : longWord; //000C Interrupt Enable Clear INTENSET : longWord; //0010 Interrupt Enable Set INTFLAG : longWord; //0014 Interrupt Flag Status and Clear ASYNCH : longWord; //0018 External Interrupt Asynchronous Mode CONFIG : array[0..1] of longWord; //001C External Interrupt Sense Configuration RESERVED0 : array[1..12] of byte; DEBOUNCEN : longWord; //0030 Debouncer Enable DPRESCALER : longWord; //0034 Debouncer Prescaler PINSTATE : longWord; //0038 Pin State end; TEVSYS_CHANNEL_Registers = record CHANNEL : longWord; //0000 Channel n Control CHINTENCLR : byte; //0004 Channel n Interrupt Enable Clear CHINTENSET : byte; //0005 Channel n Interrupt Enable Set CHINTFLAG : byte; //0006 Channel n Interrupt Flag Status and Clear CHSTATUS : byte; //0007 Channel n Status end; TEVSYS_Registers = record CTRLA : byte; //0000 Control RESERVED0 : array[1..3] of byte; SWEVT : longWord; //0004 Software Event PRICTRL : byte; //0008 Priority Control RESERVED1 : array[1..7] of byte; INTPEND : word; //0010 Channel Pending Interrupt RESERVED2 : word; INTSTATUS : longWord; //0014 Interrupt Status BUSYCH : longWord; //0018 Busy Channels READYUSR : longWord; //001C Ready Users CHANNEL : array[0..31] of TEVSYS_CHANNEL_Registers; //0020 USER : array[0..66] of longWord; //0120 User Multiplexer n end; TFREQM_Registers = record CTRLA : byte; //0000 Control A Register CTRLB : byte; //0001 Control B Register CFGA : word; //0002 Config A register RESERVED0 : longWord; INTENCLR : byte; //0008 Interrupt Enable Clear Register INTENSET : byte; //0009 Interrupt Enable Set Register INTFLAG : byte; //000A Interrupt Flag Register STATUS : byte; //000B Status Register SYNCBUSY : longWord; //000C Synchronization Busy Register VALUE : longWord; //0010 Count Value Register end; TGCLK_Registers = record CTRLA : byte; //0000 Control RESERVED0 : array[1..3] of byte; SYNCBUSY : longWord; //0004 Synchronization Busy RESERVED1 : array[1..24] of byte; GENCTRL : array[0..11] of longWord; //0020 Generic Clock Generator Control RESERVED2 : array[1..48] of byte; PCHCTRL : array[0..47] of longWord; //0080 Peripheral Clock Control end; THMATRIXB_PRS_Registers = record PRAS : longWord; //0000 Priority A for Slave PRBS : longWord; //0004 Priority B for Slave end; THMATRIXB_Registers = record PRS : array[0..15] of THMATRIXB_PRS_Registers; //0080 end; TICM_Registers = record CFG : longWord; //0000 Configuration CTRL : longWord; //0004 Control SR : longWord; //0008 Status RESERVED0 : longWord; IER : longWord; //0010 Interrupt Enable IDR : longWord; //0014 Interrupt Disable IMR : longWord; //0018 Interrupt Mask ISR : longWord; //001C Interrupt Status UASR : longWord; //0020 Undefined Access Status RESERVED1 : array[1..12] of byte; DSCR : longWord; //0030 Region Descriptor Area Start Address HASH : longWord; //0034 Region Hash Area Start Address UIHVAL : array[0..7] of longWord; //0038 User Initial Hash Value n end; TICM_DESCRIPTOR_Registers = record RADDR : longWord; //0000 Region Start Address RCFG : longWord; //0004 Region Configuration RCTRL : longWord; //0008 Region Control RNEXT : longWord; //000C Region Next Address end; TI2S_Registers = record CTRLA : byte; //0000 Control A RESERVED0 : array[1..3] of byte; CLKCTRL : array[0..1] of longWord; //0004 Clock Unit n Control INTENCLR : word; //000C Interrupt Enable Clear RESERVED1 : word; INTENSET : word; //0010 Interrupt Enable Set RESERVED2 : word; INTFLAG : word; //0014 Interrupt Flag Status and Clear RESERVED3 : word; SYNCBUSY : word; //0018 Synchronization Status RESERVED4 : array[1..6] of byte; TXCTRL : longWord; //0020 Tx Serializer Control RXCTRL : longWord; //0024 Rx Serializer Control RESERVED5 : array[1..8] of byte; TXDATA : longWord; //0030 Tx Data RXDATA : longWord; //0034 Rx Data end; TMCLK_Registers = record INTENCLR : byte; //0001 Interrupt Enable Clear INTENSET : byte; //0002 Interrupt Enable Set INTFLAG : byte; //0003 Interrupt Flag Status and Clear HSDIV : byte; //0004 HS Clock Division CPUDIV : byte; //0005 CPU Clock Division RESERVED0 : array[1..10] of byte; AHBMASK : longWord; //0010 AHB Mask APBAMASK : longWord; //0014 APBA Mask APBBMASK : longWord; //0018 APBB Mask APBCMASK : longWord; //001C APBC Mask APBDMASK : longWord; //0020 APBD Mask end; TNVMCTRL_Registers = record CTRLA : word; //0000 Control A RESERVED0 : word; CTRLB : word; //0004 Control B RESERVED1 : word; PARAM : longWord; //0008 NVM Parameter INTENCLR : word; //000C Interrupt Enable Clear INTENSET : word; //000E Interrupt Enable Set INTFLAG : word; //0010 Interrupt Flag Status and Clear STATUS : word; //0012 Status ADDR : longWord; //0014 Address RUNLOCK : longWord; //0018 Lock Section PBLDATA : array[0..1] of longWord; //001C Page Buffer Load Data x ECCERR : longWord; //0024 ECC Error Status Register DBGCTRL : byte; //0028 Debug Control RESERVED2 : byte; SEECFG : byte; //002A SmartEEPROM Configuration Register RESERVED3 : byte; SEESTAT : longWord; //002C SmartEEPROM Status Register end; TSW0_FUSES_Registers = record SW0_WORD_0 : longWord; //0000 SW0 Page Word 0 SW0_WORD_1 : longWord; //0004 SW0 Page Word 1 end; TTEMP_LOG_FUSES_Registers = record TEMP_LOG_WORD_0 : longWord; //0000 TEMP_LOG Page Word 0 TEMP_LOG_WORD_1 : longWord; //0004 TEMP_LOG Page Word 1 TEMP_LOG_WORD_2 : longWord; //0008 TEMP_LOG Page Word 2 end; TUSER_FUSES_Registers = record USER_WORD_0 : longWord; //0000 USER Page Word 0 USER_WORD_1 : longWord; //0004 USER Page Word 1 USER_WORD_2 : longWord; //0008 USER Page Word 2 end; TOSCCTRL_DPLL_Registers = record DPLLCTRLA : byte; //0000 DPLL Control A RESERVED0 : array[1..3] of byte; DPLLRATIO : longWord; //0004 DPLL Ratio Control DPLLCTRLB : longWord; //0008 DPLL Control B DPLLSYNCBUSY : longWord; //000C DPLL Synchronization Busy DPLLSTATUS : longWord; //0010 DPLL Status end; TOSCCTRL_Registers = record EVCTRL : byte; //0000 Event Control RESERVED0 : array[1..3] of byte; INTENCLR : longWord; //0004 Interrupt Enable Clear INTENSET : longWord; //0008 Interrupt Enable Set INTFLAG : longWord; //000C Interrupt Flag Status and Clear STATUS : longWord; //0010 Status XOSCCTRL : array[0..1] of longWord; //0014 External Multipurpose Crystal Oscillator Control DFLLCTRLA : byte; //001C DFLL48M Control A RESERVED1 : array[1..3] of byte; DFLLCTRLB : byte; //0020 DFLL48M Control B RESERVED2 : array[1..3] of byte; DFLLVAL : longWord; //0024 DFLL48M Value DFLLMUL : longWord; //0028 DFLL48M Multiplier DFLLSYNC : byte; //002C DFLL48M Synchronization RESERVED3 : array[1..3] of byte; DPLL : array[0..1] of TOSCCTRL_DPLL_Registers; //0030 end; TOSC32KCTRL_Registers = record INTENCLR : longWord; //0000 Interrupt Enable Clear INTENSET : longWord; //0004 Interrupt Enable Set INTFLAG : longWord; //0008 Interrupt Flag Status and Clear STATUS : longWord; //000C Power and Clocks Status RTCCTRL : byte; //0010 RTC Clock Selection RESERVED0 : array[1..3] of byte; XOSC32K : word; //0014 32kHz External Crystal Oscillator (XOSC32K) Control CFDCTRL : byte; //0016 Clock Failure Detector Control EVCTRL : byte; //0017 Event Control RESERVED1 : longWord; OSCULP32K : longWord; //001C 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) Control end; TPAC_Registers = record WRCTRL : longWord; //0000 Write control EVCTRL : byte; //0004 Event control RESERVED0 : array[1..3] of byte; INTENCLR : byte; //0008 Interrupt enable clear INTENSET : byte; //0009 Interrupt enable set RESERVED1 : array[1..6] of byte; INTFLAGAHB : longWord; //0010 Bridge interrupt flag status INTFLAGA : longWord; //0014 Peripheral interrupt flag status - Bridge A INTFLAGB : longWord; //0018 Peripheral interrupt flag status - Bridge B INTFLAGC : longWord; //001C Peripheral interrupt flag status - Bridge C INTFLAGD : longWord; //0020 Peripheral interrupt flag status - Bridge D RESERVED2 : array[1..16] of byte; STATUSA : longWord; //0034 Peripheral write protection status - Bridge A STATUSB : longWord; //0038 Peripheral write protection status - Bridge B STATUSC : longWord; //003C Peripheral write protection status - Bridge C STATUSD : longWord; //0040 Peripheral write protection status - Bridge D end; TPCC_Registers = record MR : longWord; //0000 Mode Register IER : longWord; //0004 Interrupt Enable Register IDR : longWord; //0008 Interrupt Disable Register IMR : longWord; //000C Interrupt Mask Register ISR : longWord; //0010 Interrupt Status Register RHR : longWord; //0014 Reception Holding Register RESERVED0 : array[1..200] of byte; WPMR : longWord; //00E0 Write Protection Mode Register WPSR : longWord; //00E4 Write Protection Status Register end; TPDEC_Registers = record CTRLA : longWord; //0000 Control A CTRLBCLR : byte; //0004 Control B Clear CTRLBSET : byte; //0005 Control B Set EVCTRL : word; //0006 Event Control INTENCLR : byte; //0008 Interrupt Enable Clear INTENSET : byte; //0009 Interrupt Enable Set INTFLAG : byte; //000A Interrupt Flag Status and Clear RESERVED0 : byte; STATUS : word; //000C Status RESERVED1 : byte; DBGCTRL : byte; //000F Debug Control SYNCBUSY : longWord; //0010 Synchronization Status PRESC : byte; //0014 Prescaler Value FILTER : byte; //0015 Filter Value RESERVED2 : word; PRESCBUF : byte; //0018 Prescaler Buffer Value FILTERBUF : byte; //0019 Filter Buffer Value RESERVED3 : word; COUNT : longWord; //001C Counter Value CC : array[0..1] of longWord; //0020 Channel n Compare Value RESERVED4 : array[1..8] of byte; CCBUF : array[0..1] of longWord; //0030 Channel Compare Buffer Value end; TPM_Registers = record CTRLA : byte; //0000 Control A SLEEPCFG : byte; //0001 Sleep Configuration RESERVED0 : word; INTENCLR : byte; //0004 Interrupt Enable Clear INTENSET : byte; //0005 Interrupt Enable Set INTFLAG : byte; //0006 Interrupt Flag Status and Clear RESERVED1 : byte; STDBYCFG : byte; //0008 Standby Configuration HIBCFG : byte; //0009 Hibernate Configuration BKUPCFG : byte; //000A Backup Configuration RESERVED2 : array[1..7] of byte; PWSAKDLY : byte; //0012 Power Switch Acknowledge Delay end; TPORT_GROUP_Registers = record DIR : longWord; //0000 Data Direction DIRCLR : longWord; //0004 Data Direction Clear DIRSET : longWord; //0008 Data Direction Set DIRTGL : longWord; //000C Data Direction Toggle &OUT : longWord; //0010 Data Output Value OUTCLR : longWord; //0014 Data Output Value Clear OUTSET : longWord; //0018 Data Output Value Set OUTTGL : longWord; //001C Data Output Value Toggle &IN : longWord; //0020 Data Input Value CTRL : longWord; //0024 Control WRCONFIG : longWord; //0028 Write Configuration EVCTRL : longWord; //002C Event Input Control PMUX : array[0..15] of byte; //0030 Peripheral Multiplexing PINCFG : array[0..31] of byte; //0040 Pin Configuration Res : array[$60..$7F] of byte; end; TPORT_Registers = record GROUP : array[0..3] of TPORT_GROUP_Registers; //0000 end; TPUKCC_Registers = record end; TQSPI_Registers = record CTRLA : longWord; //0000 Control A CTRLB : longWord; //0004 Control B BAUD : longWord; //0008 Baud Rate RXDATA : longWord; //000C Receive Data TXDATA : longWord; //0010 Transmit Data INTENCLR : longWord; //0014 Interrupt Enable Clear INTENSET : longWord; //0018 Interrupt Enable Set INTFLAG : longWord; //001C Interrupt Flag Status and Clear STATUS : longWord; //0020 Status Register RESERVED0 : array[1..12] of byte; INSTRADDR : longWord; //0030 Instruction Address INSTRCTRL : longWord; //0034 Instruction Code INSTRFRAME : longWord; //0038 Instruction Frame RESERVED1 : longWord; SCRAMBCTRL : longWord; //0040 Scrambling Mode SCRAMBKEY : longWord; //0044 Scrambling Key end; TRAMECC_Registers = record INTENCLR : byte; //0000 Interrupt Enable Clear INTENSET : byte; //0001 Interrupt Enable Set INTFLAG : byte; //0002 Interrupt Flag STATUS : byte; //0003 Status ERRADDR : longWord; //0004 Error Address RESERVED0 : array[1..7] of byte; DBGCTRL : byte; //000F Debug Control end; TRSTC_Registers = record RCAUSE : byte; //0000 Reset Cause RESERVED0 : byte; BKUPEXIT : byte; //0002 Backup Exit Source end; TRTCMODE0_Registers = record CTRLA : word; //0000 MODE0 Control A CTRLB : word; //0002 MODE0 Control B EVCTRL : longWord; //0004 MODE0 Event Control INTENCLR : word; //0008 MODE0 Interrupt Enable Clear INTENSET : word; //000A MODE0 Interrupt Enable Set INTFLAG : word; //000C MODE0 Interrupt Flag Status and Clear DBGCTRL : byte; //000E Debug Control RESERVED0 : byte; SYNCBUSY : longWord; //0010 MODE0 Synchronization Busy Status FREQCORR : byte; //0014 Frequency Correction RESERVED1 : array[1..3] of byte; COUNT : longWord; //0018 MODE0 Counter Value RESERVED2 : longWord; COMP : array[0..1] of longWord; //0020 MODE0 Compare n Value RESERVED3 : array[1..24] of byte; GP : array[0..3] of longWord; //0040 General Purpose RESERVED4 : array[1..16] of byte; TAMPCTRL : longWord; //0060 Tamper Control TIMESTAMP : longWord; //0064 MODE0 Timestamp TAMPID : longWord; //0068 Tamper ID RESERVED5 : array[1..20] of byte; BKUP : array[0..7] of longWord; //0080 Backup end; TRTCMODE1_Registers = record CTRLA : word; //0000 MODE1 Control A CTRLB : word; //0002 MODE1 Control B EVCTRL : longWord; //0004 MODE1 Event Control INTENCLR : word; //0008 MODE1 Interrupt Enable Clear INTENSET : word; //000A MODE1 Interrupt Enable Set INTFLAG : word; //000C MODE1 Interrupt Flag Status and Clear DBGCTRL : byte; //000E Debug Control RESERVED0 : byte; SYNCBUSY : longWord; //0010 MODE1 Synchronization Busy Status FREQCORR : byte; //0014 Frequency Correction RESERVED1 : array[1..3] of byte; COUNT : word; //0018 MODE1 Counter Value RESERVED2 : word; PER : word; //001C MODE1 Counter Period RESERVED3 : word; COMP : array[0..3] of word; //0020 MODE1 Compare n Value RESERVED4 : array[1..24] of byte; GP : array[0..3] of longWord; //0040 General Purpose RESERVED5 : array[1..16] of byte; TAMPCTRL : longWord; //0060 Tamper Control TIMESTAMP : longWord; //0064 MODE1 Timestamp TAMPID : longWord; //0068 Tamper ID RESERVED6 : array[1..20] of byte; BKUP : array[0..7] of longWord; //0080 Backup end; TRTCMODE2_Registers = record CTRLA : word; //0000 MODE2 Control A CTRLB : word; //0002 MODE2 Control B EVCTRL : longWord; //0004 MODE2 Event Control INTENCLR : word; //0008 MODE2 Interrupt Enable Clear INTENSET : word; //000A MODE2 Interrupt Enable Set INTFLAG : word; //000C MODE2 Interrupt Flag Status and Clear DBGCTRL : byte; //000E Debug Control RESERVED0 : byte; SYNCBUSY : longWord; //0010 MODE2 Synchronization Busy Status FREQCORR : byte; //0014 Frequency Correction RESERVED1 : array[1..3] of byte; CLOCK : longWord; //0018 MODE2 Clock Value RESERVED2 : longWord; ALARM0 : longWord; //0020 MODE2_ALARM Alarm n Value MASK0 : byte; //0024 MODE2_ALARM Alarm n Mask RESERVED3 : array[1..3] of byte; ALARM1 : longWord; //0028 MODE2_ALARM Alarm n Value MASK1 : byte; //002C MODE2_ALARM Alarm n Mask RESERVED4 : array[1..19] of byte; GP : array[0..3] of longWord; //0040 General Purpose RESERVED5 : array[1..16] of byte; TAMPCTRL : longWord; //0060 Tamper Control TIMESTAMP : longWord; //0064 MODE2 Timestamp TAMPID : longWord; //0068 Tamper ID RESERVED6 : array[1..20] of byte; BKUP : array[0..7] of longWord; //0080 Backup end; TSDHC_Registers = record SSAR : longWord; //0000 SDMA System Address / Argument 2 BSR : word; //0004 Block Size BCR : word; //0006 Block Count ARG1R : longWord; //0008 Argument 1 TMR : word; //000C Transfer Mode CR : word; //000E Command RR : array[0..3] of longWord; //0010 Response BDPR : longWord; //0020 Buffer Data Port PSR : longWord; //0024 Present State HC1R : byte; //0028 Host Control 1 PCR : byte; //0029 Power Control BGCR : byte; //002A Block Gap Control WCR : byte; //002B Wakeup Control CCR : word; //002C Clock Control TCR : byte; //002E Timeout Control SRR : byte; //002F Software Reset NISTR : word; //0030 Normal Interrupt Status EISTR : word; //0032 Error Interrupt Status NISTER : word; //0034 Normal Interrupt Status Enable EISTER : word; //0036 Error Interrupt Status Enable NISIER : word; //0038 Normal Interrupt Signal Enable EISIER : word; //003A Error Interrupt Signal Enable ACESR : word; //003C Auto CMD Error Status HC2R : word; //003E Host Control 2 CA0R : longWord; //0040 Capabilities 0 CA1R : longWord; //0044 Capabilities 1 MCCAR : longWord; //0048 Maximum Current Capabilities RESERVED0 : longWord; FERACES : word; //0050 Force Event for Auto CMD Error Status FEREIS : word; //0052 Force Event for Error Interrupt Status AESR : byte; //0054 ADMA Error Status RESERVED1 : array[1..3] of byte; ASAR : longWord; //0058 ADMA System Address n RESERVED2 : longWord; PVR : array[0..7] of word; //0060 Preset Value n RESERVED3 : array[1..140] of byte; SISR : word; //00FC Slot Interrupt Status HCVR : word; //00FE Host Controller Version RESERVED4 : array[1..260] of byte; MC1R : byte; //0204 MMC Control 1 MC2R : byte; //0205 MMC Control 2 RESERVED5 : word; ACR : longWord; //0208 AHB Control CC2R : longWord; //020C Clock Control 2 RESERVED6 : array[1..32] of byte; CACR : longWord; //0230 Capabilities Control DBGR : byte; //0234 Debug end; TSERCOMI2CM_Registers = record CTRLA : longWord; //0000 I2CM Control A CTRLB : longWord; //0004 I2CM Control B CTRLC : longWord; //0008 I2CM Control C BAUD : longWord; //000C I2CM Baud Rate RESERVED0 : longWord; INTENCLR : byte; //0014 I2CM Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 I2CM Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 I2CM Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A I2CM Status SYNCBUSY : longWord; //001C I2CM Synchronization Busy RESERVED4 : longWord; ADDR : longWord; //0024 I2CM Address DATA : longWord; //0028 I2CM Data RESERVED5 : longWord; DBGCTRL : byte; //0030 I2CM Debug Control end; TSERCOMI2CS_Registers = record CTRLA : longWord; //0000 I2CS Control A CTRLB : longWord; //0004 I2CS Control B CTRLC : longWord; //0008 I2CS Control C RESERVED0 : array[1..8] of byte; INTENCLR : byte; //0014 I2CS Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 I2CS Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 I2CS Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A I2CS Status SYNCBUSY : longWord; //001C I2CS Synchronization Busy RESERVED4 : word; LENGTH : word; //0022 I2CS Length ADDR : longWord; //0024 I2CS Address DATA : longWord; //0028 I2CS Data end; TSERCOMSPIS_Registers = record CTRLA : longWord; //0000 SPIS Control A CTRLB : longWord; //0004 SPIS Control B CTRLC : longWord; //0008 SPIS Control C BAUD : byte; //000C SPIS Baud Rate RESERVED0 : array[1..7] of byte; INTENCLR : byte; //0014 SPIS Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 SPIS Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 SPIS Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A SPIS Status SYNCBUSY : longWord; //001C SPIS Synchronization Busy RESERVED4 : word; LENGTH : word; //0022 SPIS Length ADDR : longWord; //0024 SPIS Address DATA : longWord; //0028 SPIS Data RESERVED5 : longWord; DBGCTRL : byte; //0030 SPIS Debug Control end; TSERCOMSPIM_Registers = record CTRLA : longWord; //0000 SPIM Control A CTRLB : longWord; //0004 SPIM Control B CTRLC : longWord; //0008 SPIM Control C BAUD : byte; //000C SPIM Baud Rate RESERVED0 : array[1..7] of byte; INTENCLR : byte; //0014 SPIM Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 SPIM Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 SPIM Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A SPIM Status SYNCBUSY : longWord; //001C SPIM Synchronization Busy RESERVED4 : word; LENGTH : word; //0022 SPIM Length ADDR : longWord; //0024 SPIM Address DATA : longWord; //0028 SPIM Data RESERVED5 : longWord; DBGCTRL : byte; //0030 SPIM Debug Control end; TSERCOMUSART_EXT_Registers = record CTRLA : longWord; //0000 USART_EXT Control A CTRLB : longWord; //0004 USART_EXT Control B CTRLC : longWord; //0008 USART_EXT Control C BAUD : word; //000C USART_EXT Baud Rate RXPL : byte; //000E USART_EXT Receive Pulse Length RESERVED0 : array[1..5] of byte; INTENCLR : byte; //0014 USART_EXT Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 USART_EXT Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 USART_EXT Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A USART_EXT Status SYNCBUSY : longWord; //001C USART_EXT Synchronization Busy RXERRCNT : byte; //0020 USART_EXT Receive Error Count RESERVED4 : byte; LENGTH : word; //0022 USART_EXT Length RESERVED5 : longWord; DATA : longWord; //0028 USART_EXT Data RESERVED6 : longWord; DBGCTRL : byte; //0030 USART_EXT Debug Control end; TSERCOMUSART_INT_Registers = record CTRLA : longWord; //0000 USART_INT Control A CTRLB : longWord; //0004 USART_INT Control B CTRLC : longWord; //0008 USART_INT Control C BAUD : word; //000C USART_INT Baud Rate RXPL : byte; //000E USART_INT Receive Pulse Length RESERVED0 : array[1..5] of byte; INTENCLR : byte; //0014 USART_INT Interrupt Enable Clear RESERVED1 : byte; INTENSET : byte; //0016 USART_INT Interrupt Enable Set RESERVED2 : byte; INTFLAG : byte; //0018 USART_INT Interrupt Flag Status and Clear RESERVED3 : byte; STATUS : word; //001A USART_INT Status SYNCBUSY : longWord; //001C USART_INT Synchronization Busy RXERRCNT : byte; //0020 USART_INT Receive Error Count RESERVED4 : byte; LENGTH : word; //0022 USART_INT Length RESERVED5 : longWord; DATA : longWord; //0028 USART_INT Data RESERVED6 : longWord; DBGCTRL : byte; //0030 USART_INT Debug Control end; TSUPC_Registers = record INTENCLR : longWord; //0000 Interrupt Enable Clear INTENSET : longWord; //0004 Interrupt Enable Set INTFLAG : longWord; //0008 Interrupt Flag Status and Clear STATUS : longWord; //000C Power and Clocks Status BOD33 : longWord; //0010 BOD33 Control RESERVED0 : longWord; VREG : longWord; //0018 VREG Control VREF : longWord; //001C VREF Control BBPS : longWord; //0020 Battery Backup Power Switch BKOUT : longWord; //0024 Backup Output Control BKIN : longWord; //0028 Backup Input Control end; TTCCOUNT8_Registers = record CTRLA : longWord; //0000 Control A CTRLBCLR : byte; //0004 Control B Clear CTRLBSET : byte; //0005 Control B Set EVCTRL : word; //0006 Event Control INTENCLR : byte; //0008 Interrupt Enable Clear INTENSET : byte; //0009 Interrupt Enable Set INTFLAG : byte; //000A Interrupt Flag Status and Clear STATUS : byte; //000B Status WAVE : byte; //000C Waveform Generation Control DRVCTRL : byte; //000D Control C RESERVED0 : byte; DBGCTRL : byte; //000F Debug Control SYNCBUSY : longWord; //0010 Synchronization Status COUNT : byte; //0014 COUNT8 Count RESERVED1 : array[1..6] of byte; PER : byte; //001B COUNT8 Period CC : array[0..1] of byte; //001C COUNT8 Compare and Capture RESERVED2 : array[1..17] of byte; PERBUF : byte; //002F COUNT8 Period Buffer CCBUF : array[0..1] of byte; //0030 COUNT8 Compare and Capture Buffer end; TTCCOUNT16_Registers = record CTRLA : longWord; //0000 Control A CTRLBCLR : byte; //0004 Control B Clear CTRLBSET : byte; //0005 Control B Set EVCTRL : word; //0006 Event Control INTENCLR : byte; //0008 Interrupt Enable Clear INTENSET : byte; //0009 Interrupt Enable Set INTFLAG : byte; //000A Interrupt Flag Status and Clear STATUS : byte; //000B Status WAVE : byte; //000C Waveform Generation Control DRVCTRL : byte; //000D Control C RESERVED0 : byte; DBGCTRL : byte; //000F Debug Control SYNCBUSY : longWord; //0010 Synchronization Status COUNT : word; //0014 COUNT16 Count RESERVED1 : array[1..6] of byte; CC : array[0..1] of word; //001C COUNT16 Compare and Capture RESERVED2 : array[1..16] of byte; CCBUF : array[0..1] of word; //0030 COUNT16 Compare and Capture Buffer end; TTCCOUNT32_Registers = record CTRLA : longWord; //0000 Control A CTRLBCLR : byte; //0004 Control B Clear CTRLBSET : byte; //0005 Control B Set EVCTRL : word; //0006 Event Control INTENCLR : byte; //0008 Interrupt Enable Clear INTENSET : byte; //0009 Interrupt Enable Set INTFLAG : byte; //000A Interrupt Flag Status and Clear STATUS : byte; //000B Status WAVE : byte; //000C Waveform Generation Control DRVCTRL : byte; //000D Control C RESERVED0 : byte; DBGCTRL : byte; //000F Debug Control SYNCBUSY : longWord; //0010 Synchronization Status COUNT : longWord; //0014 COUNT32 Count RESERVED1 : longWord; CC : array[0..1] of longWord; //001C COUNT32 Compare and Capture RESERVED2 : array[1..12] of byte; CCBUF : array[0..1] of longWord; //0030 COUNT32 Compare and Capture Buffer end; TTCC_Registers = record CTRLA : longWord; //0000 Control A CTRLBCLR : byte; //0004 Control B Clear CTRLBSET : byte; //0005 Control B Set RESERVED0 : word; SYNCBUSY : longWord; //0008 Synchronization Busy FCTRLA : longWord; //000C Recoverable Fault A Configuration FCTRLB : longWord; //0010 Recoverable Fault B Configuration WEXCTRL : longWord; //0014 Waveform Extension Configuration DRVCTRL : longWord; //0018 Driver Control RESERVED1 : word; DBGCTRL : byte; //001E Debug Control RESERVED2 : byte; EVCTRL : longWord; //0020 Event Control INTENCLR : longWord; //0024 Interrupt Enable Clear INTENSET : longWord; //0028 Interrupt Enable Set INTFLAG : longWord; //002C Interrupt Flag Status and Clear STATUS : longWord; //0030 Status COUNT : longWord; //0034 Count PATT : word; //0038 Pattern RESERVED3 : word; WAVE : longWord; //003C Waveform Control PER : longWord; //0040 Period CC : array[0..5] of longWord; //0044 Compare and Capture RESERVED4 : array[1..8] of byte; PATTBUF : word; //0064 Pattern Buffer RESERVED5 : array[1..6] of byte; PERBUF : longWord; //006C Period Buffer CCBUF : array[0..5] of longWord; //0070 Compare and Capture Buffer end; TTRNG_Registers = record CTRLA : byte; //0000 Control A RESERVED0 : array[1..3] of byte; EVCTRL : byte; //0004 Event Control RESERVED1 : array[1..3] of byte; INTENCLR : byte; //0008 Interrupt Enable Clear INTENSET : byte; //0009 Interrupt Enable Set INTFLAG : byte; //000A Interrupt Flag Status and Clear RESERVED2 : array[1..21] of byte; DATA : longWord; //0020 Output Data end; TUSB_DEVICE_DESC_BANK_Registers = record ADDR : longWord; //0000 DEVICE_DESC_BANK Endpoint Bank, Adress of Data Buffer PCKSIZE : longWord; //0004 DEVICE_DESC_BANK Endpoint Bank, Packet Size EXTREG : word; //0008 DEVICE_DESC_BANK Endpoint Bank, Extended STATUS_BK : byte; //000A DEVICE_DESC_BANK Enpoint Bank, Status of Bank end; TUSB_HOST_DESC_BANK_Registers = record ADDR : longWord; //0000 HOST_DESC_BANK Host Bank, Adress of Data Buffer PCKSIZE : longWord; //0004 HOST_DESC_BANK Host Bank, Packet Size EXTREG : word; //0008 HOST_DESC_BANK Host Bank, Extended STATUS_BK : byte; //000A HOST_DESC_BANK Host Bank, Status of Bank RESERVED0 : byte; CTRL_PIPE : word; //000C HOST_DESC_BANK Host Bank, Host Control Pipe STATUS_PIPE : word; //000E HOST_DESC_BANK Host Bank, Host Status Pipe end; TUSB_DEVICE_ENDPOINT_Registers = record EPCFG : byte; //0000 DEVICE_ENDPOINT End Point Configuration RESERVED0 : array[1..3] of byte; EPSTATUSCLR : byte; //0004 DEVICE_ENDPOINT End Point Pipe Status Clear EPSTATUSSET : byte; //0005 DEVICE_ENDPOINT End Point Pipe Status Set EPSTATUS : byte; //0006 DEVICE_ENDPOINT End Point Pipe Status EPINTFLAG : byte; //0007 DEVICE_ENDPOINT End Point Interrupt Flag EPINTENCLR : byte; //0008 DEVICE_ENDPOINT End Point Interrupt Clear Flag EPINTENSET : byte; //0009 DEVICE_ENDPOINT End Point Interrupt Set Flag end; TUSB_HOST_PIPE_Registers = record PCFG : byte; //0000 HOST_PIPE End Point Configuration RESERVED0 : word; BINTERVAL : byte; //0003 HOST_PIPE Bus Access Period of Pipe PSTATUSCLR : byte; //0004 HOST_PIPE End Point Pipe Status Clear PSTATUSSET : byte; //0005 HOST_PIPE End Point Pipe Status Set PSTATUS : byte; //0006 HOST_PIPE End Point Pipe Status PINTFLAG : byte; //0007 HOST_PIPE Pipe Interrupt Flag PINTENCLR : byte; //0008 HOST_PIPE Pipe Interrupt Flag Clear PINTENSET : byte; //0009 HOST_PIPE Pipe Interrupt Flag Set end; TUSBDEVICE_Registers = record CTRLA : byte; //0000 Control A RESERVED0 : byte; SYNCBUSY : byte; //0002 Synchronization Busy QOSCTRL : byte; //0003 USB Quality Of Service RESERVED1 : longWord; CTRLB : word; //0008 DEVICE Control B DADD : byte; //000A DEVICE Device Address RESERVED2 : byte; STATUS : byte; //000C DEVICE Status FSMSTATUS : byte; //000D Finite State Machine Status RESERVED3 : word; FNUM : word; //0010 DEVICE Device Frame Number RESERVED4 : word; INTENCLR : word; //0014 DEVICE Device Interrupt Enable Clear RESERVED5 : word; INTENSET : word; //0018 DEVICE Device Interrupt Enable Set RESERVED6 : word; INTFLAG : word; //001C DEVICE Device Interrupt Flag RESERVED7 : word; EPINTSMRY : word; //0020 DEVICE End Point Interrupt Summary RESERVED8 : word; DESCADD : longWord; //0024 Descriptor Address PADCAL : word; //0028 USB PAD Calibration RESERVED9 : array[1..214] of byte; HOST_PIPE : array[0..7] of TUSB_HOST_PIPE_Registers; //0100 end; TUSBHOST_Registers = record CTRLA : byte; //0000 Control A RESERVED0 : byte; SYNCBUSY : byte; //0002 Synchronization Busy QOSCTRL : byte; //0003 USB Quality Of Service RESERVED1 : longWord; CTRLB : word; //0008 HOST Control B HSOFC : byte; //000A HOST Host Start Of Frame Control RESERVED2 : byte; STATUS : byte; //000C HOST Status FSMSTATUS : byte; //000D Finite State Machine Status RESERVED3 : word; FNUM : word; //0010 HOST Host Frame Number FLENHIGH : byte; //0012 HOST Host Frame Length RESERVED4 : byte; INTENCLR : word; //0014 HOST Host Interrupt Enable Clear RESERVED5 : word; INTENSET : word; //0018 HOST Host Interrupt Enable Set RESERVED6 : word; INTFLAG : word; //001C HOST Host Interrupt Flag RESERVED7 : word; PINTSMRY : word; //0020 HOST Pipe Interrupt Summary RESERVED8 : word; DESCADD : longWord; //0024 Descriptor Address PADCAL : word; //0028 USB PAD Calibration RESERVED9 : array[1..214] of byte; HOST_PIPE : array[0..7] of TUSB_HOST_PIPE_Registers; //0100 end; TUSB_DESCRIPTORDEVICE_Registers = record HOST_DESC_BANK : array[0..1] of TUSB_HOST_DESC_BANK_Registers; //0000 end; TUSB_DESCRIPTORHOST_Registers = record HOST_DESC_BANK : array[0..1] of TUSB_HOST_DESC_BANK_Registers; //0000 end; TWDT_Registers = record CTRLA : byte; //0000 Control CONFIG : byte; //0001 Configuration EWCTRL : byte; //0002 Early Warning Interrupt Control RESERVED0 : byte; INTENCLR : byte; //0004 Interrupt Enable Clear INTENSET : byte; //0005 Interrupt Enable Set INTFLAG : byte; //0006 Interrupt Flag Status and Clear RESERVED1 : byte; SYNCBUSY : longWord; //0008 Synchronization Busy CLEAR : byte; //000C Clear end; TETM_Registers = record CR : longWord; //0000 ETM Main Control Register CCR : longWord; //0004 ETM Configuration Code Register TRIGGER : longWord; //0008 ETM Trigger Event Register RESERVED0 : longWord; SR : longWord; //0010 ETM Status Register SCR : longWord; //0014 ETM System Configuration Register RESERVED1 : array[1..8] of byte; TEEVR : longWord; //0020 ETM TraceEnable Event Register TECR1 : longWord; //0024 ETM TraceEnable Control 1 Register FFLR : longWord; //0028 ETM FIFO Full Level Register RESERVED2 : array[1..276] of byte; CNTRLDVR1 : longWord; //0140 ETM Free-running Counter Reload Value RESERVED3 : array[1..156] of byte; SYNCFR : longWord; //01E0 ETM Synchronization Frequency Register IDR : longWord; //01E4 ETM ID Register CCER : longWord; //01E8 ETM Configuration Code Extension Register RESERVED4 : longWord; TESSEICR : longWord; //01F0 ETM TraceEnable Start/Stop EmbeddedICE Control Register RESERVED5 : longWord; TSEVT : longWord; //01F8 ETM TimeStamp Event Register RESERVED6 : longWord; TRACEIDR : longWord; //0200 ETM CoreSight Trace ID Register RESERVED7 : longWord; IDR2 : longWord; //0208 ETM ID Register 2 RESERVED8 : array[1..264] of byte; PDSR : longWord; //0314 ETM Device Power-Down Status Register RESERVED9 : array[1..3016] of byte; ITMISCIN : longWord; //0EE0 ETM Integration Test Miscellaneous Inputs RESERVED10 : longWord; ITTRIGOUT : longWord; //0EE8 ETM Integration Test Trigger Out RESERVED11 : longWord; ITATBCTR2 : longWord; //0EF0 ETM Integration Test ATB Control 2 RESERVED12 : longWord; ITATBCTR0 : longWord; //0EF8 ETM Integration Test ATB Control 0 RESERVED13 : longWord; ITCTRL : longWord; //0F00 ETM Integration Mode Control Register RESERVED14 : array[1..156] of byte; CLAIMSET : longWord; //0FA0 ETM Claim Tag Set Register CLAIMCLR : longWord; //0FA4 ETM Claim Tag Clear Register RESERVED15 : array[1..8] of byte; LAR : longWord; //0FB0 ETM Lock Access Register LSR : longWord; //0FB4 ETM Lock Status Register AUTHSTATUS : longWord; //0FB8 ETM Authentication Status Register RESERVED16 : array[1..16] of byte; DEVTYPE : longWord; //0FCC ETM CoreSight Device Type Register PIDR4 : longWord; //0FD0 ETM Peripheral Identification Register #4 PIDR5 : longWord; //0FD4 ETM Peripheral Identification Register #5 PIDR6 : longWord; //0FD8 ETM Peripheral Identification Register #6 PIDR7 : longWord; //0FDC ETM Peripheral Identification Register #7 PIDR0 : longWord; //0FE0 ETM Peripheral Identification Register #0 PIDR1 : longWord; //0FE4 ETM Peripheral Identification Register #1 PIDR2 : longWord; //0FE8 ETM Peripheral Identification Register #2 PIDR3 : longWord; //0FEC ETM Peripheral Identification Register #3 CIDR0 : longWord; //0FF0 ETM Component Identification Register #0 CIDR1 : longWord; //0FF4 ETM Component Identification Register #1 CIDR2 : longWord; //0FF8 ETM Component Identification Register #2 CIDR3 : longWord; //0FFC ETM Component Identification Register #3 end; TMPU_Registers = record &TYPE : longWord; //0000 MPU Type Register CTRL : longWord; //0004 MPU Control Register RNR : longWord; //0008 MPU Region Number Register RBAR : longWord; //000C MPU Region Base Address Register RASR : longWord; //0010 MPU Region Attribute and Size Register RBAR_A1 : longWord; //0014 MPU Alias 1 Region Base Address Register RASR_A1 : longWord; //0018 MPU Alias 1 Region Attribute and Size Register RBAR_A2 : longWord; //001C MPU Alias 2 Region Base Address Register RASR_A2 : longWord; //0020 MPU Alias 2 Region Attribute and Size Register RBAR_A3 : longWord; //0024 MPU Alias 3 Region Base Address Register RASR_A3 : longWord; //0028 MPU Alias 3 Region Attribute and Size Register end; TSystemControl_Registers = record ICTR : longWord; //0004 Interrupt Controller Type Register ACTLR : longWord; //0008 Auxiliary Control Register RESERVED0 : array[1..3316] of byte; CPUID : longWord; //0D00 CPUID Base Register ICSR : longWord; //0D04 Interrupt Control and State Register VTOR : longWord; //0D08 Vector Table Offset Register AIRCR : longWord; //0D0C Application Interrupt and Reset Control Register SCR : longWord; //0D10 System Control Register CCR : longWord; //0D14 Configuration and Control Register SHPR1 : longWord; //0D18 System Handler Priority Register 1 SHPR2 : longWord; //0D1C System Handler Priority Register 2 SHPR3 : longWord; //0D20 System Handler Priority Register 3 SHCSR : longWord; //0D24 System Handler Control and State Register CFSR : longWord; //0D28 Configurable Fault Status Register HFSR : longWord; //0D2C HardFault Status Register DFSR : longWord; //0D30 Debug Fault Status Register MMFAR : longWord; //0D34 MemManage Fault Address Register BFAR : longWord; //0D38 BusFault Address Register AFSR : longWord; //0D3C Auxiliary Fault Status Register PFR : array[0..1] of longWord; //0D40 Processor Feature Register DFR : longWord; //0D48 Debug Feature Register ADR : longWord; //0D4C Auxiliary Feature Register MMFR : array[0..3] of longWord; //0D50 Memory Model Feature Register ISAR : array[0..4] of longWord; //0D60 Instruction Set Attributes Register RESERVED1 : array[1..20] of byte; CPACR : longWord; //0D88 Coprocessor Access Control Register end; TTPIU_Registers = record SSPSR : longWord; //0000 Supported Parallel Port Size Register CSPSR : longWord; //0004 Current Parallel Port Size Register RESERVED0 : array[1..8] of byte; ACPR : longWord; //0010 Asynchronous Clock Prescaler Register RESERVED1 : array[1..220] of byte; SPPR : longWord; //00F0 Selected Pin Protocol Register RESERVED2 : array[1..524] of byte; FFSR : longWord; //0300 Formatter and Flush Status Register FFCR : longWord; //0304 Formatter and Flush Control Register FSCR : longWord; //0308 Formatter Synchronization Counter Register RESERVED3 : array[1..3036] of byte; TRIGGER : longWord; //0EE8 TRIGGER FIFO0 : longWord; //0EEC Integration ETM Data ITATBCTR2 : longWord; //0EF0 ITATBCTR2 RESERVED4 : longWord; ITATBCTR0 : longWord; //0EF8 ITATBCTR0 FIFO1 : longWord; //0EFC Integration ITM Data ITCTRL : longWord; //0F00 Integration Mode Control RESERVED5 : array[1..156] of byte; CLAIMSET : longWord; //0FA0 Claim tag set CLAIMCLR : longWord; //0FA4 Claim tag clear RESERVED6 : array[1..32] of byte; DEVID : longWord; //0FC8 TPIU_DEVID DEVTYPE : longWord; //0FCC TPIU_DEVTYPE end; TRTC_Registers = record case byte of 0: ( MODE0 : TRTCMODE0_Registers ); 1: ( MODE1 : TRTCMODE1_Registers ); 2: ( MODE2 : TRTCMODE2_Registers ); end; TSERCOM_Registers = record case byte of 0: ( I2CM : TSERCOMI2CM_Registers ); 1: ( I2CS : TSERCOMI2CS_Registers ); 2: ( SPIS : TSERCOMSPIS_Registers ); 3: ( SPIM : TSERCOMSPIM_Registers ); 4: ( USART_EXT : TSERCOMUSART_EXT_Registers ); 5: ( USART_INT : TSERCOMUSART_INT_Registers ); end; TTC_Registers = record case byte of 0: ( COUNT8 : TTCCOUNT8_Registers ); 1: ( COUNT16 : TTCCOUNT16_Registers ); 2: ( COUNT32 : TTCCOUNT32_Registers ); end; TUSB_Registers = record case byte of 0: ( DEVICE : TUSBDEVICE_Registers ); 1: ( HOST : TUSBHOST_Registers ); end; TUSB_DESCRIPTOR_Registers = record case byte of 0: ( DEVICE : TUSB_DESCRIPTORDEVICE_Registers ); 1: ( HOST : TUSB_DESCRIPTORHOST_Registers ); end; const AC_BASE = $42002000; ADC0_BASE = $43001c00; ADC1_BASE = $43002000; AES_BASE = $42002400; CCL_BASE = $42003800; CMCC_BASE = $41006000; DAC_BASE = $43002400; DMAC_BASE = $4100a000; DSU_BASE = $41002000; EIC_BASE = $40002800; ETM_BASE = $e0041000; EVSYS_BASE = $4100e000; FREQM_BASE = $40002c00; GCLK_BASE = $40001c00; HMATRIX_BASE = $4100c000; I2S_BASE = $43002800; ICM_BASE = $42002c00; MCLK_BASE = $40000800; MPU_BASE = $e000ed90; NVMCTRL_BASE = $41004000; OSC32KCTRL_BASE = $40001400; OSCCTRL_BASE = $40001000; PAC_BASE = $40000000; PCC_BASE = $43002c00; PDEC_BASE = $42001c00; PM_BASE = $40000400; PORT_BASE = $41008000; QSPI_BASE = $42003400; RAMECC_BASE = $41020000; RSTC_BASE = $40000c00; RTC_BASE = $40002400; SDHC0_BASE = $45000000; SDHC1_BASE = $46000000; SERCOM0_BASE = $40003000; SERCOM1_BASE = $40003400; SERCOM2_BASE = $41012000; SERCOM3_BASE = $41014000; SERCOM4_BASE = $43000000; SERCOM5_BASE = $43000400; SERCOM6_BASE = $43000800; SERCOM7_BASE = $43000c00; SUPC_BASE = $40001800; SW0_FUSES_BASE = $00800080; SystemControl_BASE = $e000e000; TC0_BASE = $40003800; TC1_BASE = $40003c00; TC2_BASE = $4101a000; TC3_BASE = $4101c000; TC4_BASE = $42001400; TC5_BASE = $42001800; TC6_BASE = $43001400; TC7_BASE = $43001800; TCC0_BASE = $41016000; TCC1_BASE = $41018000; TCC2_BASE = $42000c00; TCC3_BASE = $42001000; TCC4_BASE = $43001000; TEMP_LOG_FUSES_BASE = $00800100; TPIU_BASE = $e0040000; TRNG_BASE = $42002800; USB_BASE = $41000000; USER_FUSES_BASE = $00804000; WDT_BASE = $40002000; var AC : TAC_Registers absolute AC_BASE; ADC0 : TADC_Registers absolute ADC0_BASE; ADC1 : TADC_Registers absolute ADC1_BASE; AES : TAES_Registers absolute AES_BASE; CCL : TCCL_Registers absolute CCL_BASE; CMCC : TCMCC_Registers absolute CMCC_BASE; DAC : TDAC_Registers absolute DAC_BASE; DMAC : TDMAC_Registers absolute DMAC_BASE; DSU : TDSU_Registers absolute DSU_BASE; EIC : TEIC_Registers absolute EIC_BASE; ETM : TETM_Registers absolute ETM_BASE; EVSYS : TEVSYS_Registers absolute EVSYS_BASE; FREQM : TFREQM_Registers absolute FREQM_BASE; GCLK : TGCLK_Registers absolute GCLK_BASE; HMATRIX : THMATRIXB_Registers absolute HMATRIX_BASE; I2S : TI2S_Registers absolute I2S_BASE; ICM : TICM_Registers absolute ICM_BASE; MCLK : TMCLK_Registers absolute MCLK_BASE; MPU : TMPU_Registers absolute MPU_BASE; NVMCTRL : TNVMCTRL_Registers absolute NVMCTRL_BASE; OSC32KCTRL : TOSC32KCTRL_Registers absolute OSC32KCTRL_BASE; OSCCTRL : TOSCCTRL_Registers absolute OSCCTRL_BASE; PAC : TPAC_Registers absolute PAC_BASE; PCC : TPCC_Registers absolute PCC_BASE; PDEC : TPDEC_Registers absolute PDEC_BASE; PM : TPM_Registers absolute PM_BASE; PORT : TPORT_Registers absolute PORT_BASE; QSPI : TQSPI_Registers absolute QSPI_BASE; RAMECC : TRAMECC_Registers absolute RAMECC_BASE; RSTC : TRSTC_Registers absolute RSTC_BASE; RTC : TRTC_Registers absolute RTC_BASE; SDHC0 : TSDHC_Registers absolute SDHC0_BASE; SDHC1 : TSDHC_Registers absolute SDHC1_BASE; SERCOM0 : TSERCOM_Registers absolute SERCOM0_BASE; SERCOM1 : TSERCOM_Registers absolute SERCOM1_BASE; SERCOM2 : TSERCOM_Registers absolute SERCOM2_BASE; SERCOM3 : TSERCOM_Registers absolute SERCOM3_BASE; SERCOM4 : TSERCOM_Registers absolute SERCOM4_BASE; SERCOM5 : TSERCOM_Registers absolute SERCOM5_BASE; SERCOM6 : TSERCOM_Registers absolute SERCOM6_BASE; SERCOM7 : TSERCOM_Registers absolute SERCOM7_BASE; SUPC : TSUPC_Registers absolute SUPC_BASE; SW0_FUSES : TSW0_FUSES_Registers absolute SW0_FUSES_BASE; SystemControl : TSystemControl_Registers absolute SystemControl_BASE; TC0 : TTC_Registers absolute TC0_BASE; TC1 : TTC_Registers absolute TC1_BASE; TC2 : TTC_Registers absolute TC2_BASE; TC3 : TTC_Registers absolute TC3_BASE; TC4 : TTC_Registers absolute TC4_BASE; TC5 : TTC_Registers absolute TC5_BASE; TC6 : TTC_Registers absolute TC6_BASE; TC7 : TTC_Registers absolute TC7_BASE; TCC0 : TTCC_Registers absolute TCC0_BASE; TCC1 : TTCC_Registers absolute TCC1_BASE; TCC2 : TTCC_Registers absolute TCC2_BASE; TCC3 : TTCC_Registers absolute TCC3_BASE; TCC4 : TTCC_Registers absolute TCC4_BASE; TEMP_LOG_FUSES : TTEMP_LOG_FUSES_Registers absolute TEMP_LOG_FUSES_BASE; TPIU : TTPIU_Registers absolute TPIU_BASE; TRNG : TTRNG_Registers absolute TRNG_BASE; USB : TUSB_Registers absolute USB_BASE; USER_FUSES : TUSER_FUSES_Registers absolute USER_FUSES_BASE; WDT : TWDT_Registers absolute WDT_BASE; implementation {$DEFINE IMPLEMENTATION} {$UNDEF INTERFACE} procedure NonMaskableInt_interrupt; external name 'NonMaskableInt_interrupt'; procedure HardFault_interrupt; external name 'HardFault_interrupt'; procedure MemoryManagement_interrupt; external name 'MemoryManagement_interrupt'; procedure BusFault_interrupt; external name 'BusFault_interrupt'; procedure UsageFault_interrupt; external name 'UsageFault_interrupt'; procedure SVCall_interrupt; external name 'SVCall_interrupt'; procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt'; procedure PendSV_interrupt; external name 'PendSV_interrupt'; procedure SysTick_interrupt; external name 'SysTick_interrupt'; procedure PM_interrupt; external name 'PM_interrupt'; procedure MCLK_interrupt; external name 'MCLK_interrupt'; procedure OSCCTRL_0_interrupt; external name 'OSCCTRL_0_interrupt'; procedure OSCCTRL_1_interrupt; external name 'OSCCTRL_1_interrupt'; procedure OSCCTRL_2_interrupt; external name 'OSCCTRL_2_interrupt'; procedure OSCCTRL_3_interrupt; external name 'OSCCTRL_3_interrupt'; procedure OSCCTRL_4_interrupt; external name 'OSCCTRL_4_interrupt'; procedure OSC32KCTRL_interrupt; external name 'OSC32KCTRL_interrupt'; procedure SUPC_0_interrupt; external name 'SUPC_0_interrupt'; procedure SUPC_1_interrupt; external name 'SUPC_1_interrupt'; procedure WDT_interrupt; external name 'WDT_interrupt'; procedure RTC_interrupt; external name 'RTC_interrupt'; procedure EIC_0_interrupt; external name 'EIC_0_interrupt'; procedure EIC_1_interrupt; external name 'EIC_1_interrupt'; procedure EIC_2_interrupt; external name 'EIC_2_interrupt'; procedure EIC_3_interrupt; external name 'EIC_3_interrupt'; procedure EIC_4_interrupt; external name 'EIC_4_interrupt'; procedure EIC_5_interrupt; external name 'EIC_5_interrupt'; procedure EIC_6_interrupt; external name 'EIC_6_interrupt'; procedure EIC_7_interrupt; external name 'EIC_7_interrupt'; procedure EIC_8_interrupt; external name 'EIC_8_interrupt'; procedure EIC_9_interrupt; external name 'EIC_9_interrupt'; procedure EIC_10_interrupt; external name 'EIC_10_interrupt'; procedure EIC_11_interrupt; external name 'EIC_11_interrupt'; procedure EIC_12_interrupt; external name 'EIC_12_interrupt'; procedure EIC_13_interrupt; external name 'EIC_13_interrupt'; procedure EIC_14_interrupt; external name 'EIC_14_interrupt'; procedure EIC_15_interrupt; external name 'EIC_15_interrupt'; procedure FREQM_interrupt; external name 'FREQM_interrupt'; procedure NVMCTRL_0_interrupt; external name 'NVMCTRL_0_interrupt'; procedure NVMCTRL_1_interrupt; external name 'NVMCTRL_1_interrupt'; procedure DMAC_0_interrupt; external name 'DMAC_0_interrupt'; procedure DMAC_1_interrupt; external name 'DMAC_1_interrupt'; procedure DMAC_2_interrupt; external name 'DMAC_2_interrupt'; procedure DMAC_3_interrupt; external name 'DMAC_3_interrupt'; procedure DMAC_4_interrupt; external name 'DMAC_4_interrupt'; procedure EVSYS_0_interrupt; external name 'EVSYS_0_interrupt'; procedure EVSYS_1_interrupt; external name 'EVSYS_1_interrupt'; procedure EVSYS_2_interrupt; external name 'EVSYS_2_interrupt'; procedure EVSYS_3_interrupt; external name 'EVSYS_3_interrupt'; procedure EVSYS_4_interrupt; external name 'EVSYS_4_interrupt'; procedure PAC_interrupt; external name 'PAC_interrupt'; procedure RAMECC_interrupt; external name 'RAMECC_interrupt'; procedure SERCOM0_0_interrupt; external name 'SERCOM0_0_interrupt'; procedure SERCOM0_1_interrupt; external name 'SERCOM0_1_interrupt'; procedure SERCOM0_2_interrupt; external name 'SERCOM0_2_interrupt'; procedure SERCOM0_3_interrupt; external name 'SERCOM0_3_interrupt'; procedure SERCOM1_0_interrupt; external name 'SERCOM1_0_interrupt'; procedure SERCOM1_1_interrupt; external name 'SERCOM1_1_interrupt'; procedure SERCOM1_2_interrupt; external name 'SERCOM1_2_interrupt'; procedure SERCOM1_3_interrupt; external name 'SERCOM1_3_interrupt'; procedure SERCOM2_0_interrupt; external name 'SERCOM2_0_interrupt'; procedure SERCOM2_1_interrupt; external name 'SERCOM2_1_interrupt'; procedure SERCOM2_2_interrupt; external name 'SERCOM2_2_interrupt'; procedure SERCOM2_3_interrupt; external name 'SERCOM2_3_interrupt'; procedure SERCOM3_0_interrupt; external name 'SERCOM3_0_interrupt'; procedure SERCOM3_1_interrupt; external name 'SERCOM3_1_interrupt'; procedure SERCOM3_2_interrupt; external name 'SERCOM3_2_interrupt'; procedure SERCOM3_3_interrupt; external name 'SERCOM3_3_interrupt'; procedure SERCOM4_0_interrupt; external name 'SERCOM4_0_interrupt'; procedure SERCOM4_1_interrupt; external name 'SERCOM4_1_interrupt'; procedure SERCOM4_2_interrupt; external name 'SERCOM4_2_interrupt'; procedure SERCOM4_3_interrupt; external name 'SERCOM4_3_interrupt'; procedure SERCOM5_0_interrupt; external name 'SERCOM5_0_interrupt'; procedure SERCOM5_1_interrupt; external name 'SERCOM5_1_interrupt'; procedure SERCOM5_2_interrupt; external name 'SERCOM5_2_interrupt'; procedure SERCOM5_3_interrupt; external name 'SERCOM5_3_interrupt'; procedure SERCOM6_0_interrupt; external name 'SERCOM6_0_interrupt'; procedure SERCOM6_1_interrupt; external name 'SERCOM6_1_interrupt'; procedure SERCOM6_2_interrupt; external name 'SERCOM6_2_interrupt'; procedure SERCOM6_3_interrupt; external name 'SERCOM6_3_interrupt'; procedure SERCOM7_0_interrupt; external name 'SERCOM7_0_interrupt'; procedure SERCOM7_1_interrupt; external name 'SERCOM7_1_interrupt'; procedure SERCOM7_2_interrupt; external name 'SERCOM7_2_interrupt'; procedure SERCOM7_3_interrupt; external name 'SERCOM7_3_interrupt'; procedure USB_0_interrupt; external name 'USB_0_interrupt'; procedure USB_1_interrupt; external name 'USB_1_interrupt'; procedure USB_2_interrupt; external name 'USB_2_interrupt'; procedure USB_3_interrupt; external name 'USB_3_interrupt'; procedure TCC0_0_interrupt; external name 'TCC0_0_interrupt'; procedure TCC0_1_interrupt; external name 'TCC0_1_interrupt'; procedure TCC0_2_interrupt; external name 'TCC0_2_interrupt'; procedure TCC0_3_interrupt; external name 'TCC0_3_interrupt'; procedure TCC0_4_interrupt; external name 'TCC0_4_interrupt'; procedure TCC0_5_interrupt; external name 'TCC0_5_interrupt'; procedure TCC0_6_interrupt; external name 'TCC0_6_interrupt'; procedure TCC1_0_interrupt; external name 'TCC1_0_interrupt'; procedure TCC1_1_interrupt; external name 'TCC1_1_interrupt'; procedure TCC1_2_interrupt; external name 'TCC1_2_interrupt'; procedure TCC1_3_interrupt; external name 'TCC1_3_interrupt'; procedure TCC1_4_interrupt; external name 'TCC1_4_interrupt'; procedure TCC2_0_interrupt; external name 'TCC2_0_interrupt'; procedure TCC2_1_interrupt; external name 'TCC2_1_interrupt'; procedure TCC2_2_interrupt; external name 'TCC2_2_interrupt'; procedure TCC2_3_interrupt; external name 'TCC2_3_interrupt'; procedure TCC3_0_interrupt; external name 'TCC3_0_interrupt'; procedure TCC3_1_interrupt; external name 'TCC3_1_interrupt'; procedure TCC3_2_interrupt; external name 'TCC3_2_interrupt'; procedure TCC4_0_interrupt; external name 'TCC4_0_interrupt'; procedure TCC4_1_interrupt; external name 'TCC4_1_interrupt'; procedure TCC4_2_interrupt; external name 'TCC4_2_interrupt'; procedure TC0_interrupt; external name 'TC0_interrupt'; procedure TC1_interrupt; external name 'TC1_interrupt'; procedure TC2_interrupt; external name 'TC2_interrupt'; procedure TC3_interrupt; external name 'TC3_interrupt'; procedure TC4_interrupt; external name 'TC4_interrupt'; procedure TC5_interrupt; external name 'TC5_interrupt'; procedure TC6_interrupt; external name 'TC6_interrupt'; procedure TC7_interrupt; external name 'TC7_interrupt'; procedure PDEC_0_interrupt; external name 'PDEC_0_interrupt'; procedure PDEC_1_interrupt; external name 'PDEC_1_interrupt'; procedure PDEC_2_interrupt; external name 'PDEC_2_interrupt'; procedure ADC0_0_interrupt; external name 'ADC0_0_interrupt'; procedure ADC0_1_interrupt; external name 'ADC0_1_interrupt'; procedure ADC1_0_interrupt; external name 'ADC1_0_interrupt'; procedure ADC1_1_interrupt; external name 'ADC1_1_interrupt'; procedure AC_interrupt; external name 'AC_interrupt'; procedure DAC_0_interrupt; external name 'DAC_0_interrupt'; procedure DAC_1_interrupt; external name 'DAC_1_interrupt'; procedure DAC_2_interrupt; external name 'DAC_2_interrupt'; procedure DAC_3_interrupt; external name 'DAC_3_interrupt'; procedure DAC_4_interrupt; external name 'DAC_4_interrupt'; procedure I2S_interrupt; external name 'I2S_interrupt'; procedure PCC_interrupt; external name 'PCC_interrupt'; procedure AES_interrupt; external name 'AES_interrupt'; procedure TRNG_interrupt; external name 'TRNG_interrupt'; procedure ICM_interrupt; external name 'ICM_interrupt'; procedure PUKCC_interrupt; external name 'PUKCC_interrupt'; procedure QSPI_interrupt; external name 'QSPI_interrupt'; procedure SDHC0_interrupt; external name 'SDHC0_interrupt'; procedure SDHC1_interrupt; external name 'SDHC1_interrupt'; {$i cortexm4f_start.inc} procedure Vectors; assembler; nostackframe; label interrupt_vectors; asm .section ".init.interrupt_vectors" interrupt_vectors: .long _stack_top .long Startup .long NonMaskableInt_interrupt; .long HardFault_interrupt; .long MemoryManagement_interrupt; .long BusFault_interrupt; .long UsageFault_interrupt; .long 0 .long 0 .long 0 .long 0 .long SVCall_interrupt; .long DebugMonitor_interrupt; .long 0 .long PendSV_interrupt; .long SysTick_interrupt; .long PM_interrupt; .long MCLK_interrupt; .long OSCCTRL_0_interrupt; .long OSCCTRL_1_interrupt; .long OSCCTRL_2_interrupt; .long OSCCTRL_3_interrupt; .long OSCCTRL_4_interrupt; .long OSC32KCTRL_interrupt; .long SUPC_0_interrupt; .long SUPC_1_interrupt; .long WDT_interrupt; .long RTC_interrupt; .long EIC_0_interrupt; .long EIC_1_interrupt; .long EIC_2_interrupt; .long EIC_3_interrupt; .long EIC_4_interrupt; .long EIC_5_interrupt; .long EIC_6_interrupt; .long EIC_7_interrupt; .long EIC_8_interrupt; .long EIC_9_interrupt; .long EIC_10_interrupt; .long EIC_11_interrupt; .long EIC_12_interrupt; .long EIC_13_interrupt; .long EIC_14_interrupt; .long EIC_15_interrupt; .long FREQM_interrupt; .long NVMCTRL_0_interrupt; .long NVMCTRL_1_interrupt; .long DMAC_0_interrupt; .long DMAC_1_interrupt; .long DMAC_2_interrupt; .long DMAC_3_interrupt; .long DMAC_4_interrupt; .long EVSYS_0_interrupt; .long EVSYS_1_interrupt; .long EVSYS_2_interrupt; .long EVSYS_3_interrupt; .long EVSYS_4_interrupt; .long PAC_interrupt; .long 0 .long 0 .long 0 .long RAMECC_interrupt; .long SERCOM0_0_interrupt; .long SERCOM0_1_interrupt; .long SERCOM0_2_interrupt; .long SERCOM0_3_interrupt; .long SERCOM1_0_interrupt; .long SERCOM1_1_interrupt; .long SERCOM1_2_interrupt; .long SERCOM1_3_interrupt; .long SERCOM2_0_interrupt; .long SERCOM2_1_interrupt; .long SERCOM2_2_interrupt; .long SERCOM2_3_interrupt; .long SERCOM3_0_interrupt; .long SERCOM3_1_interrupt; .long SERCOM3_2_interrupt; .long SERCOM3_3_interrupt; .long SERCOM4_0_interrupt; .long SERCOM4_1_interrupt; .long SERCOM4_2_interrupt; .long SERCOM4_3_interrupt; .long SERCOM5_0_interrupt; .long SERCOM5_1_interrupt; .long SERCOM5_2_interrupt; .long SERCOM5_3_interrupt; .long SERCOM6_0_interrupt; .long SERCOM6_1_interrupt; .long SERCOM6_2_interrupt; .long SERCOM6_3_interrupt; .long SERCOM7_0_interrupt; .long SERCOM7_1_interrupt; .long SERCOM7_2_interrupt; .long SERCOM7_3_interrupt; .long 0 .long 0 .long USB_0_interrupt; .long USB_1_interrupt; .long USB_2_interrupt; .long USB_3_interrupt; .long 0 .long TCC0_0_interrupt; .long TCC0_1_interrupt; .long TCC0_2_interrupt; .long TCC0_3_interrupt; .long TCC0_4_interrupt; .long TCC0_5_interrupt; .long TCC0_6_interrupt; .long TCC1_0_interrupt; .long TCC1_1_interrupt; .long TCC1_2_interrupt; .long TCC1_3_interrupt; .long TCC1_4_interrupt; .long TCC2_0_interrupt; .long TCC2_1_interrupt; .long TCC2_2_interrupt; .long TCC2_3_interrupt; .long TCC3_0_interrupt; .long TCC3_1_interrupt; .long TCC3_2_interrupt; .long TCC4_0_interrupt; .long TCC4_1_interrupt; .long TCC4_2_interrupt; .long TC0_interrupt; .long TC1_interrupt; .long TC2_interrupt; .long TC3_interrupt; .long TC4_interrupt; .long TC5_interrupt; .long TC6_interrupt; .long TC7_interrupt; .long PDEC_0_interrupt; .long PDEC_1_interrupt; .long PDEC_2_interrupt; .long ADC0_0_interrupt; .long ADC0_1_interrupt; .long ADC1_0_interrupt; .long ADC1_1_interrupt; .long AC_interrupt; .long DAC_0_interrupt; .long DAC_1_interrupt; .long DAC_2_interrupt; .long DAC_3_interrupt; .long DAC_4_interrupt; .long I2S_interrupt; .long PCC_interrupt; .long AES_interrupt; .long TRNG_interrupt; .long ICM_interrupt; .long PUKCC_interrupt; .long QSPI_interrupt; .long SDHC0_interrupt; .long SDHC1_interrupt; .weak NonMaskableInt_interrupt; .weak HardFault_interrupt; .weak MemoryManagement_interrupt; .weak BusFault_interrupt; .weak UsageFault_interrupt; .weak SVCall_interrupt; .weak DebugMonitor_interrupt; .weak PendSV_interrupt; .weak SysTick_interrupt; .weak PM_interrupt; .weak MCLK_interrupt; .weak OSCCTRL_0_interrupt; .weak OSCCTRL_1_interrupt; .weak OSCCTRL_2_interrupt; .weak OSCCTRL_3_interrupt; .weak OSCCTRL_4_interrupt; .weak OSC32KCTRL_interrupt; .weak SUPC_0_interrupt; .weak SUPC_1_interrupt; .weak WDT_interrupt; .weak RTC_interrupt; .weak EIC_0_interrupt; .weak EIC_1_interrupt; .weak EIC_2_interrupt; .weak EIC_3_interrupt; .weak EIC_4_interrupt; .weak EIC_5_interrupt; .weak EIC_6_interrupt; .weak EIC_7_interrupt; .weak EIC_8_interrupt; .weak EIC_9_interrupt; .weak EIC_10_interrupt; .weak EIC_11_interrupt; .weak EIC_12_interrupt; .weak EIC_13_interrupt; .weak EIC_14_interrupt; .weak EIC_15_interrupt; .weak FREQM_interrupt; .weak NVMCTRL_0_interrupt; .weak NVMCTRL_1_interrupt; .weak DMAC_0_interrupt; .weak DMAC_1_interrupt; .weak DMAC_2_interrupt; .weak DMAC_3_interrupt; .weak DMAC_4_interrupt; .weak EVSYS_0_interrupt; .weak EVSYS_1_interrupt; .weak EVSYS_2_interrupt; .weak EVSYS_3_interrupt; .weak EVSYS_4_interrupt; .weak PAC_interrupt; .weak RAMECC_interrupt; .weak SERCOM0_0_interrupt; .weak SERCOM0_1_interrupt; .weak SERCOM0_2_interrupt; .weak SERCOM0_3_interrupt; .weak SERCOM1_0_interrupt; .weak SERCOM1_1_interrupt; .weak SERCOM1_2_interrupt; .weak SERCOM1_3_interrupt; .weak SERCOM2_0_interrupt; .weak SERCOM2_1_interrupt; .weak SERCOM2_2_interrupt; .weak SERCOM2_3_interrupt; .weak SERCOM3_0_interrupt; .weak SERCOM3_1_interrupt; .weak SERCOM3_2_interrupt; .weak SERCOM3_3_interrupt; .weak SERCOM4_0_interrupt; .weak SERCOM4_1_interrupt; .weak SERCOM4_2_interrupt; .weak SERCOM4_3_interrupt; .weak SERCOM5_0_interrupt; .weak SERCOM5_1_interrupt; .weak SERCOM5_2_interrupt; .weak SERCOM5_3_interrupt; .weak SERCOM6_0_interrupt; .weak SERCOM6_1_interrupt; .weak SERCOM6_2_interrupt; .weak SERCOM6_3_interrupt; .weak SERCOM7_0_interrupt; .weak SERCOM7_1_interrupt; .weak SERCOM7_2_interrupt; .weak SERCOM7_3_interrupt; .weak USB_0_interrupt; .weak USB_1_interrupt; .weak USB_2_interrupt; .weak USB_3_interrupt; .weak TCC0_0_interrupt; .weak TCC0_1_interrupt; .weak TCC0_2_interrupt; .weak TCC0_3_interrupt; .weak TCC0_4_interrupt; .weak TCC0_5_interrupt; .weak TCC0_6_interrupt; .weak TCC1_0_interrupt; .weak TCC1_1_interrupt; .weak TCC1_2_interrupt; .weak TCC1_3_interrupt; .weak TCC1_4_interrupt; .weak TCC2_0_interrupt; .weak TCC2_1_interrupt; .weak TCC2_2_interrupt; .weak TCC2_3_interrupt; .weak TCC3_0_interrupt; .weak TCC3_1_interrupt; .weak TCC3_2_interrupt; .weak TCC4_0_interrupt; .weak TCC4_1_interrupt; .weak TCC4_2_interrupt; .weak TC0_interrupt; .weak TC1_interrupt; .weak TC2_interrupt; .weak TC3_interrupt; .weak TC4_interrupt; .weak TC5_interrupt; .weak TC6_interrupt; .weak TC7_interrupt; .weak PDEC_0_interrupt; .weak PDEC_1_interrupt; .weak PDEC_2_interrupt; .weak ADC0_0_interrupt; .weak ADC0_1_interrupt; .weak ADC1_0_interrupt; .weak ADC1_1_interrupt; .weak AC_interrupt; .weak DAC_0_interrupt; .weak DAC_1_interrupt; .weak DAC_2_interrupt; .weak DAC_3_interrupt; .weak DAC_4_interrupt; .weak I2S_interrupt; .weak PCC_interrupt; .weak AES_interrupt; .weak TRNG_interrupt; .weak ICM_interrupt; .weak PUKCC_interrupt; .weak QSPI_interrupt; .weak SDHC0_interrupt; .weak SDHC1_interrupt; .set NonMaskableInt_interrupt, Haltproc .set HardFault_interrupt, Haltproc .set MemoryManagement_interrupt,Haltproc .set BusFault_interrupt, Haltproc .set UsageFault_interrupt, Haltproc .set SVCall_interrupt, Haltproc .set DebugMonitor_interrupt, Haltproc .set PendSV_interrupt, Haltproc .set SysTick_interrupt, Haltproc .set PM_interrupt, Haltproc .set MCLK_interrupt, Haltproc .set OSCCTRL_0_interrupt, Haltproc .set OSCCTRL_1_interrupt, Haltproc .set OSCCTRL_2_interrupt, Haltproc .set OSCCTRL_3_interrupt, Haltproc .set OSCCTRL_4_interrupt, Haltproc .set OSC32KCTRL_interrupt, Haltproc .set SUPC_0_interrupt, Haltproc .set SUPC_1_interrupt, Haltproc .set WDT_interrupt, Haltproc .set RTC_interrupt, Haltproc .set EIC_0_interrupt, Haltproc .set EIC_1_interrupt, Haltproc .set EIC_2_interrupt, Haltproc .set EIC_3_interrupt, Haltproc .set EIC_4_interrupt, Haltproc .set EIC_5_interrupt, Haltproc .set EIC_6_interrupt, Haltproc .set EIC_7_interrupt, Haltproc .set EIC_8_interrupt, Haltproc .set EIC_9_interrupt, Haltproc .set EIC_10_interrupt, Haltproc .set EIC_11_interrupt, Haltproc .set EIC_12_interrupt, Haltproc .set EIC_13_interrupt, Haltproc .set EIC_14_interrupt, Haltproc .set EIC_15_interrupt, Haltproc .set FREQM_interrupt, Haltproc .set NVMCTRL_0_interrupt, Haltproc .set NVMCTRL_1_interrupt, Haltproc .set DMAC_0_interrupt, Haltproc .set DMAC_1_interrupt, Haltproc .set DMAC_2_interrupt, Haltproc .set DMAC_3_interrupt, Haltproc .set DMAC_4_interrupt, Haltproc .set EVSYS_0_interrupt, Haltproc .set EVSYS_1_interrupt, Haltproc .set EVSYS_2_interrupt, Haltproc .set EVSYS_3_interrupt, Haltproc .set EVSYS_4_interrupt, Haltproc .set PAC_interrupt, Haltproc .set RAMECC_interrupt, Haltproc .set SERCOM0_0_interrupt, Haltproc .set SERCOM0_1_interrupt, Haltproc .set SERCOM0_2_interrupt, Haltproc .set SERCOM0_3_interrupt, Haltproc .set SERCOM1_0_interrupt, Haltproc .set SERCOM1_1_interrupt, Haltproc .set SERCOM1_2_interrupt, Haltproc .set SERCOM1_3_interrupt, Haltproc .set SERCOM2_0_interrupt, Haltproc .set SERCOM2_1_interrupt, Haltproc .set SERCOM2_2_interrupt, Haltproc .set SERCOM2_3_interrupt, Haltproc .set SERCOM3_0_interrupt, Haltproc .set SERCOM3_1_interrupt, Haltproc .set SERCOM3_2_interrupt, Haltproc .set SERCOM3_3_interrupt, Haltproc .set SERCOM4_0_interrupt, Haltproc .set SERCOM4_1_interrupt, Haltproc .set SERCOM4_2_interrupt, Haltproc .set SERCOM4_3_interrupt, Haltproc .set SERCOM5_0_interrupt, Haltproc .set SERCOM5_1_interrupt, Haltproc .set SERCOM5_2_interrupt, Haltproc .set SERCOM5_3_interrupt, Haltproc .set SERCOM6_0_interrupt, Haltproc .set SERCOM6_1_interrupt, Haltproc .set SERCOM6_2_interrupt, Haltproc .set SERCOM6_3_interrupt, Haltproc .set SERCOM7_0_interrupt, Haltproc .set SERCOM7_1_interrupt, Haltproc .set SERCOM7_2_interrupt, Haltproc .set SERCOM7_3_interrupt, Haltproc .set USB_0_interrupt, Haltproc .set USB_1_interrupt, Haltproc .set USB_2_interrupt, Haltproc .set USB_3_interrupt, Haltproc .set TCC0_0_interrupt, Haltproc .set TCC0_1_interrupt, Haltproc .set TCC0_2_interrupt, Haltproc .set TCC0_3_interrupt, Haltproc .set TCC0_4_interrupt, Haltproc .set TCC0_5_interrupt, Haltproc .set TCC0_6_interrupt, Haltproc .set TCC1_0_interrupt, Haltproc .set TCC1_1_interrupt, Haltproc .set TCC1_2_interrupt, Haltproc .set TCC1_3_interrupt, Haltproc .set TCC1_4_interrupt, Haltproc .set TCC2_0_interrupt, Haltproc .set TCC2_1_interrupt, Haltproc .set TCC2_2_interrupt, Haltproc .set TCC2_3_interrupt, Haltproc .set TCC3_0_interrupt, Haltproc .set TCC3_1_interrupt, Haltproc .set TCC3_2_interrupt, Haltproc .set TCC4_0_interrupt, Haltproc .set TCC4_1_interrupt, Haltproc .set TCC4_2_interrupt, Haltproc .set TC0_interrupt, Haltproc .set TC1_interrupt, Haltproc .set TC2_interrupt, Haltproc .set TC3_interrupt, Haltproc .set TC4_interrupt, Haltproc .set TC5_interrupt, Haltproc .set TC6_interrupt, Haltproc .set TC7_interrupt, Haltproc .set PDEC_0_interrupt, Haltproc .set PDEC_1_interrupt, Haltproc .set PDEC_2_interrupt, Haltproc .set ADC0_0_interrupt, Haltproc .set ADC0_1_interrupt, Haltproc .set ADC1_0_interrupt, Haltproc .set ADC1_1_interrupt, Haltproc .set AC_interrupt, Haltproc .set DAC_0_interrupt, Haltproc .set DAC_1_interrupt, Haltproc .set DAC_2_interrupt, Haltproc .set DAC_3_interrupt, Haltproc .set DAC_4_interrupt, Haltproc .set I2S_interrupt, Haltproc .set PCC_interrupt, Haltproc .set AES_interrupt, Haltproc .set TRNG_interrupt, Haltproc .set ICM_interrupt, Haltproc .set PUKCC_interrupt, Haltproc .set QSPI_interrupt, Haltproc .set SDHC0_interrupt, Haltproc .set SDHC1_interrupt, Haltproc .text end; end.