mbed w/ spi bug fig

Dependents:   display-puck

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Jun 17 11:00:07 2014 +0100
Revision:
232:1e593fe58241
Synchronized with git revision 990a82a00808c8148a6e542650e5f5fe9339ea9f

Full URL: https://github.com/mbedmicro/mbed/commit/990a82a00808c8148a6e542650e5f5fe9339ea9f/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 232:1e593fe58241 1 extern "C" {
mbed_official 232:1e593fe58241 2
mbed_official 232:1e593fe58241 3 #include "LPC15xx.h"
mbed_official 232:1e593fe58241 4
mbed_official 232:1e593fe58241 5 #define WEAK __attribute__ ((weak))
mbed_official 232:1e593fe58241 6 #define ALIAS(f) __attribute__ ((weak, alias (#f)))
mbed_official 232:1e593fe58241 7 #define AFTER_VECTORS __attribute__ ((section(".after_vectors")))void ResetISR(void);
mbed_official 232:1e593fe58241 8
mbed_official 232:1e593fe58241 9 extern unsigned int __data_section_table;
mbed_official 232:1e593fe58241 10 extern unsigned int __data_section_table_end;
mbed_official 232:1e593fe58241 11 extern unsigned int __bss_section_table;
mbed_official 232:1e593fe58241 12 extern unsigned int __bss_section_table_end;
mbed_official 232:1e593fe58241 13
mbed_official 232:1e593fe58241 14
mbed_official 232:1e593fe58241 15 extern void __libc_init_array(void);
mbed_official 232:1e593fe58241 16 extern int main(void);
mbed_official 232:1e593fe58241 17 extern void _vStackTop(void);
mbed_official 232:1e593fe58241 18 extern void (* const g_pfnVectors[])(void);
mbed_official 232:1e593fe58241 19
mbed_official 232:1e593fe58241 20 void ResetISR (void);
mbed_official 232:1e593fe58241 21 WEAK void NMI_Handler(void);
mbed_official 232:1e593fe58241 22 WEAK void HardFault_Handler(void);
mbed_official 232:1e593fe58241 23 WEAK void MemManage_Handler(void);
mbed_official 232:1e593fe58241 24 WEAK void BusFault_Handler(void);
mbed_official 232:1e593fe58241 25 WEAK void UsageFault_Handler(void);
mbed_official 232:1e593fe58241 26 WEAK void SVC_Handler(void);
mbed_official 232:1e593fe58241 27 WEAK void DebugMon_Handler(void);
mbed_official 232:1e593fe58241 28 WEAK void PendSV_Handler(void);
mbed_official 232:1e593fe58241 29 WEAK void SysTick_Handler(void);
mbed_official 232:1e593fe58241 30 WEAK void IntDefaultHandler(void);
mbed_official 232:1e593fe58241 31
mbed_official 232:1e593fe58241 32
mbed_official 232:1e593fe58241 33 void WDT_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 34 void BOD_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 35 void FMC_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 36 void EEPROM_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 37 void DMA_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 38 void GINT0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 39 void GINT1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 40 void PIN_INT0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 41 void PIN_INT1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 42 void PIN_INT2_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 43 void PIN_INT3_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 44 void PIN_INT4_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 45 void PIN_INT5_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 46 void PIN_INT6_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 47 void PIN_INT7_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 48 void RIT_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 49 void SCT0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 50 void SCT1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 51 void SCT2_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 52 void SCT3_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 53 void MRT_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 54 void UART0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 55 void UART1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 56 void UART2_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 57 void I2C0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 58 void SPI0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 59 void SPI1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 60 void CAN_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 61 void USB_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 62 void USB_FIQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 63 void USBWakeup_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 64 void ADC0A_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 65 void ADC0B_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 66 void ADC0_THCMP_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 67 void ADC0_OVR_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 68 void ADC1A_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 69 void ADC1B_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 70 void ADC1_THCMP_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 71 void ADC1_OVR_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 72 void DAC_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 73 void ACMP0_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 74 void ACMP1_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 75 void ACMP2_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 76 void ACMP3_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 77 void QEI_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 78 void RTC_ALARM_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 79 void RTC_WAKE_IRQHandler(void) ALIAS(IntDefaultHandler);
mbed_official 232:1e593fe58241 80
mbed_official 232:1e593fe58241 81
mbed_official 232:1e593fe58241 82 __attribute__ ((section(".isr_vector")))
mbed_official 232:1e593fe58241 83 void (* const g_pfnVectors[])(void) = {
mbed_official 232:1e593fe58241 84 // Core Level - CM3
mbed_official 232:1e593fe58241 85 &_vStackTop, // The initial stack pointer
mbed_official 232:1e593fe58241 86 ResetISR, // The reset handler
mbed_official 232:1e593fe58241 87 NMI_Handler, // The NMI handler
mbed_official 232:1e593fe58241 88 HardFault_Handler, // The hard fault handler
mbed_official 232:1e593fe58241 89 MemManage_Handler, // The MPU fault handler
mbed_official 232:1e593fe58241 90 BusFault_Handler, // The bus fault handler
mbed_official 232:1e593fe58241 91 UsageFault_Handler, // The usage fault handler
mbed_official 232:1e593fe58241 92 0, // Reserved
mbed_official 232:1e593fe58241 93 0, // Reserved
mbed_official 232:1e593fe58241 94 0, // Reserved
mbed_official 232:1e593fe58241 95 0, // Reserved
mbed_official 232:1e593fe58241 96 SVC_Handler, // SVCall handler
mbed_official 232:1e593fe58241 97 DebugMon_Handler, // Debug monitor handler
mbed_official 232:1e593fe58241 98 0, // Reserved
mbed_official 232:1e593fe58241 99 PendSV_Handler, // The PendSV handler
mbed_official 232:1e593fe58241 100 SysTick_Handler, // The SysTick handler
mbed_official 232:1e593fe58241 101
mbed_official 232:1e593fe58241 102 // Chip Level - LPC15xx
mbed_official 232:1e593fe58241 103 WDT_IRQHandler, // 0 - Windowed watchdog timer
mbed_official 232:1e593fe58241 104 BOD_IRQHandler, // 1 - BOD
mbed_official 232:1e593fe58241 105 FMC_IRQHandler, // 2 - Flash controller
mbed_official 232:1e593fe58241 106 EEPROM_IRQHandler, // 3 - EEPROM controller
mbed_official 232:1e593fe58241 107 DMA_IRQHandler, // 4 - DMA
mbed_official 232:1e593fe58241 108 GINT0_IRQHandler, // 5 - GINT0
mbed_official 232:1e593fe58241 109 GINT1_IRQHandler, // 6 - GINT1
mbed_official 232:1e593fe58241 110 PIN_INT0_IRQHandler, // 7 - PIO INT0
mbed_official 232:1e593fe58241 111 PIN_INT1_IRQHandler, // 8 - PIO INT1
mbed_official 232:1e593fe58241 112 PIN_INT2_IRQHandler, // 9 - PIO INT2
mbed_official 232:1e593fe58241 113 PIN_INT3_IRQHandler, // 10 - PIO INT3
mbed_official 232:1e593fe58241 114 PIN_INT4_IRQHandler, // 11 - PIO INT4
mbed_official 232:1e593fe58241 115 PIN_INT5_IRQHandler, // 12 - PIO INT5
mbed_official 232:1e593fe58241 116 PIN_INT6_IRQHandler, // 13 - PIO INT6
mbed_official 232:1e593fe58241 117 PIN_INT7_IRQHandler, // 14 - PIO INT7
mbed_official 232:1e593fe58241 118 RIT_IRQHandler, // 15 - RIT
mbed_official 232:1e593fe58241 119 SCT0_IRQHandler, // 16 - State configurable timer
mbed_official 232:1e593fe58241 120 SCT1_IRQHandler, // 17 - State configurable timer
mbed_official 232:1e593fe58241 121 SCT2_IRQHandler, // 18 - State configurable timer
mbed_official 232:1e593fe58241 122 SCT3_IRQHandler, // 19 - State configurable timer
mbed_official 232:1e593fe58241 123 MRT_IRQHandler, // 20 - Multi-Rate Timer
mbed_official 232:1e593fe58241 124 UART0_IRQHandler, // 21 - UART0
mbed_official 232:1e593fe58241 125 UART1_IRQHandler, // 22 - UART1
mbed_official 232:1e593fe58241 126 UART2_IRQHandler, // 23 - UART2
mbed_official 232:1e593fe58241 127 I2C0_IRQHandler, // 24 - I2C0 controller
mbed_official 232:1e593fe58241 128 SPI0_IRQHandler, // 25 - SPI0 controller
mbed_official 232:1e593fe58241 129 SPI1_IRQHandler, // 26 - SPI1 controller
mbed_official 232:1e593fe58241 130 CAN_IRQHandler, // 27 - C_CAN0
mbed_official 232:1e593fe58241 131 USB_IRQHandler, // 28 - USB IRQ
mbed_official 232:1e593fe58241 132 USB_FIQHandler, // 29 - USB FIQ
mbed_official 232:1e593fe58241 133 USBWakeup_IRQHandler, // 30 - USB wake-up
mbed_official 232:1e593fe58241 134 ADC0A_IRQHandler, // 31 - ADC0 sequence A completion
mbed_official 232:1e593fe58241 135 ADC0B_IRQHandler, // 32 - ADC0 sequence B completion
mbed_official 232:1e593fe58241 136 ADC0_THCMP_IRQHandler, // 33 - ADC0 threshold compare
mbed_official 232:1e593fe58241 137 ADC0_OVR_IRQHandler, // 34 - ADC0 overrun
mbed_official 232:1e593fe58241 138 ADC1A_IRQHandler, // 35 - ADC1 sequence A completion
mbed_official 232:1e593fe58241 139 ADC1B_IRQHandler, // 36 - ADC1 sequence B completion
mbed_official 232:1e593fe58241 140 ADC1_THCMP_IRQHandler, // 37 - ADC1 threshold compare
mbed_official 232:1e593fe58241 141 ADC1_OVR_IRQHandler, // 38 - ADC1 overrun
mbed_official 232:1e593fe58241 142 DAC_IRQHandler, // 39 - DAC
mbed_official 232:1e593fe58241 143 ACMP0_IRQHandler, // 40 - Analog Comparator 0
mbed_official 232:1e593fe58241 144 ACMP1_IRQHandler, // 41 - Analog Comparator 1
mbed_official 232:1e593fe58241 145 ACMP2_IRQHandler, // 42 - Analog Comparator 2
mbed_official 232:1e593fe58241 146 ACMP3_IRQHandler, // 43 - Analog Comparator 3
mbed_official 232:1e593fe58241 147 QEI_IRQHandler, // 44 - QEI
mbed_official 232:1e593fe58241 148 RTC_ALARM_IRQHandler, // 45 - RTC alarm
mbed_official 232:1e593fe58241 149 RTC_WAKE_IRQHandler, // 46 - RTC wake-up
mbed_official 232:1e593fe58241 150
mbed_official 232:1e593fe58241 151 };
mbed_official 232:1e593fe58241 152 /* End Vector */
mbed_official 232:1e593fe58241 153
mbed_official 232:1e593fe58241 154 AFTER_VECTORS void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
mbed_official 232:1e593fe58241 155 unsigned int *pulDest = (unsigned int*) start;
mbed_official 232:1e593fe58241 156 unsigned int *pulSrc = (unsigned int*) romstart;
mbed_official 232:1e593fe58241 157 unsigned int loop;
mbed_official 232:1e593fe58241 158 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = *pulSrc++;
mbed_official 232:1e593fe58241 159 }
mbed_official 232:1e593fe58241 160
mbed_official 232:1e593fe58241 161 AFTER_VECTORS void bss_init(unsigned int start, unsigned int len) {
mbed_official 232:1e593fe58241 162 unsigned int *pulDest = (unsigned int*) start;
mbed_official 232:1e593fe58241 163 unsigned int loop;
mbed_official 232:1e593fe58241 164 for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = 0;
mbed_official 232:1e593fe58241 165 }
mbed_official 232:1e593fe58241 166
mbed_official 232:1e593fe58241 167
mbed_official 232:1e593fe58241 168 /* Reset entry point*/
mbed_official 232:1e593fe58241 169 extern "C" void software_init_hook(void) __attribute__((weak));
mbed_official 232:1e593fe58241 170
mbed_official 232:1e593fe58241 171 AFTER_VECTORS void ResetISR(void) {
mbed_official 232:1e593fe58241 172 unsigned int LoadAddr, ExeAddr, SectionLen;
mbed_official 232:1e593fe58241 173 unsigned int *SectionTableAddr;
mbed_official 232:1e593fe58241 174
mbed_official 232:1e593fe58241 175 SectionTableAddr = &__data_section_table;
mbed_official 232:1e593fe58241 176
mbed_official 232:1e593fe58241 177 while (SectionTableAddr < &__data_section_table_end) {
mbed_official 232:1e593fe58241 178 LoadAddr = *SectionTableAddr++;
mbed_official 232:1e593fe58241 179 ExeAddr = *SectionTableAddr++;
mbed_official 232:1e593fe58241 180 SectionLen = *SectionTableAddr++;
mbed_official 232:1e593fe58241 181 data_init(LoadAddr, ExeAddr, SectionLen);
mbed_official 232:1e593fe58241 182 }
mbed_official 232:1e593fe58241 183 while (SectionTableAddr < &__bss_section_table_end) {
mbed_official 232:1e593fe58241 184 ExeAddr = *SectionTableAddr++;
mbed_official 232:1e593fe58241 185 SectionLen = *SectionTableAddr++;
mbed_official 232:1e593fe58241 186 bss_init(ExeAddr, SectionLen);
mbed_official 232:1e593fe58241 187 }
mbed_official 232:1e593fe58241 188
mbed_official 232:1e593fe58241 189 SystemInit();
mbed_official 232:1e593fe58241 190 if (software_init_hook)
mbed_official 232:1e593fe58241 191 software_init_hook();
mbed_official 232:1e593fe58241 192 else {
mbed_official 232:1e593fe58241 193 __libc_init_array();
mbed_official 232:1e593fe58241 194 main();
mbed_official 232:1e593fe58241 195 }
mbed_official 232:1e593fe58241 196 while (1) {;}
mbed_official 232:1e593fe58241 197 }
mbed_official 232:1e593fe58241 198
mbed_official 232:1e593fe58241 199 AFTER_VECTORS void NMI_Handler (void) {}
mbed_official 232:1e593fe58241 200 AFTER_VECTORS void HardFault_Handler (void) {}
mbed_official 232:1e593fe58241 201 AFTER_VECTORS void MemManage_Handler (void) {}
mbed_official 232:1e593fe58241 202 AFTER_VECTORS void BusFault_Handler (void) {}
mbed_official 232:1e593fe58241 203 AFTER_VECTORS void UsageFault_Handler(void) {}
mbed_official 232:1e593fe58241 204 AFTER_VECTORS void SVC_Handler (void) {}
mbed_official 232:1e593fe58241 205 AFTER_VECTORS void DebugMon_Handler (void) {}
mbed_official 232:1e593fe58241 206 AFTER_VECTORS void PendSV_Handler (void) {}
mbed_official 232:1e593fe58241 207 AFTER_VECTORS void SysTick_Handler (void) {}
mbed_official 232:1e593fe58241 208 AFTER_VECTORS void IntDefaultHandler (void) {}
mbed_official 232:1e593fe58241 209
mbed_official 232:1e593fe58241 210 int __aeabi_atexit(void *object, void (*destructor)(void *), void *dso_handle) {return 0;}
mbed_official 232:1e593fe58241 211 }
mbed_official 232:1e593fe58241 212
mbed_official 232:1e593fe58241 213 #include <stdlib.h>
mbed_official 232:1e593fe58241 214
mbed_official 232:1e593fe58241 215 void *operator new(size_t size) {return malloc(size);}
mbed_official 232:1e593fe58241 216 void *operator new[](size_t size){return malloc(size);}
mbed_official 232:1e593fe58241 217
mbed_official 232:1e593fe58241 218 void operator delete(void *p) {free(p);}
mbed_official 232:1e593fe58241 219 void operator delete[](void *p) {free(p);}