mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #4020 from jeromecoutant/PR_L011
NUCLEO_L011K4 remove unsupported tool chain filespull/4013/head
						commit
						e3c0ac6c17
					
				| 
						 | 
				
			
			@ -1,195 +0,0 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32l011xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V1.5.0
 | 
			
		||||
;* Date               : 8-January-2016
 | 
			
		||||
;* Description        : STM32l011xx Devices vector table for MDK-ARM toolchain.
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
;*                      - Set the initial PC == Reset_Handler
 | 
			
		||||
;*                      - Set the vector table entries with the exceptions ISR address
 | 
			
		||||
;*                      - Branches to __main in the C library (which eventually
 | 
			
		||||
;*                        calls main()).
 | 
			
		||||
;*                      After Reset the Cortex-M0+ processor is in Thread mode,
 | 
			
		||||
;*                      priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
;* <<< Use Configuration Wizard in Context Menu >>>
 | 
			
		||||
;*******************************************************************************
 | 
			
		||||
;*
 | 
			
		||||
;* Redistribution and use in source and binary forms, with or without modification,
 | 
			
		||||
;* are permitted provided that the following conditions are met:
 | 
			
		||||
;*   1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
;*      this list of conditions and the following disclaimer.
 | 
			
		||||
;*   2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
;*      this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
;*      and/or other materials provided with the distribution.
 | 
			
		||||
;*   3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
			
		||||
;*      may be used to endorse or promote products derived from this software
 | 
			
		||||
;*      without specific prior written permission.
 | 
			
		||||
;*
 | 
			
		||||
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
;*
 | 
			
		||||
;*******************************************************************************
 | 
			
		||||
 | 
			
		||||
__initial_sp    EQU     0x20000800 ; Top of RAM
 | 
			
		||||
 | 
			
		||||
                PRESERVE8
 | 
			
		||||
                THUMB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; Vector Table Mapped to Address 0 at Reset
 | 
			
		||||
                AREA    RESET, DATA, READONLY
 | 
			
		||||
                EXPORT  __Vectors
 | 
			
		||||
                EXPORT  __Vectors_End
 | 
			
		||||
                EXPORT  __Vectors_Size
 | 
			
		||||
 | 
			
		||||
__Vectors       DCD     __initial_sp              ; Top of Stack
 | 
			
		||||
                DCD     Reset_Handler             ; Reset Handler
 | 
			
		||||
                DCD     NMI_Handler               ; NMI Handler
 | 
			
		||||
                DCD     HardFault_Handler         ; Hard Fault Handler
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     SVC_Handler               ; SVCall Handler
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     PendSV_Handler            ; PendSV Handler
 | 
			
		||||
                DCD     SysTick_Handler           ; SysTick Handler
 | 
			
		||||
 | 
			
		||||
                ; External Interrupts
 | 
			
		||||
                DCD     WWDG_IRQHandler                ; Window Watchdog
 | 
			
		||||
                DCD     PVD_IRQHandler                 ; PVD through EXTI Line detect
 | 
			
		||||
                DCD     RTC_IRQHandler                 ; RTC through EXTI Line
 | 
			
		||||
                DCD     FLASH_IRQHandler               ; FLASH
 | 
			
		||||
                DCD     RCC_IRQHandler                 ; RCC
 | 
			
		||||
                DCD     EXTI0_1_IRQHandler             ; EXTI Line 0 and 1
 | 
			
		||||
                DCD     EXTI2_3_IRQHandler             ; EXTI Line 2 and 3
 | 
			
		||||
                DCD     EXTI4_15_IRQHandler            ; EXTI Line 4 to 15
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     DMA1_Channel1_IRQHandler       ; DMA1 Channel 1
 | 
			
		||||
                DCD     DMA1_Channel2_3_IRQHandler     ; DMA1 Channel 2 and Channel 3
 | 
			
		||||
                DCD     DMA1_Channel4_5_6_7_IRQHandler ; DMA1 Channel 4, Channel 5, Channel 6 and Channel 7
 | 
			
		||||
                DCD     ADC1_COMP_IRQHandler           ; ADC1, COMP1
 | 
			
		||||
                DCD     LPTIM1_IRQHandler              ; LPTIM1
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     TIM2_IRQHandler                ; TIM2
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     TIM21_IRQHandler               ; TIM21
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     I2C1_IRQHandler                ; I2C1
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     SPI1_IRQHandler                ; SPI1
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     USART2_IRQHandler              ; USART2
 | 
			
		||||
                DCD     LPUART1_IRQHandler             ; LPUART1
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
 | 
			
		||||
__Vectors_End
 | 
			
		||||
 | 
			
		||||
__Vectors_Size  EQU  __Vectors_End - __Vectors
 | 
			
		||||
 | 
			
		||||
                AREA    |.text|, CODE, READONLY
 | 
			
		||||
 | 
			
		||||
; Reset handler routine
 | 
			
		||||
Reset_Handler    PROC
 | 
			
		||||
                 EXPORT  Reset_Handler                 [WEAK]
 | 
			
		||||
        IMPORT  __main
 | 
			
		||||
        IMPORT  SystemInit
 | 
			
		||||
                 LDR     R0, =SystemInit
 | 
			
		||||
                 BLX     R0
 | 
			
		||||
                 LDR     R0, =__main
 | 
			
		||||
                 BX      R0
 | 
			
		||||
                 ENDP
 | 
			
		||||
 | 
			
		||||
; Dummy Exception Handlers (infinite loops which can be modified)
 | 
			
		||||
 | 
			
		||||
NMI_Handler     PROC
 | 
			
		||||
                EXPORT  NMI_Handler                    [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
HardFault_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  HardFault_Handler              [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
SVC_Handler     PROC
 | 
			
		||||
                EXPORT  SVC_Handler                    [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
PendSV_Handler  PROC
 | 
			
		||||
                EXPORT  PendSV_Handler                 [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
SysTick_Handler PROC
 | 
			
		||||
                EXPORT  SysTick_Handler                [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
Default_Handler PROC
 | 
			
		||||
 | 
			
		||||
                EXPORT  WWDG_IRQHandler                [WEAK]
 | 
			
		||||
                EXPORT  PVD_IRQHandler                 [WEAK]
 | 
			
		||||
                EXPORT  RTC_IRQHandler                 [WEAK]
 | 
			
		||||
                EXPORT  FLASH_IRQHandler               [WEAK]
 | 
			
		||||
                EXPORT  RCC_IRQHandler                 [WEAK]
 | 
			
		||||
                EXPORT  EXTI0_1_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  EXTI2_3_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  EXTI4_15_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel1_IRQHandler       [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel2_3_IRQHandler     [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel4_5_6_7_IRQHandler [WEAK]
 | 
			
		||||
                EXPORT  ADC1_COMP_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  LPTIM1_IRQHandler              [WEAK]
 | 
			
		||||
                EXPORT  TIM2_IRQHandler                [WEAK]
 | 
			
		||||
                EXPORT  TIM21_IRQHandler               [WEAK]
 | 
			
		||||
                EXPORT  I2C1_IRQHandler                [WEAK]
 | 
			
		||||
                EXPORT  SPI1_IRQHandler                [WEAK]
 | 
			
		||||
                EXPORT  USART2_IRQHandler              [WEAK]
 | 
			
		||||
                EXPORT  LPUART1_IRQHandler             [WEAK]
 | 
			
		||||
 | 
			
		||||
WWDG_IRQHandler
 | 
			
		||||
PVD_IRQHandler
 | 
			
		||||
RTC_IRQHandler
 | 
			
		||||
FLASH_IRQHandler
 | 
			
		||||
RCC_IRQHandler
 | 
			
		||||
EXTI0_1_IRQHandler
 | 
			
		||||
EXTI2_3_IRQHandler
 | 
			
		||||
EXTI4_15_IRQHandler
 | 
			
		||||
DMA1_Channel1_IRQHandler
 | 
			
		||||
DMA1_Channel2_3_IRQHandler
 | 
			
		||||
DMA1_Channel4_5_6_7_IRQHandler
 | 
			
		||||
ADC1_COMP_IRQHandler
 | 
			
		||||
LPTIM1_IRQHandler
 | 
			
		||||
TIM2_IRQHandler
 | 
			
		||||
TIM21_IRQHandler
 | 
			
		||||
I2C1_IRQHandler
 | 
			
		||||
SPI1_IRQHandler
 | 
			
		||||
USART2_IRQHandler
 | 
			
		||||
LPUART1_IRQHandler
 | 
			
		||||
 | 
			
		||||
                B       .
 | 
			
		||||
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
                 END
 | 
			
		||||
 | 
			
		||||
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
 | 
			
		||||
| 
						 | 
				
			
			@ -1,44 +0,0 @@
 | 
			
		|||
; Scatter-Loading Description File
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
; Copyright (c) 2014, STMicroelectronics
 | 
			
		||||
; All rights reserved.
 | 
			
		||||
;
 | 
			
		||||
; Redistribution and use in source and binary forms, with or without
 | 
			
		||||
; modification, are permitted provided that the following conditions are met:
 | 
			
		||||
;
 | 
			
		||||
; 1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
;     this list of conditions and the following disclaimer.
 | 
			
		||||
; 2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
;    this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
;    and/or other materials provided with the distribution.
 | 
			
		||||
; 3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
			
		||||
;    may be used to endorse or promote products derived from this software
 | 
			
		||||
;    without specific prior written permission.
 | 
			
		||||
;
 | 
			
		||||
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 | 
			
		||||
; STM32L053C8: 16KB FLASH (0x4000) + 2KB RAM (0x800)
 | 
			
		||||
LR_IROM1 0x08000000 0x4000  {    ; load region size_region
 | 
			
		||||
 | 
			
		||||
  ER_IROM1 0x08000000 0x4000  {  ; load address = execution address
 | 
			
		||||
   *.o (RESET, +First)
 | 
			
		||||
   *(InRoot$$Sections)
 | 
			
		||||
   .ANY (+RO)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ; Total: 48 vectors = 192 bytes (0xC0) to be reserved in RAM
 | 
			
		||||
  RW_IRAM1 (0x20000000+0xC0) (0x800-0xC0)  {  ; RW data
 | 
			
		||||
   .ANY (+RW +ZI)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,56 +0,0 @@
 | 
			
		|||
/* mbed Microcontroller Library - stackheap
 | 
			
		||||
 * Setup a fixed single stack/heap memory model, 
 | 
			
		||||
 * between the top of the RW/ZI region and the stackpointer
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2014, STMicroelectronics
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 *
 | 
			
		||||
 * 1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
 *    this list of conditions and the following disclaimer.
 | 
			
		||||
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
 *    this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
 *    and/or other materials provided with the distribution.
 | 
			
		||||
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
			
		||||
 *    may be used to endorse or promote products derived from this software
 | 
			
		||||
 *    without specific prior written permission.
 | 
			
		||||
 *
 | 
			
		||||
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif 
 | 
			
		||||
 | 
			
		||||
#include <rt_misc.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
extern char Image$$RW_IRAM1$$ZI$$Limit[];
 | 
			
		||||
 | 
			
		||||
extern __value_in_regs struct __initial_stackheap __user_setup_stackheap(uint32_t R0, uint32_t R1, uint32_t R2, uint32_t R3) {
 | 
			
		||||
    uint32_t zi_limit = (uint32_t)Image$$RW_IRAM1$$ZI$$Limit;
 | 
			
		||||
    uint32_t sp_limit = __current_sp();
 | 
			
		||||
 | 
			
		||||
    zi_limit = (zi_limit + 7) & ~0x7;    // ensure zi_limit is 8-byte aligned
 | 
			
		||||
 | 
			
		||||
    struct __initial_stackheap r;
 | 
			
		||||
    r.heap_base = zi_limit;
 | 
			
		||||
    r.heap_limit = sp_limit;
 | 
			
		||||
    return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif 
 | 
			
		||||
| 
						 | 
				
			
			@ -1,153 +0,0 @@
 | 
			
		|||
/* Linker script to configure memory regions. */
 | 
			
		||||
MEMORY
 | 
			
		||||
{
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 16k
 | 
			
		||||
  RAM (rwx) : ORIGIN = 0x200000C0, LENGTH = 2K - 0xC0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Linker script to place sections and symbol values. Should be used together
 | 
			
		||||
 * with other linker script that defines memory regions FLASH and RAM.
 | 
			
		||||
 * It references following symbols, which must be defined in code:
 | 
			
		||||
 *   Reset_Handler : Entry of reset handler
 | 
			
		||||
 *
 | 
			
		||||
 * It defines following symbols, which code can use without definition:
 | 
			
		||||
 *   __exidx_start
 | 
			
		||||
 *   __exidx_end
 | 
			
		||||
 *   __etext
 | 
			
		||||
 *   __data_start__
 | 
			
		||||
 *   __preinit_array_start
 | 
			
		||||
 *   __preinit_array_end
 | 
			
		||||
 *   __init_array_start
 | 
			
		||||
 *   __init_array_end
 | 
			
		||||
 *   __fini_array_start
 | 
			
		||||
 *   __fini_array_end
 | 
			
		||||
 *   __data_end__
 | 
			
		||||
 *   __bss_start__
 | 
			
		||||
 *   __bss_end__
 | 
			
		||||
 *   __end__
 | 
			
		||||
 *   end
 | 
			
		||||
 *   __HeapLimit
 | 
			
		||||
 *   __StackLimit
 | 
			
		||||
 *   __StackTop
 | 
			
		||||
 *   __stack
 | 
			
		||||
 *   _estack
 | 
			
		||||
 */
 | 
			
		||||
ENTRY(Reset_Handler)
 | 
			
		||||
 | 
			
		||||
SECTIONS
 | 
			
		||||
{
 | 
			
		||||
    .text :
 | 
			
		||||
    {
 | 
			
		||||
        KEEP(*(.isr_vector))
 | 
			
		||||
        *(.text*)
 | 
			
		||||
        KEEP(*(.init))
 | 
			
		||||
        KEEP(*(.fini))
 | 
			
		||||
 | 
			
		||||
        /* .ctors */
 | 
			
		||||
        *crtbegin.o(.ctors)
 | 
			
		||||
        *crtbegin?.o(.ctors)
 | 
			
		||||
        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
 | 
			
		||||
        *(SORT(.ctors.*))
 | 
			
		||||
        *(.ctors)
 | 
			
		||||
 | 
			
		||||
        /* .dtors */
 | 
			
		||||
        *crtbegin.o(.dtors)
 | 
			
		||||
        *crtbegin?.o(.dtors)
 | 
			
		||||
        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
 | 
			
		||||
        *(SORT(.dtors.*))
 | 
			
		||||
        *(.dtors)
 | 
			
		||||
 | 
			
		||||
        *(.rodata*)
 | 
			
		||||
 | 
			
		||||
        KEEP(*(.eh_frame*))
 | 
			
		||||
    } > FLASH
 | 
			
		||||
 | 
			
		||||
    .ARM.extab :
 | 
			
		||||
    {
 | 
			
		||||
        *(.ARM.extab* .gnu.linkonce.armextab.*)
 | 
			
		||||
    } > FLASH
 | 
			
		||||
 | 
			
		||||
    __exidx_start = .;
 | 
			
		||||
    .ARM.exidx :
 | 
			
		||||
    {
 | 
			
		||||
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
 | 
			
		||||
    } > FLASH
 | 
			
		||||
    __exidx_end = .;
 | 
			
		||||
 | 
			
		||||
    __etext = .;
 | 
			
		||||
    _sidata = .;
 | 
			
		||||
 | 
			
		||||
    .data : AT (__etext)
 | 
			
		||||
    {
 | 
			
		||||
        __data_start__ = .;
 | 
			
		||||
        _sdata = .;
 | 
			
		||||
        *(vtable)
 | 
			
		||||
        *(.data*)
 | 
			
		||||
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        /* preinit data */
 | 
			
		||||
        PROVIDE_HIDDEN (__preinit_array_start = .);
 | 
			
		||||
        KEEP(*(.preinit_array))
 | 
			
		||||
        PROVIDE_HIDDEN (__preinit_array_end = .);
 | 
			
		||||
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        /* init data */
 | 
			
		||||
        PROVIDE_HIDDEN (__init_array_start = .);
 | 
			
		||||
        KEEP(*(SORT(.init_array.*)))
 | 
			
		||||
        KEEP(*(.init_array))
 | 
			
		||||
        PROVIDE_HIDDEN (__init_array_end = .);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        /* finit data */
 | 
			
		||||
        PROVIDE_HIDDEN (__fini_array_start = .);
 | 
			
		||||
        KEEP(*(SORT(.fini_array.*)))
 | 
			
		||||
        KEEP(*(.fini_array))
 | 
			
		||||
        PROVIDE_HIDDEN (__fini_array_end = .);
 | 
			
		||||
 | 
			
		||||
        KEEP(*(.jcr*))
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        /* All data end */
 | 
			
		||||
        __data_end__ = .;
 | 
			
		||||
        _edata = .;
 | 
			
		||||
 | 
			
		||||
    } > RAM
 | 
			
		||||
 | 
			
		||||
    .bss :
 | 
			
		||||
    {
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        __bss_start__ = .;
 | 
			
		||||
        _sbss = .;
 | 
			
		||||
        *(.bss*)
 | 
			
		||||
        *(COMMON)
 | 
			
		||||
        . = ALIGN(4);
 | 
			
		||||
        __bss_end__ = .;
 | 
			
		||||
        _ebss = .;
 | 
			
		||||
    } > RAM
 | 
			
		||||
 | 
			
		||||
    .heap (COPY):
 | 
			
		||||
    {
 | 
			
		||||
        __end__ = .;
 | 
			
		||||
        end = __end__;
 | 
			
		||||
        *(.heap*)
 | 
			
		||||
        __HeapLimit = .;
 | 
			
		||||
    } > RAM
 | 
			
		||||
 | 
			
		||||
    /* .stack_dummy section doesn't contains any symbols. It is only
 | 
			
		||||
     * used for linker to calculate size of stack sections, and assign
 | 
			
		||||
     * values to stack symbols later */
 | 
			
		||||
    .stack_dummy (COPY):
 | 
			
		||||
    {
 | 
			
		||||
        *(.stack*)
 | 
			
		||||
    } > RAM
 | 
			
		||||
 | 
			
		||||
    /* Set stack top to end of RAM, and stack limit move down by
 | 
			
		||||
     * size of stack_dummy section */
 | 
			
		||||
    __StackTop = ORIGIN(RAM) + LENGTH(RAM);
 | 
			
		||||
    _estack = __StackTop;
 | 
			
		||||
    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
 | 
			
		||||
    PROVIDE(__stack = __StackTop);
 | 
			
		||||
 | 
			
		||||
    /* Check if data + heap + stack exceeds RAM limit */
 | 
			
		||||
    ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,256 +0,0 @@
 | 
			
		|||
/**
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32l011xx.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V1.5.0
 | 
			
		||||
  * @date      8-January-2016
 | 
			
		||||
  * @brief     STM32L011xx Devices vector table for gcc.
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
  *                - Set the vector table entries with the exceptions ISR address
 | 
			
		||||
  *                - Branches to main in the C library (which eventually
 | 
			
		||||
  *                  calls main()).
 | 
			
		||||
  *            After Reset the Cortex-M0+ processor is in Thread mode,
 | 
			
		||||
  *            priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * 
 | 
			
		||||
  * Redistribution and use in source and binary forms, with or without modification,
 | 
			
		||||
  * are permitted provided that the following conditions are met:
 | 
			
		||||
  *   1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
  *      this list of conditions and the following disclaimer.
 | 
			
		||||
  *   2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
  *      this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
  *      and/or other materials provided with the distribution.
 | 
			
		||||
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
			
		||||
  *      may be used to endorse or promote products derived from this software
 | 
			
		||||
  *      without specific prior written permission.
 | 
			
		||||
  *
 | 
			
		||||
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
  *
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
  .syntax unified
 | 
			
		||||
  .cpu cortex-m0plus
 | 
			
		||||
  .fpu softvfp
 | 
			
		||||
  .thumb
 | 
			
		||||
 | 
			
		||||
.global  g_pfnVectors
 | 
			
		||||
.global  Default_Handler
 | 
			
		||||
 | 
			
		||||
/* start address for the initialization values of the .data section.
 | 
			
		||||
defined in linker script */
 | 
			
		||||
.word  _sidata
 | 
			
		||||
/* start address for the .data section. defined in linker script */
 | 
			
		||||
.word  _sdata
 | 
			
		||||
/* end address for the .data section. defined in linker script */
 | 
			
		||||
.word  _edata
 | 
			
		||||
 | 
			
		||||
    .section  .text.Reset_Handler
 | 
			
		||||
  .weak  Reset_Handler
 | 
			
		||||
  .type  Reset_Handler, %function
 | 
			
		||||
Reset_Handler:  
 | 
			
		||||
   ldr   r0, =_estack
 | 
			
		||||
   mov   sp, r0          /* set stack pointer */
 | 
			
		||||
 | 
			
		||||
/* Copy the data segment initializers from flash to SRAM */
 | 
			
		||||
  movs  r1, #0
 | 
			
		||||
  b  LoopCopyDataInit
 | 
			
		||||
 | 
			
		||||
CopyDataInit:
 | 
			
		||||
  ldr  r3, =_sidata
 | 
			
		||||
  ldr  r3, [r3, r1]
 | 
			
		||||
  str  r3, [r0, r1]
 | 
			
		||||
  adds  r1, r1, #4
 | 
			
		||||
 | 
			
		||||
LoopCopyDataInit:
 | 
			
		||||
  ldr  r0, =_sdata
 | 
			
		||||
  ldr  r3, =_edata
 | 
			
		||||
  adds  r2, r0, r1
 | 
			
		||||
  cmp  r2, r3
 | 
			
		||||
  bcc  CopyDataInit
 | 
			
		||||
 | 
			
		||||
/* Call the clock system intitialization function.*/
 | 
			
		||||
  bl  SystemInit
 | 
			
		||||
/* Call static constructors */
 | 
			
		||||
  //bl __libc_init_array
 | 
			
		||||
/* Call the application's entry point.*/
 | 
			
		||||
  //bl  main
 | 
			
		||||
  bl _start
 | 
			
		||||
 | 
			
		||||
LoopForever:
 | 
			
		||||
    b LoopForever
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.size  Reset_Handler, .-Reset_Handler
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief  This is the code that gets called when the processor receives an
 | 
			
		||||
 *         unexpected interrupt.  This simply enters an infinite loop, preserving
 | 
			
		||||
 *         the system state for examination by a debugger.
 | 
			
		||||
 *
 | 
			
		||||
 * @param  None
 | 
			
		||||
 * @retval : None
 | 
			
		||||
*/
 | 
			
		||||
    .section  .text.Default_Handler,"ax",%progbits
 | 
			
		||||
Default_Handler:
 | 
			
		||||
Infinite_Loop:
 | 
			
		||||
  b  Infinite_Loop
 | 
			
		||||
  .size  Default_Handler, .-Default_Handler
 | 
			
		||||
/******************************************************************************
 | 
			
		||||
*
 | 
			
		||||
* The minimal vector table for a Cortex M0.  Note that the proper constructs
 | 
			
		||||
* must be placed on this to ensure that it ends up at physical address
 | 
			
		||||
* 0x0000.0000.
 | 
			
		||||
*
 | 
			
		||||
******************************************************************************/
 | 
			
		||||
   .section  .isr_vector,"a",%progbits
 | 
			
		||||
  .type  g_pfnVectors, %object
 | 
			
		||||
  .size  g_pfnVectors, .-g_pfnVectors
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
g_pfnVectors:
 | 
			
		||||
  .word  _estack
 | 
			
		||||
  .word  Reset_Handler
 | 
			
		||||
  .word  NMI_Handler
 | 
			
		||||
  .word  HardFault_Handler
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  SVC_Handler
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  0
 | 
			
		||||
  .word  PendSV_Handler
 | 
			
		||||
  .word  SysTick_Handler
 | 
			
		||||
  .word     WWDG_IRQHandler                   /* Window WatchDog              */
 | 
			
		||||
  .word     PVD_IRQHandler                    /* PVD through EXTI Line detection */
 | 
			
		||||
  .word     RTC_IRQHandler                    /* RTC through the EXTI line     */
 | 
			
		||||
  .word     FLASH_IRQHandler                  /* FLASH                        */
 | 
			
		||||
  .word     RCC_IRQHandler                    /* RCC                          */
 | 
			
		||||
  .word     EXTI0_1_IRQHandler                /* EXTI Line 0 and 1            */
 | 
			
		||||
  .word     EXTI2_3_IRQHandler                /* EXTI Line 2 and 3            */
 | 
			
		||||
  .word     EXTI4_15_IRQHandler               /* EXTI Line 4 to 15            */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     DMA1_Channel1_IRQHandler          /* DMA1 Channel 1               */
 | 
			
		||||
  .word     DMA1_Channel2_3_IRQHandler        /* DMA1 Channel 2 and Channel 3 */
 | 
			
		||||
  .word     DMA1_Channel4_5_6_7_IRQHandler    /* DMA1 Channel 4, Channel 5, Channel 6 and Channel 7*/
 | 
			
		||||
  .word     ADC1_COMP_IRQHandler              /* ADC1, COMP1 and COMP2        */
 | 
			
		||||
  .word     LPTIM1_IRQHandler                 /* LPTIM1                       */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     TIM2_IRQHandler                   /* TIM2                         */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     TIM21_IRQHandler                  /* TIM21                        */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     I2C1_IRQHandler                   /* I2C1                         */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     SPI1_IRQHandler                   /* SPI1                         */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     USART2_IRQHandler                 /* USART2                       */
 | 
			
		||||
  .word     LPUART1_IRQHandler                /* LPUART1                      */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
  .word     0                                 /* Reserved                     */
 | 
			
		||||
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
*
 | 
			
		||||
* Provide weak aliases for each Exception handler to the Default_Handler.
 | 
			
		||||
* As they are weak aliases, any function with the same name will override
 | 
			
		||||
* this definition.
 | 
			
		||||
*
 | 
			
		||||
*******************************************************************************/
 | 
			
		||||
 | 
			
		||||
   .weak      NMI_Handler
 | 
			
		||||
   .thumb_set NMI_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      HardFault_Handler
 | 
			
		||||
   .thumb_set HardFault_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      SVC_Handler
 | 
			
		||||
   .thumb_set SVC_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      PendSV_Handler
 | 
			
		||||
   .thumb_set PendSV_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      SysTick_Handler
 | 
			
		||||
   .thumb_set SysTick_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      WWDG_IRQHandler
 | 
			
		||||
   .thumb_set WWDG_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      PVD_IRQHandler
 | 
			
		||||
   .thumb_set PVD_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      RTC_IRQHandler
 | 
			
		||||
   .thumb_set RTC_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      FLASH_IRQHandler
 | 
			
		||||
   .thumb_set FLASH_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      RCC_IRQHandler
 | 
			
		||||
   .thumb_set RCC_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      EXTI0_1_IRQHandler
 | 
			
		||||
   .thumb_set EXTI0_1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      EXTI2_3_IRQHandler
 | 
			
		||||
   .thumb_set EXTI2_3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      EXTI4_15_IRQHandler
 | 
			
		||||
   .thumb_set EXTI4_15_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      DMA1_Channel1_IRQHandler
 | 
			
		||||
   .thumb_set DMA1_Channel1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      DMA1_Channel2_3_IRQHandler
 | 
			
		||||
   .thumb_set DMA1_Channel2_3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      DMA1_Channel4_5_6_7_IRQHandler
 | 
			
		||||
   .thumb_set DMA1_Channel4_5_6_7_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      ADC1_COMP_IRQHandler
 | 
			
		||||
   .thumb_set ADC1_COMP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      LPTIM1_IRQHandler
 | 
			
		||||
   .thumb_set LPTIM1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      TIM2_IRQHandler
 | 
			
		||||
   .thumb_set TIM2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      TIM21_IRQHandler
 | 
			
		||||
   .thumb_set TIM21_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      I2C1_IRQHandler
 | 
			
		||||
   .thumb_set I2C1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      SPI1_IRQHandler
 | 
			
		||||
   .thumb_set SPI1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      USART2_IRQHandler
 | 
			
		||||
   .thumb_set USART2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
   .weak      LPUART1_IRQHandler
 | 
			
		||||
   .thumb_set LPUART1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,281 +0,0 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32l011xx.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V1.5.0
 | 
			
		||||
;* Date               : 8-January-2016
 | 
			
		||||
;* Description        : STM32L011xx Ultra Low Power Devices vector 
 | 
			
		||||
;*                      This module performs:
 | 
			
		||||
;*                      - Set the initial SP
 | 
			
		||||
;*                      - Set the initial PC == _iar_program_start,
 | 
			
		||||
;*                      - Set the vector table entries with the exceptions ISR 
 | 
			
		||||
;*                        address.
 | 
			
		||||
;*                      - Configure the system clock
 | 
			
		||||
;*                      - Branches to main in the C library (which eventually
 | 
			
		||||
;*                        calls main()).
 | 
			
		||||
;*                      After Reset the Cortex-M0+ processor is in Thread mode,
 | 
			
		||||
;*                      priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
;********************************************************************************
 | 
			
		||||
;* 
 | 
			
		||||
;* Redistribution and use in source and binary forms, with or without modification,
 | 
			
		||||
;* are permitted provided that the following conditions are met:
 | 
			
		||||
;*   1. Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
;*      this list of conditions and the following disclaimer.
 | 
			
		||||
;*   2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
;*      this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
;*      and/or other materials provided with the distribution.
 | 
			
		||||
;*   3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
			
		||||
;*      may be used to endorse or promote products derived from this software
 | 
			
		||||
;*      without specific prior written permission.
 | 
			
		||||
;*
 | 
			
		||||
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
;*
 | 
			
		||||
;*******************************************************************************/
 | 
			
		||||
;
 | 
			
		||||
;
 | 
			
		||||
; The modules in this file are included in the libraries, and may be replaced
 | 
			
		||||
; by any user-defined modules that define the PUBLIC symbol _program_start or
 | 
			
		||||
; a user defined start symbol.
 | 
			
		||||
; To override the cstartup defined in the library, simply add your modified
 | 
			
		||||
; version to the workbench project.
 | 
			
		||||
;
 | 
			
		||||
; The vector table is normally located at address 0.
 | 
			
		||||
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
 | 
			
		||||
; The name "__vector_table" has special meaning for C-SPY:
 | 
			
		||||
; it is where the SP start value is found, and the NVIC vector
 | 
			
		||||
; table register (VTOR) is initialized to this address if != 0.
 | 
			
		||||
;
 | 
			
		||||
; Cortex-M version
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
        MODULE  ?cstartup
 | 
			
		||||
 | 
			
		||||
        ;; Forward declaration of sections.
 | 
			
		||||
        SECTION CSTACK:DATA:NOROOT(3)
 | 
			
		||||
 | 
			
		||||
        SECTION .intvec:CODE:NOROOT(2)
 | 
			
		||||
 | 
			
		||||
        EXTERN  __iar_program_start
 | 
			
		||||
        EXTERN  SystemInit        
 | 
			
		||||
        PUBLIC  __vector_table
 | 
			
		||||
 | 
			
		||||
        DATA
 | 
			
		||||
__vector_table
 | 
			
		||||
        DCD     sfe(CSTACK)
 | 
			
		||||
        DCD     Reset_Handler             ; Reset Handler
 | 
			
		||||
 | 
			
		||||
        DCD     NMI_Handler               ; NMI Handler
 | 
			
		||||
        DCD     HardFault_Handler         ; Hard Fault Handler
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     SVC_Handler               ; SVCall Handler
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     PendSV_Handler            ; PendSV Handler
 | 
			
		||||
        DCD     SysTick_Handler           ; SysTick Handler
 | 
			
		||||
 | 
			
		||||
         ; External Interrupts
 | 
			
		||||
                DCD     WWDG_IRQHandler                ; Window Watchdog
 | 
			
		||||
                DCD     PVD_IRQHandler                 ; PVD through EXTI Line detect
 | 
			
		||||
                DCD     RTC_IRQHandler                 ; RTC through EXTI Line
 | 
			
		||||
                DCD     FLASH_IRQHandler               ; FLASH
 | 
			
		||||
                DCD     RCC_IRQHandler                 ; RCC
 | 
			
		||||
                DCD     EXTI0_1_IRQHandler             ; EXTI Line 0 and 1
 | 
			
		||||
                DCD     EXTI2_3_IRQHandler             ; EXTI Line 2 and 3
 | 
			
		||||
                DCD     EXTI4_15_IRQHandler            ; EXTI Line 4 to 15
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     DMA1_Channel1_IRQHandler       ; DMA1 Channel 1
 | 
			
		||||
                DCD     DMA1_Channel2_3_IRQHandler     ; DMA1 Channel 2 and Channel 3
 | 
			
		||||
                DCD     DMA1_Channel4_5_6_7_IRQHandler ; DMA1 Channel 4, Channel 5, Channel 6 and Channel 7
 | 
			
		||||
                DCD     ADC1_COMP_IRQHandler           ; ADC1, COMP1
 | 
			
		||||
                DCD     LPTIM1_IRQHandler              ; LPTIM1
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     TIM2_IRQHandler                ; TIM2
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     TIM21_IRQHandler               ; TIM21
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     0                              ; Reserved
 | 
			
		||||
                DCD     I2C1_IRQHandler                ; I2C1
 | 
			
		||||
                DCD     0                              ; Reserved    
 | 
			
		||||
                DCD     SPI1_IRQHandler                ; SPI1
 | 
			
		||||
                DCD     0                              ; Reserved    
 | 
			
		||||
                DCD     0                              ; Reserved  
 | 
			
		||||
                DCD     USART2_IRQHandler              ; USART2
 | 
			
		||||
                DCD     LPUART1_IRQHandler             ; LPUART1
 | 
			
		||||
                DCD     0                              ; Reserved    
 | 
			
		||||
                DCD     0                              ; Reserved  
 | 
			
		||||
                
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;
 | 
			
		||||
;; Default interrupt handlers.
 | 
			
		||||
;;
 | 
			
		||||
        THUMB
 | 
			
		||||
        PUBWEAK Reset_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(2)
 | 
			
		||||
Reset_Handler
 | 
			
		||||
        LDR     R0, =SystemInit
 | 
			
		||||
        BLX     R0
 | 
			
		||||
        LDR     R0, =__iar_program_start
 | 
			
		||||
        BX      R0
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK NMI_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
NMI_Handler
 | 
			
		||||
        B NMI_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK HardFault_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
HardFault_Handler
 | 
			
		||||
        B HardFault_Handler
 | 
			
		||||
       
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SVC_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
SVC_Handler
 | 
			
		||||
        B SVC_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK PendSV_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
PendSV_Handler  
 | 
			
		||||
        B PendSV_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SysTick_Handler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
SysTick_Handler
 | 
			
		||||
        B SysTick_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK WWDG_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
WWDG_IRQHandler
 | 
			
		||||
        B WWDG_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK PVD_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
PVD_IRQHandler
 | 
			
		||||
        B PVD_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK RTC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
RTC_IRQHandler
 | 
			
		||||
        B RTC_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK FLASH_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
FLASH_IRQHandler
 | 
			
		||||
        B FLASH_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK RCC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
RCC_IRQHandler
 | 
			
		||||
        B RCC_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK EXTI0_1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
EXTI0_1_IRQHandler
 | 
			
		||||
        B EXTI0_1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK EXTI2_3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
EXTI2_3_IRQHandler
 | 
			
		||||
        B EXTI2_3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK EXTI4_15_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
EXTI4_15_IRQHandler
 | 
			
		||||
        B EXTI4_15_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
            
 | 
			
		||||
        PUBWEAK DMA1_Channel1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
DMA1_Channel1_IRQHandler
 | 
			
		||||
        B DMA1_Channel1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK DMA1_Channel2_3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
DMA1_Channel2_3_IRQHandler
 | 
			
		||||
        B DMA1_Channel2_3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK DMA1_Channel4_5_6_7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
DMA1_Channel4_5_6_7_IRQHandler
 | 
			
		||||
        B DMA1_Channel4_5_6_7_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK ADC1_COMP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
ADC1_COMP_IRQHandler
 | 
			
		||||
        B ADC1_COMP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                 
 | 
			
		||||
        PUBWEAK LPTIM1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
LPTIM1_IRQHandler
 | 
			
		||||
        B LPTIM1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK TIM2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
TIM2_IRQHandler
 | 
			
		||||
        B TIM2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK TIM21_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
TIM21_IRQHandler
 | 
			
		||||
        B TIM21_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        PUBWEAK I2C1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
I2C1_IRQHandler
 | 
			
		||||
        B I2C1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK SPI1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
SPI1_IRQHandler
 | 
			
		||||
        B SPI1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK USART2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
USART2_IRQHandler
 | 
			
		||||
        B USART2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK LPUART1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:NOROOT:REORDER(1)
 | 
			
		||||
LPUART1_IRQHandler
 | 
			
		||||
        B LPUART1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        END
 | 
			
		||||
;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
 | 
			
		||||
| 
						 | 
				
			
			@ -1,30 +0,0 @@
 | 
			
		|||
/* [ROM = 16kb = 0x4000] */
 | 
			
		||||
define symbol __intvec_start__     = 0x08000000;
 | 
			
		||||
define symbol __region_ROM_start__ = 0x08000000;
 | 
			
		||||
define symbol __region_ROM_end__   = 0x08003FFF;
 | 
			
		||||
 | 
			
		||||
/* [RAM = 2kb = 0x800] Vector table dynamic copy: 48 vectors = 192 bytes (0xC0) to be reserved in RAM */
 | 
			
		||||
define symbol __NVIC_start__          = 0x20000000;
 | 
			
		||||
define symbol __NVIC_end__            = 0x200000BF; /* Aligned on 8 bytes */
 | 
			
		||||
define symbol __region_RAM_start__    = 0x200000C0;
 | 
			
		||||
define symbol __region_RAM_end__      = 0x200007FF;
 | 
			
		||||
 | 
			
		||||
/* Memory regions */
 | 
			
		||||
define memory mem with size = 4G;
 | 
			
		||||
define region ROM_region = mem:[from __region_ROM_start__ to __region_ROM_end__];
 | 
			
		||||
define region RAM_region = mem:[from __region_RAM_start__ to __region_RAM_end__];
 | 
			
		||||
 | 
			
		||||
/* Stack and Heap */
 | 
			
		||||
define symbol __size_cstack__ = 0x400;
 | 
			
		||||
define symbol __size_heap__   = 0x200;
 | 
			
		||||
define block CSTACK    with alignment = 8, size = __size_cstack__   { };
 | 
			
		||||
define block HEAP      with alignment = 8, size = __size_heap__     { };
 | 
			
		||||
define block STACKHEAP with fixed order { block HEAP, block CSTACK };
 | 
			
		||||
 | 
			
		||||
initialize by copy with packing = zeros { readwrite };
 | 
			
		||||
do not initialize  { section .noinit };
 | 
			
		||||
 | 
			
		||||
place at address mem:__intvec_start__ { readonly section .intvec };
 | 
			
		||||
 | 
			
		||||
place in ROM_region   { readonly };
 | 
			
		||||
place in RAM_region   { readwrite, block STACKHEAP };
 | 
			
		||||
		Loading…
	
		Reference in New Issue