Explorar el Código

Проект в EWARM работает.

TelenkovDmitry hace 10 meses
padre
commit
4536d1d165

+ 1 - 0
README.md

@@ -0,0 +1 @@
+ATM32L053R8 32MHz, ,63kB ROM, 8kB RAM

+ 270 - 0
libs/stm32/cmsis/mpu_armv7.h

@@ -0,0 +1,270 @@
+/******************************************************************************
+ * @file     mpu_armv7.h
+ * @brief    CMSIS MPU API for Armv7-M MPU
+ * @version  V5.0.4
+ * @date     10. January 2018
+ ******************************************************************************/
+/*
+ * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * 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
+ *
+ * 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.
+ */
+ 
+#if   defined ( __ICCARM__ )
+  #pragma system_include         /* treat file as system include file for MISRA check */
+#elif defined (__clang__)
+  #pragma clang system_header    /* treat file as system include file */
+#endif
+ 
+#ifndef ARM_MPU_ARMV7_H
+#define ARM_MPU_ARMV7_H
+
+#define ARM_MPU_REGION_SIZE_32B      ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes
+#define ARM_MPU_REGION_SIZE_64B      ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes
+#define ARM_MPU_REGION_SIZE_128B     ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes
+#define ARM_MPU_REGION_SIZE_256B     ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes
+#define ARM_MPU_REGION_SIZE_512B     ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes
+#define ARM_MPU_REGION_SIZE_1KB      ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte
+#define ARM_MPU_REGION_SIZE_2KB      ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes
+#define ARM_MPU_REGION_SIZE_4KB      ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes
+#define ARM_MPU_REGION_SIZE_8KB      ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes
+#define ARM_MPU_REGION_SIZE_16KB     ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes
+#define ARM_MPU_REGION_SIZE_32KB     ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes
+#define ARM_MPU_REGION_SIZE_64KB     ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes
+#define ARM_MPU_REGION_SIZE_128KB    ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes
+#define ARM_MPU_REGION_SIZE_256KB    ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes
+#define ARM_MPU_REGION_SIZE_512KB    ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes
+#define ARM_MPU_REGION_SIZE_1MB      ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte
+#define ARM_MPU_REGION_SIZE_2MB      ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes
+#define ARM_MPU_REGION_SIZE_4MB      ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes
+#define ARM_MPU_REGION_SIZE_8MB      ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes
+#define ARM_MPU_REGION_SIZE_16MB     ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes
+#define ARM_MPU_REGION_SIZE_32MB     ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes
+#define ARM_MPU_REGION_SIZE_64MB     ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes
+#define ARM_MPU_REGION_SIZE_128MB    ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes
+#define ARM_MPU_REGION_SIZE_256MB    ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes
+#define ARM_MPU_REGION_SIZE_512MB    ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes
+#define ARM_MPU_REGION_SIZE_1GB      ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte
+#define ARM_MPU_REGION_SIZE_2GB      ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes
+#define ARM_MPU_REGION_SIZE_4GB      ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes
+
+#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access
+#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only
+#define ARM_MPU_AP_URO  2U ///!< MPU Access Permission unprivileged access read-only
+#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access
+#define ARM_MPU_AP_PRO  5U ///!< MPU Access Permission privileged access read-only
+#define ARM_MPU_AP_RO   6U ///!< MPU Access Permission read-only access
+
+/** MPU Region Base Address Register Value
+*
+* \param Region The region to be configured, number 0 to 15.
+* \param BaseAddress The base address for the region.
+*/
+#define ARM_MPU_RBAR(Region, BaseAddress) \
+  (((BaseAddress) & MPU_RBAR_ADDR_Msk) |  \
+   ((Region) & MPU_RBAR_REGION_Msk)    |  \
+   (MPU_RBAR_VALID_Msk))
+
+/**
+* MPU Memory Access Attributes
+* 
+* \param TypeExtField      Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
+* \param IsShareable       Region is shareable between multiple bus masters.
+* \param IsCacheable       Region is cacheable, i.e. its value may be kept in cache.
+* \param IsBufferable      Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
+*/  
+#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable)   \
+  ((((TypeExtField ) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk)                 | \
+   (((IsShareable ) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk)                      | \
+   (((IsCacheable ) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk)                      | \
+   (((IsBufferable ) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk))
+
+/**
+* MPU Region Attribute and Size Register Value
+* 
+* \param DisableExec       Instruction access disable bit, 1= disable instruction fetches.
+* \param AccessPermission  Data access permissions, allows you to configure read/write access for User and Privileged mode.
+* \param AccessAttributes  Memory access attribution, see \ref ARM_MPU_ACCESS_.
+* \param SubRegionDisable  Sub-region disable field.
+* \param Size              Region size of the region to be configured, for example 4K, 8K.
+*/
+#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size)      \
+  ((((DisableExec ) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk)                                          | \
+   (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk)                                      | \
+   (((AccessAttributes) ) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk)))
+  
+/**
+* MPU Region Attribute and Size Register Value
+* 
+* \param DisableExec       Instruction access disable bit, 1= disable instruction fetches.
+* \param AccessPermission  Data access permissions, allows you to configure read/write access for User and Privileged mode.
+* \param TypeExtField      Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
+* \param IsShareable       Region is shareable between multiple bus masters.
+* \param IsCacheable       Region is cacheable, i.e. its value may be kept in cache.
+* \param IsBufferable      Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
+* \param SubRegionDisable  Sub-region disable field.
+* \param Size              Region size of the region to be configured, for example 4K, 8K.
+*/                         
+#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \
+  ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size)
+
+/**
+* MPU Memory Access Attribute for strongly ordered memory.
+*  - TEX: 000b
+*  - Shareable
+*  - Non-cacheable
+*  - Non-bufferable
+*/ 
+#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U)
+
+/**
+* MPU Memory Access Attribute for device memory.
+*  - TEX: 000b (if non-shareable) or 010b (if shareable)
+*  - Shareable or non-shareable
+*  - Non-cacheable
+*  - Bufferable (if shareable) or non-bufferable (if non-shareable)
+*
+* \param IsShareable Configures the device memory as shareable or non-shareable.
+*/ 
+#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U))
+
+/**
+* MPU Memory Access Attribute for normal memory.
+*  - TEX: 1BBb (reflecting outer cacheability rules)
+*  - Shareable or non-shareable
+*  - Cacheable or non-cacheable (reflecting inner cacheability rules)
+*  - Bufferable or non-bufferable (reflecting inner cacheability rules)
+*
+* \param OuterCp Configures the outer cache policy.
+* \param InnerCp Configures the inner cache policy.
+* \param IsShareable Configures the memory as shareable or non-shareable.
+*/ 
+#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U))
+
+/**
+* MPU Memory Access Attribute non-cacheable policy.
+*/
+#define ARM_MPU_CACHEP_NOCACHE 0U
+
+/**
+* MPU Memory Access Attribute write-back, write and read allocate policy.
+*/
+#define ARM_MPU_CACHEP_WB_WRA 1U
+
+/**
+* MPU Memory Access Attribute write-through, no write allocate policy.
+*/
+#define ARM_MPU_CACHEP_WT_NWA 2U
+
+/**
+* MPU Memory Access Attribute write-back, no write allocate policy.
+*/
+#define ARM_MPU_CACHEP_WB_NWA 3U
+
+
+/**
+* Struct for a single MPU Region
+*/
+typedef struct {
+  uint32_t RBAR; //!< The region base address register value (RBAR)
+  uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR
+} ARM_MPU_Region_t;
+    
+/** Enable the MPU.
+* \param MPU_Control Default access permissions for unconfigured regions.
+*/
+__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control)
+{
+  __DSB();
+  __ISB();
+  MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk;
+#ifdef SCB_SHCSR_MEMFAULTENA_Msk
+  SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
+#endif
+}
+
+/** Disable the MPU.
+*/
+__STATIC_INLINE void ARM_MPU_Disable(void)
+{
+  __DSB();
+  __ISB();
+#ifdef SCB_SHCSR_MEMFAULTENA_Msk
+  SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk;
+#endif
+  MPU->CTRL  &= ~MPU_CTRL_ENABLE_Msk;
+}
+
+/** Clear and disable the given MPU region.
+* \param rnr Region number to be cleared.
+*/
+__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr)
+{
+  MPU->RNR = rnr;
+  MPU->RASR = 0U;
+}
+
+/** Configure an MPU region.
+* \param rbar Value for RBAR register.
+* \param rsar Value for RSAR register.
+*/   
+__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr)
+{
+  MPU->RBAR = rbar;
+  MPU->RASR = rasr;
+}
+
+/** Configure the given MPU region.
+* \param rnr Region number to be configured.
+* \param rbar Value for RBAR register.
+* \param rsar Value for RSAR register.
+*/   
+__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr)
+{
+  MPU->RNR = rnr;
+  MPU->RBAR = rbar;
+  MPU->RASR = rasr;
+}
+
+/** Memcopy with strictly ordered memory access, e.g. for register targets.
+* \param dst Destination data is copied to.
+* \param src Source data is copied from.
+* \param len Amount of data words to be copied.
+*/
+__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len)
+{
+  uint32_t i;
+  for (i = 0U; i < len; ++i) 
+  {
+    dst[i] = src[i];
+  }
+}
+
+/** Load the given number of MPU regions from a table.
+* \param table Pointer to the MPU configuration table.
+* \param cnt Amount of regions to be configured.
+*/
+__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) 
+{
+  const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U;
+  while (cnt > MPU_TYPE_RALIASES) {
+    orderedCpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize);
+    table += MPU_TYPE_RALIASES;
+    cnt -= MPU_TYPE_RALIASES;
+  }
+  orderedCpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize);
+}
+
+#endif

+ 921 - 0
modules/bsp/stm32l0xx_nucleo.c

@@ -0,0 +1,921 @@
+/**
+  ******************************************************************************
+  * @file    stm32l0xx_nucleo.c
+  * @author  MCD Application Team
+  * @brief   This file provides set of firmware functions to manage:
+  *          - LEDs and push-button available on STM32L0XX-Nucleo Kit 
+  *            from STMicroelectronics
+  *          - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD 
+  *            shield (reference ID 802)
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+  
+/* Includes ------------------------------------------------------------------*/
+#include "stm32l0xx_nucleo.h"
+
+/** @addtogroup BSP
+  * @{
+  */ 
+
+/** @addtogroup STM32L0XX_NUCLEO
+  * @{
+  */   
+    
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL 
+  * @brief This file provides set of firmware functions to manage Leds and push-button
+  *        available on STM32L0XX-Nucleo Kit from STMicroelectronics.
+  * @{
+  */ 
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Private_TypesDefinitions Private Types Definitions
+  * @{
+  */ 
+/**
+  * @}
+  */ 
+
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Private_Defines Private Defines
+  * @{
+  */ 
+
+/**
+  * @brief STM32L0XX NUCLEO BSP Driver version number
+  */
+#define __STM32L0XX_NUCLEO_BSP_VERSION_MAIN   (0x02) /*!< [31:24] main version */
+#define __STM32L0XX_NUCLEO_BSP_VERSION_SUB1   (0x01) /*!< [23:16] sub1 version */
+#define __STM32L0XX_NUCLEO_BSP_VERSION_SUB2   (0x04) /*!< [15:8]  sub2 version */
+#define __STM32L0XX_NUCLEO_BSP_VERSION_RC     (0x00) /*!< [7:0]  release candidate */
+#define __STM32L0XX_NUCLEO_BSP_VERSION         ((__STM32L0XX_NUCLEO_BSP_VERSION_MAIN << 24)\
+                                             |(__STM32L0XX_NUCLEO_BSP_VERSION_SUB1 << 16)\
+                                             |(__STM32L0XX_NUCLEO_BSP_VERSION_SUB2 << 8 )\
+                                             |(__STM32L0XX_NUCLEO_BSP_VERSION_RC))
+
+/**
+  * @brief LINK SD Card
+  */
+#define SD_DUMMY_BYTE            0xFF    
+#define SD_NO_RESPONSE_EXPECTED  0x80
+
+/**
+  * @}
+  */ 
+
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Private_Variables Private Variables
+  * @{
+  */ 
+GPIO_TypeDef* LED_PORT[LEDn] = {LED2_GPIO_PORT};
+
+const uint16_t LED_PIN[LEDn] = {LED2_PIN};
+                                
+GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {USER_BUTTON_GPIO_PORT }; 
+const uint16_t BUTTON_PIN[BUTTONn] = {USER_BUTTON_PIN }; 
+const uint8_t BUTTON_IRQn[BUTTONn] = {USER_BUTTON_EXTI_IRQn };
+
+/**
+ * @brief BUS variables
+ */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+uint32_t SpixTimeout = NUCLEO_SPIx_TIMEOUT_MAX; /*<! Value of Timeout when SPI communication fails */
+static SPI_HandleTypeDef hnucleo_Spi;
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+static ADC_HandleTypeDef hnucleo_Adc;
+/* ADC channel configuration structure declaration */
+static ADC_ChannelConfTypeDef sConfig;
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+/**
+  * @}
+  */ 
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Private_FunctionPrototypes Private Function Prototypes
+  * @{
+  */ 
+#ifdef HAL_SPI_MODULE_ENABLED
+static void               SPIx_Init(void);
+static void               SPIx_Write(uint8_t Value);
+static void               SPIx_WriteData(uint8_t *DataIn, uint16_t DataLength);
+static void               SPIx_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLegnth);
+static void               SPIx_Error (void);
+static void               SPIx_MspInit(void);
+
+/* SD IO functions */
+void                      SD_IO_Init(void);
+void                      SD_IO_CSState(uint8_t state);
+void                      SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength);
+void                      SD_IO_ReadData(uint8_t *DataOut, uint16_t DataLength);
+void                      SD_IO_WriteData(const uint8_t *Data, uint16_t DataLength);
+uint8_t                   SD_IO_WriteByte(uint8_t Data);
+uint8_t                   SD_IO_ReadByte(void);
+
+/* LCD IO functions */
+void                      LCD_IO_Init(void);
+void                      LCD_IO_WriteData(uint8_t Data);
+void                      LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
+void                      LCD_IO_WriteReg(uint8_t LCDReg);
+void                      LCD_Delay(uint32_t delay);
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+static HAL_StatusTypeDef               ADCx_Init(void);
+static void               ADCx_DeInit(void);
+static void               ADCx_MspInit(ADC_HandleTypeDef *hadc);
+static void               ADCx_MspDeInit(ADC_HandleTypeDef *hadc);
+#endif /* HAL_ADC_MODULE_ENABLED */
+/**
+  * @}
+  */ 
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Private_Functions Private Functions
+  * @{
+  */ 
+
+/**
+  * @brief  This method returns the STM32L0XX NUCLEO BSP Driver revision
+  * @retval version : 0xXYZR (8bits for each decimal, R for RC)
+  */
+uint32_t BSP_GetVersion(void)
+{
+  return __STM32L0XX_NUCLEO_BSP_VERSION;
+}
+
+/**
+  * @brief  Configures LED GPIO.
+  * @param  Led: Led to be configured. 
+  *          This parameter can be one of the following values:
+  *            @arg  LED2
+  * @retval None
+  */
+void BSP_LED_Init(Led_TypeDef Led)
+{
+  GPIO_InitTypeDef  gpioinitstruct;
+  
+  /* Enable the GPIO_LED Clock */
+  LEDx_GPIO_CLK_ENABLE(Led);
+
+  /* Configure the GPIO_LED pin */
+  gpioinitstruct.Pin = LED_PIN[Led];
+  gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
+  gpioinitstruct.Pull = GPIO_NOPULL;
+  gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+  
+  HAL_GPIO_Init(LED_PORT[Led], &gpioinitstruct);
+
+  /* Reset PIN to switch off the LED */
+  HAL_GPIO_WritePin(LED_PORT[Led], LED_PIN[Led], GPIO_PIN_RESET); 
+}
+
+/**
+  * @brief  DeInit LEDs.
+  * @param  Led: LED to be de-init. 
+  *   This parameter can be one of the following values:
+  *     @arg  LED2
+  * @note Led DeInit does not disable the GPIO clock nor disable the Mfx 
+  * @retval None
+  */
+void BSP_LED_DeInit(Led_TypeDef Led)
+{
+  GPIO_InitTypeDef  gpio_init_structure;
+
+  /* Turn off LED */
+  HAL_GPIO_WritePin(LED_PORT[Led],LED_PIN[Led], GPIO_PIN_RESET);
+  /* DeInit the GPIO_LED pin */
+  gpio_init_structure.Pin = LED_PIN[Led];
+  HAL_GPIO_DeInit(LED_PORT[Led], gpio_init_structure.Pin);
+}
+
+/**
+  * @brief  Turns selected LED On.
+  * @param  Led: Specifies the Led to be set on. 
+  *   This parameter can be one of following parameters:
+  *            @arg  LED2
+  * @retval None
+  */
+void BSP_LED_On(Led_TypeDef Led)
+{
+  HAL_GPIO_WritePin(LED_PORT[Led], LED_PIN[Led], GPIO_PIN_SET); 
+}
+
+/**
+  * @brief  Turns selected LED Off. 
+  * @param  Led: Specifies the Led to be set off. 
+  *   This parameter can be one of following parameters:
+  *            @arg  LED2
+  * @retval None
+  */
+void BSP_LED_Off(Led_TypeDef Led)
+{
+  HAL_GPIO_WritePin(LED_PORT[Led], LED_PIN[Led], GPIO_PIN_RESET); 
+}
+
+/**
+  * @brief  Toggles the selected LED.
+  * @param  Led: Specifies the Led to be toggled. 
+  *   This parameter can be one of following parameters:
+  *            @arg  LED2
+  * @retval None
+  */
+void BSP_LED_Toggle(Led_TypeDef Led)
+{
+  HAL_GPIO_TogglePin(LED_PORT[Led], LED_PIN[Led]);
+}
+
+/**
+  * @brief  Configures Button GPIO and EXTI Line.
+  * @param  Button: Specifies the Button to be configured.
+  *   This parameter should be: BUTTON_USER
+  * @param  ButtonMode: Specifies Button mode.
+  *   This parameter can be one of following parameters:   
+  *     @arg  BUTTON_MODE_GPIO: Button will be used as simple IO
+  *     @arg BUTTON_MODE_EXTI: Button will be connected to EXTI line with interrupt
+  *                            generation capability  
+  * @retval None
+  */
+void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode)
+{
+  GPIO_InitTypeDef gpioinitstruct;
+  
+  /* Enable the BUTTON Clock */
+  BUTTONx_GPIO_CLK_ENABLE(Button);
+
+  gpioinitstruct.Pin = BUTTON_PIN[Button];
+  gpioinitstruct.Pull = GPIO_NOPULL;
+  gpioinitstruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
+  
+  if(ButtonMode == BUTTON_MODE_GPIO)
+  {
+    /* Configure Button pin as input */
+    gpioinitstruct.Mode = GPIO_MODE_INPUT;
+  
+    HAL_GPIO_Init(BUTTON_PORT[Button], &gpioinitstruct);
+  }
+  
+  if(ButtonMode == BUTTON_MODE_EXTI)
+  {
+    /* Configure Button pin as input with External interrupt */
+    gpioinitstruct.Mode   = GPIO_MODE_IT_FALLING; 
+    HAL_GPIO_Init(BUTTON_PORT[Button], &gpioinitstruct);
+    
+    /* Enable and set Button EXTI Interrupt to the lowest priority */
+    HAL_NVIC_SetPriority((IRQn_Type)(BUTTON_IRQn[Button]), 0x0F, 0);
+    HAL_NVIC_EnableIRQ((IRQn_Type)(BUTTON_IRQn[Button]));
+  }
+}
+
+/**
+  * @brief  Push Button DeInit.
+  * @param  Button: Button to be configured
+  *   This parameter should be: BUTTON_USER  
+  * @note PB DeInit does not disable the GPIO clock
+  * @retval None
+  */
+void BSP_PB_DeInit(Button_TypeDef Button)
+{
+  GPIO_InitTypeDef gpio_init_structure;
+
+  gpio_init_structure.Pin = BUTTON_PIN[Button];
+  HAL_NVIC_DisableIRQ((IRQn_Type)(BUTTON_IRQn[Button]));
+  HAL_GPIO_DeInit(BUTTON_PORT[Button], gpio_init_structure.Pin);
+}
+
+/**
+  * @brief  Returns the selected Button state.
+  * @param  Button: Specifies the Button to be checked.
+  *   This parameter should be: BUTTON_USER
+  * @retval Button state.
+  */
+uint32_t BSP_PB_GetState(Button_TypeDef Button)
+{
+  return HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]);
+}
+
+
+#ifdef HAL_SPI_MODULE_ENABLED
+/******************************************************************************
+                            BUS OPERATIONS
+*******************************************************************************/
+/**
+  * @brief  Initialize SPI MSP.
+  * @retval None
+  */
+static void SPIx_MspInit(void)
+{
+  GPIO_InitTypeDef  gpioinitstruct = {0};
+  
+  /*** Configure the GPIOs ***/  
+  /* Enable GPIO clock */
+  NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE();
+  NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE();
+  
+  /* Configure SPI SCK */
+  gpioinitstruct.Pin = NUCLEO_SPIx_SCK_PIN;
+  gpioinitstruct.Mode = GPIO_MODE_AF_PP;
+  gpioinitstruct.Pull  = GPIO_PULLUP;
+  gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+  gpioinitstruct.Alternate = NUCLEO_SPIx_SCK_AF;
+  HAL_GPIO_Init(NUCLEO_SPIx_SCK_GPIO_PORT, &gpioinitstruct);
+
+  /* Configure SPI MISO and MOSI */ 
+  gpioinitstruct.Pin = NUCLEO_SPIx_MOSI_PIN;
+  gpioinitstruct.Alternate = NUCLEO_SPIx_MISO_MOSI_AF;
+  gpioinitstruct.Pull  = GPIO_PULLDOWN;
+  HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
+  
+  gpioinitstruct.Pin = NUCLEO_SPIx_MISO_PIN;
+  HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
+
+  /*** Configure the SPI peripheral ***/ 
+  /* Enable SPI clock */
+  NUCLEO_SPIx_CLK_ENABLE();
+}
+
+/**
+  * @brief  Initialize SPI HAL.
+  * @retval None
+  */
+static void SPIx_Init(void)
+{
+  if(HAL_SPI_GetState(&hnucleo_Spi) == HAL_SPI_STATE_RESET)
+  {
+    /* SPI Config */
+    hnucleo_Spi.Instance = NUCLEO_SPIx;
+      /* SPI baudrate is set to 8 MHz maximum (PCLK2/SPI_BaudRatePrescaler = 32/4 = 8 MHz) 
+       to verify these constraints:
+          - ST7735 LCD SPI interface max baudrate is 15MHz for write and 6.66MHz for read
+            Since the provided driver doesn't use read capability from LCD, only constraint 
+            on write baudrate is considered.
+          - SD card SPI interface max baudrate is 25MHz for write/read
+          - PCLK2 max frequency is 32 MHz 
+       */ 
+    hnucleo_Spi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
+    hnucleo_Spi.Init.Direction = SPI_DIRECTION_2LINES;
+    hnucleo_Spi.Init.CLKPhase = SPI_PHASE_1EDGE;
+    hnucleo_Spi.Init.CLKPolarity = SPI_POLARITY_LOW;
+    hnucleo_Spi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+    hnucleo_Spi.Init.CRCPolynomial = 7;
+    hnucleo_Spi.Init.DataSize = SPI_DATASIZE_8BIT;
+    hnucleo_Spi.Init.FirstBit = SPI_FIRSTBIT_MSB;
+    hnucleo_Spi.Init.NSS = SPI_NSS_SOFT;
+    hnucleo_Spi.Init.TIMode = SPI_TIMODE_DISABLE;
+    hnucleo_Spi.Init.Mode = SPI_MODE_MASTER;
+    
+    SPIx_MspInit();
+    HAL_SPI_Init(&hnucleo_Spi);
+  }
+}
+
+/**
+  * @brief  SPI Write a byte to device
+  * @param  DataIn: value to be written
+  * @param  DataOut: read value
+  * @param  DataLength: number of bytes to write
+  * @retval None
+  */
+static void SPIx_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) DataIn, DataOut, DataLength, SpixTimeout);
+    
+  /* Check the communication status */
+  if(status != HAL_OK)
+  {
+    /* Execute user timeout callback */
+    SPIx_Error();
+  }
+}
+
+/**
+  * @brief  SPI Write an amount of data to device
+  * @param  DataIn: value to be written
+  * @param  DataLength: number of bytes to write
+  * @retval None
+  */
+static void SPIx_WriteData(uint8_t *DataIn, uint16_t DataLength)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+
+  status = HAL_SPI_Transmit(&hnucleo_Spi, DataIn, DataLength, SpixTimeout);
+  
+  /* Check the communication status */
+  if(status != HAL_OK)
+  {
+    /* Execute user timeout callback */
+    SPIx_Error();
+  }
+}
+
+/**
+  * @brief  SPI Write a byte to device
+  * @param  Value: value to be written
+  * @retval None
+  */
+static void SPIx_Write(uint8_t Value)
+{
+  HAL_StatusTypeDef status = HAL_OK;
+  uint8_t data;
+
+  status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) &Value, &data, 1, SpixTimeout);
+    
+  /* Check the communication status */
+  if(status != HAL_OK)
+  {
+    /* Execute user timeout callback */
+    SPIx_Error();
+  }
+}
+
+/**
+  * @brief  SPI error treatment function
+  * @retval None
+  */
+static void SPIx_Error (void)
+{
+  /* De-initialize the SPI communication BUS */
+  HAL_SPI_DeInit(&hnucleo_Spi);
+  
+  /* Re-Initiaize the SPI communication BUS */
+  SPIx_Init();
+}
+
+/******************************************************************************
+                            LINK OPERATIONS
+*******************************************************************************/
+
+/********************************* LINK SD ************************************/
+/**
+  * @brief  Initialize the SD Card and put it into StandBy State (Ready for 
+  *         data transfer).
+  * @retval None
+  */
+void SD_IO_Init(void)
+{
+  GPIO_InitTypeDef  gpioinitstruct = {0};
+  uint8_t counter = 0;
+
+  /* SD_CS_GPIO Periph clock enable */
+  SD_CS_GPIO_CLK_ENABLE();
+
+  /* Configure SD_CS_PIN pin: SD Card CS pin */
+  gpioinitstruct.Pin = SD_CS_PIN;
+  gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
+  gpioinitstruct.Pull = GPIO_PULLUP;
+  gpioinitstruct.Speed  = GPIO_SPEED_FREQ_HIGH;
+  HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
+
+  /* Configure LCD_CS_PIN pin: LCD Card CS pin */
+  gpioinitstruct.Pin = LCD_CS_PIN;
+  gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
+  gpioinitstruct.Pull = GPIO_NOPULL;
+  gpioinitstruct.Speed = GPIO_SPEED_FREQ_HIGH;
+  HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
+  LCD_CS_HIGH();
+  /*------------Put SD in SPI mode--------------*/
+  /* SD SPI Config */
+  SPIx_Init();
+  
+  /* SD chip select high */
+  SD_CS_HIGH();
+  
+  /* Send dummy byte 0xFF, 10 times with CS high */
+  /* Rise CS and MOSI for 80 clocks cycles */
+  for (counter = 0; counter <= 9; counter++)
+  {
+    /* Send dummy byte 0xFF */
+    SD_IO_WriteByte(SD_DUMMY_BYTE);
+  }
+}
+
+/**
+  * @brief  Set the SD_CS pin.
+  * @param  val: pin value.
+  * @retval None
+  */
+void SD_IO_CSState(uint8_t val)
+{
+  if(val == 1) 
+  {
+    SD_CS_HIGH();
+  }
+  else
+  {
+    SD_CS_LOW();
+  }
+}
+
+/**
+  * @brief  Write byte(s) on the SD
+  * @param  DataIn: Pointer to data buffer to write
+  * @param  DataOut: Pointer to data buffer for read data
+  * @param  DataLength: number of bytes to write
+  * @retval None
+  */
+void SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength)
+{
+  /* Send the byte */
+  SPIx_WriteReadData(DataIn, DataOut, DataLength);
+}
+
+/**
+  * @brief  Write a byte on the SD.
+  * @param  Data: byte to send.
+  * @retval Data written
+  */
+uint8_t SD_IO_WriteByte(uint8_t Data)
+{
+  uint8_t tmp;
+
+  /* Send the byte */
+  SPIx_WriteReadData(&Data,&tmp,1);
+  return tmp;
+}
+
+/**
+  * @brief  Write an amount of data on the SD.
+  * @param  DataOut: byte to send.
+  * @param  DataLength: number of bytes to write
+  * @retval none
+  */
+void SD_IO_ReadData(uint8_t *DataOut, uint16_t DataLength)
+{
+  /* Send the byte */
+  SD_IO_WriteReadData(DataOut, DataOut, DataLength);
+  }  
+ 
+/**
+  * @brief  Write an amount of data on the SD.
+  * @param  Data: byte to send.
+  * @param  DataLength: number of bytes to write
+  * @retval none
+  */
+void SD_IO_WriteData(const uint8_t *Data, uint16_t DataLength)
+{
+  /* Send the byte */
+  SPIx_WriteData((uint8_t *)Data, DataLength);
+}
+
+/********************************* LINK LCD ***********************************/
+/**
+  * @brief  Initialize the LCD
+  * @retval None
+  */
+void LCD_IO_Init(void)
+{
+  GPIO_InitTypeDef  gpioinitstruct = {0};
+   
+  /* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
+  LCD_CS_GPIO_CLK_ENABLE();
+  LCD_DC_GPIO_CLK_ENABLE();
+  
+  /* Configure LCD_CS_PIN pin: LCD Card CS pin */
+  gpioinitstruct.Pin = LCD_CS_PIN;
+  gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
+  gpioinitstruct.Pull = GPIO_NOPULL;
+  gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+  HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
+
+  /* Configure LCD_DC_PIN pin: LCD Card DC pin */
+  gpioinitstruct.Pin = LCD_DC_PIN;
+  HAL_GPIO_Init(LCD_DC_GPIO_PORT, &gpioinitstruct);
+  
+  /* LCD chip select high */
+  LCD_CS_HIGH();
+  
+  /* LCD SPI Config */
+  SPIx_Init();
+}
+
+/**
+  * @brief  Write command to select the LCD register.
+  * @param  LCDReg: Address of the selected register.
+  * @retval None
+  */
+void LCD_IO_WriteReg(uint8_t LCDReg)
+{
+  /* Reset LCD control line CS */
+  LCD_CS_LOW();
+  
+  /* Set LCD data/command line DC to Low */
+  LCD_DC_LOW();
+    
+  /* Send Command */
+  SPIx_Write(LCDReg);
+  
+  /* Deselect : Chip Select high */
+  LCD_CS_HIGH();
+}
+
+/**
+  * @brief  Writes data to select the LCD register.
+  *         This function must be used after st7735_WriteReg() function
+  * @param  Data: data to write to the selected register.
+  * @retval None
+  */
+void LCD_IO_WriteData(uint8_t Data)
+{
+  /* Reset LCD control line CS */
+  LCD_CS_LOW();
+  
+  /* Set LCD data/command line DC to High */
+  LCD_DC_HIGH();
+
+  /* Send Data */
+  SPIx_Write(Data);
+  
+  /* Deselect : Chip Select high */
+  LCD_CS_HIGH();
+}
+
+/**
+* @brief  Write register value.
+* @param  pData Pointer on the register value
+* @param  Size Size of byte to transmit to the register
+* @retval None
+*/
+void LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size)
+{
+  uint32_t counter = 0;
+  __IO uint32_t data = 0;
+  
+  /* Reset LCD control line CS */
+  LCD_CS_LOW();
+  
+  /* Set LCD data/command line DC to High */
+  LCD_DC_HIGH();
+
+  if (Size == 1)
+  {
+    /* Only 1 byte to be sent to LCD - general interface can be used */
+    /* Send Data */
+    SPIx_Write(*pData);
+  }
+  else
+  {
+    /* Several data should be sent in a raw */
+    /* Direct SPI accesses for optimization */
+    for (counter = Size; counter != 0; counter--)
+    {
+      while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
+      {
+      }  
+      /* Need to invert bytes for LCD*/
+      *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *(pData+1);
+      
+      while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
+      {
+      }  
+      *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *pData;
+      counter--;
+      pData += 2;
+    }
+    
+    /* Wait until the bus is ready before releasing Chip select */ 
+    while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_BSY) != RESET)
+    {
+    }  
+  } 
+
+  /* Empty the Rx fifo */
+  data = *(&hnucleo_Spi.Instance->DR);
+  UNUSED(data);  /* Remove GNU warning */
+
+  /* Deselect : Chip Select high */
+  LCD_CS_HIGH();
+}
+
+/**
+  * @brief  Wait for loop in ms.
+  * @param  Delay in ms.
+  * @retval None
+  */
+void LCD_Delay(uint32_t Delay)
+{
+  HAL_Delay(Delay);
+}
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+/******************************* LINK JOYSTICK ********************************/
+#ifdef HAL_ADC_MODULE_ENABLED
+/**
+  * @brief  Initialize ADC MSP.
+  * @retval None
+  */
+static void ADCx_MspInit(ADC_HandleTypeDef *hadc)
+{
+  GPIO_InitTypeDef  gpioinitstruct = {0};
+  
+  /*** Configure the GPIOs ***/  
+  /* Enable GPIO clock */
+  NUCLEO_ADCx_GPIO_CLK_ENABLE();
+  
+  /* Configure ADC1 Channel8 as analog input */
+  gpioinitstruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
+  gpioinitstruct.Mode = GPIO_MODE_ANALOG;
+  gpioinitstruct.Pull   = GPIO_NOPULL;
+  HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &gpioinitstruct);
+
+  /*** Configure the ADC peripheral ***/ 
+  /* Enable ADC clock */
+  NUCLEO_ADCx_CLK_ENABLE(); 
+}
+
+/**
+  * @brief  DeInitializes ADC MSP.
+  * @param  hadc: ADC peripheral
+  * @note ADC DeInit does not disable the GPIO clock
+  * @retval None
+  */
+static void ADCx_MspDeInit(ADC_HandleTypeDef *hadc)
+{
+  GPIO_InitTypeDef  gpioinitstruct;
+
+  /*** DeInit the ADC peripheral ***/ 
+  /* Disable ADC clock */
+  NUCLEO_ADCx_CLK_DISABLE(); 
+
+  /* Configure the selected ADC Channel as analog input */
+  gpioinitstruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
+  HAL_GPIO_DeInit(NUCLEO_ADCx_GPIO_PORT, gpioinitstruct.Pin);
+
+  /* Disable GPIO clock has to be done by the application*/
+  /* NUCLEO_ADCx_GPIO_CLK_DISABLE(); */
+}
+
+/**
+  * @brief  Initializes ADC HAL.
+  * @retval None
+  */
+static HAL_StatusTypeDef ADCx_Init(void)
+{
+  /* Set ADC instance */
+  hnucleo_Adc.Instance = NUCLEO_ADCx;
+
+  if(HAL_ADC_GetState(&hnucleo_Adc) == HAL_ADC_STATE_RESET)
+  {
+    /* ADC Config */
+    hnucleo_Adc.Instance = NUCLEO_ADCx;
+    hnucleo_Adc.Init.OversamplingMode      = DISABLE;
+    hnucleo_Adc.Init.ClockPrescaler        = ADC_CLOCK_SYNC_PCLK_DIV2; /* (must not exceed 16MHz) */
+    hnucleo_Adc.Init.LowPowerAutoPowerOff  = DISABLE;
+    hnucleo_Adc.Init.LowPowerFrequencyMode = ENABLE;
+    hnucleo_Adc.Init.LowPowerAutoWait      = ENABLE;
+    hnucleo_Adc.Init.Resolution            = ADC_RESOLUTION_12B;
+    hnucleo_Adc.Init.SamplingTime          = ADC_SAMPLETIME_1CYCLE_5;
+    hnucleo_Adc.Init.ScanConvMode          = ADC_SCAN_DIRECTION_FORWARD;
+    hnucleo_Adc.Init.DataAlign             = ADC_DATAALIGN_RIGHT;
+    hnucleo_Adc.Init.ContinuousConvMode    = DISABLE;
+    hnucleo_Adc.Init.DiscontinuousConvMode = DISABLE;
+    hnucleo_Adc.Init.ExternalTrigConv       = ADC_SOFTWARE_START;            /* Trig of conversion start done manually by software, without external event */
+    hnucleo_Adc.Init.ExternalTrigConvEdge   = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because trig by software start */
+    hnucleo_Adc.Init.EOCSelection           = ADC_EOC_SEQ_CONV;
+    hnucleo_Adc.Init.DMAContinuousRequests  = DISABLE;
+    
+    /* Initialize MSP related to ADC */
+    ADCx_MspInit(&hnucleo_Adc);
+    
+    /* Initialize ADC */
+    if (HAL_ADC_Init(&hnucleo_Adc) != HAL_OK)
+    {
+      return HAL_ERROR;
+    }
+    
+    if (HAL_ADCEx_Calibration_Start(&hnucleo_Adc,ADC_SINGLE_ENDED) != HAL_OK)
+    {
+      return HAL_ERROR;
+    }
+  }
+
+  return HAL_OK;
+}
+
+/**
+  * @brief  Initializes ADC HAL.
+  * @retval None
+  */
+static void ADCx_DeInit(void)
+{
+    hnucleo_Adc.Instance   = NUCLEO_ADCx;
+    
+    HAL_ADC_DeInit(&hnucleo_Adc);
+    ADCx_MspDeInit(&hnucleo_Adc);
+}
+
+/******************************* LINK JOYSTICK ********************************/
+
+/**
+  * @brief  Configures joystick available on adafruit 1.8" TFT shield 
+  *         managed through ADC to detect motion.
+  * @retval Joystickstatus (0=> success, 1=> fail) 
+  */
+uint8_t BSP_JOY_Init(void)
+{
+  if (ADCx_Init() != HAL_OK)
+  {
+    return (uint8_t) HAL_ERROR; 
+  }
+  
+  /* Select Channel 8 to be converted */
+  sConfig.Channel = ADC_CHANNEL_8;
+  sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
+
+  /* Return Joystick initialization status */
+  return (uint8_t) HAL_ADC_ConfigChannel(&hnucleo_Adc, &sConfig);
+}
+
+/**
+  * @brief  DeInit joystick GPIOs.
+  * @note   JOY DeInit does not disable the Mfx, just set the Mfx pins in Off mode
+  * @retval None.
+  */
+void BSP_JOY_DeInit(void)
+{
+    ADCx_DeInit();
+}
+
+/**
+  * @brief  Returns the Joystick key pressed.
+  * @note   To know which Joystick key is pressed we need to detect the voltage
+  *         level on each key output
+  *           - None  : 3.3 V / 4095
+  *           - SEL   : 1.055 V / 1308
+  *           - DOWN  : 0.71 V / 88
+  *           - LEFT  : 3.0 V / 3720 
+  *           - RIGHT : 0.595 V / 737
+  *           - UP    : 1.65 V / 2046
+  * @retval JOYState_TypeDef: Code of the Joystick key pressed.
+  */
+JOYState_TypeDef BSP_JOY_GetState(void)
+{
+  JOYState_TypeDef state = JOY_NONE;
+  uint16_t  keyconvertedvalue = 0;
+  
+ /* Start the conversion process */
+  HAL_ADC_Start(&hnucleo_Adc);
+  
+  /* Wait for the end of conversion */
+  if (HAL_ADC_PollForConversion(&hnucleo_Adc, 10) != HAL_TIMEOUT)
+  {
+    /* Get the converted value of regular channel */
+    keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);
+  }
+ 
+  if((keyconvertedvalue > 2010) && (keyconvertedvalue < 2090))
+  {
+    state = JOY_UP;
+  }
+  else if((keyconvertedvalue > 680) && (keyconvertedvalue < 780))
+  {
+    state = JOY_RIGHT;
+  }
+  else if((keyconvertedvalue > 1270) && (keyconvertedvalue < 1350))
+  {
+    state = JOY_SEL;
+  }
+  else if((keyconvertedvalue > 50) && (keyconvertedvalue < 130))
+  {
+    state = JOY_DOWN;
+  }
+  else if((keyconvertedvalue > 3570) && (keyconvertedvalue < 3800))
+  {
+    state = JOY_LEFT;
+  }
+  else
+  {
+    state = JOY_NONE;
+  }
+  
+  /* Return the code of the Joystick key pressed */
+  return state;
+}
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+/**
+  * @}
+  */ 
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */    
+
+/**
+  * @}
+  */ 
+    

+ 279 - 0
modules/bsp/stm32l0xx_nucleo.h

@@ -0,0 +1,279 @@
+/**
+  ******************************************************************************
+  * @file    stm32l0xx_nucleo.h
+  * @author  MCD Application Team
+  * @brief   This file contains definitions for:
+  *          - LEDs and push-button available on STM32L0XX-Nucleo Kit 
+  *            from STMicroelectronics
+  *          - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD 
+  *            shield (reference ID 802)
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+  
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32L0XX_NUCLEO_H
+#define __STM32L0XX_NUCLEO_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/** @addtogroup BSP
+  * @{
+  */
+
+/** @addtogroup STM32L0XX_NUCLEO
+  * @{
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32l0xx_hal.h"
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL
+  * @{
+  */
+      
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Exported_Types Exported Types
+  * @{
+  */ 
+typedef enum 
+{
+  LED2 = 0,
+
+  LED_GREEN = LED2
+} Led_TypeDef;
+
+typedef enum 
+{  
+  BUTTON_USER = 0,
+  /* Alias */
+  BUTTON_KEY  = BUTTON_USER
+} Button_TypeDef;
+
+typedef enum 
+{  
+  BUTTON_MODE_GPIO = 0,
+  BUTTON_MODE_EXTI = 1
+} ButtonMode_TypeDef; 
+
+typedef enum 
+{ 
+  JOY_NONE  = 0,
+  JOY_SEL   = 1,
+  JOY_DOWN  = 2,
+  JOY_LEFT  = 3,
+  JOY_RIGHT = 4,
+  JOY_UP    = 5
+} JOYState_TypeDef;
+
+/**
+  * @}
+  */ 
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Exported_Constants Exported Constants
+  * @{
+  */ 
+
+/** 
+* @brief	Define for STM32L0XX_NUCLEO board  
+  */ 
+#if !defined (USE_STM32L0XX_NUCLEO)
+ #define USE_STM32L0XX_NUCLEO
+#endif
+
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL_LED
+  * @{
+  */
+#define LEDn                               1
+
+#define LED2_PIN                           GPIO_PIN_5
+#define LED2_GPIO_PORT                     GPIOA
+#define LED2_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOA_CLK_ENABLE()  
+#define LED2_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOA_CLK_DISABLE()
+  
+#define LEDx_GPIO_CLK_ENABLE(__INDEX__)   do { if((__INDEX__) == 0) LED2_GPIO_CLK_ENABLE();} while(0)
+#define LEDx_GPIO_CLK_DISABLE(__INDEX__)  (((__INDEX__) == 0) ? LED2_GPIO_CLK_DISABLE() : 0)
+/**
+  * @}
+  */ 
+  
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL_BUTTON
+  * @{
+  */  
+#define BUTTONn                            1
+
+/**
+  * @brief User push-button
+  */
+#define USER_BUTTON_PIN                         GPIO_PIN_13
+#define USER_BUTTON_GPIO_PORT                   GPIOC
+#define USER_BUTTON_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()
+#define USER_BUTTON_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOC_CLK_DISABLE()
+#define USER_BUTTON_EXTI_IRQn                   EXTI4_15_IRQn
+/* Aliases */
+#define KEY_BUTTON_PIN                          USER_BUTTON_PIN
+#define KEY_BUTTON_GPIO_PORT                    USER_BUTTON_GPIO_PORT
+#define KEY_BUTTON_GPIO_CLK_ENABLE()            USER_BUTTON_GPIO_CLK_ENABLE()
+#define KEY_BUTTON_GPIO_CLK_DISABLE()           USER_BUTTON_GPIO_CLK_DISABLE()
+#define KEY_BUTTON_EXTI_IRQn                    USER_BUTTON_EXTI_IRQn
+
+#define BUTTONx_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == 0) USER_BUTTON_GPIO_CLK_ENABLE();} while(0)
+#define BUTTONx_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? USER_BUTTON_GPIO_CLK_DISABLE() : 0)
+/**
+  * @}
+  */ 
+
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL_BUS
+  * @{
+  */ 
+#if defined(HAL_SPI_MODULE_ENABLED)
+/*###################### SPI1 ###################################*/
+#define NUCLEO_SPIx                                 SPI1
+#define NUCLEO_SPIx_CLK_ENABLE()                  __HAL_RCC_SPI1_CLK_ENABLE()
+
+#define NUCLEO_SPIx_SCK_AF                          GPIO_AF0_SPI1
+#define NUCLEO_SPIx_SCK_GPIO_PORT                   GPIOA
+#define NUCLEO_SPIx_SCK_PIN                         GPIO_PIN_5
+#define NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOA_CLK_ENABLE()
+#define NUCLEO_SPIx_SCK_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#define NUCLEO_SPIx_MISO_MOSI_AF                    GPIO_AF0_SPI1
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_PORT             GPIOA
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOA_CLK_ENABLE()
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_DISABLE()  __HAL_RCC_GPIOA_CLK_DISABLE()
+#define NUCLEO_SPIx_MISO_PIN                        GPIO_PIN_6
+#define NUCLEO_SPIx_MOSI_PIN                        GPIO_PIN_7
+/* Maximum Timeout values for flags waiting loops. These timeouts are not based
+   on accurate values, they just guarantee that the application will not remain
+   stuck if the SPI communication is corrupted.
+   You may modify these timeout values depending on CPU frequency and application
+   conditions (interrupts routines ...). */   
+#define NUCLEO_SPIx_TIMEOUT_MAX                   1000
+#endif /* HAL_SPI_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/** @addtogroup STM32L0XX_NUCLEO_LOW_LEVEL_COMPONENT
+  * @{
+  */
+
+/**
+  * @brief  SD Control Lines management
+  */
+#define SD_CS_LOW()       HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_RESET)
+#define SD_CS_HIGH()      HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_SET)
+
+/**
+  * @brief  LCD Control Lines management
+  */
+#define LCD_CS_LOW()      HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
+#define LCD_CS_HIGH()     HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
+#define LCD_DC_LOW()      HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
+#define LCD_DC_HIGH()     HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
+     
+/**
+  * @brief  SD Control Interface pins (shield D4)
+  */
+#define SD_CS_PIN                                 GPIO_PIN_5
+#define SD_CS_GPIO_PORT                           GPIOB
+#define SD_CS_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOB_CLK_ENABLE()
+#define SD_CS_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOB_CLK_DISABLE()
+
+/**
+  * @brief  LCD Control Interface pins (shield D10)
+  */
+#define LCD_CS_PIN                                 GPIO_PIN_6
+#define LCD_CS_GPIO_PORT                           GPIOB
+#define LCD_CS_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOB_CLK_ENABLE()
+#define LCD_CS_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOB_CLK_DISABLE()
+    
+/**
+  * @brief  LCD Data/Command Interface pins
+  */
+#define LCD_DC_PIN                                 GPIO_PIN_9
+#define LCD_DC_GPIO_PORT                           GPIOA
+#define LCD_DC_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOA_CLK_ENABLE()
+#define LCD_DC_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#if defined(HAL_ADC_MODULE_ENABLED)
+/*##################### ADC1 ###################################*/
+/**
+  * @brief  ADC Interface pins
+  *         used to detect motion of Joystick available on Adafruit 1.8 TFT shield
+  */
+#define NUCLEO_ADCx                                 ADC1
+#define NUCLEO_ADCx_CLK_ENABLE()                    __HAL_RCC_ADC1_CLK_ENABLE()
+#define NUCLEO_ADCx_CLK_DISABLE()                   __HAL_RCC_ADC1_CLK_DISABLE()
+
+#define NUCLEO_ADCx_GPIO_PORT                       GPIOB
+#define NUCLEO_ADCx_GPIO_PIN                        GPIO_PIN_0
+#define NUCLEO_ADCx_GPIO_CLK_ENABLE()               __HAL_RCC_GPIOB_CLK_ENABLE()
+#define NUCLEO_ADCx_GPIO_CLK_DISABLE()              __HAL_RCC_GPIOB_CLK_DISABLE()
+
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+/**
+  * @}
+  */
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Exported_Macros Exported Macros
+  * @{
+  */  
+/**
+  * @}
+  */ 
+
+
+/** @defgroup STM32L0XX_NUCLEO_LOW_LEVEL_Exported_Functions Exported Functions
+  * @{
+  */
+uint32_t         BSP_GetVersion(void);  
+void             BSP_LED_Init(Led_TypeDef Led);
+void             BSP_LED_DeInit(Led_TypeDef Led);
+void             BSP_LED_On(Led_TypeDef Led);
+void             BSP_LED_Off(Led_TypeDef Led);
+void             BSP_LED_Toggle(Led_TypeDef Led);                 
+void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
+void             BSP_PB_DeInit(Button_TypeDef Button);
+uint32_t         BSP_PB_GetState(Button_TypeDef Button);                
+#if defined(HAL_ADC_MODULE_ENABLED)
+uint8_t          BSP_JOY_Init(void);
+JOYState_TypeDef BSP_JOY_GetState(void);
+void             BSP_JOY_DeInit(void);
+#endif /* HAL_ADC_MODULE_ENABLED */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */ 
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */ 
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32L0XX_NUCLEO_H */
+

+ 909 - 292
project/ewarm/lt8920.dep

@@ -1,862 +1,1479 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project>
     <fileVersion>4</fileVersion>
-    <fileChecksum>3175969683</fileChecksum>
+    <fileChecksum>2315053676</fileChecksum>
     <configuration>
         <name>Debug</name>
         <outputs>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_it.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_usart.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_wwdg.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\system\stm32l053xx.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tsc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_usart.c</file>
+            <file>$TOOLKIT_DIR$\config\linker\ST\stm32l053x8.icf</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\cmsis\core_cm0plus.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\cmsis\cmsis_iccarm.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\cmsis\cmsis_compiler.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\cmsis\cmsis_version.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\iccarm_builtin.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dma.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cortex.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\modules\bsp\stm32l0xx_nucleo.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\Legacy\stm32_hal_legacy.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cortex.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\cmsis\mpu_armv7.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_rcc_ex.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc.__cstat.et</file>
+            <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_gpio_ex.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_gpio.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_flash_ramfunc.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_flash_ex.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_cortex.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_flash.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dma.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_exti.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc_ex.c</file>
+            <file>$PROJ_DIR$\..\..\user\main.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_exti.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_iwdg.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lcd.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_nucleo.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lptim.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cortex.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_firewall.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_timebase_tim_template.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ramfunc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ex.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_iwdg.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lptim.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lcd.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_msp_template.c</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_wwdg.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_spi.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tsc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_timebase_tim_template.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_msp_template.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_irda.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cortex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd_ex.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_gpio.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\lt8920.pbd</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c_ex.c</file>
+            <file>$PROJ_DIR$\Debug\Exe\lt8920.out</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc_ex.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_irda.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2s.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac_ex.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_iwdg.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp_ex.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lcd.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_spi.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\system_stm32l0xx.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp.c</file>
+            <file>$PROJ_DIR$\main.cpp</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac.c</file>
+            <file>$PROJ_DIR$\..\..\user\main.cpp</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\system\stm32l0xx.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_irda.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c_ex.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lptim.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2s.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_exti.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr_ex.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lcd.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lptim.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc_ex.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_iwdg.o</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rng.c</file>
+            <file>$TOOLKIT_DIR$\lib\rt6M_tl.a</file>
+            <file>$TOOLKIT_DIR$\lib\shb_l.a</file>
+            <file>$TOOLKIT_DIR$\lib\dl6M_tln.a</file>
+            <file>$TOOLKIT_DIR$\lib\dlpp6M_tl_nc.a</file>
+            <file>$TOOLKIT_DIR$\lib\m6M_tl.a</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_gpio.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ramfunc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c_ex.xcl</file>
+            <file>$PROJ_DIR$\..\..\modules\bsp\stm32l0xx_nucleo.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2s.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cortex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dma.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_exti.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_firewall.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_exti.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dma.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_gpio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ramfunc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2s.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_irda.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_iwdg.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lptim.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lcd.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_spi.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tsc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_timebase_tim_template.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_msp_template.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd_ex.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rng.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc_ex.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rng.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc_ex.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_wwdg.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_usart.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_usart.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_wwdg.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\system_stm32l0xx.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.__cstat.et</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc_ex.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rng.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc_ex.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc_ex.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_spi.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_spi.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus_ex.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_timebase_tim_template.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus_ex.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tsc.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_timebase_tim_template.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart_ex.o</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_iwdg.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_irda.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2s.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_msp_template.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lptim.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lcd.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\system\stm32l053xx.h</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.h</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rng.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp_ex.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\system_stm32l0xx.o</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cortex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dma.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_exti.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_firewall.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ramfunc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_gpio.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c.c</file>
-            <file>$PROJ_DIR$\main.cpp</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_spi.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_timebase_tim_template.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cortex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
-            <file>$PROJ_DIR$\Debug\Exe\lt8920.out</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\lt8920.pbd</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_crc_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_cryp.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dac.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dma.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_exti.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2s.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_irda.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lcd.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_iwdg.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_lptim.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_msp_template.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_firewall.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2s.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_irda.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_def.h</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_rcc.h</file>
+            <file>$PROJ_DIR$\..\..\user\stm32l0xx_hal_conf.h</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_gpio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_firewall.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ramfunc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_gpio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc_ex.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc.o</file>
             <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp_ex.o</file>
             <file>$PROJ_DIR$\Debug\Obj\main.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp.o</file>
             <file>$PROJ_DIR$\Debug\Obj\system_stm32l0xx.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\system\stm32l0xx.h</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_usart.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_wwdg.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart_ex.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tsc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart.c</file>
-            <file>$PROJ_DIR$\..\..\user\main.cpp</file>
+            <file>$PROJ_DIR$\..\..\user\stm32l0xx_it.c</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_nucleo.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_dma.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_i2c_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_gpio.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_flash_ramfunc.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_pwr_ex.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_adc_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_comp_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\..\..\libs\stm32\drivers\inc\stm32l0xx_hal_pwr.h</file>
+            <file>$PROJ_DIR$\..\..\user\stm32l0xx_it.h</file>
+            <file>$PROJ_DIR$\Debug\List\lt8920.map</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_firewall.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pwr_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_pcd_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rng.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rcc_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_rtc_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smartcard.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_usart.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_uart_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_smbus_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_spi.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim_ex.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tim.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_hal_tsc.__cstat.et</file>
+            <file>$PROJ_DIR$\Debug\Obj\stm32l0xx_it.o</file>
         </outputs>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_iwdg.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 130</file>
+                    <file> 212</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 32</file>
+                    <file> 139</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 226</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_irda.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 128</file>
+                    <file> 210</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 31</file>
+                    <file> 75</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 227</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_wwdg.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 126</file>
+                    <file> 173</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 30</file>
+                    <file> 71</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 178</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2s.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 127</file>
+                    <file> 191</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 29</file>
+                    <file> 154</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 248</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_msp_template.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tsc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 132</file>
+                    <file> 193</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 35</file>
+                    <file> 155</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 250</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 133</file>
+                    <file> 190</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 36</file>
+                    <file> 152</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 249</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lptim.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 131</file>
+                    <file> 194</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 33</file>
+                    <file> 74</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 243</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lcd.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 129</file>
+                    <file> 196</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 34</file>
+                    <file> 159</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 245</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_usart.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 134</file>
+                    <file> 176</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 37</file>
+                    <file> 1</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 244</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 52</file>
+                    <file> 82</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 40</file>
+                    <file> 143</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 38</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cortex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 89</file>
+                    <file> 61</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 146</file>
+                    <file> 140</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 35</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dma.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 53</file>
+                    <file> 28</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 39</file>
+                    <file> 149</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 217</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 51</file>
+                    <file> 88</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 38</file>
+                    <file> 141</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 25</file>
+                </tool>
+            </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal.c</name>
+            <outputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 207</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 175</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 223</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 54</file>
+                    <file> 209</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 42</file>
+                    <file> 172</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 224</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rng.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_exti.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
+                    <file> 116</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 148</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
                     <file> 55</file>
                 </tool>
+            </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc_ex.c</name>
+            <outputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 208</file>
+                </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 41</file>
+                    <file> 171</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 225</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>[ROOT_NODE]</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_firewall.c</name>
             <outputs>
                 <tool>
-                    <name>ILINK</name>
-                    <file> 115</file>
+                    <name>ICCARM</name>
+                    <file> 203</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 147</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 231</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 120</file>
+                    <file> 206</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 15</file>
+                    <file> 134</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 33</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_timebase_tim_template.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 118</file>
+                    <file> 195</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 17</file>
+                    <file> 156</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ramfunc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 119</file>
+                    <file> 204</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 20</file>
+                    <file> 135</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 221</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_crc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 116</file>
+                    <file> 202</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 150</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 130</file>
+                </tool>
+            </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_msp_template.c</name>
+            <outputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 72</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 16</file>
+                    <file> 160</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cortex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 113</file>
+                    <file> 186</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 13</file>
+                    <file> 168</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 236</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 122</file>
+                    <file> 185</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 19</file>
+                    <file> 169</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 239</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 121</file>
+                    <file> 184</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 18</file>
+                    <file> 170</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 241</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dma.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 123</file>
+                    <file> 189</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 21</file>
+                    <file> 158</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 240</file>
                 </tool>
             </outputs>
-        </file>
-        <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_exti.c</name>
-            <outputs>
+            <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 125</file>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
                 </tool>
+            </inputs>
+        </file>
+        <file>
+            <name>[ROOT_NODE]</name>
+            <outputs>
                 <tool>
-                    <name>BICOMP</name>
-                    <file> 22</file>
+                    <name>ILINK</name>
+                    <file> 87 230</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_firewall.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_gpio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 135</file>
+                    <file> 205</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 23</file>
+                    <file> 132</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 220</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 137</file>
+                    <file> 112</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 25</file>
+                    <file> 133</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 218</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ramfunc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 139</file>
+                    <file> 111</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 28</file>
+                    <file> 136</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 219</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_flash_ex.c</name>
+            <name>$PROJ_DIR$\Debug\Exe\lt8920.out</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 136</file>
+                    <name>ILINK</name>
+                    <file> 230</file>
                 </tool>
+            </outputs>
+            <inputs>
                 <tool>
-                    <name>BICOMP</name>
-                    <file> 24</file>
+                    <name>ILINK</name>
+                    <file> 12 211 207 209 208 212 210 61 82 88 94 93 26 91 28 116 203 206 202 204 205 112 111 115 109 123 119 120 52 76 174 177 183 181 182 186 185 184 189 188 192 187 190 191 193 194 196 176 173 251 58 99 126 125 128 129 127</file>
                 </tool>
-            </outputs>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_gpio.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_irda.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 138</file>
+                    <file> 109</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 27</file>
+                    <file> 73</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 198</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2c.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_i2s.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 124</file>
+                    <file> 115</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 26</file>
+                    <file> 138</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 197</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\main.cpp</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_iwdg.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 145</file>
+                    <file> 123</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 114</file>
+                    <file> 67</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 56</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_spi.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lcd.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 61</file>
+                    <file> 119</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 7</file>
+                    <file> 69</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 57</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
             <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 62</file>
+                    <file> 192</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 5</file>
+                    <file> 151</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 246</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 60</file>
+                    <file> 188</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 4</file>
+                    <file> 157</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 242</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_spi.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 57</file>
+                    <file> 187</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 44</file>
+                    <file> 153</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 247</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smartcard.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 58</file>
+                    <file> 94</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 43</file>
+                    <file> 142</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 31</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rtc.c</name>
+            <name>$PROJ_DIR$\main.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 56</file>
+                    <file> 211</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 45</file>
+                    <file> 83</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_cryp_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 64</file>
+                    <file> 93</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 8</file>
+                    <file> 145</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 30</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_timebase_tim_template.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 65</file>
+                    <file> 91</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 10</file>
+                    <file> 146</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 131</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tim.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_dac.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 63</file>
+                    <file> 26</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 6</file>
+                    <file> 144</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 24</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_smbus.c</name>
+            <name>$PROJ_DIR$\..\..\user\main.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 59</file>
+                    <file> 211</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 3</file>
+                    <file> 83</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 180</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222 32</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\system\system_stm32l0xx.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 143</file>
+                    <file> 99</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 14</file>
+                    <file> 213</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 179</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 215 201 200 199 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 141</file>
+                    <file> 52</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 50</file>
+                    <file> 161</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 60</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pcd_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 140</file>
+                    <file> 76</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 46</file>
+                    <file> 162</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 234</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_adc_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_lptim.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 142</file>
+                    <file> 120</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 47</file>
+                    <file> 68</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 59</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_comp_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 144</file>
+                    <file> 177</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 12</file>
+                    <file> 165</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 233</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_usart.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_pwr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 49</file>
+                    <file> 174</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 0</file>
+                    <file> 163</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 232</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_wwdg.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 48</file>
+                    <file> 183</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 1</file>
+                    <file> 164</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 237</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart_ex.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rcc_ex.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 68</file>
+                    <file> 181</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 2</file>
+                    <file> 166</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 238</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_tsc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_rng.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 66</file>
+                    <file> 182</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 9</file>
+                    <file> 167</file>
+                </tool>
+                <tool>
+                    <name>__cstat</name>
+                    <file> 235</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\stm32\drivers\src\stm32l0xx_hal_uart.c</name>
+            <name>$PROJ_DIR$\..\..\modules\bsp\stm32l0xx_nucleo.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 67</file>
+                    <file> 58</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 11</file>
+                    <file> 216</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 32 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\user\main.cpp</name>
+            <name>$PROJ_DIR$\..\..\user\stm32l0xx_it.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 145</file>
+                    <file> 251</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 114</file>
+                    <file> 0</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 229 54 215 201 200 199 106 5 13 16 17 15 18 20 14 22 21 19 23 36 108 34 39 40 37 42 41 45 46 44 43 228 222 32</file>
+                </tool>
+            </inputs>
         </file>
-        <forcedrebuild>
-            <name>[MULTI_TOOL]</name>
-            <tool>ILINK</tool>
-        </forcedrebuild>
-        <forcedrebuild>
-            <name>[REBUILD_ALL]</name>
-        </forcedrebuild>
     </configuration>
     <configuration>
         <name>Release</name>

+ 2 - 2
project/ewarm/lt8920.ewd

@@ -84,7 +84,7 @@
                 </option>
                 <option>
                     <name>OCDynDriverList</name>
-                    <state>ARMSIM_ID</state>
+                    <state>STLINK_ID</state>
                 </option>
                 <option>
                     <name>OCLastSavedByProductVersion</name>
@@ -1012,7 +1012,7 @@
                 </option>
                 <option>
                     <name>CCSTLinkInterfaceRadio</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 <option>
                     <name>CCSTLinkInterfaceCmdLine</name>

+ 23 - 5
project/ewarm/lt8920.ewp

@@ -224,7 +224,8 @@
                 </option>
                 <option>
                     <name>CCDefines</name>
-                    <state></state>
+                    <state>USE_HAL_DRIVER</state>
+                    <state>STM32L053xx</state>
                 </option>
                 <option>
                     <name>CCPreprocFile</name>
@@ -349,7 +350,12 @@
                 </option>
                 <option>
                     <name>CCIncludePath2</name>
-                    <state></state>
+                    <state>$PROJ_DIR$/../../libs/stm32/drivers/inc</state>
+                    <state>$PROJ_DIR$/../../libs/stm32/system</state>
+                    <state>$PROJ_DIR$/../../libs/stm32/cmsis</state>
+                    <state>$PROJ_DIR$/../../user</state>
+                    <state>$PROJ_DIR$/../../modules</state>
+                    <state>$PROJ_DIR$/../../modules/bsp</state>
                 </option>
                 <option>
                     <name>CCStdIncCheck</name>
@@ -768,7 +774,7 @@
                 </option>
                 <option>
                     <name>IlinkIcfFile</name>
-                    <state></state>
+                    <state>$TOOLKIT_DIR$\config\linker\ST\stm32l053x8.icf</state>
                 </option>
                 <option>
                     <name>IlinkIcfFileSlave</name>
@@ -828,7 +834,7 @@
                 </option>
                 <option>
                     <name>IlinkProgramEntryLabel</name>
-                    <state></state>
+                    <state>__iar_program_start</state>
                 </option>
                 <option>
                     <name>DoFill</name>
@@ -1001,7 +1007,7 @@
                 </option>
                 <option>
                     <name>IlinkTrustzoneImportLibraryOut</name>
-                    <state>###Unitialized###</state>
+                    <state>lt8920_import_lib.o</state>
                 </option>
                 <option>
                     <name>OILinkExtraOption</name>
@@ -2271,10 +2277,22 @@
             </group>
         </group>
     </group>
+    <group>
+        <name>modules</name>
+        <file>
+            <name>$PROJ_DIR$\..\..\modules\bsp\stm32l0xx_nucleo.c</name>
+        </file>
+    </group>
     <group>
         <name>user</name>
         <file>
             <name>$PROJ_DIR$\..\..\user\main.cpp</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\user\stm32l0xx_hal_conf.h</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\user\stm32l0xx_it.c</name>
+        </file>
     </group>
 </project>

+ 12 - 0
project/ewarm/lt8920.ewt

@@ -2537,10 +2537,22 @@
             </group>
         </group>
     </group>
+    <group>
+        <name>modules</name>
+        <file>
+            <name>$PROJ_DIR$\..\..\modules\bsp\stm32l0xx_nucleo.c</name>
+        </file>
+    </group>
     <group>
         <name>user</name>
         <file>
             <name>$PROJ_DIR$\..\..\user\main.cpp</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\user\stm32l0xx_hal_conf.h</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\user\stm32l0xx_it.c</name>
+        </file>
     </group>
 </project>

+ 67 - 5
user/main.cpp

@@ -1,5 +1,67 @@
-
-int main()
-{
-  return 0;
-}
+#include "stm32l0xx_hal.h"
+#include "stm32l0xx_nucleo.h"
+
+
+void clock_hsi_init(void);
+static void Error_Handler(void);
+
+
+int main()
+{
+    HAL_Init();
+     
+    clock_hsi_init();
+    
+    SystemCoreClockUpdate();
+    
+    BSP_LED_Init(LED2);
+    
+    while (1)
+    {
+        BSP_LED_Toggle(LED2);
+        HAL_Delay(1000);
+    }
+}
+
+
+void clock_hsi_init(void)
+{
+    RCC_ClkInitTypeDef RCC_ClkInitStruct;
+    RCC_OscInitTypeDef RCC_OscInitStruct;
+    
+    __HAL_RCC_PWR_CLK_ENABLE();
+    
+    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+    
+    /* -2- Enable HSI Oscillator, select it as PLL source and finally activate the PLL */
+    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
+    RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+    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;
+    RCC_OscInitStruct.HSICalibrationValue = 0x10;
+    if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+    {
+        Error_Handler();
+    }
+    
+    /* -3- Select the 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;
+    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  
+    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  
+    if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
+    {
+        Error_Handler();
+    }
+}
+
+//
+static void Error_Handler(void)
+{
+    BSP_LED_On(LED2);
+  
+    while(1) {}
+}

+ 32 - 0
user/main.h

@@ -0,0 +1,32 @@
+/**
+  ******************************************************************************
+  * @file    Templates/Inc/main.h 
+  * @author  MCD Application Team
+  * @brief   Header for main.c module
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+  
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32l0xx_hal.h"
+#include "stm32l0xx_nucleo.h"
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+#endif /* __MAIN_H */

+ 302 - 302
user/stm32l0xx_hal_conf.h

@@ -1,302 +1,302 @@
-/**
-  ******************************************************************************
-  * @file    stm32l0xx_hal_conf.h
-  * @author  MCD Application Team
-  * @brief   HAL configuration file. 
-  ******************************************************************************
-  * @attention
-  *
-  * Copyright (c) 2016 STMicroelectronics.
-  * All rights reserved.
-  *
-  * This software is licensed under terms that can be found in the LICENSE file
-  * in the root directory of this software component.
-  * If no LICENSE file comes with this software, it is provided AS-IS.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32L0xx_HAL_CONF_H
-#define __STM32L0xx_HAL_CONF_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-
-/* ########################## Module Selection ############################## */
-/**
-  * @brief This is the list of modules to be used in the HAL driver 
-  */
-#define HAL_MODULE_ENABLED  
-/* #define HAL_ADC_MODULE_ENABLED    */
-/* #define HAL_COMP_MODULE_ENABLED  */
-/* #define HAL_CRC_MODULE_ENABLED   */
-/* #define HAL_CRYP_MODULE_ENABLED   */
-/* #define HAL_DAC_MODULE_ENABLED    */
-#define HAL_DMA_MODULE_ENABLED
-/* #define HAL_FIREWALL_MODULE_ENABLED */
-#define HAL_FLASH_MODULE_ENABLED
-#define HAL_GPIO_MODULE_ENABLED
-/* #define HAL_I2C_MODULE_ENABLED */
-/* #define HAL_I2S_MODULE_ENABLED    */
-/* #define HAL_IWDG_MODULE_ENABLED */
-/* #define HAL_LCD_MODULE_ENABLED  */
-/* #define HAL_LPTIM_MODULE_ENABLED */
-#define HAL_PWR_MODULE_ENABLED  
-#define HAL_RCC_MODULE_ENABLED 
-/* #define HAL_RNG_MODULE_ENABLED    */
-/* #define HAL_RTC_MODULE_ENABLED */
-/* #define HAL_SPI_MODULE_ENABLED    */
-/* #define HAL_TIM_MODULE_ENABLED */
-/* #define HAL_TSC_MODULE_ENABLED    */
-#define HAL_UART_MODULE_ENABLED 
-/* #define HAL_USART_MODULE_ENABLED  */
-/* #define HAL_IRDA_MODULE_ENABLED  */
-/* #define HAL_SMARTCARD_MODULE_ENABLED  */
-/* #define HAL_SMBUS_MODULE_ENABLED  */
-/* #define HAL_WWDG_MODULE_ENABLED   */
-#define HAL_CORTEX_MODULE_ENABLED
-/* #define HAL_PCD_MODULE_ENABLED  */
-
-
-/* ########################## Oscillator Values adaptation ####################*/
-/**
-  * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
-  *        This value is used by the RCC HAL module to compute the system frequency
-  *        (when HSE is used as system clock source, directly or through the PLL).  
-  */
-#if !defined  (HSE_VALUE) 
-  #define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */
-#endif /* HSE_VALUE */
-
-#if !defined  (HSE_STARTUP_TIMEOUT)
-  #define HSE_STARTUP_TIMEOUT    ((uint32_t)100U)   /*!< Time out for HSE start up, in ms */
-#endif /* HSE_STARTUP_TIMEOUT */
-
-/**
-  * @brief Internal Multiple Speed oscillator (MSI) default value.
-  *        This value is the default MSI range value after Reset.
-  */
-#if !defined  (MSI_VALUE)
-  #define MSI_VALUE    ((uint32_t)2097152U) /*!< Value of the Internal oscillator in Hz*/
-#endif /* MSI_VALUE */
-
-/**
-  * @brief Internal High Speed oscillator (HSI) value.
-  *        This value is used by the RCC HAL module to compute the system frequency
-  *        (when HSI is used as system clock source, directly or through the PLL). 
-  */
-#if !defined  (HSI_VALUE)
-  #define HSI_VALUE    ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
-#endif /* HSI_VALUE */
-
-/**
-  * @brief Internal High Speed oscillator for USB (HSI48) value.
-  */
-#if !defined  (HSI48_VALUE) 
-#define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB in Hz.
-                                             The real value may vary depending on the variations
-                                             in voltage and temperature.  */
-#endif /* HSI48_VALUE */
-
-/**
-  * @brief Internal Low Speed oscillator (LSI) value.
-  */
-#if !defined  (LSI_VALUE) 
- #define LSI_VALUE  ((uint32_t)37000U)       /*!< LSI Typical Value in Hz*/
-#endif /* LSI_VALUE */                      /*!< Value of the Internal Low Speed oscillator in Hz
-                                             The real value may vary depending on the variations
-                                             in voltage and temperature.*/
-/**
-  * @brief External Low Speed oscillator (LSE) value.
-  *        This value is used by the UART, RTC HAL module to compute the system frequency
-  */
-#if !defined  (LSE_VALUE)
-  #define LSE_VALUE    ((uint32_t)32768U) /*!< Value of the External oscillator in Hz*/
-#endif /* LSE_VALUE */
-
-/**
-  * @brief Time out for LSE start up value in ms.
-  */
-#if !defined  (LSE_STARTUP_TIMEOUT)
-  #define LSE_STARTUP_TIMEOUT    ((uint32_t)5000U)   /*!< Time out for LSE start up, in ms */
-#endif /* LSE_STARTUP_TIMEOUT */
-
-   
-/* Tip: To avoid modifying this file each time you need to use different HSE,
-   ===  you can define the HSE value in your toolchain compiler preprocessor. */
-
-/* ########################### System Configuration ######################### */
-/**
-  * @brief This is the HAL system configuration section
-  */     
-#define  VDD_VALUE                    ((uint32_t)3300U) /*!< Value of VDD in mv */
-#define  TICK_INT_PRIORITY            (((uint32_t)1U<<__NVIC_PRIO_BITS) - 1U)    /*!< tick interrupt priority */            
-#define  USE_RTOS                     0U     
-#define  PREFETCH_ENABLE              1U              
-#define  PREREAD_ENABLE               0U
-#define  BUFFER_CACHE_DISABLE         0U
-
-/* ########################## Assert Selection ############################## */
-/**
-  * @brief Uncomment the line below to expanse the "assert_param" macro in the 
-  *        HAL drivers code
-  */
-/* #define USE_FULL_ASSERT    1 */
-
-/* ################## SPI peripheral configuration ########################## */
-
-/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
- * Activated: CRC code is present inside driver
- * Deactivated: CRC code cleaned from driver
- */
-
-#define USE_SPI_CRC                   1U
-
-/* Includes ------------------------------------------------------------------*/
-/**
-  * @brief Include module's header file 
-  */
-
-#ifdef HAL_RCC_MODULE_ENABLED
-  #include "stm32l0xx_hal_rcc.h"
-#endif /* HAL_RCC_MODULE_ENABLED */
-  
-#ifdef HAL_GPIO_MODULE_ENABLED
-  #include "stm32l0xx_hal_gpio.h"
-#endif /* HAL_GPIO_MODULE_ENABLED */
-
-#ifdef HAL_DMA_MODULE_ENABLED
-  #include "stm32l0xx_hal_dma.h"
-#endif /* HAL_DMA_MODULE_ENABLED */
-
-#ifdef HAL_CORTEX_MODULE_ENABLED
-  #include "stm32l0xx_hal_cortex.h"
-#endif /* HAL_CORTEX_MODULE_ENABLED */
-
-#ifdef HAL_ADC_MODULE_ENABLED
-  #include "stm32l0xx_hal_adc.h"
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-#ifdef HAL_COMP_MODULE_ENABLED
-  #include "stm32l0xx_hal_comp.h"
-#endif /* HAL_COMP_MODULE_ENABLED */
-
-#ifdef HAL_CRC_MODULE_ENABLED
-  #include "stm32l0xx_hal_crc.h"
-#endif /* HAL_CRC_MODULE_ENABLED */
-
-#ifdef HAL_CRYP_MODULE_ENABLED
-  #include "stm32l0xx_hal_cryp.h"
-#endif /* HAL_CRYP_MODULE_ENABLED */
-
-#ifdef HAL_DAC_MODULE_ENABLED
-  #include "stm32l0xx_hal_dac.h"
-#endif /* HAL_DAC_MODULE_ENABLED */
-
-#ifdef HAL_FIREWALL_MODULE_ENABLED
-  #include "stm32l0xx_hal_firewall.h"
-#endif /* HAL_FIREWALL_MODULE_ENABLED */
-
-#ifdef HAL_FLASH_MODULE_ENABLED
-  #include "stm32l0xx_hal_flash.h"
-#endif /* HAL_FLASH_MODULE_ENABLED */
- 
-#ifdef HAL_I2C_MODULE_ENABLED
- #include "stm32l0xx_hal_i2c.h"
-#endif /* HAL_I2C_MODULE_ENABLED */
-
-#ifdef HAL_I2S_MODULE_ENABLED
- #include "stm32l0xx_hal_i2s.h"
-#endif /* HAL_I2S_MODULE_ENABLED */
-
-#ifdef HAL_IWDG_MODULE_ENABLED
- #include "stm32l0xx_hal_iwdg.h"
-#endif /* HAL_IWDG_MODULE_ENABLED */
-
-#ifdef HAL_LCD_MODULE_ENABLED
- #include "stm32l0xx_hal_lcd.h"
-#endif /* HAL_LCD_MODULE_ENABLED */
-
-#ifdef HAL_LPTIM_MODULE_ENABLED
-#include "stm32l0xx_hal_lptim.h"
-#endif /* HAL_LPTIM_MODULE_ENABLED */
-   
-#ifdef HAL_PWR_MODULE_ENABLED
- #include "stm32l0xx_hal_pwr.h"
-#endif /* HAL_PWR_MODULE_ENABLED */
-
-#ifdef HAL_RNG_MODULE_ENABLED
- #include "stm32l0xx_hal_rng.h"
-#endif /* HAL_RNG_MODULE_ENABLED */
-
-#ifdef HAL_RTC_MODULE_ENABLED
- #include "stm32l0xx_hal_rtc.h"
-#endif /* HAL_RTC_MODULE_ENABLED */
-
-#ifdef HAL_SPI_MODULE_ENABLED
- #include "stm32l0xx_hal_spi.h"
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-#ifdef HAL_TIM_MODULE_ENABLED
- #include "stm32l0xx_hal_tim.h"
-#endif /* HAL_TIM_MODULE_ENABLED */
-
-#ifdef HAL_TSC_MODULE_ENABLED
- #include "stm32l0xx_hal_tsc.h"
-#endif /* HAL_TSC_MODULE_ENABLED */
-
-#ifdef HAL_UART_MODULE_ENABLED
- #include "stm32l0xx_hal_uart.h"
-#endif /* HAL_UART_MODULE_ENABLED */
-
-#ifdef HAL_USART_MODULE_ENABLED
- #include "stm32l0xx_hal_usart.h"
-#endif /* HAL_USART_MODULE_ENABLED */
-
-#ifdef HAL_IRDA_MODULE_ENABLED
- #include "stm32l0xx_hal_irda.h"
-#endif /* HAL_IRDA_MODULE_ENABLED */
-
-#ifdef HAL_SMARTCARD_MODULE_ENABLED
- #include "stm32l0xx_hal_smartcard.h"
-#endif /* HAL_SMARTCARD_MODULE_ENABLED */
-
-#ifdef HAL_SMBUS_MODULE_ENABLED
- #include "stm32l0xx_hal_smbus.h"
-#endif /* HAL_SMBUS_MODULE_ENABLED */
-
-#ifdef HAL_WWDG_MODULE_ENABLED
- #include "stm32l0xx_hal_wwdg.h"
-#endif /* HAL_WWDG_MODULE_ENABLED */
-
-#ifdef HAL_PCD_MODULE_ENABLED
- #include "stm32l0xx_hal_pcd.h"
-#endif /* HAL_PCD_MODULE_ENABLED */
-
-/* Exported macro ------------------------------------------------------------*/
-#ifdef  USE_FULL_ASSERT
-/**
-  * @brief  The assert_param macro is used for function's parameters check.
-  * @param  expr If expr is false, it calls assert_failed function
-  *         which reports the name of the source file and the source
-  *         line number of the call that failed. 
-  *         If expr is true, it returns no value.
-  * @retval None
-  */
-  #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
-/* Exported functions ------------------------------------------------------- */
-  void assert_failed(uint8_t *file, uint32_t line);
-#else
-  #define assert_param(expr) ((void)0U)
-#endif /* USE_FULL_ASSERT */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM32L0xx_HAL_CONF_H */
+/**
+  ******************************************************************************
+  * @file    stm32l0xx_hal_conf.h
+  * @author  MCD Application Team
+  * @brief   HAL configuration file.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */ 
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32L0xx_HAL_CONF_H
+#define __STM32L0xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+  * @brief This is the list of modules to be used in the HAL driver 
+  */
+#define HAL_MODULE_ENABLED  
+/*#define HAL_ADC_MODULE_ENABLED */ 
+/*#define HAL_COMP_MODULE_ENABLED */
+/*#define HAL_CRC_MODULE_ENABLED */ 
+/*#define HAL_CRYP_MODULE_ENABLED */ 
+/*#define HAL_DAC_MODULE_ENABLED */  
+/*#define HAL_DMA_MODULE_ENABLED */
+/*#define HAL_FIREWALL_MODULE_ENABLED */
+#define HAL_FLASH_MODULE_ENABLED 
+#define HAL_GPIO_MODULE_ENABLED 
+/*#define HAL_I2C_MODULE_ENABLED */
+/*#define HAL_I2S_MODULE_ENABLED */ 
+/*#define HAL_IWDG_MODULE_ENABLED */
+/*#define HAL_LCD_MODULE_ENABLED */
+/*#define HAL_LPTIM_MODULE_ENABLED */
+ #define HAL_PWR_MODULE_ENABLED 
+#define HAL_RCC_MODULE_ENABLED 
+/*#define HAL_RNG_MODULE_ENABLED */
+/*#define HAL_RTC_MODULE_ENABLED */
+/*#define HAL_SPI_MODULE_ENABLED */  
+/*#define HAL_TIM_MODULE_ENABLED */  
+/*#define HAL_TSC_MODULE_ENABLED */
+/*#define HAL_UART_MODULE_ENABLED */
+/*#define HAL_USART_MODULE_ENABLED */
+/*#define HAL_IRDA_MODULE_ENABLED */
+/*#define HAL_SMARTCARD_MODULE_ENABLED */
+/*#define HAL_SMBUS_MODULE_ENABLED */
+/*#define HAL_WWDG_MODULE_ENABLED */ 
+#define HAL_CORTEX_MODULE_ENABLED
+/*#define HAL_PCD_MODULE_ENABLED */
+
+
+/* ########################## Oscillator Values adaptation ####################*/
+/**
+  * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+  *        This value is used by the RCC HAL module to compute the system frequency
+  *        (when HSE is used as system clock source, directly or through the PLL).  
+  */
+#if !defined  (HSE_VALUE) 
+  #define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined  (HSE_STARTUP_TIMEOUT)
+  #define HSE_STARTUP_TIMEOUT    ((uint32_t)100U)   /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+  * @brief Internal Multiple Speed oscillator (MSI) default value.
+  *        This value is the default MSI range value after Reset.
+  */
+#if !defined  (MSI_VALUE)
+  #define MSI_VALUE    ((uint32_t)2097152U) /*!< Value of the Internal oscillator in Hz*/
+#endif /* MSI_VALUE */
+
+/**
+  * @brief Internal High Speed oscillator (HSI) value.
+  *        This value is used by the RCC HAL module to compute the system frequency
+  *        (when HSI is used as system clock source, directly or through the PLL). 
+  */
+#if !defined  (HSI_VALUE)
+  #define HSI_VALUE    ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+  * @brief Internal High Speed oscillator for USB (HSI48) value.
+  */
+#if !defined  (HSI48_VALUE) 
+#define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB in Hz.
+                                             The real value may vary depending on the variations
+                                             in voltage and temperature.  */
+#endif /* HSI48_VALUE */
+
+/**
+  * @brief Internal Low Speed oscillator (LSI) value.
+  */
+#if !defined  (LSI_VALUE) 
+ #define LSI_VALUE  ((uint32_t)37000U)       /*!< LSI Typical Value in Hz*/
+#endif /* LSI_VALUE */                      /*!< Value of the Internal Low Speed oscillator in Hz
+                                             The real value may vary depending on the variations
+                                             in voltage and temperature.*/
+/**
+  * @brief External Low Speed oscillator (LSE) value.
+  *        This value is used by the UART, RTC HAL module to compute the system frequency
+  */
+#if !defined  (LSE_VALUE)
+  #define LSE_VALUE    ((uint32_t)32768U) /*!< Value of the External oscillator in Hz*/
+#endif /* LSE_VALUE */
+
+/**
+  * @brief Time out for LSE start up value in ms.
+  */
+#if !defined  (LSE_STARTUP_TIMEOUT)
+  #define LSE_STARTUP_TIMEOUT    ((uint32_t)5000U)   /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+   
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+   ===  you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+  * @brief This is the HAL system configuration section
+  */     
+#define  VDD_VALUE                    ((uint32_t)3300U) /*!< Value of VDD in mv */ 
+#define  TICK_INT_PRIORITY            ((uint32_t)3U)    /*!< tick interrupt priority */
+#define  USE_RTOS                     0U        
+#define  PREFETCH_ENABLE              1U              
+#define  PREREAD_ENABLE               1U
+#define  BUFFER_CACHE_DISABLE         0U
+
+/* ########################## Assert Selection ############################## */
+/**
+  * @brief Uncomment the line below to expanse the "assert_param" macro in the 
+  *        HAL drivers code
+  */
+/* #define USE_FULL_ASSERT    1 */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+ * Activated: CRC code is present inside driver
+ * Deactivated: CRC code cleaned from driver
+ */
+
+#define USE_SPI_CRC                   1U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+  * @brief Include module's header file 
+  */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+  #include "stm32l0xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+  #include "stm32l0xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+  #include "stm32l0xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+   
+#ifdef HAL_CORTEX_MODULE_ENABLED
+  #include "stm32l0xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+  #include "stm32l0xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_COMP_MODULE_ENABLED
+  #include "stm32l0xx_hal_comp.h"
+#endif /* HAL_COMP_MODULE_ENABLED */
+   
+#ifdef HAL_CRC_MODULE_ENABLED
+  #include "stm32l0xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+  #include "stm32l0xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+  #include "stm32l0xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_FIREWALL_MODULE_ENABLED
+  #include "stm32l0xx_hal_firewall.h"
+#endif /* HAL_FIREWALL_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+  #include "stm32l0xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+ 
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32l0xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32l0xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32l0xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LCD_MODULE_ENABLED
+ #include "stm32l0xx_hal_lcd.h"
+#endif /* HAL_LCD_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+#include "stm32l0xx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+   
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32l0xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32l0xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+  #include "stm32l0xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32l0xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32l0xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_TSC_MODULE_ENABLED
+  #include "stm32l0xx_hal_tsc.h"
+#endif /* HAL_TSC_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32l0xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32l0xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32l0xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32l0xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32l0xx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32l0xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32l0xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef  USE_FULL_ASSERT
+/**
+  * @brief  The assert_param macro is used for function's parameters check.
+  * @param  expr If expr is false, it calls assert_failed function
+  *         which reports the name of the source file and the source
+  *         line number of the call that failed. 
+  *         If expr is true, it returns no value.
+  * @retval None
+  */
+  #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+  void assert_failed(uint8_t *file, uint32_t line);
+#else
+  #define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32L0xx_HAL_CONF_H */

+ 118 - 0
user/stm32l0xx_it.c

@@ -0,0 +1,118 @@
+/**
+  ******************************************************************************
+  * @file    Templates/Src/stm32l0xx_it.c 
+  * @author  MCD Application Team
+  * @brief   Main Interrupt Service Routines.
+  *          This file provides template for all exceptions handler and 
+  *          peripherals interrupt service routine.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32l0xx_it.h"
+#include "main.h"
+
+/** @addtogroup STM32L0xx_HAL_Examples
+  * @{
+  */
+
+/** @addtogroup Templates
+  * @{
+  */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+/*            Cortex-M0+ Processor Exceptions Handlers                         */
+/******************************************************************************/
+
+/**
+  * @brief   This function handles NMI exception.
+  * @param  None
+  * @retval None
+  */
+void NMI_Handler(void)
+{
+}
+
+/**
+  * @brief  This function handles Hard Fault exception.
+  * @param  None
+  * @retval None
+  */
+void HardFault_Handler(void)
+{
+  /* Go to infinite loop when Hard Fault exception occurs */
+  while (1)
+  {
+  }
+}
+
+/**
+  * @brief  This function handles SVCall exception.
+  * @param  None
+  * @retval None
+  */
+void SVC_Handler(void)
+{
+}
+
+/**
+  * @brief  This function handles PendSVC exception.
+  * @param  None
+  * @retval None
+  */
+void PendSV_Handler(void)
+{
+}
+
+/**
+  * @brief  This function handles SysTick Handler.
+  * @param  None
+  * @retval None
+  */
+void SysTick_Handler(void)
+{
+  HAL_IncTick();
+}
+
+/******************************************************************************/
+/*                 STM32L0xx Peripherals Interrupt Handlers                   */
+/*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */
+/*  available peripheral interrupt handler's name please refer to the startup */
+/*  file (startup_stm32l0xx.s).                                               */
+/******************************************************************************/
+
+/**
+  * @brief  This function handles PPP interrupt request.
+  * @param  None
+  * @retval None
+  */
+/*void PPP_IRQHandler(void)
+{
+}*/
+
+
+/**
+  * @}
+  */ 
+
+/**
+  * @}
+  */

+ 43 - 0
user/stm32l0xx_it.h

@@ -0,0 +1,43 @@
+/**
+  ******************************************************************************
+  * @file    Templates/Inc/stm32l0xx_it.h 
+  * @author  MCD Application Team
+  * @brief   This file contains the headers of the interrupt handlers.
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2016 STMicroelectronics.
+  * All rights reserved.
+  *
+  * This software is licensed under terms that can be found in the LICENSE file
+  * in the root directory of this software component.
+  * If no LICENSE file comes with this software, it is provided AS-IS.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32L0xx_IT_H
+#define __STM32L0xx_IT_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif 
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void SVC_Handler(void);
+void PendSV_Handler(void);
+void SysTick_Handler(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32L0xx_IT_H */