view Documentations/OSTC4_CPU2_F411.ioc @ 319:d8e86af78474 fix-version

bugfix: correct packed main version number in dive header This fixes a rather mysterious bug. Users report that up to 1.3.5 beta, a correct version number is shown in libdivecomputer based applications (like in Subsurface, in the extra data tab). Careful examining the code in both libdivecomputer and the firmware shows a subtle error in the bit mask and shift operation to pack a full X.Y.Z.beta version number in 2 bytes (as is available in the dive header) in the firmware end (as the libdivecomputer code looks sane, assuming this is the right way to pack things). Likely, this bug crept in in the conversion from the closed source Keil period into the open source GCC setup of the code base. So its impossible to document the exact history of this problem here. Further notice that the main version number is only 1 of 3 version numbers, denoting the full version of the firmware (besides Font and RTE). Finally notice that this way of packing is limited to 2^5 bits (decimal 32), so we could easily build a 1.4.21, but not a 1.4.55. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author Jan Mulder <jlmulder@xs4all.nl>
date Wed, 19 Jun 2019 14:31:50 +0200
parents 7d1b61176708
children
line wrap: on
line source

#MicroXplorer Configuration settings - do not modify
#Fri May 22 12:37:15 CEST 2015
ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_8
ADC1.IPParameters=Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,Rank-0\#ChannelRegularConversion,master
ADC1.Rank-0\#ChannelRegularConversion=1
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
ADC1.master=1
Dma.Request0=SPI1_RX
Dma.Request1=SPI1_TX
Dma.RequestsNb=2
Dma.SPI1_RX.0.Channel=DMA_CHANNEL_3
Dma.SPI1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.SPI1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_RX.0.Instance=DMA2_Stream0
Dma.SPI1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_RX.0.MemInc=DMA_MINC_DISABLE
Dma.SPI1_RX.0.Mode=DMA_NORMAL
Dma.SPI1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_RX.0.Priority=DMA_PRIORITY_HIGH
Dma.SPI1_RX.0.RequestParameters=Instance,Channel,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.SPI1_TX.1.Channel=DMA_CHANNEL_2
Dma.SPI1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.SPI1_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_TX.1.Instance=DMA2_Stream2
Dma.SPI1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_TX.1.MemInc=DMA_MINC_DISABLE
Dma.SPI1_TX.1.Mode=DMA_NORMAL
Dma.SPI1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_TX.1.Priority=DMA_PRIORITY_HIGH
Dma.SPI1_TX.1.RequestParameters=Instance,Channel,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
File.Version=5
KeepUserPlacement=false
Mcu.Family=STM32F4
Mcu.IP0=ADC1
Mcu.IP1=CRC
Mcu.IP2=DMA
Mcu.IP3=I2C1
Mcu.IP4=NVIC
Mcu.IP5=RCC
Mcu.IP6=RTC
Mcu.IP7=SPI1
Mcu.IP8=SPI3
Mcu.IP9=SYS
Mcu.IPNb=10
Mcu.Name=STM32F411R(C-E)Tx
Mcu.Package=LQFP64
Mcu.Pin0=PC14-OSC32_IN
Mcu.Pin1=PC15-OSC32_OUT
Mcu.Pin10=PA6
Mcu.Pin11=PA7
Mcu.Pin12=PB0
Mcu.Pin13=PB12
Mcu.Pin14=PB13
Mcu.Pin15=PB14
Mcu.Pin16=PB15
Mcu.Pin17=PA9
Mcu.Pin18=PA10
Mcu.Pin19=PA13
Mcu.Pin2=PC0
Mcu.Pin20=PA14
Mcu.Pin21=PA15
Mcu.Pin22=PC10
Mcu.Pin23=PC11
Mcu.Pin24=PC12
Mcu.Pin25=PB3
Mcu.Pin26=PB8
Mcu.Pin27=PB9
Mcu.Pin28=VP_CRC_VS_CRC
Mcu.Pin29=VP_RTC_VS_RTC_Alarm_A_Intern
Mcu.Pin3=PC1
Mcu.Pin4=PC2
Mcu.Pin5=PC3
Mcu.Pin6=PA0-WKUP
Mcu.Pin7=PA1
Mcu.Pin8=PA4
Mcu.Pin9=PA5
Mcu.PinsNb=30
Mcu.UserName=STM32F411RETx
MxCube.Version=4.7.1
MxDb.Version=DB.4.0.71
NVIC.DMA2_Stream0_IRQn=true\:0\:0\:false
NVIC.DMA2_Stream2_IRQn=true\:0\:0\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0
NVIC.SysTick_IRQn=true\:0\:0\:true
PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPIO_Input
PA1.Locked=true
PA1.Signal=GPIO_Analog
PA10.Signal=USART1_RX
PA13.Mode=Trace-Asynchronous_SW
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Trace-Asynchronous_SW
PA14.Signal=SYS_JTCK-SWCLK
PA15.Mode=NSS_Signal_Hard
PA15.Signal=SPI3_NSS
PA4.Locked=true
PA4.Mode=NSS_Signal_Hard
PA4.Signal=SPI1_NSS
PA5.Mode=Full_Duplex_Slave
PA5.Signal=SPI1_SCK
PA6.Mode=Full_Duplex_Slave
PA6.Signal=SPI1_MISO
PA7.Mode=Full_Duplex_Slave
PA7.Signal=SPI1_MOSI
PA9.Signal=USART1_TX
PB0.Locked=true
PB0.Signal=ADCx_IN8
PB12.Locked=true
PB12.Signal=GPIO_Analog
PB13.Locked=true
PB13.Signal=GPIO_Input
PB14.Locked=true
PB14.Signal=GPIO_Analog
PB15.Locked=true
PB15.Signal=GPIO_Output
PB3.Mode=Trace-Asynchronous_SW
PB3.Signal=SYS_JTDO-SWO
PB8.Locked=true
PB8.Mode=I2C
PB8.Signal=I2C1_SCL
PB9.Locked=true
PB9.Mode=I2C
PB9.Signal=I2C1_SDA
PC0.Locked=true
PC0.Signal=GPIO_Output
PC1.Locked=true
PC1.Signal=GPIO_Output
PC10.Mode=Full_Duplex_Master
PC10.Signal=SPI3_SCK
PC11.Mode=Full_Duplex_Master
PC11.Signal=SPI3_MISO
PC12.Mode=Full_Duplex_Master
PC12.Signal=SPI3_MOSI
PC14-OSC32_IN.Mode=LSE-External-Oscillator
PC14-OSC32_IN.Signal=RCC_OSC32_IN
PC15-OSC32_OUT.Mode=LSE-External-Oscillator
PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
PC2.Locked=true
PC2.Signal=GPIO_Input
PC3.Locked=true
PC3.Signal=GPIO_Output
PCC.Battery=Li-SOCL2(A3400)
PCC.Battery.Capacity=3400.0
PCC.Battery.Compatibility=Yes
PCC.Battery.InParallel=1
PCC.Battery.InSeries=1
PCC.Battery.MaxContinuous=100.0
PCC.Battery.MaxPulseCurrent=200.0
PCC.Battery.NominalVoltage=3.6
PCC.Battery.SelfDischarge=0.08
PCC.Checker=false
PCC.Family=STM32F4
PCC.MCU=STM32F411R(C-E)Tx
PCC.MXVersion=4.7.1
PCC.PartNumber=STM32F411RETx
PCC.Seq0=3
PCC.Seq0.Step0.Average_Current=19 \u00B5A
PCC.Seq0.Step0.CPU_Frequency=0 Hz
PCC.Seq0.Step0.DMIPS=0.0
PCC.Seq0.Step0.Duration=2 s
PCC.Seq0.Step0.Frequency=0 Hz
PCC.Seq0.Step0.Memory=n/a
PCC.Seq0.Step0.Mode=STOP
PCC.Seq0.Step0.Oscillator=Regulator_LP Flash-PwrDwn
PCC.Seq0.Step0.Peripherals=PVD* RTC*
PCC.Seq0.Step0.User's_Consumption=5 \u00B5A
PCC.Seq0.Step0.Vcore=No Scale
PCC.Seq0.Step0.Vdd=3.6
PCC.Seq0.Step0.Voltage_Source=Battery
PCC.Seq0.Step1.Average_Current=20.83 mA
PCC.Seq0.Step1.CPU_Frequency=100.0 MHz
PCC.Seq0.Step1.DMIPS=125.0
PCC.Seq0.Step1.Duration=2 ms
PCC.Seq0.Step1.Frequency=4.0 MHz
PCC.Seq0.Step1.Memory=FLASH
PCC.Seq0.Step1.Mode=RUN
PCC.Seq0.Step1.Oscillator=HSE PLL
PCC.Seq0.Step1.Peripherals=GPIOB I2C1
PCC.Seq0.Step1.User's_Consumption=120 \u00B5A
PCC.Seq0.Step1.Vcore=Scale1-Medium
PCC.Seq0.Step1.Vdd=3.6
PCC.Seq0.Step1.Voltage_Source=Battery
PCC.Seq0.Step2.Average_Current=3.31 mA
PCC.Seq0.Step2.CPU_Frequency=100.0 MHz
PCC.Seq0.Step2.DMIPS=125.0
PCC.Seq0.Step2.Duration=22 ms
PCC.Seq0.Step2.Frequency=4.0 MHz
PCC.Seq0.Step2.Memory=RAM/FLASH
PCC.Seq0.Step2.Mode=SLEEP
PCC.Seq0.Step2.Oscillator=HSE PLL
PCC.Seq0.Step2.Peripherals=GPIOB I2C1
PCC.Seq0.Step2.User's_Consumption=0 mA
PCC.Seq0.Step2.Vcore=Scale1-Medium
PCC.Seq0.Step2.Vdd=3.6
PCC.Seq0.Step2.Voltage_Source=Battery
PCC.SubFamily=STM32F411
PCC.Temperature=25
PCC.Vdd=3.6
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=2
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=false
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F411RETx
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.5.0
ProjectManager.FreePins=true
ProjectManager.HalAssertFull=false
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=0
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=OSTC4 CPU2 F411.ioc
ProjectManager.ProjectName=OSTC4 CPU2 F411
ProjectManager.TargetToolchain=MDK-ARM 4.73
ProjectManager.ToolChainLocation=
RCC.48MHZClocksFreq_Value=100000000
RCC.AHBFreq_Value=100000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2
RCC.APB1Freq_Value=50000000
RCC.APB1TimFreq_Value=100000000
RCC.APB2Freq_Value=100000000
RCC.APB2TimFreq_Value=100000000
RCC.CortexFreq_Value=12500000
RCC.EthernetFreq_Value=100000000
RCC.FCLKCortexFreq_Value=100000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=100000000
RCC.HSE_VALUE=25000000
RCC.HSI_VALUE=16000000
RCC.I2SClocksFreq_Value=96000000
RCC.IPParameters=LSI_VALUE,APB1TimFreq_Value,APB2Freq_Value,MCO2PinFreq_Value,APB1CLKDivider,FCLKCortexFreq_Value,RCC_RTC_Clock_SourceVirtual,AHBFreq_Value,48MHZClocksFreq_Value,VCOInputFreq_Value,I2SClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,PLLP,HSE_VALUE,HSI_VALUE,VCOI2SOutputFreq_Value,PLLCLKFreq_Value,VCOInputMFreq_Value,RTCFreq_Value,FamilyName,HCLKFreq_Value,EthernetFreq_Value,PLLN,VCOOutputFreq_Value,VcooutputI2S,CortexFreq_Value,APB1Freq_Value,RTCHSEDivFreq_Value,APB2TimFreq_Value
RCC.LSI_VALUE=32000
RCC.MCO2PinFreq_Value=100000000
RCC.PLLCLKFreq_Value=100000000
RCC.PLLN=400
RCC.PLLP=RCC_PLLP_DIV4
RCC.RCC_RTC_Clock_SourceVirtual=RCC_RTCCLKSOURCE_LSE
RCC.RTCFreq_Value=32768
RCC.RTCHSEDivFreq_Value=12500000
RCC.SYSCLKFreq_VALUE=100000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.VCOI2SOutputFreq_Value=192000000
RCC.VCOInputFreq_Value=1000000
RCC.VCOInputMFreq_Value=1000000
RCC.VCOOutputFreq_Value=400000000
RCC.VcooutputI2S=96000000
SH.ADCx_IN8.0=ADC1_IN8,IN8
SH.ADCx_IN8.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2
SPI1.CalculateBaudRate=50.0 MBits/s
SPI1.IPParameters=BaudRatePrescaler,NSS-Full_Duplex_Slave,VirtualNSS,VirtualType,CalculateBaudRate
SPI1.NSS-Full_Duplex_Slave=SPI_NSS_SOFT
SPI1.VirtualNSS=VM_NSSHARD
SPI1.VirtualType=VM_SLAVE
SPI3.CalculateBaudRate=25.0 MBits/s
SPI3.IPParameters=VirtualNSS,Mode,CalculateBaudRate
SPI3.Mode=SPI_MODE_MASTER
SPI3.VirtualNSS=VM_NSSHARD
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
VP_RTC_VS_RTC_Alarm_A_Intern.Mode=Alarm A
VP_RTC_VS_RTC_Alarm_A_Intern.Signal=RTC_VS_RTC_Alarm_A_Intern