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_LPC11xx.cpp
00001 extern "C" { 00002 00003 #include "LPC11Uxx.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 void ResetISR (void); 00010 WEAK void NMI_Handler (void); 00011 WEAK void HardFault_Handler (void); 00012 WEAK void SVCall_Handler (void); 00013 WEAK void PendSV_Handler (void); 00014 WEAK void SysTick_Handler (void); 00015 WEAK void IntDefaultHandler (void); 00016 void FLEX_INT0_IRQHandler(void) ALIAS(IntDefaultHandler); 00017 void FLEX_INT1_IRQHandler(void) ALIAS(IntDefaultHandler); 00018 void FLEX_INT2_IRQHandler(void) ALIAS(IntDefaultHandler); 00019 void FLEX_INT3_IRQHandler(void) ALIAS(IntDefaultHandler); 00020 void FLEX_INT4_IRQHandler(void) ALIAS(IntDefaultHandler); 00021 void FLEX_INT5_IRQHandler(void) ALIAS(IntDefaultHandler); 00022 void FLEX_INT6_IRQHandler(void) ALIAS(IntDefaultHandler); 00023 void FLEX_INT7_IRQHandler(void) ALIAS(IntDefaultHandler); 00024 void GINT0_IRQHandler (void) ALIAS(IntDefaultHandler); 00025 void GINT1_IRQHandler (void) ALIAS(IntDefaultHandler); 00026 void SSP1_IRQHandler (void) ALIAS(IntDefaultHandler); 00027 void I2C_IRQHandler (void) ALIAS(IntDefaultHandler); 00028 void TIMER16_0_IRQHandler(void) ALIAS(IntDefaultHandler); 00029 void TIMER16_1_IRQHandler(void) ALIAS(IntDefaultHandler); 00030 void TIMER32_0_IRQHandler(void) ALIAS(IntDefaultHandler); 00031 void TIMER32_1_IRQHandler(void) ALIAS(IntDefaultHandler); 00032 void SSP0_IRQHandler (void) ALIAS(IntDefaultHandler); 00033 void UART_IRQHandler (void) ALIAS(IntDefaultHandler); 00034 void USB_IRQHandler (void) ALIAS(IntDefaultHandler); 00035 void USB_FIQHandler (void) ALIAS(IntDefaultHandler); 00036 void ADC_IRQHandler (void) ALIAS(IntDefaultHandler); 00037 void WDT_IRQHandler (void) ALIAS(IntDefaultHandler); 00038 void BOD_IRQHandler (void) ALIAS(IntDefaultHandler); 00039 void FMC_IRQHandler (void) ALIAS(IntDefaultHandler); 00040 void USBWakeup_IRQHandler(void) ALIAS(IntDefaultHandler); 00041 00042 extern void __libc_init_array(void); 00043 extern int main(void); 00044 extern void _vStackTop(void); 00045 00046 extern void (* const g_pfnVectors[])(void); 00047 __attribute__ ((section(".isr_vector"))) 00048 void (* const g_pfnVectors[])(void) = { 00049 &_vStackTop, 00050 ResetISR, 00051 NMI_Handler, 00052 HardFault_Handler, 00053 0, 00054 0, 00055 0, 00056 0, 00057 0, 00058 0, 00059 0, 00060 SVCall_Handler, 00061 0, 00062 0, 00063 PendSV_Handler, 00064 SysTick_Handler, 00065 FLEX_INT0_IRQHandler, 00066 FLEX_INT1_IRQHandler, 00067 FLEX_INT2_IRQHandler, 00068 FLEX_INT3_IRQHandler, 00069 FLEX_INT4_IRQHandler, 00070 FLEX_INT5_IRQHandler, 00071 FLEX_INT6_IRQHandler, 00072 FLEX_INT7_IRQHandler, 00073 GINT0_IRQHandler, 00074 GINT1_IRQHandler, 00075 0, 00076 0, 00077 0, 00078 0, 00079 SSP1_IRQHandler, 00080 I2C_IRQHandler, 00081 TIMER16_0_IRQHandler, 00082 TIMER16_1_IRQHandler, 00083 TIMER32_0_IRQHandler, 00084 TIMER32_1_IRQHandler, 00085 SSP0_IRQHandler, 00086 UART_IRQHandler, 00087 USB_IRQHandler, 00088 USB_FIQHandler, 00089 ADC_IRQHandler, 00090 WDT_IRQHandler, 00091 BOD_IRQHandler, 00092 FMC_IRQHandler, 00093 0, 00094 0, 00095 USBWakeup_IRQHandler, 00096 0, 00097 }; 00098 00099 AFTER_VECTORS void data_init(unsigned int romstart, unsigned int start, unsigned int len) { 00100 unsigned int *pulDest = (unsigned int*) start; 00101 unsigned int *pulSrc = (unsigned int*) romstart; 00102 unsigned int loop; 00103 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = *pulSrc++; 00104 } 00105 00106 AFTER_VECTORS void bss_init(unsigned int start, unsigned int len) { 00107 unsigned int *pulDest = (unsigned int*) start; 00108 unsigned int loop; 00109 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = 0; 00110 } 00111 00112 extern unsigned int __data_section_table; 00113 extern unsigned int __data_section_table_end; 00114 extern unsigned int __bss_section_table_end; 00115 00116 AFTER_VECTORS void ResetISR(void) { 00117 unsigned int LoadAddr, ExeAddr, SectionLen; 00118 unsigned int *SectionTableAddr; 00119 00120 // Data Init 00121 SectionTableAddr = &__data_section_table; 00122 while (SectionTableAddr < &__data_section_table_end) { 00123 LoadAddr = *SectionTableAddr++; 00124 ExeAddr = *SectionTableAddr++; 00125 SectionLen = *SectionTableAddr++; 00126 data_init(LoadAddr, ExeAddr, SectionLen); 00127 } 00128 00129 // BSS Init 00130 while (SectionTableAddr < &__bss_section_table_end) { 00131 ExeAddr = *SectionTableAddr++; 00132 SectionLen = *SectionTableAddr++; 00133 bss_init(ExeAddr, SectionLen); 00134 } 00135 00136 SystemInit(); 00137 __libc_init_array(); 00138 main(); 00139 while (1) {;} 00140 } 00141 00142 AFTER_VECTORS void NMI_Handler (void) {while(1){}} 00143 AFTER_VECTORS void HardFault_Handler(void) {while(1){}} 00144 AFTER_VECTORS void SVCall_Handler (void) {while(1){}} 00145 AFTER_VECTORS void PendSV_Handler (void) {while(1){}} 00146 AFTER_VECTORS void SysTick_Handler (void) {while(1){}} 00147 AFTER_VECTORS void IntDefaultHandler(void) {while(1){}} 00148 00149 #include <stdlib.h> 00150 00151 void *operator new (size_t size) {return malloc(size);} 00152 void *operator new[](size_t size) {return malloc(size);} 00153 00154 void operator delete (void *p) {free(p);} 00155 void operator delete[](void *p) {free(p);} 00156 00157 int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) { 00158 return 0; 00159 } 00160 00161 }
Generated on Tue Jul 12 2022 13:47:02 by
1.7.2
