mbed library sources: Modified to operate FRDM-KL25Z at 48MHz from internal 32kHz oscillator (nothing else changed).

Fork of mbed-src by mbed official

The only file that changed is: mbed-src-FLL48/targets/cmsis/TARGET_Freescale/TARGET_KL25Z/system_MKL25Z4.h

Committer:
bogdanm
Date:
Tue Sep 10 15:14:19 2013 +0300
Revision:
20:4263a77256ae
Sync with git revision 171dda705c947bf910926a0b73d6a4797802554d

Who changed what in which revision?

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