mbed SDK library sources

Fork of mbed-src by mbed official

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Sep 25 10:30:04 2013 +0100
Revision:
30:91c1d09ada54
Child:
67:78dfdb5b4d9e
Synchronized with git revision 8f57c1e84759991fa81ede0da2b4aabe8530fa09

Who changed what in which revision?

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