[FL-667] Power saving: deep sleep in tickless state (#300)
* SYSTEM: tickless mode with deep sleep. * Move FreeRTOS ticks to lptim2. * API: move all sumbodules init routines to one place. * Timebase: working lptim2 at tick source. * API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. * FreeRTOS: adjust configuration for tickless mode. * NFC: support for tickless mode. * API Timebase: improve tick error handling in IRQ. * Apploader: use insomnia mode to run applications. * BLE: prevent sleep while core2 starting. * HAL: nap while in insomnia mode. Co-authored-by: coreglitch <mail@s3f.ru>
This commit is contained in:
@@ -30,7 +30,7 @@ PinOutPanel.RotationAngle=0
|
||||
RCC.MCO1PinFreq_Value=64000000
|
||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
||||
SH.GPXTI13.0=GPIO_EXTI13
|
||||
RCC.LPTIM1Freq_Value=64000000
|
||||
RCC.LPTIM1Freq_Value=32768
|
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:false\:false
|
||||
FREERTOS.configENABLE_FPU=1
|
||||
NVIC.EXTI1_IRQn=true\:5\:0\:true\:false\:true\:false\:true\:true
|
||||
@@ -69,7 +69,6 @@ MxDb.Version=DB.6.0.10
|
||||
PB0.GPIOParameters=GPIO_Label
|
||||
PA1.GPIOParameters=GPIO_Speed,PinState,GPIO_Label,GPIO_ModeDefaultOutputPP
|
||||
ProjectManager.BackupPrevious=false
|
||||
VP_SYS_VS_tim17.Signal=SYS_VS_tim17
|
||||
PC4.GPIO_Label=CC1101_G0
|
||||
FREERTOS.HEAP_NUMBER=4
|
||||
RCC.LSE_Drive_Capability=RCC_LSEDRIVE_MEDIUMLOW
|
||||
@@ -95,15 +94,14 @@ Mcu.Package=VFQFPN68
|
||||
TIM2.Prescaler=64-1
|
||||
PB1.Signal=GPXTI1
|
||||
PA5.Locked=true
|
||||
NVIC.TimeBase=TIM1_TRG_COM_TIM17_IRQn
|
||||
SPI2.Mode=SPI_MODE_MASTER
|
||||
PA2.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
||||
SH.GPXTI11.0=GPIO_EXTI11
|
||||
SH.GPXTI8.0=GPIO_EXTI8
|
||||
VP_PKA_VS_PKA.Mode=PKA_Activate
|
||||
PA14.Locked=true
|
||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||
SH.GPXTI8.ConfNb=1
|
||||
NVIC.TimeBaseIP=TIM17
|
||||
RCC.LSCOPinFreq_Value=32000
|
||||
PA10.Signal=I2C1_SDA
|
||||
VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
|
||||
@@ -138,12 +136,11 @@ RCC.PLLQoutputFreq_Value=64000000
|
||||
ProjectManager.ProjectFileName=f4.ioc
|
||||
RCC.SMPSFreq_Value=4000000
|
||||
PA3.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
|
||||
FREERTOS.Tasks01=defaultTask,24,1024,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;app_main,8,1024,app,As external,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.Tasks01=app_main,24,1024,app,As weak,NULL,Dynamic,NULL,NULL
|
||||
ADC1.Rank-0\#ChannelRegularConversion=1
|
||||
PA15.GPIOParameters=GPIO_PuPd,GPIO_Label
|
||||
Mcu.PinsNb=69
|
||||
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,EnableAnalogWatchDog1,ContinuousConvMode
|
||||
PC13.Locked=true
|
||||
ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
|
||||
@@ -170,7 +167,7 @@ Mcu.Pin60=VP_PKA_VS_PKA
|
||||
Mcu.Pin61=VP_RNG_VS_RNG
|
||||
Mcu.Pin66=VP_TIM2_VS_ClockSourceINT
|
||||
Mcu.Pin67=VP_TIM16_VS_ClockSourceINT
|
||||
Mcu.Pin64=VP_SYS_VS_tim17
|
||||
Mcu.Pin64=VP_SYS_VS_Systick
|
||||
Mcu.Pin65=VP_TIM1_VS_ClockSourceINT
|
||||
PD0.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PC3.GPIOParameters=GPIO_Label
|
||||
@@ -332,6 +329,7 @@ PD0.GPIO_Label=CC1101_CS
|
||||
PC0.GPIO_Label=PC0
|
||||
PA11.Mode=Device
|
||||
PB0.GPIO_Label=DISPLAY_RST
|
||||
FREERTOS.configTICK_RATE_HZ=1000
|
||||
VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar
|
||||
PB11.GPIO_PuPd=GPIO_PULLUP
|
||||
PC13.GPIO_Label=BUTTON_BACK
|
||||
@@ -374,7 +372,7 @@ Mcu.Pin7=PC1
|
||||
Mcu.Pin8=PC2
|
||||
Mcu.Pin9=PC3
|
||||
OSC_OUT.Mode=HSE-External-Oscillator
|
||||
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,configENABLE_FPU
|
||||
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,configENABLE_FPU,configUSE_TICKLESS_IDLE,configENABLE_BACKWARD_COMPATIBILITY,INCLUDE_vTaskCleanUpResources,configTICK_RATE_HZ
|
||||
OSC_OUT.Signal=RCC_OSC_OUT
|
||||
RCC.AHBFreq_Value=64000000
|
||||
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
|
||||
@@ -392,9 +390,10 @@ FREERTOS.configUSE_TIMERS=1
|
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
PH3-BOOT0.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
Mcu.IP10=RCC
|
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true
|
||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:false\:false
|
||||
Mcu.IP12=RNG
|
||||
Mcu.IP11=RF
|
||||
FREERTOS.configENABLE_BACKWARD_COMPATIBILITY=0
|
||||
Mcu.IP18=TIM2
|
||||
Mcu.IP17=TIM1
|
||||
NVIC.TIM1_TRG_COM_TIM17_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
|
||||
@@ -422,6 +421,7 @@ PB7.Signal=USART1_RX
|
||||
Mcu.IP21=USB
|
||||
PB8.Locked=true
|
||||
Mcu.IP20=USART1
|
||||
FREERTOS.INCLUDE_vTaskCleanUpResources=1
|
||||
Mcu.IP22=USB_DEVICE
|
||||
PE4.Signal=GPIO_Output
|
||||
PB0.Locked=true
|
||||
@@ -474,6 +474,7 @@ USB_DEVICE.VirtualModeFS=Cdc_FS
|
||||
PC4.GPIO_PuPd=GPIO_PULLDOWN
|
||||
NVIC.SavedSvcallIrqHandlerGenerated=false
|
||||
PC11.Signal=GPIO_Output
|
||||
FREERTOS.configUSE_TICKLESS_IDLE=2
|
||||
PC4.Signal=GPXTI4
|
||||
ProjectManager.DefaultFWLocation=true
|
||||
PC2.Mode=Full_Duplex_Master
|
||||
@@ -504,6 +505,7 @@ RCC.HCLKRFFreq_Value=16000000
|
||||
PC5.GPIOParameters=GPIO_Label
|
||||
PB9.Mode=PWM Generation3 CH3N
|
||||
PB2.GPIOParameters=GPIO_Label
|
||||
RCC.LPTIM1CLockSelection=RCC_LPTIM1CLKSOURCE_LSE
|
||||
SH.GPXTI12.ConfNb=1
|
||||
PE4.Locked=true
|
||||
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPhase
|
||||
@@ -535,13 +537,14 @@ RCC.PLLSAI1QoutputFreq_Value=48000000
|
||||
RCC.ADCFreq_Value=48000000
|
||||
PC1.GPIO_Label=PC1
|
||||
PA10.GPIOParameters=GPIO_Speed,GPIO_Label
|
||||
VP_SYS_VS_Systick.Mode=SysTick
|
||||
VP_ADC1_Vref_Input.Signal=ADC1_Vref_Input
|
||||
SH.SharedAnalog_PC5.1=ADC1_IN14,IN14-Single-Ended
|
||||
OSC_OUT.Locked=true
|
||||
PA4.GPIOParameters=GPIO_Label
|
||||
PH3-BOOT0.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
||||
PB15.GPIOParameters=GPIO_Label
|
||||
RCC.IPParameters=ADCFreq_Value,AHB2CLKDivider,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,EnableCSSLSE,EnbaleCSS,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_Drive_Capability,LSE_Timout,LSI_VALUE,MCO1PinFreq_Value,MSIOscState,PLLM,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGCLockSelection,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSDivider,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
|
||||
RCC.IPParameters=ADCFreq_Value,AHB2CLKDivider,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,EnableCSSLSE,EnbaleCSS,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1CLockSelection,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_Drive_Capability,LSE_Timout,LSI_VALUE,MCO1PinFreq_Value,MSIOscState,PLLM,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1N,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSourceVirtual,PREFETCH_ENABLE,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGCLockSelection,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSDivider,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
|
||||
ProjectManager.AskForMigrate=true
|
||||
Mcu.Name=STM32WB55RGVx
|
||||
NVIC.SavedPendsvIrqHandlerGenerated=false
|
||||
|
Reference in New Issue
Block a user