Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
startup_LPC17xx.cpp
00001 extern "C" { 00002 00003 #include "LPC17xx.h" 00004 00005 #define WEAK __attribute__ ((weak)) 00006 #define ALIAS(f) __attribute__ ((weak, alias (#f))) 00007 #define AFTER_VECTORS __attribute__ ((section(".after_vectors"))) 00008 00009 extern unsigned int __data_section_table; 00010 extern unsigned int __data_section_table_end; 00011 extern unsigned int __bss_section_table; 00012 extern unsigned int __bss_section_table_end; 00013 00014 extern void __libc_init_array(void); 00015 extern int main(void); 00016 extern void _vStackTop(void); 00017 extern void (* const g_pfnVectors[])(void); 00018 00019 void ResetISR (void); 00020 WEAK void NMI_Handler (void); 00021 WEAK void HardFault_Handler (void); 00022 WEAK void MemManage_Handler (void); 00023 WEAK void BusFault_Handler (void); 00024 WEAK void UsageFault_Handler(void); 00025 WEAK void SVCall_Handler (void); 00026 WEAK void DebugMon_Handler (void); 00027 WEAK void PendSV_Handler (void); 00028 WEAK void SysTick_Handler (void); 00029 WEAK void IntDefaultHandler (void); 00030 00031 void WDT_IRQHandler (void) ALIAS(IntDefaultHandler); 00032 void TIMER0_IRQHandler (void) ALIAS(IntDefaultHandler); 00033 void TIMER1_IRQHandler (void) ALIAS(IntDefaultHandler); 00034 void TIMER2_IRQHandler (void) ALIAS(IntDefaultHandler); 00035 void TIMER3_IRQHandler (void) ALIAS(IntDefaultHandler); 00036 void UART0_IRQHandler (void) ALIAS(IntDefaultHandler); 00037 void UART1_IRQHandler (void) ALIAS(IntDefaultHandler); 00038 void UART2_IRQHandler (void) ALIAS(IntDefaultHandler); 00039 void UART3_IRQHandler (void) ALIAS(IntDefaultHandler); 00040 void PWM1_IRQHandler (void) ALIAS(IntDefaultHandler); 00041 void I2C0_IRQHandler (void) ALIAS(IntDefaultHandler); 00042 void I2C1_IRQHandler (void) ALIAS(IntDefaultHandler); 00043 void I2C2_IRQHandler (void) ALIAS(IntDefaultHandler); 00044 void SPI_IRQHandler (void) ALIAS(IntDefaultHandler); 00045 void SSP0_IRQHandler (void) ALIAS(IntDefaultHandler); 00046 void SSP1_IRQHandler (void) ALIAS(IntDefaultHandler); 00047 void PLL0_IRQHandler (void) ALIAS(IntDefaultHandler); 00048 void RTC_IRQHandler (void) ALIAS(IntDefaultHandler); 00049 void EINT0_IRQHandler (void) ALIAS(IntDefaultHandler); 00050 void EINT1_IRQHandler (void) ALIAS(IntDefaultHandler); 00051 void EINT2_IRQHandler (void) ALIAS(IntDefaultHandler); 00052 void EINT3_IRQHandler (void) ALIAS(IntDefaultHandler); 00053 void ADC_IRQHandler (void) ALIAS(IntDefaultHandler); 00054 void BOD_IRQHandler (void) ALIAS(IntDefaultHandler); 00055 void USB_IRQHandler (void) ALIAS(IntDefaultHandler); 00056 void CAN_IRQHandler (void) ALIAS(IntDefaultHandler); 00057 void DMA_IRQHandler (void) ALIAS(IntDefaultHandler); 00058 void I2S_IRQHandler (void) ALIAS(IntDefaultHandler); 00059 void ENET_IRQHandler (void) ALIAS(IntDefaultHandler); 00060 void RIT_IRQHandler (void) ALIAS(IntDefaultHandler); 00061 void MCPWM_IRQHandler (void) ALIAS(IntDefaultHandler); 00062 void QEI_IRQHandler (void) ALIAS(IntDefaultHandler); 00063 void PLL1_IRQHandler (void) ALIAS(IntDefaultHandler); 00064 void USBActivity_IRQHandler(void) ALIAS(IntDefaultHandler); 00065 void CANActivity_IRQHandler(void) ALIAS(IntDefaultHandler); 00066 00067 __attribute__ ((section(".isr_vector"))) 00068 void (* const g_pfnVectors[])(void) = { 00069 &_vStackTop, ResetISR, NMI_Handler, 00070 HardFault_Handler, 00071 MemManage_Handler, 00072 BusFault_Handler, 00073 UsageFault_Handler, 00074 0, 00075 0, 00076 0, 00077 0, 00078 SVCall_Handler, 00079 DebugMon_Handler, 00080 0, 00081 PendSV_Handler, 00082 SysTick_Handler, 00083 WDT_IRQHandler, 00084 TIMER0_IRQHandler, 00085 TIMER1_IRQHandler, 00086 TIMER2_IRQHandler, 00087 TIMER3_IRQHandler, 00088 UART0_IRQHandler, 00089 UART1_IRQHandler, 00090 UART2_IRQHandler, 00091 UART3_IRQHandler, 00092 PWM1_IRQHandler, 00093 I2C0_IRQHandler, 00094 I2C1_IRQHandler, 00095 I2C2_IRQHandler, 00096 SPI_IRQHandler, 00097 SSP0_IRQHandler, 00098 SSP1_IRQHandler, 00099 PLL0_IRQHandler, 00100 RTC_IRQHandler, 00101 EINT0_IRQHandler, 00102 EINT1_IRQHandler, 00103 EINT2_IRQHandler, 00104 EINT3_IRQHandler, 00105 ADC_IRQHandler, 00106 BOD_IRQHandler, 00107 USB_IRQHandler, 00108 CAN_IRQHandler, 00109 DMA_IRQHandler, 00110 I2S_IRQHandler, 00111 ENET_IRQHandler, 00112 RIT_IRQHandler, 00113 MCPWM_IRQHandler, 00114 QEI_IRQHandler, 00115 PLL1_IRQHandler, 00116 USBActivity_IRQHandler, 00117 CANActivity_IRQHandler, 00118 }; 00119 00120 AFTER_VECTORS void data_init(unsigned int romstart, unsigned int start, unsigned int len) { 00121 unsigned int *pulDest = (unsigned int*) start; 00122 unsigned int *pulSrc = (unsigned int*) romstart; 00123 unsigned int loop; 00124 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = *pulSrc++; 00125 } 00126 00127 AFTER_VECTORS void bss_init(unsigned int start, unsigned int len) { 00128 unsigned int *pulDest = (unsigned int*) start; 00129 unsigned int loop; 00130 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = 0; 00131 } 00132 00133 AFTER_VECTORS void ResetISR(void) { 00134 unsigned int LoadAddr, ExeAddr, SectionLen; 00135 unsigned int *SectionTableAddr; 00136 00137 SectionTableAddr = &__data_section_table; 00138 00139 while (SectionTableAddr < &__data_section_table_end) { 00140 LoadAddr = *SectionTableAddr++; 00141 ExeAddr = *SectionTableAddr++; 00142 SectionLen = *SectionTableAddr++; 00143 data_init(LoadAddr, ExeAddr, SectionLen); 00144 } 00145 while (SectionTableAddr < &__bss_section_table_end) { 00146 ExeAddr = *SectionTableAddr++; 00147 SectionLen = *SectionTableAddr++; 00148 bss_init(ExeAddr, SectionLen); 00149 } 00150 00151 SystemInit(); 00152 __libc_init_array(); 00153 main(); 00154 while (1) {;} 00155 } 00156 00157 AFTER_VECTORS void NMI_Handler (void) {} 00158 AFTER_VECTORS void HardFault_Handler (void) {} 00159 AFTER_VECTORS void MemManage_Handler (void) {} 00160 AFTER_VECTORS void BusFault_Handler (void) {} 00161 AFTER_VECTORS void UsageFault_Handler(void) {} 00162 AFTER_VECTORS void SVCall_Handler (void) {} 00163 AFTER_VECTORS void DebugMon_Handler (void) {} 00164 AFTER_VECTORS void PendSV_Handler (void) {} 00165 AFTER_VECTORS void SysTick_Handler (void) {} 00166 AFTER_VECTORS void IntDefaultHandler (void) {} 00167 00168 int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {return 0;} 00169 } 00170 00171 #include <stdlib.h> 00172 00173 void *operator new(size_t size) {return malloc(size);} 00174 void *operator new[](size_t size){return malloc(size);} 00175 00176 void operator delete(void *p) {free(p);} 00177 void operator delete[](void *p) {free(p);}
Generated on Tue Jul 12 2022 13:47:02 by
1.7.2
