mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Fri Feb 16 16:09:33 2018 +0000
Revision:
181:57724642e740
Parent:
149:156823d33999
mbed-dev library. Release version 159.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 extern "C" {
<> 144:ef7eb2e8f9f7 2
<> 144:ef7eb2e8f9f7 3 #include "LPC11Uxx.h"
<> 144:ef7eb2e8f9f7 4
<> 144:ef7eb2e8f9f7 5 #define WEAK __attribute__ ((weak))
<> 144:ef7eb2e8f9f7 6 #define ALIAS(f) __attribute__ ((weak, alias (#f)))
<> 144:ef7eb2e8f9f7 7 #define AFTER_VECTORS __attribute__ ((section(".after_vectors")))
<> 144:ef7eb2e8f9f7 8
<> 144:ef7eb2e8f9f7 9 void ResetISR (void);
<> 144:ef7eb2e8f9f7 10 WEAK void NMI_Handler (void);
<> 144:ef7eb2e8f9f7 11 WEAK void HardFault_Handler (void);
<> 144:ef7eb2e8f9f7 12 WEAK void SVC_Handler (void);
<> 144:ef7eb2e8f9f7 13 WEAK void PendSV_Handler (void);
<> 144:ef7eb2e8f9f7 14 WEAK void SysTick_Handler (void);
<> 144:ef7eb2e8f9f7 15 WEAK void IntDefaultHandler (void);
<> 144:ef7eb2e8f9f7 16 void FLEX_INT0_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 17 void FLEX_INT1_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 18 void FLEX_INT2_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 19 void FLEX_INT3_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 20 void FLEX_INT4_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 21 void FLEX_INT5_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 22 void FLEX_INT6_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 23 void FLEX_INT7_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 24 void GINT0_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 25 void GINT1_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 26 void SSP1_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 27 void I2C_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 28 void TIMER16_0_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 29 void TIMER16_1_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 30 void TIMER32_0_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 31 void TIMER32_1_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 32 void SSP0_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 33 void UART_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 34 void USB_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 35 void USB_FIQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 36 void ADC_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 37 void WDT_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 38 void BOD_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 39 void FMC_IRQHandler (void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 40 void USBWakeup_IRQHandler(void) ALIAS(IntDefaultHandler);
<> 144:ef7eb2e8f9f7 41
<> 144:ef7eb2e8f9f7 42 extern void __libc_init_array(void);
<> 144:ef7eb2e8f9f7 43 extern int main(void);
<> 144:ef7eb2e8f9f7 44 extern void _vStackTop(void);
<> 144:ef7eb2e8f9f7 45
<> 144:ef7eb2e8f9f7 46 extern void (* const g_pfnVectors[])(void);
<> 144:ef7eb2e8f9f7 47 __attribute__ ((section(".isr_vector")))
<> 144:ef7eb2e8f9f7 48 void (* const g_pfnVectors[])(void) = {
<> 144:ef7eb2e8f9f7 49 &_vStackTop,
<> 144:ef7eb2e8f9f7 50 ResetISR,
<> 144:ef7eb2e8f9f7 51 NMI_Handler,
<> 144:ef7eb2e8f9f7 52 HardFault_Handler,
<> 144:ef7eb2e8f9f7 53 0,
<> 144:ef7eb2e8f9f7 54 0,
<> 144:ef7eb2e8f9f7 55 0,
<> 144:ef7eb2e8f9f7 56 0,
<> 144:ef7eb2e8f9f7 57 0,
<> 144:ef7eb2e8f9f7 58 0,
<> 144:ef7eb2e8f9f7 59 0,
<> 144:ef7eb2e8f9f7 60 SVC_Handler,
<> 144:ef7eb2e8f9f7 61 0,
<> 144:ef7eb2e8f9f7 62 0,
<> 144:ef7eb2e8f9f7 63 PendSV_Handler,
<> 144:ef7eb2e8f9f7 64 SysTick_Handler,
<> 144:ef7eb2e8f9f7 65 FLEX_INT0_IRQHandler,
<> 144:ef7eb2e8f9f7 66 FLEX_INT1_IRQHandler,
<> 144:ef7eb2e8f9f7 67 FLEX_INT2_IRQHandler,
<> 144:ef7eb2e8f9f7 68 FLEX_INT3_IRQHandler,
<> 144:ef7eb2e8f9f7 69 FLEX_INT4_IRQHandler,
<> 144:ef7eb2e8f9f7 70 FLEX_INT5_IRQHandler,
<> 144:ef7eb2e8f9f7 71 FLEX_INT6_IRQHandler,
<> 144:ef7eb2e8f9f7 72 FLEX_INT7_IRQHandler,
<> 144:ef7eb2e8f9f7 73 GINT0_IRQHandler,
<> 144:ef7eb2e8f9f7 74 GINT1_IRQHandler,
<> 144:ef7eb2e8f9f7 75 0,
<> 144:ef7eb2e8f9f7 76 0,
<> 144:ef7eb2e8f9f7 77 0,
<> 144:ef7eb2e8f9f7 78 0,
<> 144:ef7eb2e8f9f7 79 SSP1_IRQHandler,
<> 144:ef7eb2e8f9f7 80 I2C_IRQHandler,
<> 144:ef7eb2e8f9f7 81 TIMER16_0_IRQHandler,
<> 144:ef7eb2e8f9f7 82 TIMER16_1_IRQHandler,
<> 144:ef7eb2e8f9f7 83 TIMER32_0_IRQHandler,
<> 144:ef7eb2e8f9f7 84 TIMER32_1_IRQHandler,
<> 144:ef7eb2e8f9f7 85 SSP0_IRQHandler,
<> 144:ef7eb2e8f9f7 86 UART_IRQHandler,
<> 144:ef7eb2e8f9f7 87 USB_IRQHandler,
<> 144:ef7eb2e8f9f7 88 USB_FIQHandler,
<> 144:ef7eb2e8f9f7 89 ADC_IRQHandler,
<> 144:ef7eb2e8f9f7 90 WDT_IRQHandler,
<> 144:ef7eb2e8f9f7 91 BOD_IRQHandler,
<> 144:ef7eb2e8f9f7 92 FMC_IRQHandler,
<> 144:ef7eb2e8f9f7 93 0,
<> 144:ef7eb2e8f9f7 94 0,
<> 144:ef7eb2e8f9f7 95 USBWakeup_IRQHandler,
<> 144:ef7eb2e8f9f7 96 0,
<> 144:ef7eb2e8f9f7 97 };
<> 144:ef7eb2e8f9f7 98
<> 144:ef7eb2e8f9f7 99 AFTER_VECTORS void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
<> 144:ef7eb2e8f9f7 100 unsigned int *pulDest = (unsigned int*) start;
<> 144:ef7eb2e8f9f7 101 unsigned int *pulSrc = (unsigned int*) romstart;
<> 144:ef7eb2e8f9f7 102 unsigned int loop;
<> 144:ef7eb2e8f9f7 103 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = *pulSrc++;
<> 144:ef7eb2e8f9f7 104 }
<> 144:ef7eb2e8f9f7 105
<> 144:ef7eb2e8f9f7 106 AFTER_VECTORS void bss_init(unsigned int start, unsigned int len) {
<> 144:ef7eb2e8f9f7 107 unsigned int *pulDest = (unsigned int*) start;
<> 144:ef7eb2e8f9f7 108 unsigned int loop;
<> 144:ef7eb2e8f9f7 109 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = 0;
<> 144:ef7eb2e8f9f7 110 }
<> 144:ef7eb2e8f9f7 111
<> 144:ef7eb2e8f9f7 112 extern unsigned int __data_section_table;
<> 144:ef7eb2e8f9f7 113 extern unsigned int __data_section_table_end;
<> 144:ef7eb2e8f9f7 114 extern unsigned int __bss_section_table_end;
<> 144:ef7eb2e8f9f7 115
<> 147:30b64687e01f 116 extern "C" void software_init_hook(void);
<> 147:30b64687e01f 117 extern "C" void pre_main(void) __attribute__((weak));
<> 144:ef7eb2e8f9f7 118
<> 144:ef7eb2e8f9f7 119 AFTER_VECTORS void ResetISR(void) {
<> 144:ef7eb2e8f9f7 120 unsigned int LoadAddr, ExeAddr, SectionLen;
<> 144:ef7eb2e8f9f7 121 unsigned int *SectionTableAddr;
<> 144:ef7eb2e8f9f7 122
<> 144:ef7eb2e8f9f7 123 // Data Init
<> 144:ef7eb2e8f9f7 124 SectionTableAddr = &__data_section_table;
<> 144:ef7eb2e8f9f7 125 while (SectionTableAddr < &__data_section_table_end) {
<> 144:ef7eb2e8f9f7 126 LoadAddr = *SectionTableAddr++;
<> 144:ef7eb2e8f9f7 127 ExeAddr = *SectionTableAddr++;
<> 144:ef7eb2e8f9f7 128 SectionLen = *SectionTableAddr++;
<> 144:ef7eb2e8f9f7 129 data_init(LoadAddr, ExeAddr, SectionLen);
<> 144:ef7eb2e8f9f7 130 }
<> 144:ef7eb2e8f9f7 131
<> 144:ef7eb2e8f9f7 132 // BSS Init
<> 144:ef7eb2e8f9f7 133 while (SectionTableAddr < &__bss_section_table_end) {
<> 144:ef7eb2e8f9f7 134 ExeAddr = *SectionTableAddr++;
<> 144:ef7eb2e8f9f7 135 SectionLen = *SectionTableAddr++;
<> 144:ef7eb2e8f9f7 136 bss_init(ExeAddr, SectionLen);
<> 144:ef7eb2e8f9f7 137 }
<> 144:ef7eb2e8f9f7 138
<> 144:ef7eb2e8f9f7 139 SystemInit();
<> 147:30b64687e01f 140 if (pre_main) { // give control to the RTOS
<> 144:ef7eb2e8f9f7 141 software_init_hook(); // this will also call __libc_init_array
<> 147:30b64687e01f 142 }
<> 147:30b64687e01f 143 else { // for BareMetal (non-RTOS) build
<> 144:ef7eb2e8f9f7 144 __libc_init_array();
<> 144:ef7eb2e8f9f7 145 main();
<> 144:ef7eb2e8f9f7 146 }
<> 144:ef7eb2e8f9f7 147 while (1) {;}
<> 144:ef7eb2e8f9f7 148 }
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 AFTER_VECTORS void NMI_Handler (void) {while(1){}}
<> 144:ef7eb2e8f9f7 151 AFTER_VECTORS void HardFault_Handler(void) {while(1){}}
<> 144:ef7eb2e8f9f7 152 AFTER_VECTORS void SVC_Handler (void) {while(1){}}
<> 144:ef7eb2e8f9f7 153 AFTER_VECTORS void PendSV_Handler (void) {while(1){}}
<> 144:ef7eb2e8f9f7 154 AFTER_VECTORS void SysTick_Handler (void) {while(1){}}
<> 144:ef7eb2e8f9f7 155 AFTER_VECTORS void IntDefaultHandler(void) {while(1){}}
<> 144:ef7eb2e8f9f7 156
<> 144:ef7eb2e8f9f7 157 int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {
<> 144:ef7eb2e8f9f7 158 return 0;
<> 144:ef7eb2e8f9f7 159 }
<> 144:ef7eb2e8f9f7 160
<> 144:ef7eb2e8f9f7 161 }