Просмотр исходного кода

Enable RTC for all platforms and add cli date command (#252)

* F2: enable RTC. Cli: add date command.
あく 5 лет назад
Родитель
Сommit
758e37e294

+ 23 - 1
applications/cli/cli_commands.c

@@ -1,5 +1,6 @@
 #include "cli_commands.h"
 #include <api-hal.h>
+#include <rtc.h>
 
 void cli_command_help(string_t args, void* context) {
     (void)args;
@@ -45,10 +46,31 @@ void cli_command_uuid(string_t args, void* context) {
     cli_print(string_get_cstr(byte_str));
 }
 
+void cli_command_date(string_t args, void* context) {
+    RTC_DateTypeDef date;
+    RTC_TimeTypeDef time;
+
+    // TODO add get_datetime to core, not use HAL here
+    // READ ORDER MATTERS! Time then date.
+    HAL_RTC_GetTime(&hrtc, &time, RTC_FORMAT_BIN);
+    HAL_RTC_GetDate(&hrtc, &date, RTC_FORMAT_BIN);
+
+    string_t datetime_str;
+    string_init(datetime_str);
+
+    string_cat_printf(datetime_str, "%.2d:%.2d:%.2d ", time.Hours, time.Minutes, time.Seconds);
+    string_cat_printf(datetime_str, "%.2d-%.2d-%.2d", date.Month, date.Date, 2000 + date.Year);
+
+    cli_print(string_get_cstr(datetime_str));
+
+    string_clear(datetime_str);
+}
+
 void cli_commands_init(Cli* cli) {
     cli_add_command(cli, "help", cli_command_help, cli);
     cli_add_command(cli, "?", cli_command_help, cli);
     cli_add_command(cli, "version", cli_command_version, cli);
     cli_add_command(cli, "!", cli_command_version, cli);
     cli_add_command(cli, "uid", cli_command_uuid, cli);
-}
+    cli_add_command(cli, "date", cli_command_date, cli);
+}

+ 58 - 0
firmware/targets/f2/Inc/rtc.h

@@ -0,0 +1,58 @@
+/**
+  ******************************************************************************
+  * File Name          : RTC.h
+  * Description        : This file provides code for the configuration
+  *                      of the RTC instances.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under Ultimate Liberty license
+  * SLA0044, the "License"; You may not use this file except in compliance with
+  * the License. You may obtain a copy of the License at:
+  *                             www.st.com/SLA0044
+  *
+  ******************************************************************************
+  */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __rtc_H
+#define __rtc_H
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+extern RTC_HandleTypeDef hrtc;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_RTC_Init(void);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__ rtc_H */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 1 - 1
firmware/targets/f2/Inc/stm32l4xx_hal_conf.h

@@ -67,7 +67,7 @@
 /*#define HAL_QSPI_MODULE_ENABLED   */
 /*#define HAL_QSPI_MODULE_ENABLED   */
 /*#define HAL_RNG_MODULE_ENABLED   */
-/*#define HAL_RTC_MODULE_ENABLED   */
+#define HAL_RTC_MODULE_ENABLED
 /*#define HAL_SAI_MODULE_ENABLED   */
 /*#define HAL_SD_MODULE_ENABLED   */
 /*#define HAL_SMBUS_MODULE_ENABLED   */

+ 11 - 3
firmware/targets/f2/Src/main.c

@@ -22,6 +22,7 @@
 #include "cmsis_os.h"
 #include "adc.h"
 #include "comp.h"
+#include "rtc.h"
 #include "spi.h"
 #include "tim.h"
 #include "usart.h"
@@ -101,6 +102,7 @@ int main(void)
   MX_USART1_UART_Init();
   MX_TIM8_Init();
   MX_TIM2_Init();
+  MX_RTC_Init();
   /* USER CODE BEGIN 2 */
   MX_FATFS_Init();
   delay_us_init_DWT();
@@ -135,11 +137,16 @@ void SystemClock_Config(void)
   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
 
+  /** Configure LSE Drive Capability
+  */
+  HAL_PWR_EnableBkUpAccess();
+  __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
   /** Initializes the RCC Oscillators according to the specified parameters
   * in the RCC_OscInitTypeDef structure.
   */
-  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+  RCC_OscInitStruct.LSEState = RCC_LSE_ON;
   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
   RCC_OscInitStruct.PLL.PLLM = 2;
@@ -164,10 +171,11 @@ void SystemClock_Config(void)
   {
     Error_Handler();
   }
-  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USB
-                              |RCC_PERIPHCLK_ADC;
+  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
+                              |RCC_PERIPHCLK_USB|RCC_PERIPHCLK_ADC;
   PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
   PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
+  PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
   PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
   PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSE;
   PeriphClkInit.PLLSAI1.PLLSAI1M = 2;

+ 113 - 0
firmware/targets/f2/Src/rtc.c

@@ -0,0 +1,113 @@
+/**
+  ******************************************************************************
+  * File Name          : RTC.c
+  * Description        : This file provides code for the configuration
+  *                      of the RTC instances.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under Ultimate Liberty license
+  * SLA0044, the "License"; You may not use this file except in compliance with
+  * the License. You may obtain a copy of the License at:
+  *                             www.st.com/SLA0044
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "rtc.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+RTC_HandleTypeDef hrtc;
+
+/* RTC init function */
+void MX_RTC_Init(void)
+{
+  RTC_TimeTypeDef sTime = {0};
+  RTC_DateTypeDef sDate = {0};
+
+  /** Initialize RTC Only
+  */
+  hrtc.Instance = RTC;
+  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
+  hrtc.Init.AsynchPrediv = 127;
+  hrtc.Init.SynchPrediv = 255;
+  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
+  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
+  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
+  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
+  if (HAL_RTC_Init(&hrtc) != HAL_OK)
+  {
+    Error_Handler();
+  }
+
+  /* USER CODE BEGIN Check_RTC_BKUP */
+
+  /* USER CODE END Check_RTC_BKUP */
+
+  /** Initialize RTC and set the Time and Date
+  */
+  sTime.Hours = 0x0;
+  sTime.Minutes = 0x0;
+  sTime.Seconds = 0x0;
+  sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
+  sTime.StoreOperation = RTC_STOREOPERATION_RESET;
+  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sDate.WeekDay = RTC_WEEKDAY_MONDAY;
+  sDate.Month = RTC_MONTH_NOVEMBER;
+  sDate.Date = 0x20;
+  sDate.Year = 0x20;
+
+  if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK)
+  {
+    Error_Handler();
+  }
+
+}
+
+void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
+{
+
+  if(rtcHandle->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspInit 0 */
+
+  /* USER CODE END RTC_MspInit 0 */
+    /* RTC clock enable */
+    __HAL_RCC_RTC_ENABLE();
+  /* USER CODE BEGIN RTC_MspInit 1 */
+
+  /* USER CODE END RTC_MspInit 1 */
+  }
+}
+
+void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
+{
+
+  if(rtcHandle->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspDeInit 0 */
+
+  /* USER CODE END RTC_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_RTC_DISABLE();
+  /* USER CODE BEGIN RTC_MspDeInit 1 */
+
+  /* USER CODE END RTC_MspDeInit 1 */
+  }
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 4 - 2
firmware/targets/f2/Src/stm32l4xx_it.c

@@ -239,8 +239,9 @@ void EXTI9_5_IRQHandler(void)
 void TIM1_TRG_COM_TIM17_IRQHandler(void)
 {
   /* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 0 */
-  HAL_TIM_IRQHandler(&htim17);
+
   /* USER CODE END TIM1_TRG_COM_TIM17_IRQn 0 */
+  HAL_TIM_IRQHandler(&htim17);
   /* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 1 */
 
   /* USER CODE END TIM1_TRG_COM_TIM17_IRQn 1 */
@@ -281,8 +282,9 @@ void TIM8_CC_IRQHandler(void)
 void OTG_FS_IRQHandler(void)
 {
   /* USER CODE BEGIN OTG_FS_IRQn 0 */
-  HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
+
   /* USER CODE END OTG_FS_IRQn 0 */
+  HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS);
   /* USER CODE BEGIN OTG_FS_IRQn 1 */
 
   /* USER CODE END OTG_FS_IRQn 1 */

+ 487 - 472
firmware/targets/f2/cube.ioc

@@ -1,506 +1,521 @@
 #MicroXplorer Configuration settings - do not modify
-ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_4
-ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,master,NbrOfConversion
-ADC1.master=1
-ADC1.NbrOfConversion=1
-ADC1.NbrOfConversionFlag=1
-ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
-ADC1.Rank-0\#ChannelRegularConversion=1
-ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
-board=NUCLEO-L476RG
-boardIOC=true
-File.Version=6
-FREERTOS.configCHECK_FOR_STACK_OVERFLOW=1
-FREERTOS.configGENERATE_RUN_TIME_STATS=1
-FREERTOS.configRECORD_STACK_HIGH_ADDRESS=1
-FREERTOS.configTOTAL_HEAP_SIZE=40960
-FREERTOS.configUSE_IDLE_HOOK=1
-FREERTOS.configUSE_TIMERS=1
-FREERTOS.FootprintOK=true
-FREERTOS.HEAP_NUMBER=4
-FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,HEAP_NUMBER,configUSE_TIMERS,configUSE_IDLE_HOOK,FootprintOK,configCHECK_FOR_STACK_OVERFLOW,configRECORD_STACK_HIGH_ADDRESS,configGENERATE_RUN_TIME_STATS
-FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;app_main,8,128,app,As external,NULL,Dynamic,NULL,NULL
-GPIO.groupedBy=Group By Peripherals
-KeepUserPlacement=false
-Mcu.Family=STM32L4
-Mcu.IP0=ADC1
-Mcu.IP10=TIM15
-Mcu.IP11=USART1
-Mcu.IP12=USB_DEVICE
-Mcu.IP13=USB_OTG_FS
-Mcu.IP1=COMP1
-Mcu.IP2=FREERTOS
-Mcu.IP3=NVIC
-Mcu.IP4=RCC
-Mcu.IP5=SPI1
-Mcu.IP6=SPI3
-Mcu.IP7=SYS
-Mcu.IP8=TIM5
-Mcu.IP9=TIM8
-Mcu.IPNb=14
-Mcu.Name=STM32L476R(C-E-G)Tx
-Mcu.Package=LQFP64
-Mcu.Pin0=PC13
-Mcu.Pin10=PA1
-Mcu.Pin11=PA2
-Mcu.Pin12=PA3
-Mcu.Pin13=PA4
-Mcu.Pin14=PA5
-Mcu.Pin15=PA6
-Mcu.Pin16=PA7
-Mcu.Pin17=PC4
-Mcu.Pin18=PC5
-Mcu.Pin19=PB0
-Mcu.Pin1=PC14-OSC32_IN (PC14)
-Mcu.Pin20=PB1
-Mcu.Pin21=PB2
-Mcu.Pin22=PB10
-Mcu.Pin23=PB11
-Mcu.Pin24=PB12
-Mcu.Pin25=PB13
-Mcu.Pin26=PB14
-Mcu.Pin27=PB15
-Mcu.Pin28=PC6
-Mcu.Pin29=PC7
-Mcu.Pin2=PC15-OSC32_OUT (PC15)
-Mcu.Pin30=PC8
-Mcu.Pin31=PC9
-Mcu.Pin32=PA8
-Mcu.Pin33=PA9
-Mcu.Pin34=PA10
-Mcu.Pin35=PA11
-Mcu.Pin36=PA12
-Mcu.Pin37=PA13 (JTMS-SWDIO)
-Mcu.Pin38=PA14 (JTCK-SWCLK)
-Mcu.Pin39=PA15 (JTDI)
-Mcu.Pin3=PH0-OSC_IN (PH0)
-Mcu.Pin40=PC10
-Mcu.Pin41=PC11
-Mcu.Pin42=PC12
-Mcu.Pin43=PD2
-Mcu.Pin44=PB3 (JTDO-TRACESWO)
-Mcu.Pin45=PB4 (NJTRST)
-Mcu.Pin46=PB5
-Mcu.Pin47=PB6
-Mcu.Pin48=PB7
-Mcu.Pin49=PB8
-Mcu.Pin4=PH1-OSC_OUT (PH1)
-Mcu.Pin50=PB9
-Mcu.Pin51=VP_ADC1_TempSens_Input
-Mcu.Pin52=VP_ADC1_Vref_Input
-Mcu.Pin53=VP_COMP1_VS_VREFINT12
-Mcu.Pin54=VP_FREERTOS_VS_CMSIS_V2
-Mcu.Pin55=VP_SYS_VS_tim17
-Mcu.Pin56=VP_TIM8_VS_ClockSourceINT
-Mcu.Pin57=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
-Mcu.Pin5=PC0
-Mcu.Pin6=PC1
-Mcu.Pin7=PC2
-Mcu.Pin8=PC3
-Mcu.Pin9=PA0
-Mcu.PinsNb=58
-Mcu.ThirdPartyNb=0
-Mcu.UserConstants=
-Mcu.UserName=STM32L476RGTx
-MxCube.Version=6.0.1
-MxDb.Version=DB.6.0.0
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.EXTI15_10_IRQn=true\:5\:0\:true\:false\:true\:false\:true\:true
-NVIC.EXTI1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.EXTI2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.EXTI4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.ForceEnableDMAVector=true
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-NVIC.OTG_FS_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
-NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false
-NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-NVIC.SavedPendsvIrqHandlerGenerated=true
-NVIC.SavedSvcallIrqHandlerGenerated=true
-NVIC.SavedSystickIrqHandlerGenerated=true
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false
-NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:true\:false
-NVIC.TIM1_TRG_COM_TIM17_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
-NVIC.TIM8_CC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
-NVIC.TimeBase=TIM1_TRG_COM_TIM17_IRQn
-NVIC.TimeBaseIP=TIM17
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
-PA0.GPIOParameters=GPIO_Label
-PA0.GPIO_Label=IR_RX
-PA0.Locked=true
-PA0.Signal=ADCx_IN5
-PA1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PA1.GPIO_Label=BUTTON_DOWN
-PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PA1.GPIO_PuPd=GPIO_PULLDOWN
-PA1.Locked=true
-PA1.Signal=GPXTI1
-PA10.Locked=true
-PA10.Mode=Asynchronous
-PA10.Signal=USART1_RX
-PA11.Locked=true
-PA11.Mode=Device_Only
-PA11.Signal=USB_OTG_FS_DM
-PA12.Locked=true
-PA12.Mode=Device_Only
-PA12.Signal=USB_OTG_FS_DP
-PA13\ (JTMS-SWDIO).GPIOParameters=GPIO_Label
-PA13\ (JTMS-SWDIO).GPIO_Label=TMS
-PA13\ (JTMS-SWDIO).Locked=true
-PA13\ (JTMS-SWDIO).Mode=Serial_Wire
-PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO
-PA14\ (JTCK-SWCLK).GPIOParameters=GPIO_Label
-PA14\ (JTCK-SWCLK).GPIO_Label=TCK
-PA14\ (JTCK-SWCLK).Locked=true
-PA14\ (JTCK-SWCLK).Mode=Serial_Wire
-PA14\ (JTCK-SWCLK).Signal=SYS_JTCK-SWCLK
+PB13.GPIOParameters=GPIO_Label
+PC7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
 PA15\ (JTDI).GPIOParameters=PinState,GPIO_Label
-PA15\ (JTDI).GPIO_Label=CC1101_CS
-PA15\ (JTDI).Locked=true
-PA15\ (JTDI).PinState=GPIO_PIN_SET
+RCC.USART1Freq_Value=64000000
+TIM8.ICPolarity_CH2=TIM_INPUTCHANNELPOLARITY_BOTHEDGE
+SPI3.Direction=SPI_DIRECTION_2LINES
+PC10.GPIO_PuPd=GPIO_PULLDOWN
+SPI3.VirtualType=VM_MASTER
+SPI1.VirtualType=VM_MASTER
+VP_ADC1_TempSens_Input.Mode=IN-TempSens
+PC12.Locked=true
+SH.GPXTI9.0=GPIO_EXTI9
+PC12.Signal=SPI3_MOSI
+PB14.GPIO_Label=LED_GREEN
+PC7.Locked=true
+PA13\ (JTMS-SWDIO).Locked=true
+PC6.GPIO_Label=VIBRO
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+PC3.Locked=true
+RCC.RTCFreq_Value=32768
+PA3.GPIOParameters=GPIO_Label
+PB6.GPIO_Label=DISPLAY_BACKLIGHT
 PA15\ (JTDI).Signal=GPIO_Output
+PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator
+PC5.Mode=INP
+USART1.IPParameters=VirtualMode-Asynchronous
+PB13.Signal=TIM15_CH1N
+VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT
 PA2.GPIOParameters=GPIO_Label
-PA2.GPIO_Label=DISPLAY_DI
-PA2.Locked=true
-PA2.Signal=GPIO_Output
-PA3.GPIOParameters=GPIO_Label
-PA3.GPIO_Label=SPEAKER
-PA3.Locked=true
-PA3.Signal=S_TIM5_CH4
-PA4.Locked=true
-PA4.Signal=GPIO_Analog
-PA5.Locked=true
-PA5.Signal=GPIO_Analog
-PA6.Locked=true
-PA6.Signal=GPIO_Analog
-PA7.Locked=true
-PA7.Signal=GPIO_Analog
-PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
-PA8.GPIO_Label=LED_RED
-PA8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
-PA8.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
+PinOutPanel.RotationAngle=0
+RCC.MCO1PinFreq_Value=64000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+TIM15.Channel-Output\ Compare1\ CH1N=TIM_CHANNEL_1
+PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator
+SH.GPXTI13.0=GPIO_EXTI13
+PA14\ (JTCK-SWCLK).Signal=SYS_JTCK-SWCLK
+RCC.LPTIM1Freq_Value=64000000
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false
+NVIC.EXTI1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+PB4\ (NJTRST).GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_SYSCLK
+SPI1.Direction=SPI_DIRECTION_2LINES
+RCC.APB2TimFreq_Value=64000000
+PB6.Signal=GPIO_Output
+PC7.Signal=S_TIM8_CH2
+RTC.IPParameters=Year,Month,Date
+SPI1.CalculateBaudRate=4.0 MBits/s
+PC3.Signal=ADCx_IN4
+RCC.SAI2Freq_Value=13714285.714285715
+FREERTOS.configMINIMAL_STACK_SIZE=128
+PA1.GPIO_PuPd=GPIO_PULLDOWN
+RCC.PREFETCH_ENABLE=1
+PB13.Locked=true
+RCC.USART3Freq_Value=64000000
+NVIC.EXTI15_10_IRQn=true\:5\:0\:true\:false\:true\:false\:true\:true
+ProjectManager.ProjectBuild=false
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+PA0.Locked=true
+PB2.Signal=GPIO_Analog
 PA8.Locked=true
-PA8.PinState=GPIO_PIN_SET
-PA8.Signal=GPIO_Output
-PA9.Locked=true
-PA9.Mode=Asynchronous
-PA9.Signal=USART1_TX
+PA4.Locked=true
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+ProjectManager.FirmwarePackage=STM32Cube FW_L4 V1.16.0
+VP_ADC1_Vref_Input.Mode=IN-Vrefint
+MxDb.Version=DB.6.0.0
 PB0.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PB0.GPIO_Label=BUTTON_UP
-PB0.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PB0.GPIO_PuPd=GPIO_PULLDOWN
-PB0.Locked=true
-PB0.Signal=GPXTI0
-PB1.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
-PB1.GPIO_Label=LED_BLUE
-PB1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
+PA1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+ProjectManager.BackupPrevious=false
+VP_SYS_VS_tim17.Signal=SYS_VS_tim17
+PC4.GPIO_Label=NFC_CS
 PB1.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
-PB1.Locked=true
-PB1.PinState=GPIO_PIN_SET
+FREERTOS.HEAP_NUMBER=4
+PB1.GPIO_Label=LED_BLUE
+SPI1.DataSize=SPI_DATASIZE_8BIT
+PC7.GPIO_ModeDefaultPP=GPIO_MODE_AF_OD
+PA8.Signal=GPIO_Output
+PA8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
+RCC.PLLRCLKFreq_Value=64000000
+SH.ADCx_IN4.ConfNb=1
+PB6.Locked=true
+NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:false
+ProjectManager.HalAssertFull=false
+ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
+PA0.Signal=ADCx_IN5
+PC8.GPIOParameters=GPIO_Label
+Mcu.Package=LQFP64
+PB9.Signal=GPXTI9
 PB1.Signal=GPIO_Output
+PA5.Locked=true
+NVIC.TimeBase=TIM1_TRG_COM_TIM17_IRQn
+SPI3.Mode=SPI_MODE_MASTER
+SH.GPXTI8.0=GPIO_EXTI8
+SH.GPXTI8.ConfNb=1
+NVIC.TimeBaseIP=TIM17
+RCC.LSCOPinFreq_Value=32000
+PA10.Signal=USART1_RX
+PB9.GPIO_PuPd=GPIO_PULLDOWN
+VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
+FREERTOS.FootprintOK=true
+RCC.DFSDMFreq_Value=64000000
+PC11.Mode=Full_Duplex_Master
+PB14.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
+NVIC.EXTI2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+RCC.PLLPoutputFreq_Value=18285714.285714287
+RCC.APB1TimFreq_Value=64000000
+FREERTOS.configGENERATE_RUN_TIME_STATS=1
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+RCC.LPUART1Freq_Value=64000000
+USB_OTG_FS.IPParameters=VirtualMode
+PB13.Mode=Output Compare1 CH1N
 PB10.GPIOParameters=GPIO_Label
-PB10.GPIO_Label=DISPLAY_RST
-PB10.Locked=true
-PB10.Signal=GPIO_Output
-PB11.GPIOParameters=GPIO_Label
+PC12.GPIO_PuPd=GPIO_PULLDOWN
+PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO
+PA13\ (JTMS-SWDIO).GPIOParameters=GPIO_Label
+PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
+PA8.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
+ProjectManager.CustomerFirmwarePackage=../../../lib/STM32CubeL4
+PC4.GPIOParameters=PinState,GPIO_Label
+PC2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+NVIC.EXTI4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+RCC.PLLQoutputFreq_Value=64000000
+ProjectManager.ProjectFileName=cube.ioc
+FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;app_main,8,1024,app,As external,NULL,Dynamic,NULL,NULL
+ADC1.Rank-0\#ChannelRegularConversion=1
+TIM5.IPParameters=Prescaler,Period,Channel-PWM Generation4 CH4,Pulse-PWM Generation4 CH4
+Mcu.PinsNb=60
+PC4.PinState=GPIO_PIN_SET
+PC11.Locked=true
+VP_SYS_VS_tim17.Mode=TIM17
+ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,master,NbrOfConversion
+PC13.Locked=true
+ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
+PC13.Signal=GPXTI13
+RCC.SWPMI1Freq_Value=64000000
+FREERTOS.configCHECK_FOR_STACK_OVERFLOW=1
+PB8.GPIO_PuPd=GPIO_PULLDOWN
+PC6.Signal=GPIO_Output
+PC2.Signal=GPXTI2
 PB11.GPIO_Label=IR_TX
-PB11.Locked=true
-PB11.Signal=GPIO_Output
-PB12.Locked=true
-PB12.Signal=GPIO_Analog
-PB13.GPIOParameters=GPIO_Label
-PB13.GPIO_Label=RFID_OUT
-PB13.Locked=true
-PB13.Mode=Output Compare1 CH1N
-PB13.Signal=TIM15_CH1N
-PB14.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
-PB14.GPIO_Label=LED_GREEN
-PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
-PB14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
+PC9.PinState=GPIO_PIN_SET
+SH.GPXTI0.ConfNb=1
+SPI1.CLKPhase=SPI_PHASE_1EDGE
+PC0.Signal=GPIO_Analog
 PB14.Locked=true
-PB14.PinState=GPIO_PIN_SET
+PC11.GPIOParameters=GPIO_PuPd
+SH.S_TIM8_CH2.0=TIM8_CH2,Input_Capture2_from_TI2
+PC3.GPIOParameters=GPIO_Label
+PB8.GPIO_Label=BUTTON_RIGHT
+PA11.Locked=true
+PA8.GPIO_Label=LED_RED
+Mcu.Pin59=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS
+SH.GPXTI2.ConfNb=1
+Mcu.Pin57=VP_SYS_VS_tim17
+Mcu.Pin58=VP_TIM8_VS_ClockSourceINT
+PB14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
+Mcu.Pin51=VP_ADC1_TempSens_Input
+RTC.Year=20
+Mcu.Pin52=VP_ADC1_Vref_Input
+Mcu.Pin50=PB9
+Mcu.Pin55=VP_RTC_VS_RTC_Activate
+Mcu.Pin56=VP_RTC_VS_RTC_Calendar
+Mcu.Pin53=VP_COMP1_VS_VREFINT12
+Mcu.Pin54=VP_FREERTOS_VS_CMSIS_V2
+PC6.Locked=true
+PA9.Signal=USART1_TX
+PB11.GPIOParameters=GPIO_Label
+PB5.Locked=true
+PB9.Locked=true
+VP_TIM8_VS_ClockSourceINT.Mode=Internal
+PC7.GPIO_PuPd=GPIO_NOPULL
+Mcu.Pin48=PB7
+Mcu.Pin49=PB8
+RCC.PLLSAI1PoutputFreq_Value=13714285.714285715
+Mcu.Pin46=PB5
+Mcu.Pin47=PB6
+PB10.Signal=GPIO_Output
 PB14.Signal=GPIO_Output
-PB15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+RCC.PLLSAI2RoutputFreq_Value=32000000
+PA5.Signal=GPIO_Analog
+Mcu.Pin40=PC10
+Mcu.Pin41=PC11
+PC12.Mode=Full_Duplex_Master
+Mcu.Pin44=PB3 (JTDO-TRACESWO)
+Mcu.Pin45=PB4 (NJTRST)
+Mcu.Pin42=PC12
+Mcu.Pin43=PD2
+ProjectManager.LastFirmware=true
+Mcu.Pin37=PA13 (JTMS-SWDIO)
+Mcu.Pin38=PA14 (JTCK-SWCLK)
 PB15.GPIO_Label=RFID_PULL
-PB15.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
-PB15.GPIO_PuPd=GPIO_PULLDOWN
-PB15.Locked=true
-PB15.Signal=GPXTI15
-PB2.Locked=true
-PB2.Signal=GPIO_Analog
-PB3\ (JTDO-TRACESWO).Locked=true
+Mcu.Pin35=PA11
+RCC.I2C1Freq_Value=64000000
+Mcu.Pin36=PA12
+SPI1.Mode=SPI_MODE_MASTER
+Mcu.Pin39=PA15 (JTDI)
 PB3\ (JTDO-TRACESWO).Mode=TX_Only_Simplex_Unidirect_Master
-PB3\ (JTDO-TRACESWO).Signal=SPI1_SCK
-PB4\ (NJTRST).GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PB4\ (NJTRST).GPIO_Label=BUTTON_LEFT
-PB4\ (NJTRST).GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PB4\ (NJTRST).GPIO_PuPd=GPIO_PULLDOWN
-PB4\ (NJTRST).Locked=true
-PB4\ (NJTRST).Signal=GPXTI4
-PB5.Locked=true
-PB5.Mode=TX_Only_Simplex_Unidirect_Master
+RCC.RNGFreq_Value=48000000
+RCC.LCDFreq_Value=32768
+PC2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+VP_ADC1_TempSens_Input.Signal=ADC1_TempSens_Input
+Mcu.Pin30=PC8
+PA1.GPIO_Label=BUTTON_DOWN
+Mcu.Pin33=PA9
+Mcu.Pin34=PA10
+Mcu.Pin31=PC9
+SH.ADCx_IN4.0=ADC1_IN4,IN4-Single-Ended
+Mcu.Pin32=PA8
+PA9.Locked=true
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+PC10.GPIOParameters=GPIO_PuPd
+SH.S_TIM5_CH4.ConfNb=1
+ProjectManager.FreePins=false
+PC9.GPIOParameters=PinState,GPIO_Label
+RCC.LPTIM2Freq_Value=64000000
+Mcu.Pin26=PB14
+Mcu.Pin27=PB15
+Mcu.Pin24=PB12
+ProjectManager.UnderRoot=false
+Mcu.Pin25=PB13
+TIM8.Period=32768-1
+Mcu.Pin28=PC6
+PC7.GPIO_Label=iButton
+Mcu.Pin29=PC7
+PA13\ (JTMS-SWDIO).Mode=Serial_Wire
+PA4.Signal=GPIO_Analog
+Mcu.Pin22=PB10
 PB5.Signal=SPI1_MOSI
-PB6.GPIOParameters=GPIO_Speed,GPIO_Label
-PB6.GPIO_Label=DISPLAY_BACKLIGHT
+Mcu.Pin23=PB11
+Mcu.Pin20=PB1
+ADC1.master=1
+PA3.Locked=true
+Mcu.Pin21=PB2
+PA10.Locked=true
+PA14\ (JTCK-SWCLK).Locked=true
+NVIC.ForceEnableDMAVector=true
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+ProjectManager.CompilerOptimize=6
+PA11.Signal=USB_OTG_FS_DM
+ProjectManager.HeapSize=0x200
+PA0.GPIOParameters=GPIO_Label
+Mcu.Pin15=PA6
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+Mcu.Pin16=PA7
+Mcu.Pin13=PA4
+Mcu.Pin14=PA5
+Mcu.Pin19=PB0
+SH.GPXTI15.ConfNb=1
+ProjectManager.ComputerToolchain=false
+Mcu.Pin17=PC4
+Mcu.Pin18=PC5
+SH.ADCx_IN5.0=ADC1_IN5,IN5-Single-Ended
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+Mcu.Pin11=PA2
+Mcu.Pin12=PA3
+Mcu.Pin10=PA1
+PC3.GPIO_Label=BATT_V
+RCC.PWRFreq_Value=64000000
+PA15\ (JTDI).PinState=GPIO_PIN_SET
+SH.ADCx_IN5.ConfNb=1
+PB4\ (NJTRST).GPIO_Label=BUTTON_LEFT
+PB1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
+SH.GPXTI1.ConfNb=1
+PD2.Signal=GPIO_Analog
 PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PB6.Locked=true
-PB6.Signal=GPIO_Output
-PB7.GPIOParameters=GPIO_Label
-PB7.GPIO_Label=CC1101_G0
-PB7.Locked=true
-PB7.Signal=GPIO_Input
-PB8.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PB8.GPIO_Label=BUTTON_RIGHT
-PB8.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PB8.GPIO_PuPd=GPIO_PULLDOWN
-PB8.Locked=true
-PB8.Signal=GPXTI8
-PB9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PB9.GPIO_Label=BUTTON_OK
-PB9.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PB9.GPIO_PuPd=GPIO_PULLDOWN
-PB9.Locked=true
-PB9.Signal=GPXTI9
+RCC.I2C2Freq_Value=64000000
+PB0.Signal=GPXTI0
+PB4\ (NJTRST).GPIO_PuPd=GPIO_PULLDOWN
+RTC.Date=20
 PC0.Locked=true
-PC0.Signal=GPIO_Analog
-PC1.Locked=true
 PC1.Signal=GPIO_Analog
-PC10.GPIOParameters=GPIO_PuPd
-PC10.GPIO_PuPd=GPIO_PULLDOWN
+Mcu.Family=STM32L4
+SH.GPXTI1.0=GPIO_EXTI1
+ProjectManager.MainLocation=Src
+USB_DEVICE.CLASS_NAME_FS=CDC
+RCC.SAI1Freq_Value=13714285.714285715
+RCC.CortexFreq_Value=64000000
+ProjectManager.KeepUserCode=true
+Mcu.UserName=STM32L476RGTx
+PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
+PH0-OSC_IN\ (PH0).Locked=true
 PC10.Locked=true
-PC10.Mode=Full_Duplex_Master
 PC10.Signal=SPI3_SCK
-PC11.GPIOParameters=GPIO_PuPd
-PC11.GPIO_PuPd=GPIO_PULLDOWN
-PC11.Locked=true
-PC11.Mode=Full_Duplex_Master
-PC11.Signal=SPI3_MISO
-PC12.GPIOParameters=GPIO_PuPd
-PC12.GPIO_PuPd=GPIO_PULLDOWN
-PC12.Locked=true
-PC12.Mode=Full_Duplex_Master
-PC12.Signal=SPI3_MOSI
-PC13.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PC13.GPIO_Label=BUTTON_BACK
-PC13.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PC13.GPIO_PuPd=GPIO_PULLDOWN
-PC13.Locked=true
-PC13.Signal=GPXTI13
-PC14-OSC32_IN\ (PC14).Locked=true
-PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator
-PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN
-PC15-OSC32_OUT\ (PC15).Locked=true
-PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator
-PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT
-PC2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
-PC2.GPIO_Label=CHRG
-PC2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
-PC2.GPIO_PuPd=GPIO_PULLUP
-PC2.Locked=true
-PC2.Signal=GPXTI2
-PC3.GPIOParameters=GPIO_Label
-PC3.GPIO_Label=BATT_V
-PC3.Locked=true
-PC3.Signal=ADCx_IN4
-PC4.GPIOParameters=PinState,GPIO_Label
-PC4.GPIO_Label=NFC_CS
-PC4.Locked=true
-PC4.PinState=GPIO_PIN_SET
-PC4.Signal=GPIO_Output
-PC5.GPIOParameters=GPIO_Label
-PC5.GPIO_Label=RFID_RF_IN
-PC5.Mode=INP
-PC5.Signal=COMP1_INP
-PC6.GPIOParameters=GPIO_Label
-PC6.GPIO_Label=VIBRO
-PC6.Locked=true
-PC6.Signal=GPIO_Output
-PC7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
-PC7.GPIO_Label=iButton
-PC7.GPIO_ModeDefaultPP=GPIO_MODE_AF_OD
-PC7.GPIO_PuPd=GPIO_NOPULL
-PC7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
-PC7.Locked=true
-PC7.Signal=S_TIM8_CH2
-PC8.GPIOParameters=GPIO_Label
-PC8.GPIO_Label=DISPLAY_CS
-PC8.Locked=true
-PC8.Signal=GPIO_Output
-PC9.GPIOParameters=PinState,GPIO_Label
-PC9.GPIO_Label=SD_CS
+RCC.PLLSAI1RoutputFreq_Value=48000000
+PA0.GPIO_Label=IR_RX
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_SPI3_Init-SPI3-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_COMP1_Init-COMP1-false-HAL-true,7-MX_TIM5_Init-TIM5-false-HAL-true,8-MX_TIM15_Init-TIM15-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true,12-MX_RTC_Init-RTC-false-HAL-true
+PA11.Mode=Device_Only
 PC9.Locked=true
-PC9.PinState=GPIO_PIN_SET
-PC9.Signal=GPIO_Output
+TIM5.Pulse-PWM\ Generation4\ CH4=145
+PB0.GPIO_Label=BUTTON_UP
+RCC.USART2Freq_Value=64000000
 PD2.Locked=true
-PD2.Signal=GPIO_Analog
-PH0-OSC_IN\ (PH0).Locked=true
-PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
-PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
-PH1-OSC_OUT\ (PH1).Locked=true
-PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
-PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
-PinOutPanel.RotationAngle=0
-ProjectManager.AskForMigrate=true
-ProjectManager.BackupPrevious=false
-ProjectManager.CompilerOptimize=6
-ProjectManager.ComputerToolchain=false
-ProjectManager.CoupleFile=true
-ProjectManager.CustomerFirmwarePackage=../../../lib/STM32CubeL4
-ProjectManager.DefaultFWLocation=false
-ProjectManager.DeletePrevious=true
-ProjectManager.DeviceId=STM32L476RGTx
-ProjectManager.FirmwarePackage=STM32Cube FW_L4 V1.16.0
-ProjectManager.FreePins=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_SPI3_Init-SPI3-false-HAL-true,5-MX_ADC1_Init-ADC1-false-HAL-true,6-MX_COMP1_Init-COMP1-false-HAL-true,7-MX_TIM5_Init-TIM5-false-HAL-true,8-MX_TIM15_Init-TIM15-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,11-MX_TIM8_Init-TIM8-false-HAL-true
-ProjectManager.HalAssertFull=false
-ProjectManager.HeapSize=0x200
-ProjectManager.KeepUserCode=true
-ProjectManager.LastFirmware=true
-ProjectManager.LibraryCopy=2
-ProjectManager.MainLocation=Src
-ProjectManager.NoMain=false
+VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar
+VP_COMP1_VS_VREFINT12.Signal=COMP1_VS_VREFINT12
+PC13.GPIO_Label=BUTTON_BACK
+PC1.Locked=true
+PB13.GPIO_Label=RFID_OUT
+PB11.Signal=GPIO_Output
+PB15.Signal=GPXTI15
+ProjectManager.StackSize=0x400
+PB3\ (JTDO-TRACESWO).Signal=SPI1_SCK
+VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
+SH.GPXTI2.0=GPIO_EXTI2
+RCC.I2C3Freq_Value=64000000
+Mcu.IP4=RCC
+RCC.FCLKCortexFreq_Value=64000000
+Mcu.IP5=RTC
+Mcu.IP2=FREERTOS
+Mcu.IP3=NVIC
+PC11.GPIO_PuPd=GPIO_PULLDOWN
+Mcu.IP0=ADC1
+Mcu.IP1=COMP1
+PA12.Locked=true
+PA12.Signal=USB_OTG_FS_DP
+PB8.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+SPI1.CLKPolarity=SPI_POLARITY_LOW
+Mcu.UserConstants=
+RCC.VCOSAI1OutputFreq_Value=96000000
+SPI3.CLKPolarity=SPI_POLARITY_LOW
+RCC.SDMMCFreq_Value=48000000
+PA14\ (JTCK-SWCLK).GPIOParameters=GPIO_Label
+SH.GPXTI13.ConfNb=1
+Mcu.ThirdPartyNb=0
+RCC.HCLKFreq_Value=64000000
+Mcu.IPNb=15
 ProjectManager.PreviousToolchain=
-ProjectManager.ProjectBuild=false
-ProjectManager.ProjectFileName=cube.ioc
+PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
+Mcu.Pin6=PC1
+PB9.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+Mcu.Pin7=PC2
+Mcu.Pin8=PC3
+Mcu.Pin9=PA0
+FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,HEAP_NUMBER,configUSE_TIMERS,configUSE_IDLE_HOOK,FootprintOK,configCHECK_FOR_STACK_OVERFLOW,configRECORD_STACK_HIGH_ADDRESS,configGENERATE_RUN_TIME_STATS,configMINIMAL_STACK_SIZE
+RCC.AHBFreq_Value=64000000
+Mcu.Pin0=PC13
+SPI3.DataSize=SPI_DATASIZE_8BIT
+Mcu.Pin1=PC14-OSC32_IN (PC14)
+TIM8.IPParameters=Channel-Input_Capture2_from_TI2,ICPolarity_CH2,Prescaler,Period
+GPIO.groupedBy=Group By Peripherals
+Mcu.Pin2=PC15-OSC32_OUT (PC15)
+Mcu.Pin3=PH0-OSC_IN (PH0)
+Mcu.Pin4=PH1-OSC_OUT (PH1)
+Mcu.Pin5=PC0
+ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_4
+PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
+RCC.HSE_VALUE=16000000
+FREERTOS.configUSE_TIMERS=1
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+Mcu.IP10=TIM8
+NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:true\:false
+Mcu.IP12=USART1
+Mcu.IP11=TIM15
+PB0.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+NVIC.TIM1_TRG_COM_TIM17_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
+RTC.Month=RTC_MONTH_NOVEMBER
+Mcu.IP14=USB_OTG_FS
+Mcu.IP13=USB_DEVICE
+RCC.VCOInputFreq_Value=8000000
+TIM5.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
+PB5.Mode=TX_Only_Simplex_Unidirect_Master
+File.Version=6
+PC13.GPIO_PuPd=GPIO_PULLDOWN
+PB7.Signal=GPIO_Input
+PB8.Locked=true
+PB6.GPIOParameters=GPIO_Speed,GPIO_Label
+PB0.Locked=true
+FREERTOS.configTOTAL_HEAP_SIZE=40960
+VP_COMP1_VS_VREFINT12.Mode=VREFINT_12
 ProjectManager.ProjectName=cube
-ProjectManager.RegisterCallBack=
-ProjectManager.StackSize=0x400
-ProjectManager.TargetToolchain=Makefile
+PB1.PinState=GPIO_PIN_SET
+PB7.GPIO_Label=CC1101_G0
+PB4\ (NJTRST).Locked=true
+PA6.Signal=GPIO_Analog
+PA7.Locked=true
+PB15.GPIO_PuPd=GPIO_PULLDOWN
+NVIC.OTG_FS_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true
 ProjectManager.ToolChainLocation=
-ProjectManager.UnderRoot=false
-RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_SYSCLK
-RCC.ADCFreq_Value=64000000
-RCC.AHBFreq_Value=64000000
-RCC.APB1Freq_Value=64000000
-RCC.APB1TimFreq_Value=64000000
-RCC.APB2Freq_Value=64000000
-RCC.APB2TimFreq_Value=64000000
-RCC.CortexFreq_Value=64000000
-RCC.DFSDMFreq_Value=64000000
-RCC.FamilyName=M
-RCC.FCLKCortexFreq_Value=64000000
-RCC.HCLKFreq_Value=64000000
-RCC.HSE_VALUE=16000000
-RCC.HSI_VALUE=16000000
-RCC.I2C1Freq_Value=64000000
-RCC.I2C2Freq_Value=64000000
-RCC.I2C3Freq_Value=64000000
-RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2RoutputFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value
-RCC.LPTIM1Freq_Value=64000000
-RCC.LPTIM2Freq_Value=64000000
-RCC.LPUART1Freq_Value=64000000
-RCC.LSCOPinFreq_Value=32000
+PA2.GPIO_Label=DISPLAY_DI
 RCC.LSI_VALUE=32000
-RCC.MCO1PinFreq_Value=64000000
-RCC.MSI_VALUE=4000000
-RCC.PLLM=2
-RCC.PLLN=16
-RCC.PLLPoutputFreq_Value=18285714.285714287
-RCC.PLLQoutputFreq_Value=64000000
-RCC.PLLRCLKFreq_Value=64000000
+SH.GPXTI0.0=GPIO_EXTI0
+USB_OTG_FS.VirtualMode=Device_Only
+VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
+PC14-OSC32_IN\ (PC14).Locked=true
+TIM8.Prescaler=64-1
+PC4.Locked=true
+SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
+PC5.Signal=COMP1_INP
+SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
+PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+PC2.GPIO_Label=CHRG
+PA8.PinState=GPIO_PIN_SET
+PB15.Locked=true
+PB3\ (JTDO-TRACESWO).Locked=true
 RCC.PLLSAI1N=12
-RCC.PLLSAI1PoutputFreq_Value=13714285.714285715
-RCC.PLLSAI1QoutputFreq_Value=48000000
-RCC.PLLSAI1RoutputFreq_Value=48000000
-RCC.PLLSAI2PoutputFreq_Value=9142857.142857144
-RCC.PLLSAI2RoutputFreq_Value=32000000
+PA3.Signal=S_TIM5_CH4
+PA2.Locked=true
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+RCC.MSI_VALUE=4000000
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
-RCC.PREFETCH_ENABLE=1
-RCC.PWRFreq_Value=64000000
-RCC.RNGFreq_Value=48000000
-RCC.SAI1Freq_Value=13714285.714285715
-RCC.SAI2Freq_Value=13714285.714285715
-RCC.SDMMCFreq_Value=48000000
-RCC.SWPMI1Freq_Value=64000000
-RCC.SYSCLKFreq_VALUE=64000000
-RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
-RCC.UART4Freq_Value=64000000
-RCC.UART5Freq_Value=64000000
-RCC.USART1Freq_Value=64000000
-RCC.USART2Freq_Value=64000000
-RCC.USART3Freq_Value=64000000
+PA14\ (JTCK-SWCLK).Mode=Serial_Wire
+PB8.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+PB9.GPIO_Label=BUTTON_OK
+PA10.Mode=Asynchronous
+PC9.GPIO_Label=SD_CS
+ProjectManager.NoMain=false
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
+USB_DEVICE.VirtualModeFS=Cdc_FS
+NVIC.SavedSvcallIrqHandlerGenerated=true
+PC11.Signal=SPI3_MISO
+PC8.Signal=GPIO_Output
+PC4.Signal=GPIO_Output
+PC10.Mode=Full_Duplex_Master
+ProjectManager.DefaultFWLocation=false
+PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT
+PB12.Locked=true
+PA14\ (JTCK-SWCLK).GPIO_Label=TCK
+ProjectManager.DeletePrevious=true
+PB10.Locked=true
+RCC.VCOSAI2OutputFreq_Value=64000000
+boardIOC=true
+USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS
+RCC.FamilyName=M
+PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
+PB9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+PC8.GPIO_Label=DISPLAY_CS
+PC12.GPIOParameters=GPIO_PuPd
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+FREERTOS.configUSE_IDLE_HOOK=1
+PA9.Mode=Asynchronous
+PB4\ (NJTRST).GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+NVIC.TIM8_CC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+PB14.PinState=GPIO_PIN_SET
+FREERTOS.configRECORD_STACK_HIGH_ADDRESS=1
+ProjectManager.TargetToolchain=Makefile
+PB10.GPIO_Label=DISPLAY_RST
+PB7.GPIOParameters=GPIO_Label
+VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
+PC5.GPIOParameters=GPIO_Label
+PC2.Locked=true
+ProjectManager.RegisterCallBack=
+PC15-OSC32_OUT\ (PC15).Locked=true
 RCC.USBFreq_Value=48000000
-RCC.VCOInputFreq_Value=8000000
+TIM15.IPParameters=Channel-Output Compare1 CH1N
+PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
+PA1.Signal=GPXTI1
+PB1.Locked=true
+PB15.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
+PH1-OSC_OUT\ (PH1).Locked=true
+board=NUCLEO-L476RG
+SPI3.CLKPhase=SPI_PHASE_2EDGE
+PC7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
 RCC.VCOOutputFreq_Value=128000000
-RCC.VCOSAI1OutputFreq_Value=96000000
-RCC.VCOSAI2OutputFreq_Value=64000000
-SH.ADCx_IN4.0=ADC1_IN4,IN4-Single-Ended
-SH.ADCx_IN4.ConfNb=1
-SH.ADCx_IN5.0=ADC1_IN5,IN5-Single-Ended
-SH.ADCx_IN5.ConfNb=1
-SH.GPXTI0.0=GPIO_EXTI0
-SH.GPXTI0.ConfNb=1
-SH.GPXTI1.0=GPIO_EXTI1
-SH.GPXTI1.ConfNb=1
-SH.GPXTI13.0=GPIO_EXTI13
-SH.GPXTI13.ConfNb=1
-SH.GPXTI15.0=GPIO_EXTI15
-SH.GPXTI15.ConfNb=1
-SH.GPXTI2.0=GPIO_EXTI2
-SH.GPXTI2.ConfNb=1
-SH.GPXTI4.0=GPIO_EXTI4
-SH.GPXTI4.ConfNb=1
-SH.GPXTI8.0=GPIO_EXTI8
-SH.GPXTI8.ConfNb=1
-SH.GPXTI9.0=GPIO_EXTI9
-SH.GPXTI9.ConfNb=1
-SH.S_TIM5_CH4.0=TIM5_CH4,PWM Generation4 CH4
-SH.S_TIM5_CH4.ConfNb=1
-SH.S_TIM8_CH2.0=TIM8_CH2,Input_Capture2_from_TI2
-SH.S_TIM8_CH2.ConfNb=1
-SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
-SPI1.CalculateBaudRate=4.0 MBits/s
-SPI1.CLKPhase=SPI_PHASE_1EDGE
-SPI1.CLKPolarity=SPI_POLARITY_LOW
-SPI1.DataSize=SPI_DATASIZE_8BIT
-SPI1.Direction=SPI_DIRECTION_2LINES
-SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
-SPI1.Mode=SPI_MODE_MASTER
-SPI1.VirtualType=VM_MASTER
-SPI3.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
+NVIC.SavedSystickIrqHandlerGenerated=true
+RCC.APB2Freq_Value=64000000
+RCC.UART4Freq_Value=64000000
 SPI3.CalculateBaudRate=1000.0 KBits/s
-SPI3.CLKPhase=SPI_PHASE_2EDGE
-SPI3.CLKPolarity=SPI_POLARITY_LOW
-SPI3.DataSize=SPI_DATASIZE_8BIT
-SPI3.Direction=SPI_DIRECTION_2LINES
-SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity,CLKPhase
-SPI3.Mode=SPI_MODE_MASTER
-SPI3.VirtualType=VM_MASTER
-TIM15.Channel-Output\ Compare1\ CH1N=TIM_CHANNEL_1
-TIM15.IPParameters=Channel-Output Compare1 CH1N
-TIM5.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
-TIM5.IPParameters=Prescaler,Period,Channel-PWM Generation4 CH4,Pulse-PWM Generation4 CH4
-TIM5.Period=291
+MxCube.Version=6.0.1
+PA13\ (JTMS-SWDIO).GPIO_Label=TMS
+PC13.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+RCC.PLLSAI1QoutputFreq_Value=48000000
+RCC.ADCFreq_Value=64000000
+SPI3.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
+VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input
+SH.S_TIM5_CH4.0=TIM5_CH4,PWM Generation4 CH4
+PC2.GPIO_PuPd=GPIO_PULLUP
+RCC.UART5Freq_Value=64000000
+PB15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
+ADC1.NbrOfConversion=1
+PA15\ (JTDI).GPIO_Label=CC1101_CS
+RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,DFSDMFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSAI2PoutputFreq_Value,PLLSAI2RoutputFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value,VCOSAI2OutputFreq_Value
+ProjectManager.AskForMigrate=true
+Mcu.Name=STM32L476R(C-E-G)Tx
+NVIC.SavedPendsvIrqHandlerGenerated=true
+PA2.Signal=GPIO_Output
+PB2.Locked=true
+Mcu.IP8=SYS
+VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
+Mcu.IP9=TIM5
+Mcu.IP6=SPI1
+Mcu.IP7=SPI3
+ProjectManager.CoupleFile=true
+NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+RCC.SYSCLKFreq_VALUE=64000000
+PA1.Locked=true
+PA12.Mode=Device_Only
+SH.GPXTI4.0=GPIO_EXTI4
+RCC.PLLSAI2PoutputFreq_Value=9142857.142857144
+KeepUserPlacement=false
 TIM5.Prescaler=500 - 1
-TIM5.Pulse-PWM\ Generation4\ CH4=145
+PC13.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
+PC5.GPIO_Label=RFID_RF_IN
+PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN
+SH.GPXTI9.ConfNb=1
+NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
+SH.GPXTI4.ConfNb=1
+PC6.GPIOParameters=GPIO_Label
+RCC.HSI_VALUE=16000000
+ADC1.NbrOfConversionFlag=1
+SH.GPXTI15.0=GPIO_EXTI15
+RCC.PLLM=2
+RCC.PLLN=16
 TIM8.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
-TIM8.ICPolarity_CH2=TIM_INPUTCHANNELPOLARITY_BOTHEDGE
-TIM8.IPParameters=Channel-Input_Capture2_from_TI2,ICPolarity_CH2,Prescaler,Period
-TIM8.Period=32768-1
-TIM8.Prescaler=64-1
-USART1.IPParameters=VirtualMode-Asynchronous
-USART1.VirtualMode-Asynchronous=VM_ASYNC
-USB_DEVICE.CLASS_NAME_FS=CDC
-USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS
+PB7.Locked=true
+PB8.Signal=GPXTI8
+PC8.Locked=true
+TIM5.Period=291
+PC9.Signal=GPIO_Output
+PA15\ (JTDI).Locked=true
+RCC.APB1Freq_Value=64000000
 USB_DEVICE.VirtualMode=Cdc
-USB_DEVICE.VirtualModeFS=Cdc_FS
-USB_OTG_FS.IPParameters=VirtualMode
-USB_OTG_FS.VirtualMode=Device_Only
-VP_ADC1_TempSens_Input.Mode=IN-TempSens
-VP_ADC1_TempSens_Input.Signal=ADC1_TempSens_Input
-VP_ADC1_Vref_Input.Mode=IN-Vrefint
-VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input
-VP_COMP1_VS_VREFINT12.Mode=VREFINT_12
-VP_COMP1_VS_VREFINT12.Signal=COMP1_VS_VREFINT12
-VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
-VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
-VP_SYS_VS_tim17.Mode=TIM17
-VP_SYS_VS_tim17.Signal=SYS_VS_tim17
-VP_TIM8_VS_ClockSourceINT.Mode=Internal
-VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT
-VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS
-VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS
+PB11.Locked=true
+ProjectManager.DeviceId=STM32L476RGTx
+SH.S_TIM8_CH2.ConfNb=1
+PB12.Signal=GPIO_Analog
+ProjectManager.LibraryCopy=2
+PB0.GPIO_PuPd=GPIO_PULLDOWN
+PA3.GPIO_Label=SPEAKER
+PB1.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
+PA7.Signal=GPIO_Analog
+PB4\ (NJTRST).Signal=GPXTI4
+PA6.Locked=true

+ 1 - 0
firmware/targets/f2/target.mk

@@ -39,6 +39,7 @@ C_SOURCES		+= \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c \
+	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rtc.c \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c \
 	$(CUBE_DIR)/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c \