mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

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.

Revision:
10:3bc89ef62ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/Freescale/KL25Z/cmsis/GCC_CW_EWL/startup_MKL25Z4.c	Fri Jun 14 17:49:17 2013 +0100
@@ -0,0 +1,147 @@
+#include <string.h>
+#include <stdlib.h>
+
+#include "cmsis.h"
+
+// Linker Script
+extern unsigned long _estack;
+extern char __S_romp[];
+
+extern char __START_BSS[];
+extern char __END_BSS[];
+
+// CRT0
+extern void __init_registers();
+extern void __copy_rom_sections_to_ram(void);
+extern void __call_static_initializers(void);
+extern void __init_user();
+
+// User/mbed Defined
+extern int main();
+extern void mbed_exit(int return_code);
+
+void _ExitProcess(int return_code) {
+    mbed_exit(return_code);
+}
+
+void __thumb_startup(void) {
+    // Setup registers
+    __init_registers();
+    
+    // Disable the Watchdog because it may reset the core before entering main().
+    SIM->COPC = 0x0;
+    
+    //  zero-fill the .bss section
+    memset(__START_BSS, 0, (__END_BSS - __START_BSS));
+    
+    if (__S_romp != 0L)
+        __copy_rom_sections_to_ram();
+    
+    //  call C++ static initializers
+    __call_static_initializers();
+    
+    // initializations before main, user specific
+    __init_user();
+    
+    exit(main());
+    
+    //  should never get here
+    while (1);
+}
+
+void Default_Handler() {
+    __asm("bkpt");
+}
+
+/* Weak definitions of handlers point to Default_Handler if not implemented */
+void NMI_Handler() __attribute__ ((weak, alias("Default_Handler")));
+void HardFault_Handler() __attribute__ ((weak, alias("Default_Handler")));
+void SVC_Handler() __attribute__ ((weak, alias("Default_Handler")));
+void PendSV_Handler() __attribute__ ((weak, alias("Default_Handler")));
+void SysTick_Handler() __attribute__ ((weak, alias("Default_Handler")));
+
+void DMA0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void DMA1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void DMA2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void DMA3_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void MCM_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void FTFL_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void PMC_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void LLW_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void I2C0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void I2C1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void SPI0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void SPI1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void UART0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void UART1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void UART2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void ADC0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void CMP0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void FTM0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void FTM1_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void FTM2_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void RTC_Alarm_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void RTC_Seconds_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void PIT_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void USBOTG_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void DAC0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void TSI0_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void MCG_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void LPTimer_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void PORTA_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+void PORTD_IRQHandler() __attribute__ ((weak, alias("Default_Handler")));
+
+/* The Interrupt Vector Table */
+void (* const InterruptVector[])() __attribute__ ((section(".vectortable"))) = {
+    /* Processor exceptions */
+    (void(*)(void)) &_estack,
+    __thumb_startup,
+    NMI_Handler,
+    HardFault_Handler,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    SVC_Handler,
+    0,
+    0,
+    PendSV_Handler,
+    SysTick_Handler,
+
+    /* Interrupts */
+    DMA0_IRQHandler, /* DMA Channel 0 Transfer Complete and Error */
+    DMA1_IRQHandler, /* DMA Channel 1 Transfer Complete and Error */
+    DMA2_IRQHandler, /* DMA Channel 2 Transfer Complete and Error */
+    DMA3_IRQHandler, /* DMA Channel 3 Transfer Complete and Error */
+    MCM_IRQHandler, /* Normal Interrupt */
+    FTFL_IRQHandler, /* FTFL Interrupt */
+    PMC_IRQHandler, /* PMC Interrupt */
+    LLW_IRQHandler, /* Low Leakage Wake-up */
+    I2C0_IRQHandler, /* I2C0 interrupt */
+    I2C1_IRQHandler, /* I2C1 interrupt */
+    SPI0_IRQHandler, /* SPI0 Interrupt */
+    SPI1_IRQHandler, /* SPI1 Interrupt */
+    UART0_IRQHandler, /* UART0 Status and Error interrupt */
+    UART1_IRQHandler, /* UART1 Status and Error interrupt */
+    UART2_IRQHandler, /* UART2 Status and Error interrupt */
+    ADC0_IRQHandler, /* ADC0 interrupt */
+    CMP0_IRQHandler, /* CMP0 interrupt */
+    FTM0_IRQHandler, /* FTM0 fault, overflow and channels interrupt */
+    FTM1_IRQHandler, /* FTM1 fault, overflow and channels interrupt */
+    FTM2_IRQHandler, /* FTM2 fault, overflow and channels interrupt */
+    RTC_Alarm_IRQHandler, /* RTC Alarm interrupt */
+    RTC_Seconds_IRQHandler, /* RTC Seconds interrupt */
+    PIT_IRQHandler, /* PIT timer all channels interrupt */
+    Default_Handler, /* Reserved interrupt 39/23 */
+    USBOTG_IRQHandler, /* USB interrupt */
+    DAC0_IRQHandler, /* DAC0 interrupt */
+    TSI0_IRQHandler, /* TSI0 Interrupt */
+    MCG_IRQHandler, /* MCG Interrupt */
+    LPTimer_IRQHandler, /* LPTimer interrupt */
+    Default_Handler, /* Reserved interrupt 45/29 */
+    PORTA_IRQHandler, /* Port A interrupt */
+    PORTD_IRQHandler /* Port D interrupt */
+};