123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- #include "saml11e16a.h"
- extern uint32_t _sfixed;
- extern uint32_t _efixed;
- extern uint32_t _etext;
- extern uint32_t _srelocate;
- extern uint32_t _erelocate;
- extern uint32_t _szero;
- extern uint32_t _ezero;
- extern uint32_t _sstack;
- extern uint32_t _estack;
- int main(void);
- void __libc_init_array(void);
- void Reset_Handler(void);
- void Dummy_Handler(void);
- void NonMaskableInt_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SVCall_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void PendSV_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SysTick_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SYSTEM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EIC_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EIC_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EIC_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EIC_3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EIC_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void FREQM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void PORT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DMAC_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DMAC_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DMAC_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DMAC_3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DMAC_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EVSYS_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EVSYS_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EVSYS_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EVSYS_3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void EVSYS_NSCHK_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void PAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM0_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM0_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM0_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM0_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM1_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM1_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM1_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM1_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM2_0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM2_1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM2_2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void SERCOM2_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void TC0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void TC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void TC2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void ADC_OTHER_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void ADC_RESRDY_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void AC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DAC_UNDERRUN_A_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void DAC_EMPTY_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void PTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void TRNG_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- void TRAM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
- __attribute__ ((section(".vectors")))
- const DeviceVectors exception_table = {
-
- .pvStack = (void*) (&_estack),
- .pfnReset_Handler = (void*) Reset_Handler,
- .pfnNonMaskableInt_Handler = (void*) NonMaskableInt_Handler,
- .pfnHardFault_Handler = (void*) HardFault_Handler,
- .pvReservedC12 = (void*) (0UL),
- .pvReservedC11 = (void*) (0UL),
- .pvReservedC10 = (void*) (0UL),
- .pvReservedC9 = (void*) (0UL),
- .pvReservedC8 = (void*) (0UL),
- .pvReservedC7 = (void*) (0UL),
- .pvReservedC6 = (void*) (0UL),
- .pfnSVCall_Handler = (void*) SVCall_Handler,
- .pvReservedC4 = (void*) (0UL),
- .pvReservedC3 = (void*) (0UL),
- .pfnPendSV_Handler = (void*) PendSV_Handler,
- .pfnSysTick_Handler = (void*) SysTick_Handler,
-
- .pfnSYSTEM_Handler = (void*) SYSTEM_Handler,
- .pfnWDT_Handler = (void*) WDT_Handler,
- .pfnRTC_Handler = (void*) RTC_Handler,
- .pfnEIC_0_Handler = (void*) EIC_0_Handler,
- .pfnEIC_1_Handler = (void*) EIC_1_Handler,
- .pfnEIC_2_Handler = (void*) EIC_2_Handler,
- .pfnEIC_3_Handler = (void*) EIC_3_Handler,
- .pfnEIC_OTHER_Handler = (void*) EIC_OTHER_Handler,
- .pfnFREQM_Handler = (void*) FREQM_Handler,
- .pfnNVMCTRL_Handler = (void*) NVMCTRL_Handler,
- .pfnPORT_Handler = (void*) PORT_Handler,
- .pfnDMAC_0_Handler = (void*) DMAC_0_Handler,
- .pfnDMAC_1_Handler = (void*) DMAC_1_Handler,
- .pfnDMAC_2_Handler = (void*) DMAC_2_Handler,
- .pfnDMAC_3_Handler = (void*) DMAC_3_Handler,
- .pfnDMAC_OTHER_Handler = (void*) DMAC_OTHER_Handler,
- .pfnEVSYS_0_Handler = (void*) EVSYS_0_Handler,
- .pfnEVSYS_1_Handler = (void*) EVSYS_1_Handler,
- .pfnEVSYS_2_Handler = (void*) EVSYS_2_Handler,
- .pfnEVSYS_3_Handler = (void*) EVSYS_3_Handler,
- .pfnEVSYS_NSCHK_Handler = (void*) EVSYS_NSCHK_Handler,
- .pfnPAC_Handler = (void*) PAC_Handler,
- .pfnSERCOM0_0_Handler = (void*) SERCOM0_0_Handler,
- .pfnSERCOM0_1_Handler = (void*) SERCOM0_1_Handler,
- .pfnSERCOM0_2_Handler = (void*) SERCOM0_2_Handler,
- .pfnSERCOM0_OTHER_Handler = (void*) SERCOM0_OTHER_Handler,
- .pfnSERCOM1_0_Handler = (void*) SERCOM1_0_Handler,
- .pfnSERCOM1_1_Handler = (void*) SERCOM1_1_Handler,
- .pfnSERCOM1_2_Handler = (void*) SERCOM1_2_Handler,
- .pfnSERCOM1_OTHER_Handler = (void*) SERCOM1_OTHER_Handler,
- .pfnSERCOM2_0_Handler = (void*) SERCOM2_0_Handler,
- .pfnSERCOM2_1_Handler = (void*) SERCOM2_1_Handler,
- .pfnSERCOM2_2_Handler = (void*) SERCOM2_2_Handler,
- .pfnSERCOM2_OTHER_Handler = (void*) SERCOM2_OTHER_Handler,
- .pfnTC0_Handler = (void*) TC0_Handler,
- .pfnTC1_Handler = (void*) TC1_Handler,
- .pfnTC2_Handler = (void*) TC2_Handler,
- .pfnADC_OTHER_Handler = (void*) ADC_OTHER_Handler,
- .pfnADC_RESRDY_Handler = (void*) ADC_RESRDY_Handler,
- .pfnAC_Handler = (void*) AC_Handler,
- .pfnDAC_UNDERRUN_A_Handler = (void*) DAC_UNDERRUN_A_Handler,
- .pfnDAC_EMPTY_Handler = (void*) DAC_EMPTY_Handler,
- .pfnPTC_Handler = (void*) PTC_Handler,
- .pfnTRNG_Handler = (void*) TRNG_Handler,
- .pfnTRAM_Handler = (void*) TRAM_Handler
- };
- void Reset_Handler(void)
- {
- uint32_t *pSrc, *pDest;
-
- pSrc = &_etext;
- pDest = &_srelocate;
- if (pSrc != pDest) {
- for (; pDest < &_erelocate;) {
- *pDest++ = *pSrc++;
- }
- }
-
- for (pDest = &_szero; pDest < &_ezero;) {
- *pDest++ = 0;
- }
-
- pSrc = (uint32_t *) & _sfixed;
- SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
-
- __libc_init_array();
-
- main();
-
- while (1);
- }
- void Dummy_Handler(void)
- {
- while (1) {
- }
- }
|