mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			
						commit
						c8bd08f60e
					
				| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2015, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
#ifndef MBED_PERIPHERALNAMES_H
 | 
			
		||||
#define MBED_PERIPHERALNAMES_H
 | 
			
		||||
 | 
			
		||||
#include "cmsis.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    ADC_1 = (int)ADC1_BASE
 | 
			
		||||
} ADCName;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    DAC_1 = (int)DAC_BASE
 | 
			
		||||
} DACName;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    UART_1 = (int)USART1_BASE,
 | 
			
		||||
    UART_2 = (int)USART2_BASE,
 | 
			
		||||
    UART_3 = (int)USART3_BASE
 | 
			
		||||
} UARTName;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    SPI_1 = (int)SPI1_BASE,
 | 
			
		||||
    SPI_2 = (int)SPI2_BASE
 | 
			
		||||
} SPIName;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    I2C_1 = (int)I2C1_BASE,
 | 
			
		||||
    I2C_2 = (int)I2C2_BASE
 | 
			
		||||
} I2CName;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    PWM_2  = (int)TIM2_BASE,
 | 
			
		||||
    PWM_3  = (int)TIM3_BASE,
 | 
			
		||||
    PWM_4  = (int)TIM4_BASE, // used as us_ticker
 | 
			
		||||
    PWM_9  = (int)TIM9_BASE,
 | 
			
		||||
    PWM_10 = (int)TIM10_BASE,
 | 
			
		||||
    PWM_11 = (int)TIM11_BASE
 | 
			
		||||
} PWMName;
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,125 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2016, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "PeripheralPins.h"
 | 
			
		||||
 | 
			
		||||
// =====
 | 
			
		||||
// Note: Commented lines are alternative possibilities which are not used per default.
 | 
			
		||||
//       If you change them, you will have also to modify the corresponding xxx_api.c file
 | 
			
		||||
//       for pwmout, analogin, analogout, ...
 | 
			
		||||
// =====
 | 
			
		||||
 | 
			
		||||
//*** ADC ***
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_ADC[] = {
 | 
			
		||||
    {PB_12, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC_IN18
 | 
			
		||||
    {PB_14, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 20, 0)}, // ADC_IN20
 | 
			
		||||
    {PB_15, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 21, 0)}, // ADC_IN21
 | 
			
		||||
    {NC,    NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_ADC_Internal[] = {
 | 
			
		||||
    {ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
 | 
			
		||||
    {ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
 | 
			
		||||
    {NC,    NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//*** DAC ***
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_DAC[] = {
 | 
			
		||||
    {NC,   NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//*** I2C ***
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_I2C_SDA[] = {
 | 
			
		||||
    {PB_9,  I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
 | 
			
		||||
    {PB_11, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
 | 
			
		||||
    {NC,    NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_I2C_SCL[] = {
 | 
			
		||||
    {PB_8,  I2C_1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
 | 
			
		||||
    {PB_10, I2C_2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
 | 
			
		||||
    {NC,    NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//*** PWM ***
 | 
			
		||||
 | 
			
		||||
// TIM5 cannot be used because already used by the us_ticker.
 | 
			
		||||
const PinMap PinMap_PWM[] = {
 | 
			
		||||
    {PB_10, PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)},  // TIM2_CH3
 | 
			
		||||
    {PB_11, PWM_2,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)},  // TIM2_CH4
 | 
			
		||||
    {NC,    NC,     0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//*** SERIAL ***
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_UART_TX[] = {
 | 
			
		||||
    {PA_2,  UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
 | 
			
		||||
    {PA_9,  UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
 | 
			
		||||
    {PB_10, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
 | 
			
		||||
    {NC,    NC,     0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_UART_RX[] = {
 | 
			
		||||
    {PA_10, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
 | 
			
		||||
    {PB_11, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
 | 
			
		||||
    {NC,    NC,     0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//*** SPI ***
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_SPI_MOSI[] = {
 | 
			
		||||
    {PA_7,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PA_12,     SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_5,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_15,     SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
 | 
			
		||||
    {NC,        NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_SPI_MISO[] = {
 | 
			
		||||
    {PA_6,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_4,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_14,     SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
 | 
			
		||||
    {NC,        NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_SPI_SCLK[] = {
 | 
			
		||||
    {PA_5,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_3,      SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {NC,        NC,    0}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PinMap PinMap_SPI_SSEL[] = {
 | 
			
		||||
    {PA_15,     SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
 | 
			
		||||
    {PB_12,     SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
 | 
			
		||||
    {NC,        NC,    0}
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,148 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2016, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
#ifndef MBED_PINNAMES_H
 | 
			
		||||
#define MBED_PINNAMES_H
 | 
			
		||||
 | 
			
		||||
#include "cmsis.h"
 | 
			
		||||
#include "PinNamesTypes.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
    PA_0  = 0x00,
 | 
			
		||||
    PA_1  = 0x01,
 | 
			
		||||
    PA_2  = 0x02,
 | 
			
		||||
    PA_3  = 0x03,
 | 
			
		||||
    PA_4  = 0x04,
 | 
			
		||||
    PA_5  = 0x05,
 | 
			
		||||
    PA_6  = 0x06,
 | 
			
		||||
    PA_7  = 0x07,
 | 
			
		||||
    PA_8  = 0x08,
 | 
			
		||||
    PA_9  = 0x09,
 | 
			
		||||
    PA_10 = 0x0A,
 | 
			
		||||
    PA_11 = 0x0B,
 | 
			
		||||
    PA_12 = 0x0C,
 | 
			
		||||
    PA_13 = 0x0D,
 | 
			
		||||
    PA_14 = 0x0E,
 | 
			
		||||
    PA_15 = 0x0F,
 | 
			
		||||
 | 
			
		||||
    PB_0  = 0x10,
 | 
			
		||||
    PB_1  = 0x11,
 | 
			
		||||
    PB_2  = 0x12, // not used
 | 
			
		||||
    PB_3  = 0x13,
 | 
			
		||||
    PB_4  = 0x14,
 | 
			
		||||
    PB_5  = 0x15,
 | 
			
		||||
    PB_6  = 0x16,
 | 
			
		||||
    PB_7  = 0x17,
 | 
			
		||||
    PB_8  = 0x18,
 | 
			
		||||
    PB_9  = 0x19,
 | 
			
		||||
    PB_10 = 0x1A,
 | 
			
		||||
    PB_11 = 0x1B,
 | 
			
		||||
    PB_12 = 0x1C,
 | 
			
		||||
    PB_13 = 0x1D,
 | 
			
		||||
    PB_14 = 0x1E,
 | 
			
		||||
    PB_15 = 0x1F,
 | 
			
		||||
 | 
			
		||||
    PC_13 = 0x2D,
 | 
			
		||||
    PC_14 = 0x2E, // not used ?
 | 
			
		||||
    PC_15 = 0x2F, // not used ?
 | 
			
		||||
 | 
			
		||||
    PH_0  = 0x70,
 | 
			
		||||
    PH_1  = 0x71, // not used ?
 | 
			
		||||
 | 
			
		||||
    // ADC internal channels
 | 
			
		||||
    ADC_TEMP = 0xF0,
 | 
			
		||||
    ADC_VREF = 0xF1,
 | 
			
		||||
 | 
			
		||||
    ADC1_0   = PB_14,
 | 
			
		||||
    ADC1_1   = PB_15,
 | 
			
		||||
    ADC1_2   = PB_12,
 | 
			
		||||
 | 
			
		||||
    UARTn_RX = PA_10,
 | 
			
		||||
    UARTn_TX = PA_9,
 | 
			
		||||
 | 
			
		||||
    SPI_RF_MOSI = PA_7,
 | 
			
		||||
    SPI_RF_MISO = PA_6,
 | 
			
		||||
    SPI_RF_SCK  = PA_5,
 | 
			
		||||
    SPI_RF_CS   = PB_0,
 | 
			
		||||
    SPI_RF_RESET= PB_13,
 | 
			
		||||
 | 
			
		||||
    DIO0        = PA_11,
 | 
			
		||||
    DIO1        = PB_1,
 | 
			
		||||
    DIO2        = PA_3,
 | 
			
		||||
    DIO3        = PH_0,
 | 
			
		||||
    DIO4        = PC_13,
 | 
			
		||||
    //DIO5        = ,
 | 
			
		||||
 | 
			
		||||
    ANT_CTX_PA  = PA_4,
 | 
			
		||||
    ANT_CRX_RX  = PB_6,
 | 
			
		||||
    ANT_CBT_HF  = PB_7,
 | 
			
		||||
    RF_TCXO_EN  = PH_1,
 | 
			
		||||
 | 
			
		||||
    SPI_MISO    = PB_4,
 | 
			
		||||
    SPI_MOSI    = PB_5,
 | 
			
		||||
    SPI_SCK     = PB_3,
 | 
			
		||||
    FLASH_CS    = PA_15,
 | 
			
		||||
 | 
			
		||||
    I2C_SCL     = PB_8,
 | 
			
		||||
    I2C_SDA     = PB_0,
 | 
			
		||||
 | 
			
		||||
    LCD_A0      = PA_8,
 | 
			
		||||
    LCD_nCS     = PA_1,
 | 
			
		||||
    LCD_nRESET  = PA_2,
 | 
			
		||||
 | 
			
		||||
    // Generic signals namings
 | 
			
		||||
    LED1        = PA_12, // red
 | 
			
		||||
    LED2        = PB_10, // blue
 | 
			
		||||
    LED3        = PB_11, // green
 | 
			
		||||
    USER_BUTTON = PA_0,
 | 
			
		||||
 | 
			
		||||
    STDIO_UART_RX = PA_10,
 | 
			
		||||
    STDIO_UART_TX = PA_9,
 | 
			
		||||
 | 
			
		||||
    // aliases
 | 
			
		||||
    POT         = ADC1_2,
 | 
			
		||||
    BUTTON1     = USER_BUTTON,
 | 
			
		||||
    SERIAL_TX   = STDIO_UART_TX,
 | 
			
		||||
    SERIAL_RX   = STDIO_UART_RX,
 | 
			
		||||
    USBTX       = STDIO_UART_TX,
 | 
			
		||||
    USBRX       = STDIO_UART_RX,
 | 
			
		||||
 | 
			
		||||
    // Not connected
 | 
			
		||||
    NC = (int)0xFFFFFFFF
 | 
			
		||||
} PinName;
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,306 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32l151xb.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.2.0
 | 
			
		||||
;* Date               : 01-July-2016
 | 
			
		||||
;* Description        : STM32L151XB Devices vector 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.
 | 
			
		||||
;*                      - Configure the system clock
 | 
			
		||||
;*                      - Branches to __main in the C library (which eventually
 | 
			
		||||
;*                        calls main()).
 | 
			
		||||
;*                      After Reset the Cortex-M3 processor is in Thread mode,
 | 
			
		||||
;*                      priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
;********************************************************************************
 | 
			
		||||
;*
 | 
			
		||||
;* COPYRIGHT(c) 2016 STMicroelectronics
 | 
			
		||||
;*
 | 
			
		||||
;* 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.
 | 
			
		||||
;
 | 
			
		||||
;*******************************************************************************
 | 
			
		||||
;
 | 
			
		||||
; Amount of memory (in bytes) allocated for Stack
 | 
			
		||||
; Tailor this value to your application needs
 | 
			
		||||
; <h> Stack Configuration
 | 
			
		||||
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
; </h>
 | 
			
		||||
 | 
			
		||||
Stack_Size      EQU     0x00000400
 | 
			
		||||
 | 
			
		||||
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
                EXPORT  __initial_sp
 | 
			
		||||
 | 
			
		||||
Stack_Mem       SPACE   Stack_Size
 | 
			
		||||
__initial_sp    EQU     0x20008000 ; Top of RAM (32 KB)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; <h> Heap Configuration
 | 
			
		||||
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
; </h>
 | 
			
		||||
 | 
			
		||||
Heap_Size       EQU     0x00000200
 | 
			
		||||
 | 
			
		||||
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
 | 
			
		||||
                EXPORT  __heap_base
 | 
			
		||||
                EXPORT  __heap_limit
 | 
			
		||||
 | 
			
		||||
__heap_base
 | 
			
		||||
Heap_Mem        SPACE   Heap_Size
 | 
			
		||||
__heap_limit    EQU (__initial_sp - Stack_Size)
 | 
			
		||||
 | 
			
		||||
                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     MemManage_Handler         ; MPU Fault Handler
 | 
			
		||||
                DCD     BusFault_Handler          ; Bus Fault Handler
 | 
			
		||||
                DCD     UsageFault_Handler        ; Usage Fault Handler
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     SVC_Handler               ; SVCall Handler
 | 
			
		||||
                DCD     DebugMon_Handler          ; Debug Monitor Handler
 | 
			
		||||
                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     TAMPER_STAMP_IRQHandler   ; Tamper and Time Stamp
 | 
			
		||||
                DCD     RTC_WKUP_IRQHandler       ; RTC Wakeup
 | 
			
		||||
                DCD     FLASH_IRQHandler          ; FLASH
 | 
			
		||||
                DCD     RCC_IRQHandler            ; RCC
 | 
			
		||||
                DCD     EXTI0_IRQHandler          ; EXTI Line 0
 | 
			
		||||
                DCD     EXTI1_IRQHandler          ; EXTI Line 1
 | 
			
		||||
                DCD     EXTI2_IRQHandler          ; EXTI Line 2
 | 
			
		||||
                DCD     EXTI3_IRQHandler          ; EXTI Line 3
 | 
			
		||||
                DCD     EXTI4_IRQHandler          ; EXTI Line 4
 | 
			
		||||
                DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1
 | 
			
		||||
                DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2
 | 
			
		||||
                DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3
 | 
			
		||||
                DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4
 | 
			
		||||
                DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5
 | 
			
		||||
                DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6
 | 
			
		||||
                DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7
 | 
			
		||||
                DCD     ADC1_IRQHandler           ; ADC1
 | 
			
		||||
                DCD     USB_HP_IRQHandler         ; USB High Priority
 | 
			
		||||
                DCD     USB_LP_IRQHandler         ; USB Low  Priority
 | 
			
		||||
                DCD     DAC_IRQHandler            ; DAC
 | 
			
		||||
                DCD     COMP_IRQHandler           ; COMP through EXTI Line
 | 
			
		||||
                DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     TIM9_IRQHandler           ; TIM9
 | 
			
		||||
                DCD     TIM10_IRQHandler          ; TIM10
 | 
			
		||||
                DCD     TIM11_IRQHandler          ; TIM11
 | 
			
		||||
                DCD     TIM2_IRQHandler           ; TIM2
 | 
			
		||||
                DCD     TIM3_IRQHandler           ; TIM3
 | 
			
		||||
                DCD     TIM4_IRQHandler           ; TIM4
 | 
			
		||||
                DCD     I2C1_EV_IRQHandler        ; I2C1 Event
 | 
			
		||||
                DCD     I2C1_ER_IRQHandler        ; I2C1 Error
 | 
			
		||||
                DCD     I2C2_EV_IRQHandler        ; I2C2 Event
 | 
			
		||||
                DCD     I2C2_ER_IRQHandler        ; I2C2 Error
 | 
			
		||||
                DCD     SPI1_IRQHandler           ; SPI1
 | 
			
		||||
                DCD     SPI2_IRQHandler           ; SPI2
 | 
			
		||||
                DCD     USART1_IRQHandler         ; USART1
 | 
			
		||||
                DCD     USART2_IRQHandler         ; USART2
 | 
			
		||||
                DCD     USART3_IRQHandler         ; USART3
 | 
			
		||||
                DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10
 | 
			
		||||
                DCD     RTC_Alarm_IRQHandler      ; RTC Alarm through EXTI Line
 | 
			
		||||
                DCD     USB_FS_WKUP_IRQHandler    ; USB FS Wakeup from suspend
 | 
			
		||||
                DCD     TIM6_IRQHandler           ; TIM6
 | 
			
		||||
                DCD     TIM7_IRQHandler           ; TIM7
 | 
			
		||||
 | 
			
		||||
__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
 | 
			
		||||
MemManage_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  MemManage_Handler          [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
BusFault_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  BusFault_Handler           [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
UsageFault_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  UsageFault_Handler         [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
SVC_Handler     PROC
 | 
			
		||||
                EXPORT  SVC_Handler                [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
DebugMon_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  DebugMon_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  TAMPER_STAMP_IRQHandler    [WEAK]
 | 
			
		||||
                EXPORT  RTC_WKUP_IRQHandler        [WEAK]
 | 
			
		||||
                EXPORT  FLASH_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  RCC_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  EXTI0_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI1_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI2_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI3_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI4_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  ADC1_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  USB_HP_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USB_LP_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  DAC_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  COMP_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  TIM9_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM10_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  TIM11_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  TIM2_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM3_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM4_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  SPI1_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  SPI2_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  USART1_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USART2_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USART3_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
 | 
			
		||||
                EXPORT  RTC_Alarm_IRQHandler       [WEAK]
 | 
			
		||||
                EXPORT  USB_FS_WKUP_IRQHandler     [WEAK]
 | 
			
		||||
                EXPORT  TIM6_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM7_IRQHandler            [WEAK]
 | 
			
		||||
 | 
			
		||||
WWDG_IRQHandler
 | 
			
		||||
PVD_IRQHandler
 | 
			
		||||
TAMPER_STAMP_IRQHandler
 | 
			
		||||
RTC_WKUP_IRQHandler
 | 
			
		||||
FLASH_IRQHandler
 | 
			
		||||
RCC_IRQHandler
 | 
			
		||||
EXTI0_IRQHandler
 | 
			
		||||
EXTI1_IRQHandler
 | 
			
		||||
EXTI2_IRQHandler
 | 
			
		||||
EXTI3_IRQHandler
 | 
			
		||||
EXTI4_IRQHandler
 | 
			
		||||
DMA1_Channel1_IRQHandler
 | 
			
		||||
DMA1_Channel2_IRQHandler
 | 
			
		||||
DMA1_Channel3_IRQHandler
 | 
			
		||||
DMA1_Channel4_IRQHandler
 | 
			
		||||
DMA1_Channel5_IRQHandler
 | 
			
		||||
DMA1_Channel6_IRQHandler
 | 
			
		||||
DMA1_Channel7_IRQHandler
 | 
			
		||||
ADC1_IRQHandler
 | 
			
		||||
USB_HP_IRQHandler
 | 
			
		||||
USB_LP_IRQHandler
 | 
			
		||||
DAC_IRQHandler
 | 
			
		||||
COMP_IRQHandler
 | 
			
		||||
EXTI9_5_IRQHandler
 | 
			
		||||
TIM9_IRQHandler
 | 
			
		||||
TIM10_IRQHandler
 | 
			
		||||
TIM11_IRQHandler
 | 
			
		||||
TIM2_IRQHandler
 | 
			
		||||
TIM3_IRQHandler
 | 
			
		||||
TIM4_IRQHandler
 | 
			
		||||
I2C1_EV_IRQHandler
 | 
			
		||||
I2C1_ER_IRQHandler
 | 
			
		||||
I2C2_EV_IRQHandler
 | 
			
		||||
I2C2_ER_IRQHandler
 | 
			
		||||
SPI1_IRQHandler
 | 
			
		||||
SPI2_IRQHandler
 | 
			
		||||
USART1_IRQHandler
 | 
			
		||||
USART2_IRQHandler
 | 
			
		||||
USART3_IRQHandler
 | 
			
		||||
EXTI15_10_IRQHandler
 | 
			
		||||
RTC_Alarm_IRQHandler
 | 
			
		||||
USB_FS_WKUP_IRQHandler
 | 
			
		||||
TIM6_IRQHandler
 | 
			
		||||
TIM7_IRQHandler
 | 
			
		||||
 | 
			
		||||
                B       .
 | 
			
		||||
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
                END
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
; Scatter-Loading Description File
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
; Copyright (c) 2015, 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.
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 | 
			
		||||
; STM32L151CB: 128KB FLASH + 32KB SRAM
 | 
			
		||||
LR_IROM1 0x08000000 0x20000  {    ; load region size_region
 | 
			
		||||
 | 
			
		||||
  ER_IROM1 0x08000000 0x20000  {  ; load address = execution address
 | 
			
		||||
   *.o (RESET, +First)
 | 
			
		||||
   *(InRoot$$Sections)
 | 
			
		||||
   .ANY (+RO)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ; 61 vectors = 244 bytes (0xF4) to be reserved in RAM
 | 
			
		||||
  RW_IRAM1 (0x20000000+0xF4) (0x8000-0xF4)  {  ; RW data
 | 
			
		||||
   .ANY (+RW +ZI)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,285 @@
 | 
			
		|||
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32l151xb.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.2.0
 | 
			
		||||
;* Date               : 01-July-2016
 | 
			
		||||
;* Description        : STM32L151XB Devices vector 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.
 | 
			
		||||
;*                      - Configure the system clock
 | 
			
		||||
;*                      - Branches to __main in the C library (which eventually
 | 
			
		||||
;*                        calls main()).
 | 
			
		||||
;*                      After Reset the Cortex-M3 processor is in Thread mode,
 | 
			
		||||
;*                      priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
;********************************************************************************
 | 
			
		||||
;*
 | 
			
		||||
;* COPYRIGHT(c) 2016 STMicroelectronics
 | 
			
		||||
;*
 | 
			
		||||
;* 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.
 | 
			
		||||
;
 | 
			
		||||
;*******************************************************************************
 | 
			
		||||
;
 | 
			
		||||
; Amount of memory (in bytes) allocated for Stack
 | 
			
		||||
; Tailor this value to your application needs
 | 
			
		||||
; <h> Stack Configuration
 | 
			
		||||
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
 | 
			
		||||
; </h>
 | 
			
		||||
 | 
			
		||||
__initial_sp    EQU     0x20008000 ; Top of RAM (32 KB)
 | 
			
		||||
 | 
			
		||||
                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     MemManage_Handler         ; MPU Fault Handler
 | 
			
		||||
                DCD     BusFault_Handler          ; Bus Fault Handler
 | 
			
		||||
                DCD     UsageFault_Handler        ; Usage Fault Handler
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     SVC_Handler               ; SVCall Handler
 | 
			
		||||
                DCD     DebugMon_Handler          ; Debug Monitor Handler
 | 
			
		||||
                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     TAMPER_STAMP_IRQHandler   ; Tamper and Time Stamp
 | 
			
		||||
                DCD     RTC_WKUP_IRQHandler       ; RTC Wakeup
 | 
			
		||||
                DCD     FLASH_IRQHandler          ; FLASH
 | 
			
		||||
                DCD     RCC_IRQHandler            ; RCC
 | 
			
		||||
                DCD     EXTI0_IRQHandler          ; EXTI Line 0
 | 
			
		||||
                DCD     EXTI1_IRQHandler          ; EXTI Line 1
 | 
			
		||||
                DCD     EXTI2_IRQHandler          ; EXTI Line 2
 | 
			
		||||
                DCD     EXTI3_IRQHandler          ; EXTI Line 3
 | 
			
		||||
                DCD     EXTI4_IRQHandler          ; EXTI Line 4
 | 
			
		||||
                DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1
 | 
			
		||||
                DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2
 | 
			
		||||
                DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3
 | 
			
		||||
                DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4
 | 
			
		||||
                DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5
 | 
			
		||||
                DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6
 | 
			
		||||
                DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7
 | 
			
		||||
                DCD     ADC1_IRQHandler           ; ADC1
 | 
			
		||||
                DCD     USB_HP_IRQHandler         ; USB High Priority
 | 
			
		||||
                DCD     USB_LP_IRQHandler         ; USB Low  Priority
 | 
			
		||||
                DCD     DAC_IRQHandler            ; DAC
 | 
			
		||||
                DCD     COMP_IRQHandler           ; COMP through EXTI Line
 | 
			
		||||
                DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5
 | 
			
		||||
                DCD     0                         ; Reserved
 | 
			
		||||
                DCD     TIM9_IRQHandler           ; TIM9
 | 
			
		||||
                DCD     TIM10_IRQHandler          ; TIM10
 | 
			
		||||
                DCD     TIM11_IRQHandler          ; TIM11
 | 
			
		||||
                DCD     TIM2_IRQHandler           ; TIM2
 | 
			
		||||
                DCD     TIM3_IRQHandler           ; TIM3
 | 
			
		||||
                DCD     TIM4_IRQHandler           ; TIM4
 | 
			
		||||
                DCD     I2C1_EV_IRQHandler        ; I2C1 Event
 | 
			
		||||
                DCD     I2C1_ER_IRQHandler        ; I2C1 Error
 | 
			
		||||
                DCD     I2C2_EV_IRQHandler        ; I2C2 Event
 | 
			
		||||
                DCD     I2C2_ER_IRQHandler        ; I2C2 Error
 | 
			
		||||
                DCD     SPI1_IRQHandler           ; SPI1
 | 
			
		||||
                DCD     SPI2_IRQHandler           ; SPI2
 | 
			
		||||
                DCD     USART1_IRQHandler         ; USART1
 | 
			
		||||
                DCD     USART2_IRQHandler         ; USART2
 | 
			
		||||
                DCD     USART3_IRQHandler         ; USART3
 | 
			
		||||
                DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10
 | 
			
		||||
                DCD     RTC_Alarm_IRQHandler      ; RTC Alarm through EXTI Line
 | 
			
		||||
                DCD     USB_FS_WKUP_IRQHandler    ; USB FS Wakeup from suspend
 | 
			
		||||
                DCD     TIM6_IRQHandler           ; TIM6
 | 
			
		||||
                DCD     TIM7_IRQHandler           ; TIM7
 | 
			
		||||
 | 
			
		||||
__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
 | 
			
		||||
MemManage_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  MemManage_Handler          [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
BusFault_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  BusFault_Handler           [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
UsageFault_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  UsageFault_Handler         [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
SVC_Handler     PROC
 | 
			
		||||
                EXPORT  SVC_Handler                [WEAK]
 | 
			
		||||
                B       .
 | 
			
		||||
                ENDP
 | 
			
		||||
DebugMon_Handler\
 | 
			
		||||
                PROC
 | 
			
		||||
                EXPORT  DebugMon_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  TAMPER_STAMP_IRQHandler    [WEAK]
 | 
			
		||||
                EXPORT  RTC_WKUP_IRQHandler        [WEAK]
 | 
			
		||||
                EXPORT  FLASH_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  RCC_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  EXTI0_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI1_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI2_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI3_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  EXTI4_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
 | 
			
		||||
                EXPORT  ADC1_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  USB_HP_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USB_LP_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  DAC_IRQHandler             [WEAK]
 | 
			
		||||
                EXPORT  COMP_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  TIM9_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM10_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  TIM11_IRQHandler           [WEAK]
 | 
			
		||||
                EXPORT  TIM2_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM3_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM4_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
 | 
			
		||||
                EXPORT  SPI1_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  SPI2_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  USART1_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USART2_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  USART3_IRQHandler          [WEAK]
 | 
			
		||||
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
 | 
			
		||||
                EXPORT  RTC_Alarm_IRQHandler       [WEAK]
 | 
			
		||||
                EXPORT  USB_FS_WKUP_IRQHandler     [WEAK]
 | 
			
		||||
                EXPORT  TIM6_IRQHandler            [WEAK]
 | 
			
		||||
                EXPORT  TIM7_IRQHandler            [WEAK]
 | 
			
		||||
 | 
			
		||||
WWDG_IRQHandler
 | 
			
		||||
PVD_IRQHandler
 | 
			
		||||
TAMPER_STAMP_IRQHandler
 | 
			
		||||
RTC_WKUP_IRQHandler
 | 
			
		||||
FLASH_IRQHandler
 | 
			
		||||
RCC_IRQHandler
 | 
			
		||||
EXTI0_IRQHandler
 | 
			
		||||
EXTI1_IRQHandler
 | 
			
		||||
EXTI2_IRQHandler
 | 
			
		||||
EXTI3_IRQHandler
 | 
			
		||||
EXTI4_IRQHandler
 | 
			
		||||
DMA1_Channel1_IRQHandler
 | 
			
		||||
DMA1_Channel2_IRQHandler
 | 
			
		||||
DMA1_Channel3_IRQHandler
 | 
			
		||||
DMA1_Channel4_IRQHandler
 | 
			
		||||
DMA1_Channel5_IRQHandler
 | 
			
		||||
DMA1_Channel6_IRQHandler
 | 
			
		||||
DMA1_Channel7_IRQHandler
 | 
			
		||||
ADC1_IRQHandler
 | 
			
		||||
USB_HP_IRQHandler
 | 
			
		||||
USB_LP_IRQHandler
 | 
			
		||||
DAC_IRQHandler
 | 
			
		||||
COMP_IRQHandler
 | 
			
		||||
EXTI9_5_IRQHandler
 | 
			
		||||
TIM9_IRQHandler
 | 
			
		||||
TIM10_IRQHandler
 | 
			
		||||
TIM11_IRQHandler
 | 
			
		||||
TIM2_IRQHandler
 | 
			
		||||
TIM3_IRQHandler
 | 
			
		||||
TIM4_IRQHandler
 | 
			
		||||
I2C1_EV_IRQHandler
 | 
			
		||||
I2C1_ER_IRQHandler
 | 
			
		||||
I2C2_EV_IRQHandler
 | 
			
		||||
I2C2_ER_IRQHandler
 | 
			
		||||
SPI1_IRQHandler
 | 
			
		||||
SPI2_IRQHandler
 | 
			
		||||
USART1_IRQHandler
 | 
			
		||||
USART2_IRQHandler
 | 
			
		||||
USART3_IRQHandler
 | 
			
		||||
EXTI15_10_IRQHandler
 | 
			
		||||
RTC_Alarm_IRQHandler
 | 
			
		||||
USB_FS_WKUP_IRQHandler
 | 
			
		||||
TIM6_IRQHandler
 | 
			
		||||
TIM7_IRQHandler
 | 
			
		||||
 | 
			
		||||
                B       .
 | 
			
		||||
 | 
			
		||||
                ENDP
 | 
			
		||||
 | 
			
		||||
                ALIGN
 | 
			
		||||
                END
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
; Scatter-Loading Description File
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
; Copyright (c) 2015, 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.
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 | 
			
		||||
; STM32L151CB: 128KB FLASH + 32KB SRAM
 | 
			
		||||
LR_IROM1 0x08000000 0x20000  {    ; load region size_region
 | 
			
		||||
 | 
			
		||||
  ER_IROM1 0x08000000 0x20000  {  ; load address = execution address
 | 
			
		||||
   *.o (RESET, +First)
 | 
			
		||||
   *(InRoot$$Sections)
 | 
			
		||||
   .ANY (+RO)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ; 61 vectors = 244 bytes (0xF4) to be reserved in RAM
 | 
			
		||||
  RW_IRAM1 (0x20000000+0xF4) (0x8000-0xF4)  {  ; RW data
 | 
			
		||||
   .ANY (+RW +ZI)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,157 @@
 | 
			
		|||
/* Linker script to configure memory regions. */
 | 
			
		||||
 | 
			
		||||
MEMORY
 | 
			
		||||
{
 | 
			
		||||
  /* 128KB FLASH, 32KB RAM, Reserve up till 0xF4. There are 61 vectors = 244
 | 
			
		||||
   * bytes (0xF4) in RAM.
 | 
			
		||||
   */
 | 
			
		||||
  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128k
 | 
			
		||||
  RAM (rwx) : ORIGIN = 0x200000F4, LENGTH = 0x8000-0xF4
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 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")
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,363 @@
 | 
			
		|||
/**
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @file      startup_stm32l151xb.s
 | 
			
		||||
  * @author    MCD Application Team
 | 
			
		||||
  * @version   V2.2.0
 | 
			
		||||
  * @date      01-July-2016
 | 
			
		||||
  * @brief     STM32L151XB Devices vector table for 
 | 
			
		||||
  *            Atollic toolchain.
 | 
			
		||||
  *            This module performs:
 | 
			
		||||
  *                - Set the initial SP
 | 
			
		||||
  *                - Set the initial PC == Reset_Handler,
 | 
			
		||||
  *                - Set the vector table entries with the exceptions ISR address
 | 
			
		||||
  *                - Configure the clock system
 | 
			
		||||
  *                - Branches to main in the C library (which eventually
 | 
			
		||||
  *                  calls main()).
 | 
			
		||||
  *            After Reset the Cortex-M3 processor is in Thread mode,
 | 
			
		||||
  *            priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  *
 | 
			
		||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
			
		||||
  *
 | 
			
		||||
  * 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-m3
 | 
			
		||||
  .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
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief  This is the code that gets called when the processor first
 | 
			
		||||
 *          starts execution following a reset event. Only the absolutely
 | 
			
		||||
 *          necessary set is performed, after which the application
 | 
			
		||||
 *          supplied main() routine is called.
 | 
			
		||||
 * @param  None
 | 
			
		||||
 * @retval : None
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
  .section .text.Reset_Handler
 | 
			
		||||
  .weak Reset_Handler
 | 
			
		||||
  .type Reset_Handler, %function
 | 
			
		||||
Reset_Handler:
 | 
			
		||||
 | 
			
		||||
/* 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
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Calling the crt0 'cold-start' entry point. There __libc_init_array is called
 | 
			
		||||
 * and when existing hardware_init_hook() and software_init_hook() before 
 | 
			
		||||
 * starting main(). software_init_hook() is available and has to be called due 
 | 
			
		||||
 * to initializsation when using rtos.
 | 
			
		||||
*/
 | 
			
		||||
    bl _start
 | 
			
		||||
    bx lr
 | 
			
		||||
.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 M3.  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 MemManage_Handler
 | 
			
		||||
  .word BusFault_Handler
 | 
			
		||||
  .word UsageFault_Handler
 | 
			
		||||
  .word 0
 | 
			
		||||
  .word 0
 | 
			
		||||
  .word 0
 | 
			
		||||
  .word 0
 | 
			
		||||
  .word SVC_Handler
 | 
			
		||||
  .word DebugMon_Handler
 | 
			
		||||
  .word 0
 | 
			
		||||
  .word PendSV_Handler
 | 
			
		||||
  .word SysTick_Handler
 | 
			
		||||
  .word WWDG_IRQHandler
 | 
			
		||||
  .word PVD_IRQHandler
 | 
			
		||||
  .word TAMPER_STAMP_IRQHandler
 | 
			
		||||
  .word RTC_WKUP_IRQHandler
 | 
			
		||||
  .word FLASH_IRQHandler
 | 
			
		||||
  .word RCC_IRQHandler
 | 
			
		||||
  .word EXTI0_IRQHandler
 | 
			
		||||
  .word EXTI1_IRQHandler
 | 
			
		||||
  .word EXTI2_IRQHandler
 | 
			
		||||
  .word EXTI3_IRQHandler
 | 
			
		||||
  .word EXTI4_IRQHandler
 | 
			
		||||
  .word DMA1_Channel1_IRQHandler
 | 
			
		||||
  .word DMA1_Channel2_IRQHandler
 | 
			
		||||
  .word DMA1_Channel3_IRQHandler
 | 
			
		||||
  .word DMA1_Channel4_IRQHandler
 | 
			
		||||
  .word DMA1_Channel5_IRQHandler
 | 
			
		||||
  .word DMA1_Channel6_IRQHandler
 | 
			
		||||
  .word DMA1_Channel7_IRQHandler
 | 
			
		||||
  .word ADC1_IRQHandler
 | 
			
		||||
  .word USB_HP_IRQHandler
 | 
			
		||||
  .word USB_LP_IRQHandler
 | 
			
		||||
  .word DAC_IRQHandler
 | 
			
		||||
  .word COMP_IRQHandler
 | 
			
		||||
  .word EXTI9_5_IRQHandler
 | 
			
		||||
  .word 0  
 | 
			
		||||
  .word TIM9_IRQHandler
 | 
			
		||||
  .word TIM10_IRQHandler
 | 
			
		||||
  .word TIM11_IRQHandler
 | 
			
		||||
  .word TIM2_IRQHandler
 | 
			
		||||
  .word TIM3_IRQHandler
 | 
			
		||||
  .word TIM4_IRQHandler
 | 
			
		||||
  .word I2C1_EV_IRQHandler
 | 
			
		||||
  .word I2C1_ER_IRQHandler
 | 
			
		||||
  .word I2C2_EV_IRQHandler
 | 
			
		||||
  .word I2C2_ER_IRQHandler
 | 
			
		||||
  .word SPI1_IRQHandler
 | 
			
		||||
  .word SPI2_IRQHandler
 | 
			
		||||
  .word USART1_IRQHandler
 | 
			
		||||
  .word USART2_IRQHandler
 | 
			
		||||
  .word USART3_IRQHandler
 | 
			
		||||
  .word EXTI15_10_IRQHandler
 | 
			
		||||
  .word RTC_Alarm_IRQHandler
 | 
			
		||||
  .word USB_FS_WKUP_IRQHandler
 | 
			
		||||
  .word TIM6_IRQHandler
 | 
			
		||||
  .word TIM7_IRQHandler
 | 
			
		||||
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
*
 | 
			
		||||
* 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 MemManage_Handler
 | 
			
		||||
  .thumb_set MemManage_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak BusFault_Handler
 | 
			
		||||
  .thumb_set BusFault_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak UsageFault_Handler
 | 
			
		||||
  .thumb_set UsageFault_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak SVC_Handler
 | 
			
		||||
  .thumb_set SVC_Handler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DebugMon_Handler
 | 
			
		||||
  .thumb_set DebugMon_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 TAMPER_STAMP_IRQHandler
 | 
			
		||||
  .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak RTC_WKUP_IRQHandler
 | 
			
		||||
  .thumb_set RTC_WKUP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak FLASH_IRQHandler
 | 
			
		||||
  .thumb_set FLASH_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak RCC_IRQHandler
 | 
			
		||||
  .thumb_set RCC_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI0_IRQHandler
 | 
			
		||||
  .thumb_set EXTI0_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI1_IRQHandler
 | 
			
		||||
  .thumb_set EXTI1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI2_IRQHandler
 | 
			
		||||
  .thumb_set EXTI2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI3_IRQHandler
 | 
			
		||||
  .thumb_set EXTI3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI4_IRQHandler
 | 
			
		||||
  .thumb_set EXTI4_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel1_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel2_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel3_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel4_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel4_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel5_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel5_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel6_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel6_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DMA1_Channel7_IRQHandler
 | 
			
		||||
  .thumb_set DMA1_Channel7_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak ADC1_IRQHandler
 | 
			
		||||
  .thumb_set ADC1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USB_HP_IRQHandler
 | 
			
		||||
  .thumb_set USB_HP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USB_LP_IRQHandler
 | 
			
		||||
  .thumb_set USB_LP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak DAC_IRQHandler
 | 
			
		||||
  .thumb_set DAC_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak COMP_IRQHandler
 | 
			
		||||
  .thumb_set COMP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI9_5_IRQHandler
 | 
			
		||||
  .thumb_set EXTI9_5_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM9_IRQHandler
 | 
			
		||||
  .thumb_set TIM9_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM10_IRQHandler
 | 
			
		||||
  .thumb_set TIM10_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM11_IRQHandler
 | 
			
		||||
  .thumb_set TIM11_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM2_IRQHandler
 | 
			
		||||
  .thumb_set TIM2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM3_IRQHandler
 | 
			
		||||
  .thumb_set TIM3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM4_IRQHandler
 | 
			
		||||
  .thumb_set TIM4_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak I2C1_EV_IRQHandler
 | 
			
		||||
  .thumb_set I2C1_EV_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak I2C1_ER_IRQHandler
 | 
			
		||||
  .thumb_set I2C1_ER_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak I2C2_EV_IRQHandler
 | 
			
		||||
  .thumb_set I2C2_EV_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak I2C2_ER_IRQHandler
 | 
			
		||||
  .thumb_set I2C2_ER_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak SPI1_IRQHandler
 | 
			
		||||
  .thumb_set SPI1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak SPI2_IRQHandler
 | 
			
		||||
  .thumb_set SPI2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USART1_IRQHandler
 | 
			
		||||
  .thumb_set USART1_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USART2_IRQHandler
 | 
			
		||||
  .thumb_set USART2_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USART3_IRQHandler
 | 
			
		||||
  .thumb_set USART3_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak EXTI15_10_IRQHandler
 | 
			
		||||
  .thumb_set EXTI15_10_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak RTC_Alarm_IRQHandler
 | 
			
		||||
  .thumb_set RTC_Alarm_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak USB_FS_WKUP_IRQHandler
 | 
			
		||||
  .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM6_IRQHandler
 | 
			
		||||
  .thumb_set TIM6_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
  .weak TIM7_IRQHandler
 | 
			
		||||
  .thumb_set TIM7_IRQHandler,Default_Handler
 | 
			
		||||
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,471 @@
 | 
			
		|||
;/******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
 | 
			
		||||
;* File Name          : startup_stm32l152xc.s
 | 
			
		||||
;* Author             : MCD Application Team
 | 
			
		||||
;* Version            : V2.2.0
 | 
			
		||||
;* Date               : 01-July-2016
 | 
			
		||||
;* Description        : STM32L152XC Devices vector for EWARM toolchain. 
 | 
			
		||||
;*                      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-M3 processor is in Thread mode,
 | 
			
		||||
;*                      priority is Privileged, and the Stack is set to Main.
 | 
			
		||||
;********************************************************************************
 | 
			
		||||
;*
 | 
			
		||||
;* <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
			
		||||
;*
 | 
			
		||||
;* 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     MemManage_Handler         ; MPU Fault Handler
 | 
			
		||||
        DCD     BusFault_Handler          ; Bus Fault Handler
 | 
			
		||||
        DCD     UsageFault_Handler        ; Usage Fault Handler
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     SVC_Handler               ; SVCall Handler
 | 
			
		||||
        DCD     DebugMon_Handler          ; Debug Monitor Handler
 | 
			
		||||
        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     TAMPER_STAMP_IRQHandler   ; Tamper and Time Stamp
 | 
			
		||||
        DCD     RTC_WKUP_IRQHandler       ; RTC Wakeup
 | 
			
		||||
        DCD     FLASH_IRQHandler          ; FLASH
 | 
			
		||||
        DCD     RCC_IRQHandler            ; RCC
 | 
			
		||||
        DCD     EXTI0_IRQHandler          ; EXTI Line 0
 | 
			
		||||
        DCD     EXTI1_IRQHandler          ; EXTI Line 1
 | 
			
		||||
        DCD     EXTI2_IRQHandler          ; EXTI Line 2
 | 
			
		||||
        DCD     EXTI3_IRQHandler          ; EXTI Line 3
 | 
			
		||||
        DCD     EXTI4_IRQHandler          ; EXTI Line 4
 | 
			
		||||
        DCD     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1
 | 
			
		||||
        DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2
 | 
			
		||||
        DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3
 | 
			
		||||
        DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4
 | 
			
		||||
        DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5
 | 
			
		||||
        DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6
 | 
			
		||||
        DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7
 | 
			
		||||
        DCD     ADC1_IRQHandler           ; ADC1
 | 
			
		||||
        DCD     USB_HP_IRQHandler         ; USB High Priority
 | 
			
		||||
        DCD     USB_LP_IRQHandler         ; USB Low  Priority
 | 
			
		||||
        DCD     DAC_IRQHandler            ; DAC
 | 
			
		||||
        DCD     COMP_IRQHandler           ; COMP through EXTI Line
 | 
			
		||||
        DCD     EXTI9_5_IRQHandler        ; EXTI Line 9..5
 | 
			
		||||
        DCD     0                         ; Reserved
 | 
			
		||||
        DCD     TIM9_IRQHandler           ; TIM9
 | 
			
		||||
        DCD     TIM10_IRQHandler          ; TIM10
 | 
			
		||||
        DCD     TIM11_IRQHandler          ; TIM11
 | 
			
		||||
        DCD     TIM2_IRQHandler           ; TIM2
 | 
			
		||||
        DCD     TIM3_IRQHandler           ; TIM3
 | 
			
		||||
        DCD     TIM4_IRQHandler           ; TIM4
 | 
			
		||||
        DCD     I2C1_EV_IRQHandler        ; I2C1 Event
 | 
			
		||||
        DCD     I2C1_ER_IRQHandler        ; I2C1 Error
 | 
			
		||||
        DCD     I2C2_EV_IRQHandler        ; I2C2 Event
 | 
			
		||||
        DCD     I2C2_ER_IRQHandler        ; I2C2 Error
 | 
			
		||||
        DCD     SPI1_IRQHandler           ; SPI1
 | 
			
		||||
        DCD     SPI2_IRQHandler           ; SPI2
 | 
			
		||||
        DCD     USART1_IRQHandler         ; USART1
 | 
			
		||||
        DCD     USART2_IRQHandler         ; USART2
 | 
			
		||||
        DCD     USART3_IRQHandler         ; USART3
 | 
			
		||||
        DCD     EXTI15_10_IRQHandler      ; EXTI Line 15..10
 | 
			
		||||
        DCD     RTC_Alarm_IRQHandler      ; RTC Alarm through EXTI Line
 | 
			
		||||
        DCD     USB_FS_WKUP_IRQHandler    ; USB FS Wakeup from suspend
 | 
			
		||||
        DCD     TIM6_IRQHandler           ; TIM6
 | 
			
		||||
        DCD     TIM7_IRQHandler           ; TIM7
 | 
			
		||||
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
;;
 | 
			
		||||
;; Default interrupt handlers.
 | 
			
		||||
;;
 | 
			
		||||
        THUMB
 | 
			
		||||
 | 
			
		||||
        PUBWEAK Reset_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(2)
 | 
			
		||||
Reset_Handler
 | 
			
		||||
        LDR     R0, =SystemInit
 | 
			
		||||
        BLX     R0
 | 
			
		||||
        LDR     R0, =__iar_program_start
 | 
			
		||||
        BX      R0
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK NMI_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
NMI_Handler
 | 
			
		||||
        B NMI_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK HardFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
HardFault_Handler
 | 
			
		||||
        B HardFault_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK MemManage_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
MemManage_Handler
 | 
			
		||||
        B MemManage_Handler
 | 
			
		||||
        
 | 
			
		||||
                
 | 
			
		||||
        PUBWEAK BusFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
BusFault_Handler
 | 
			
		||||
        B BusFault_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK UsageFault_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
UsageFault_Handler
 | 
			
		||||
        B UsageFault_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SVC_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SVC_Handler
 | 
			
		||||
        B SVC_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DebugMon_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DebugMon_Handler
 | 
			
		||||
        B DebugMon_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK PendSV_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
PendSV_Handler
 | 
			
		||||
        B PendSV_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SysTick_Handler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SysTick_Handler
 | 
			
		||||
        B SysTick_Handler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK WWDG_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
WWDG_IRQHandler
 | 
			
		||||
        B WWDG_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK PVD_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
PVD_IRQHandler
 | 
			
		||||
        B PVD_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TAMPER_STAMP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TAMPER_STAMP_IRQHandler
 | 
			
		||||
        B TAMPER_STAMP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK RTC_WKUP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
RTC_WKUP_IRQHandler
 | 
			
		||||
        B RTC_WKUP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK FLASH_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
FLASH_IRQHandler
 | 
			
		||||
        B FLASH_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK RCC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
RCC_IRQHandler
 | 
			
		||||
        B RCC_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI0_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI0_IRQHandler
 | 
			
		||||
        B EXTI0_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI1_IRQHandler
 | 
			
		||||
        B EXTI1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI2_IRQHandler
 | 
			
		||||
        B EXTI2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI3_IRQHandler
 | 
			
		||||
        B EXTI3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI4_IRQHandler
 | 
			
		||||
        B EXTI4_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel1_IRQHandler
 | 
			
		||||
        B DMA1_Channel1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel2_IRQHandler
 | 
			
		||||
        B DMA1_Channel2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel3_IRQHandler
 | 
			
		||||
        B DMA1_Channel3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel4_IRQHandler
 | 
			
		||||
        B DMA1_Channel4_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel5_IRQHandler
 | 
			
		||||
        B DMA1_Channel5_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel6_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel6_IRQHandler
 | 
			
		||||
        B DMA1_Channel6_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DMA1_Channel7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DMA1_Channel7_IRQHandler
 | 
			
		||||
        B DMA1_Channel7_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK ADC1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
ADC1_IRQHandler
 | 
			
		||||
        B ADC1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USB_HP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USB_HP_IRQHandler
 | 
			
		||||
        B USB_HP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USB_LP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USB_LP_IRQHandler
 | 
			
		||||
        B USB_LP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK DAC_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
DAC_IRQHandler
 | 
			
		||||
        B DAC_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK COMP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
COMP_IRQHandler
 | 
			
		||||
        B COMP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI9_5_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI9_5_IRQHandler
 | 
			
		||||
        B EXTI9_5_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM9_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM9_IRQHandler
 | 
			
		||||
        B TIM9_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM10_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM10_IRQHandler
 | 
			
		||||
        B TIM10_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM11_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM11_IRQHandler
 | 
			
		||||
        B TIM11_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM2_IRQHandler
 | 
			
		||||
        B TIM2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM3_IRQHandler
 | 
			
		||||
        B TIM3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK TIM4_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM4_IRQHandler
 | 
			
		||||
        B TIM4_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK I2C1_EV_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
I2C1_EV_IRQHandler
 | 
			
		||||
        B I2C1_EV_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK I2C1_ER_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
I2C1_ER_IRQHandler
 | 
			
		||||
        B I2C1_ER_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK I2C2_EV_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
I2C2_EV_IRQHandler
 | 
			
		||||
        B I2C2_EV_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK I2C2_ER_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
I2C2_ER_IRQHandler
 | 
			
		||||
        B I2C2_ER_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SPI1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI1_IRQHandler
 | 
			
		||||
        B SPI1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK SPI2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
SPI2_IRQHandler
 | 
			
		||||
        B SPI2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USART1_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART1_IRQHandler
 | 
			
		||||
        B USART1_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USART2_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART2_IRQHandler
 | 
			
		||||
        B USART2_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USART3_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USART3_IRQHandler
 | 
			
		||||
        B USART3_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK EXTI15_10_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
EXTI15_10_IRQHandler
 | 
			
		||||
        B EXTI15_10_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK RTC_Alarm_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
RTC_Alarm_IRQHandler
 | 
			
		||||
        B RTC_Alarm_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        PUBWEAK USB_FS_WKUP_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
USB_FS_WKUP_IRQHandler
 | 
			
		||||
        B USB_FS_WKUP_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM6_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM6_IRQHandler
 | 
			
		||||
        B TIM6_IRQHandler
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        PUBWEAK TIM7_IRQHandler
 | 
			
		||||
        SECTION .text:CODE:REORDER:NOROOT(1)
 | 
			
		||||
TIM7_IRQHandler
 | 
			
		||||
        B TIM7_IRQHandler
 | 
			
		||||
 | 
			
		||||
        END
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
if (!isdefinedsymbol(MBED_APP_START)) { define symbol MBED_APP_START = 0x08000000; }
 | 
			
		||||
if (!isdefinedsymbol(MBED_APP_SIZE)) { define symbol MBED_APP_SIZE = 0x20000; }
 | 
			
		||||
/* [ROM = 128kb = 0x20000] */
 | 
			
		||||
define symbol __intvec_start__     = MBED_APP_START;
 | 
			
		||||
define symbol __region_ROM_start__ = MBED_APP_START;
 | 
			
		||||
define symbol __region_ROM_end__   = MBED_APP_START + MBED_APP_SIZE - 1;
 | 
			
		||||
 | 
			
		||||
/* [RAM = 32kb = 0x8000] Vector table dynamic copy: 61 vectors = 244 bytes (0xF4) to be reserved in RAM */
 | 
			
		||||
define symbol __NVIC_start__          = 0x20000000;
 | 
			
		||||
define symbol __NVIC_end__            = 0x200000F3;
 | 
			
		||||
define symbol __region_RAM_start__    = 0x200000F4;
 | 
			
		||||
define symbol __region_RAM_end__      = 0x20007FFF;
 | 
			
		||||
 | 
			
		||||
/* 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__ = 0x800;
 | 
			
		||||
define symbol __size_heap__   = 0x800;
 | 
			
		||||
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 };
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 * A generic CMSIS include header
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2015, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef MBED_CMSIS_H
 | 
			
		||||
#define MBED_CMSIS_H
 | 
			
		||||
 | 
			
		||||
#include "stm32l1xx.h"
 | 
			
		||||
#include "cmsis_nvic.h"
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2015, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef MBED_CMSIS_NVIC_H
 | 
			
		||||
#define MBED_CMSIS_NVIC_H
 | 
			
		||||
 | 
			
		||||
// STM32L151CB
 | 
			
		||||
// CORE: 16 vectors = 64 bytes from 0x00 to 0x3F
 | 
			
		||||
// MCU Peripherals: 45 vectors = 180 bytes from 0x40 to 0xF3
 | 
			
		||||
// Total: 61 vectors = 244 bytes (0xF4) to be reserved in RAM
 | 
			
		||||
#define NVIC_NUM_VECTORS        61
 | 
			
		||||
#define NVIC_RAM_VECTOR_ADDRESS 0x20000000    // Vectors positioned at start of RAM
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,66 @@
 | 
			
		|||
/**
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @file    hal_tick.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @brief   Initialization of HAL tick
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @attention
 | 
			
		||||
  *
 | 
			
		||||
  * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
 | 
			
		||||
  *
 | 
			
		||||
  * 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.
 | 
			
		||||
  *
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  */
 | 
			
		||||
#ifndef __HAL_TICK_H
 | 
			
		||||
#define __HAL_TICK_H
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "stm32l1xx.h"
 | 
			
		||||
#include "stm32l1xx_ll_tim.h"
 | 
			
		||||
#include "cmsis_nvic.h"
 | 
			
		||||
 | 
			
		||||
#define TIM_MST      TIM4
 | 
			
		||||
#define TIM_MST_IRQ  TIM4_IRQn
 | 
			
		||||
#define TIM_MST_RCC  __TIM4_CLK_ENABLE()
 | 
			
		||||
#define TIM_MST_DBGMCU_FREEZE  __HAL_DBGMCU_FREEZE_TIM5()
 | 
			
		||||
 | 
			
		||||
#define TIM_MST_RESET_ON   __TIM4_FORCE_RESET()
 | 
			
		||||
#define TIM_MST_RESET_OFF  __TIM4_RELEASE_RESET()
 | 
			
		||||
 | 
			
		||||
#define TIM_MST_16BIT  1 // 1=16-bit timer, 0=32-bit timer
 | 
			
		||||
 | 
			
		||||
#define TIM_MST_PCLK  1 // Select the peripheral clock number (1 or 2)
 | 
			
		||||
 | 
			
		||||
#define HAL_TICK_DELAY (1000) // 1 ms
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // __HAL_TICK_H
 | 
			
		||||
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,276 @@
 | 
			
		|||
/**
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @file    stm32l1xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.2.0
 | 
			
		||||
  * @date    01-July-2016
 | 
			
		||||
  * @brief   CMSIS STM32L1xx Device Peripheral Access Layer Header File. 
 | 
			
		||||
  *
 | 
			
		||||
  *          The file is the unique include file that the application programmer
 | 
			
		||||
  *          is using in the C source code, usually in main.c. This file contains:
 | 
			
		||||
  *            - Configuration section that allows to select:
 | 
			
		||||
  *              - The STM32L1xx device used in the target application
 | 
			
		||||
  *              - To use or not the peripheral’s drivers in application code(i.e. 
 | 
			
		||||
  *                code will be based on direct access to peripheral’s registers 
 | 
			
		||||
  *                rather than drivers API), this option is controlled by 
 | 
			
		||||
  *                "#define USE_HAL_DRIVER"
 | 
			
		||||
  *  
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @attention
 | 
			
		||||
  *
 | 
			
		||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
			
		||||
  *
 | 
			
		||||
  * 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.
 | 
			
		||||
  *
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup CMSIS
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup stm32l1xx
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
    
 | 
			
		||||
#ifndef __STM32L1XX_H
 | 
			
		||||
#define __STM32L1XX_H
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 extern "C" {
 | 
			
		||||
#endif /* __cplusplus */
 | 
			
		||||
  
 | 
			
		||||
/** @addtogroup Library_configuration_section
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @brief STM32 Family
 | 
			
		||||
  */
 | 
			
		||||
#if !defined (STM32L1)
 | 
			
		||||
#define STM32L1
 | 
			
		||||
#endif /* STM32L1 */
 | 
			
		||||
 | 
			
		||||
//MODTRONIX BEGIN - HAL Defines ///////////////////////////////////////////////
 | 
			
		||||
//Provide place for adding HAL defines. Alternative to adding them in IDE project properties.
 | 
			
		||||
//Add project defines here, or add them to your toolchain compiler preprocessor
 | 
			
		||||
 | 
			
		||||
//Defines what ports to use for default serial port.
 | 
			
		||||
//0 = B10/B11
 | 
			
		||||
//1 = A2/A3
 | 
			
		||||
#if !defined  (MX_DEFAULT_SERIAL_PINS)
 | 
			
		||||
#define MX_DEFAULT_SERIAL_PINS   0          /*!< Use B10/B11 for default serial port, in stead of A2/A3 */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//MODTRONIX END ///////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
/* Uncomment the line below according to the target STM32L device used in your 
 | 
			
		||||
   application 
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
#if !defined (STM32L100xB) && !defined (STM32L100xBA) && !defined (STM32L100xC) && \
 | 
			
		||||
    !defined (STM32L151xB) && !defined (STM32L151xBA) && !defined (STM32L151xC) && !defined (STM32L151xCA) && !defined (STM32L151xD) && !defined (STM32L151xDX) && !defined (STM32L151xE) && \
 | 
			
		||||
    !defined (STM32L152xB) && !defined (STM32L152xBA) && !defined (STM32L152xC) && !defined (STM32L152xCA) && !defined (STM32L152xD) && !defined (STM32L152xDX) && !defined (STM32L152xE) && \
 | 
			
		||||
    !defined (STM32L162xC) && !defined (STM32L162xCA) && !defined (STM32L162xD) && !defined (STM32L162xDX) && !defined (STM32L162xE)
 | 
			
		||||
  /* #define STM32L100xB  */   /*!< STM32L100C6, STM32L100R and STM32L100RB Devices */
 | 
			
		||||
  /* #define STM32L100xBA */   /*!< STM32L100C6-A, STM32L100R8-A and STM32L100RB-A Devices */
 | 
			
		||||
  /* #define STM32L100xC  */   /*!< STM32L100RC Devices */
 | 
			
		||||
  /* #define STM32L151xB  */   /*!< STM32L151C6, STM32L151R6, STM32L151C8, STM32L151R8, STM32L151V8, STM32L151CB, STM32L151RB and STM32L151VB */
 | 
			
		||||
     #define STM32L151xBA      /*!< STM32L151C6-A, STM32L151R6-A, STM32L151C8-A, STM32L151R8-A, STM32L151V8-A, STM32L151CB-A, STM32L151RB-A and STM32L151VB-A */ 
 | 
			
		||||
  /* #define STM32L151xC  */   /*!< STM32L151CC, STM32L151UC, STM32L151RC and STM32L151VC */
 | 
			
		||||
  /* #define STM32L151xCA */   /*!< STM32L151RC-A, STM32L151VC-A, STM32L151QC and STM32L151ZC */
 | 
			
		||||
  /* #define STM32L151xD  */   /*!< STM32L151QD, STM32L151RD, STM32L151VD & STM32L151ZD */
 | 
			
		||||
  /* #define STM32L151xDX  */  /*!< STM32L151VD-X Devices */
 | 
			
		||||
  /* #define STM32L151xE  */   /*!< STM32L151QE, STM32L151RE, STM32L151VE and STM32L151ZE */
 | 
			
		||||
  /* #define STM32L152xB  */   /*!< STM32L152C6, STM32L152R6, STM32L152C8, STM32L152R8, STM32L152V8, STM32L152CB, STM32L152RB and STM32L152VB */
 | 
			
		||||
  /* #define STM32L152xBA */   /*!< STM32L152C6-A, STM32L152R6-A, STM32L152C8-A, STM32L152R8-A, STM32L152V8-A, STM32L152CB-A, STM32L152RB-A and STM32L152VB-A */
 | 
			
		||||
  /* #define STM32L152xC  */   /*!< STM32L152CC, STM32L152UC, STM32L152RC and STM32L152VC */
 | 
			
		||||
  /* #define STM32L152xCA */   /*!< STM32L152RC-A, STM32L152VC-A, STM32L152QC and STM32L152ZC */
 | 
			
		||||
  /* #define STM32L152xD  */   /*!< STM32L152QD, STM32L152RD, STM32L152VD and STM32L152ZD */  
 | 
			
		||||
  /* #define STM32L152xDX  */  /*!< STM32L152VD-X Devices */
 | 
			
		||||
  /* #define STM32L152xE  */   /*!< STM32L152QE, STM32L152RE, STM32L152VE and STM32L152ZE */
 | 
			
		||||
  /* #define STM32L162xC  */   /*!< STM32L162RC and STM32L162VC */
 | 
			
		||||
  /* #define STM32L162xCA */   /*!< STM32L162RC-A, STM32L162VC-A, STM32L162QC and STM32L162ZC */
 | 
			
		||||
  /* #define STM32L162xD  */   /*!< STM32L162QD, STM32L162RD, STM32L162VD and STM32L162ZD */
 | 
			
		||||
  /* #define STM32L162xDX  */  /*!< STM32L162VD-X Devices */
 | 
			
		||||
  /* #define STM32L162xE  */   /*!< STM32L162RE, STM32L162VE and STM32L162ZE */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*  Tip: To avoid modifying this file each time you need to switch between these
 | 
			
		||||
        devices, you can define the device in your toolchain compiler preprocessor.
 | 
			
		||||
  */
 | 
			
		||||
  
 | 
			
		||||
#if !defined  (USE_HAL_DRIVER)
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Comment the line below if you will not use the peripherals drivers.
 | 
			
		||||
   In this case, these drivers will not be included and the application code will 
 | 
			
		||||
   be based on direct access to peripherals registers 
 | 
			
		||||
   */
 | 
			
		||||
#define USE_HAL_DRIVER
 | 
			
		||||
#endif /* USE_HAL_DRIVER */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @brief CMSIS Device version number
 | 
			
		||||
  */
 | 
			
		||||
#define __STM32L1xx_CMSIS_VERSION_MAIN   (0x02) /*!< [31:24] main version */                                  
 | 
			
		||||
#define __STM32L1xx_CMSIS_VERSION_SUB1   (0x02) /*!< [23:16] sub1 version */
 | 
			
		||||
#define __STM32L1xx_CMSIS_VERSION_SUB2   (0x00) /*!< [15:8]  sub2 version */
 | 
			
		||||
#define __STM32L1xx_CMSIS_VERSION_RC     (0x00) /*!< [7:0]  release candidate */ 
 | 
			
		||||
#define __STM32L1xx_CMSIS_VERSION        ((__STM32L1xx_CMSIS_VERSION_MAIN << 24)\
 | 
			
		||||
                                         |(__STM32L1xx_CMSIS_VERSION_SUB1 << 16)\
 | 
			
		||||
                                         |(__STM32L1xx_CMSIS_VERSION_SUB2 << 8 )\
 | 
			
		||||
                                         |(__STM32L1xx_CMSIS_VERSION_RC))
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup Device_Included
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
#if defined(STM32L100xB)
 | 
			
		||||
  #include "stm32l100xb.h"
 | 
			
		||||
#elif defined(STM32L100xBA)
 | 
			
		||||
  #include "stm32l100xba.h"
 | 
			
		||||
#elif defined(STM32L100xC)
 | 
			
		||||
  #include "stm32l100xc.h"
 | 
			
		||||
#elif defined(STM32L151xB)
 | 
			
		||||
  #include "stm32l151xb.h"
 | 
			
		||||
#elif defined(STM32L151xBA)
 | 
			
		||||
  #include "stm32l151xba.h"
 | 
			
		||||
#elif defined(STM32L151xC)
 | 
			
		||||
  #include "stm32l151xc.h"
 | 
			
		||||
#elif defined(STM32L151xCA)
 | 
			
		||||
  #include "stm32l151xca.h"
 | 
			
		||||
#elif defined(STM32L151xD)
 | 
			
		||||
  #include "stm32l151xd.h"
 | 
			
		||||
#elif defined(STM32L151xDX)
 | 
			
		||||
  #include "stm32l151xdx.h"
 | 
			
		||||
#elif defined(STM32L151xE)
 | 
			
		||||
  #include "stm32l151xe.h"
 | 
			
		||||
#elif defined(STM32L152xB)
 | 
			
		||||
  #include "stm32l152xb.h"
 | 
			
		||||
#elif defined(STM32L152xBA)
 | 
			
		||||
  #include "stm32l152xba.h"
 | 
			
		||||
#elif defined(STM32L152xC)
 | 
			
		||||
  #include "stm32l152xc.h"
 | 
			
		||||
#elif defined(STM32L152xCA)
 | 
			
		||||
  #include "stm32l152xca.h"
 | 
			
		||||
#elif defined(STM32L152xD)
 | 
			
		||||
  #include "stm32l152xd.h"
 | 
			
		||||
#elif defined(STM32L152xDX)
 | 
			
		||||
  #include "stm32l152xdx.h"
 | 
			
		||||
#elif defined(STM32L152xE)
 | 
			
		||||
  #include "stm32l152xe.h"
 | 
			
		||||
#elif defined(STM32L162xC)
 | 
			
		||||
  #include "stm32l162xc.h"
 | 
			
		||||
#elif defined(STM32L162xCA)
 | 
			
		||||
  #include "stm32l162xca.h"
 | 
			
		||||
#elif defined(STM32L162xD)
 | 
			
		||||
  #include "stm32l162xd.h"
 | 
			
		||||
#elif defined(STM32L162xDX)
 | 
			
		||||
  #include "stm32l162xdx.h"
 | 
			
		||||
#elif defined(STM32L162xE)
 | 
			
		||||
  #include "stm32l162xe.h"
 | 
			
		||||
#else
 | 
			
		||||
 #error "Please select first the target STM32L1xx device used in your application (in stm32l1xx.h file)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup Exported_types
 | 
			
		||||
  * @{
 | 
			
		||||
  */  
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  RESET = 0, 
 | 
			
		||||
  SET = !RESET
 | 
			
		||||
} FlagStatus, ITStatus;
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  DISABLE = 0, 
 | 
			
		||||
  ENABLE = !DISABLE
 | 
			
		||||
} FunctionalState;
 | 
			
		||||
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
 | 
			
		||||
 | 
			
		||||
typedef enum 
 | 
			
		||||
{
 | 
			
		||||
  ERROR = 0, 
 | 
			
		||||
  SUCCESS = !ERROR
 | 
			
		||||
} ErrorStatus;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** @addtogroup Exported_macros
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
#define SET_BIT(REG, BIT)     ((REG) |= (BIT))
 | 
			
		||||
 | 
			
		||||
#define CLEAR_BIT(REG, BIT)   ((REG) &= ~(BIT))
 | 
			
		||||
 | 
			
		||||
#define READ_BIT(REG, BIT)    ((REG) & (BIT))
 | 
			
		||||
 | 
			
		||||
#define CLEAR_REG(REG)        ((REG) = (0x0))
 | 
			
		||||
 | 
			
		||||
#define WRITE_REG(REG, VAL)   ((REG) = (VAL))
 | 
			
		||||
 | 
			
		||||
#define READ_REG(REG)         ((REG))
 | 
			
		||||
 | 
			
		||||
#define MODIFY_REG(REG, CLEARMASK, SETMASK)  WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
 | 
			
		||||
 | 
			
		||||
#define POSITION_VAL(VAL)     (__CLZ(__RBIT(VAL))) 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
#if defined (USE_HAL_DRIVER)
 | 
			
		||||
 #include "stm32l1xx_hal.h"
 | 
			
		||||
#endif /* USE_HAL_DRIVER */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif /* __cplusplus */
 | 
			
		||||
 | 
			
		||||
#endif /* __STM32L1xx_H */
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,154 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
* Copyright (c) 2006-2017 ARM Limited
 | 
			
		||||
*
 | 
			
		||||
* Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
* you may not use this file except in compliance with the License.
 | 
			
		||||
* You may obtain a copy of the License at
 | 
			
		||||
*
 | 
			
		||||
*     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
*
 | 
			
		||||
* Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
* distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
* See the License for the specific language governing permissions and
 | 
			
		||||
* limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * This file configures the system clock as follows:
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * System clock source                | 1- PLL_HSE_EXTC         | 3- PLL_HSI
 | 
			
		||||
  *                                    | (external 16 MHz clock) | (internal 16 MHz)
 | 
			
		||||
  *                                    | 2- PLL_HSE_XTAL         |
 | 
			
		||||
  *                                    | (external 16 MHz xtal)  |
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * SYSCLK(MHz)                        | 32                     | 32
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * AHBCLK (MHz)                       | 32                     | 32
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * APB1CLK (MHz)                      | 32                     | 32
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * APB2CLK (MHz)                      | 32                     | 32
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  * USB capable (48 MHz precise clock) | YES                    | NO
 | 
			
		||||
  *-----------------------------------------------------------------------------
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
#include "stm32l1xx.h"
 | 
			
		||||
 | 
			
		||||
/*!< Uncomment the following line if you need to relocate your vector Table in
 | 
			
		||||
     Internal SRAM. */
 | 
			
		||||
/* #define VECT_TAB_SRAM */
 | 
			
		||||
#define VECT_TAB_OFFSET  0x0 /*!< Vector Table base offset field.
 | 
			
		||||
                                  This value must be a multiple of 0x200. */
 | 
			
		||||
 | 
			
		||||
uint8_t SetSysClock_PLL_HSI(void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @brief  Setup the microcontroller system.
 | 
			
		||||
  *         Initialize the Embedded Flash Interface, the PLL and update the
 | 
			
		||||
  *         SystemCoreClock variable.
 | 
			
		||||
  * @param  None
 | 
			
		||||
  * @retval None
 | 
			
		||||
  */
 | 
			
		||||
void SystemInit (void)
 | 
			
		||||
{
 | 
			
		||||
    /*!< Set MSION bit */
 | 
			
		||||
    RCC->CR |= (uint32_t)0x00000100;
 | 
			
		||||
 | 
			
		||||
    /*!< Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], MCOSEL[2:0] and MCOPRE[2:0] bits */
 | 
			
		||||
    RCC->CFGR &= (uint32_t)0x88FFC00C;
 | 
			
		||||
 | 
			
		||||
    /*!< Reset HSION, HSEON, CSSON and PLLON bits */
 | 
			
		||||
    RCC->CR &= (uint32_t)0xEEFEFFFE;
 | 
			
		||||
 | 
			
		||||
    /*!< Reset HSEBYP bit */
 | 
			
		||||
    RCC->CR &= (uint32_t)0xFFFBFFFF;
 | 
			
		||||
 | 
			
		||||
    /*!< Reset PLLSRC, PLLMUL[3:0] and PLLDIV[1:0] bits */
 | 
			
		||||
    RCC->CFGR &= (uint32_t)0xFF02FFFF;
 | 
			
		||||
 | 
			
		||||
    /*!< Disable all interrupts */
 | 
			
		||||
    RCC->CIR = 0x00000000;
 | 
			
		||||
 | 
			
		||||
#ifdef DATA_IN_ExtSRAM
 | 
			
		||||
    SystemInit_ExtMemCtl();
 | 
			
		||||
#endif /* DATA_IN_ExtSRAM */
 | 
			
		||||
 | 
			
		||||
#ifdef VECT_TAB_SRAM
 | 
			
		||||
    SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
 | 
			
		||||
#else
 | 
			
		||||
    SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @brief  Configures the System clock source, PLL Multiplier and Divider factors,
 | 
			
		||||
  *               AHB/APBx prescalers and Flash settings
 | 
			
		||||
  * @note   This function should be called only once the RCC clock configuration
 | 
			
		||||
  *         is reset to the default reset state (done in SystemInit() function).
 | 
			
		||||
  * @param  None
 | 
			
		||||
  * @retval None
 | 
			
		||||
  */
 | 
			
		||||
void SetSysClock(void)
 | 
			
		||||
{
 | 
			
		||||
    if (SetSysClock_PLL_HSI() == 0) {
 | 
			
		||||
        while(1) {
 | 
			
		||||
            // [TODO] Put something here to tell the user that a problem occured...
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Output clock on MCO1 pin(PA8) for debugging purpose */
 | 
			
		||||
    //HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_SYSCLK, RCC_MCODIV_1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/******************************************************************************/
 | 
			
		||||
/*            PLL (clocked by HSI) used as System clock source                */
 | 
			
		||||
/******************************************************************************/
 | 
			
		||||
uint8_t SetSysClock_PLL_HSI(void)
 | 
			
		||||
{
 | 
			
		||||
    RCC_ClkInitTypeDef RCC_ClkInitStruct;
 | 
			
		||||
    RCC_OscInitTypeDef RCC_OscInitStruct;
 | 
			
		||||
 | 
			
		||||
    /* The voltage scaling allows optimizing the power consumption when the device is
 | 
			
		||||
       clocked below the maximum system frequency, to update the voltage scaling value
 | 
			
		||||
       regarding system frequency refer to product datasheet. */
 | 
			
		||||
    __PWR_CLK_ENABLE();
 | 
			
		||||
    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 | 
			
		||||
 | 
			
		||||
    /* Enable HSI oscillator and activate PLL with HSI as source */
 | 
			
		||||
    RCC_OscInitStruct.OscillatorType      = RCC_OSCILLATORTYPE_HSI;
 | 
			
		||||
    RCC_OscInitStruct.HSEState            = RCC_HSE_OFF;
 | 
			
		||||
    RCC_OscInitStruct.HSIState            = RCC_HSI_ON;
 | 
			
		||||
    RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
 | 
			
		||||
    // SYSCLK = 32 MHz ((16 MHz * 4) / 2)
 | 
			
		||||
    // USBCLK = 64 MHz (16 MHz * 4) --> USB not possible
 | 
			
		||||
    RCC_OscInitStruct.PLL.PLLState        = RCC_PLL_ON;
 | 
			
		||||
    RCC_OscInitStruct.PLL.PLLSource       = RCC_PLLSOURCE_HSI;
 | 
			
		||||
    RCC_OscInitStruct.PLL.PLLMUL          = RCC_PLL_MUL4;
 | 
			
		||||
    RCC_OscInitStruct.PLL.PLLDIV          = RCC_PLL_DIV2;
 | 
			
		||||
    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
 | 
			
		||||
        return 0; // FAIL
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Poll VOSF bit of in PWR_CSR. Wait until it is reset to 0 */
 | 
			
		||||
    while (__HAL_PWR_GET_FLAG(PWR_FLAG_VOS) != RESET) {};
 | 
			
		||||
 | 
			
		||||
    /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
 | 
			
		||||
    RCC_ClkInitStruct.ClockType      = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
 | 
			
		||||
    RCC_ClkInitStruct.SYSCLKSource   = RCC_SYSCLKSOURCE_PLLCLK; // 32 MHz
 | 
			
		||||
    RCC_ClkInitStruct.AHBCLKDivider  = RCC_SYSCLK_DIV1;         // 32 MHz
 | 
			
		||||
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;           // 32 MHz
 | 
			
		||||
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;           // 32 MHz
 | 
			
		||||
    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
 | 
			
		||||
        return 0; // FAIL
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Output clock on MCO1 pin(PA8) for debugging purpose */
 | 
			
		||||
    //HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1); // 16 MHz
 | 
			
		||||
 | 
			
		||||
    return 1; // OK
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,128 @@
 | 
			
		|||
/**
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @file    system_stm32l1xx.h
 | 
			
		||||
  * @author  MCD Application Team
 | 
			
		||||
  * @version V2.2.0
 | 
			
		||||
  * @date    01-July-2016
 | 
			
		||||
  * @brief   CMSIS Cortex-M3 Device System Source File for STM32L1xx devices.  
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  * @attention
 | 
			
		||||
  *
 | 
			
		||||
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
 | 
			
		||||
  *
 | 
			
		||||
  * 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.
 | 
			
		||||
  *
 | 
			
		||||
  ******************************************************************************
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup CMSIS
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup stm32l1xx_system
 | 
			
		||||
  * @{
 | 
			
		||||
  */  
 | 
			
		||||
  
 | 
			
		||||
/**
 | 
			
		||||
  * @brief Define to prevent recursive inclusion
 | 
			
		||||
  */
 | 
			
		||||
#ifndef __SYSTEM_STM32L1XX_H
 | 
			
		||||
#define __SYSTEM_STM32L1XX_H
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 extern "C" {
 | 
			
		||||
#endif 
 | 
			
		||||
 | 
			
		||||
/** @addtogroup STM32L1xx_System_Includes
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** @addtogroup STM32L1xx_System_Exported_types
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
  /* This variable is updated in three ways:
 | 
			
		||||
      1) by calling CMSIS function SystemCoreClockUpdate()
 | 
			
		||||
      2) by calling HAL API function HAL_RCC_GetSysClockFreq()
 | 
			
		||||
      3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency 
 | 
			
		||||
         Note: If you use this function to configure the system clock; then there
 | 
			
		||||
               is no need to call the 2 first functions listed above, since SystemCoreClock
 | 
			
		||||
               variable is updated automatically.
 | 
			
		||||
  */
 | 
			
		||||
extern uint32_t SystemCoreClock;          /*!< System Clock Frequency (Core Clock) */
 | 
			
		||||
/*
 | 
			
		||||
*/
 | 
			
		||||
extern const uint8_t AHBPrescTable[16];   /*!< AHB prescalers table values */
 | 
			
		||||
extern const uint8_t APBPrescTable[8];    /*!< APB prescalers table values */
 | 
			
		||||
extern const uint8_t PLLMulTable[9];      /*!< PLL multipiers table values */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup STM32L1xx_System_Exported_Constants
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup STM32L1xx_System_Exported_Macros
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/** @addtogroup STM32L1xx_System_Exported_Functions
 | 
			
		||||
  * @{
 | 
			
		||||
  */
 | 
			
		||||
  
 | 
			
		||||
extern void SystemInit(void);
 | 
			
		||||
extern void SystemCoreClockUpdate(void);
 | 
			
		||||
extern void SetSysClock(void);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /*__SYSTEM_STM32L1XX_H */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */
 | 
			
		||||
  
 | 
			
		||||
/**
 | 
			
		||||
  * @}
 | 
			
		||||
  */  
 | 
			
		||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,64 @@
 | 
			
		|||
/* mbed Microcontroller Library
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 * Copyright (c) 2016, 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.
 | 
			
		||||
 *******************************************************************************
 | 
			
		||||
 */
 | 
			
		||||
#ifndef MBED_OBJECTS_H
 | 
			
		||||
#define MBED_OBJECTS_H
 | 
			
		||||
 | 
			
		||||
#include "cmsis.h"
 | 
			
		||||
#include "PortNames.h"
 | 
			
		||||
#include "PeripheralNames.h"
 | 
			
		||||
#include "PinNames.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct gpio_irq_s {
 | 
			
		||||
    IRQn_Type irq_n;
 | 
			
		||||
    uint32_t irq_index;
 | 
			
		||||
    uint32_t event;
 | 
			
		||||
    PinName pin;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct port_s {
 | 
			
		||||
    PortName port;
 | 
			
		||||
    uint32_t mask;
 | 
			
		||||
    PinDirection direction;
 | 
			
		||||
    __IO uint32_t *reg_in;
 | 
			
		||||
    __IO uint32_t *reg_out;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define GPIO_IP_WITHOUT_BRR
 | 
			
		||||
#include "common_objects.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +139,9 @@ typedef struct
 | 
			
		|||
  * @{
 | 
			
		||||
  */ 
 | 
			
		||||
 | 
			
		||||
#ifndef FLASH_SIZE
 | 
			
		||||
#define FLASH_SIZE                (uint32_t)(*((uint16_t *)FLASHSIZE_BASE) * 1024U)
 | 
			
		||||
#endif
 | 
			
		||||
#define FLASH_PAGE_SIZE           ((uint32_t)256U)  /*!< FLASH Page Size in bytes */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,9 @@ int spi_get_clock_freq(spi_t *obj) {
 | 
			
		|||
			spi_hz = HAL_RCC_GetPCLK2Freq();
 | 
			
		||||
			break;
 | 
			
		||||
		case SPI_2:
 | 
			
		||||
		case SPI_3:
 | 
			
		||||
#ifdef SPI_3
 | 
			
		||||
        case SPI_3:
 | 
			
		||||
#endif
 | 
			
		||||
			/* SPI_2, SPI_3. Source CLK is PCKL1 */
 | 
			
		||||
			spi_hz = HAL_RCC_GetPCLK1Freq();
 | 
			
		||||
			break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,7 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
 | 
			
		|||
    TimMasterHandle.Init.Prescaler     = (uint32_t)(SystemCoreClock / 1000000) - 1; // 1 us tick
 | 
			
		||||
    TimMasterHandle.Init.ClockDivision = 0;
 | 
			
		||||
    TimMasterHandle.Init.CounterMode   = TIM_COUNTERMODE_UP;
 | 
			
		||||
#if !defined(TARGET_STM32L0)
 | 
			
		||||
#if !defined(TARGET_STM32L0) && !defined(TARGET_STM32L1)
 | 
			
		||||
    TimMasterHandle.Init.RepetitionCounter = 0;
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef TIM_AUTORELOAD_PRELOAD_DISABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,6 +59,7 @@
 | 
			
		|||
 | 
			
		||||
#elif (defined(TARGET_STM32F091RC) ||\
 | 
			
		||||
       defined(TARGET_STM32F410RB) ||\
 | 
			
		||||
       defined(TARGET_STM32L151CBA)||\
 | 
			
		||||
       defined(TARGET_STM32L151CC) ||\
 | 
			
		||||
       defined(TARGET_STM32L151RC) ||\
 | 
			
		||||
       defined(TARGET_STM32L152RC))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1525,7 +1525,7 @@
 | 
			
		|||
        "device_name": "STM32L433RC",
 | 
			
		||||
        "bootloader_supported": true
 | 
			
		||||
    },
 | 
			
		||||
	"MTB_ADV_WISE_1510": {
 | 
			
		||||
    "MTB_ADV_WISE_1510": {
 | 
			
		||||
        "inherits": ["FAMILY_STM32"],
 | 
			
		||||
        "supported_form_factors": ["ARDUINO"],
 | 
			
		||||
        "core": "Cortex-M4F",
 | 
			
		||||
| 
						 | 
				
			
			@ -2022,6 +2022,17 @@
 | 
			
		|||
        "device_name": "STM32L151CC",
 | 
			
		||||
        "bootloader_supported": true
 | 
			
		||||
    },
 | 
			
		||||
    "MTB_RAK811": {
 | 
			
		||||
        "inherits": ["FAMILY_STM32"],
 | 
			
		||||
        "core": "Cortex-M3",
 | 
			
		||||
        "default_toolchain": "ARM",
 | 
			
		||||
        "extra_labels_add": ["STM32L1", "STM32L151xBA", "STM32L151CBA"],
 | 
			
		||||
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
 | 
			
		||||
        "device_has_add": ["ANALOGOUT"],
 | 
			
		||||
        "release_versions": ["5"],
 | 
			
		||||
        "device_name": "STM32L151CBxxA",
 | 
			
		||||
        "bootloader_supported": true
 | 
			
		||||
    },
 | 
			
		||||
    "MOTE_L152RC": {
 | 
			
		||||
        "inherits": ["FAMILY_STM32"],
 | 
			
		||||
        "core": "Cortex-M3",
 | 
			
		||||
| 
						 | 
				
			
			@ -2758,7 +2769,7 @@
 | 
			
		|||
        "extra_labels": ["Maxim", "MAX32630"],
 | 
			
		||||
        "supported_toolchains": ["GCC_ARM", "IAR", "ARM"],
 | 
			
		||||
        "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"],
 | 
			
		||||
		"features": ["BLE"],
 | 
			
		||||
        "features": ["BLE"],
 | 
			
		||||
        "release_versions": ["2", "5"]
 | 
			
		||||
    },
 | 
			
		||||
    "EFM32": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,8 +33,9 @@ build_list = [
 | 
			
		|||
    {
 | 
			
		||||
    "STM":
 | 
			
		||||
        (
 | 
			
		||||
        { "target": "B96B_F446VE",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
        { "target": "B96B_F446VE",       "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
        { "target": "NUCLEO_L053R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
        { "target": "MTB_RAK811",        "toolchains": "GCC_ARM"},
 | 
			
		||||
        { "target": "NUCLEO_L152RE",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
        { "target": "NUCLEO_F030R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
        { "target": "NUCLEO_F031K6",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -248,6 +248,11 @@ class Sw4STM32(GNUARMEclipse):
 | 
			
		|||
            'name': 'NUCLEO-L073RZ',
 | 
			
		||||
            'mcuId': 'STM32L073RZTx'
 | 
			
		||||
        },
 | 
			
		||||
        'MTB_RAK811':
 | 
			
		||||
        {
 | 
			
		||||
            'name': 'MTB-RAK-811',
 | 
			
		||||
            'mcuId': 'STM32L151CBUxA'
 | 
			
		||||
        },
 | 
			
		||||
        'NUCLEO_L152RE':
 | 
			
		||||
        {
 | 
			
		||||
            'name': 'NUCLEO-L152RE',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue