; -------------------------------------------------------------------------------- ; @Title: STM32F0 Specific Menu ; @Props: Released ; @Author: BIC, CNA, KNO, AST, KOL, AJK ; @Changelog: 2012-06-25 ; 2015-04-15 MKK ; 2016-06-24 AST ; 2017-10-04 AJK ; @Manufacturer: STM - ST Microelectronics N.V. ; @Chip: STM32F038C6, STM32F038F6, STM32F038G6, STM32F038K6, STM32F048C6, STM32F048G6, ; STM32F048T6, STM32F058C8, STM32F058R8, STM32F078CB, STM32F078RB, STM32F078VB, ; STM32F091CB, STM32F091CC, STM32F091RB, STM32F091RC, STM32F091VB, STM32F091VC, ; STM32F098CC, STM32F098RC, STM32F050C4, STM32F050C6, STM32F050K4, STM32F050K6, ; STM32F051C4, STM32F051C6, STM32F051C8, STM32F051K4, STM32F051K6, STM32F051K8, ; STM32F051R4, STM32F051R6, STM32F051R8, STM32F030C6, STM32F030C8, STM32F030F4, ; STM32F030K6, STM32F030R8, STM32F031C4, STM32F031C6, STM32F031F4, STM32F031F6, ; STM32F031G4, STM32F031G6, STM32F031K4, STM32F031K6, STM32F042C4, STM32F042C6, ; STM32F042F4, STM32F042F6, STM32F042G4, STM32F042G6, STM32F042K4, STM32F042K6, ; STM32F042T6, STM32F050G6, STM32F071CB, STM32F071RB, STM32F071V8, STM32F071VB, ; STM32F072C8, STM32F072CB, STM32F072R8, STM32F072RB, STM32F072V8, STM32F072VB, ; STM32F030CC, STM32F030RC, STM32F031E6, STM32F038E6, STM32F051T8, STM32F058T8, ; STM32F070C6, STM32F070CB, STM32F070F6, STM32F070RB ; @Core: Cortex-M0 ; @Copyright: (C) 1989-2017 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: menstm32f0x.men 16339 2023-07-03 13:30:14Z pegold $ add menu ( IF SOFTWARE.BUILD.BASE()>=69655. ( popup "&CPU" ( separator IF CPU.FEATURE(MMU) ( popup "[:mmu]MMU" ( menuitem "[:mmureg]MMU Control" "MMU.view" separator menuitem "[:mmu]MMU Table Dump" "MMU.DUMP.PageTable" menuitem "[:mmu]MMU Table List" "MMU.List.PageTable" separator IF CPU.FEATURE(ITLBDUMP) ( menuitem "[:mmu]ITLB Dump" "MMU.DUMP.ITLB" ) IF CPU.FEATURE(DTLBDUMP) ( menuitem "[:mmu]DTLB Dump" "MMU.DUMP.DTLB" ) IF CPU.FEATURE(TLB0DUMP) ( menuitem "[:mmu]TLB0 Dump (Associative)" "MMU.DUMP.TLB0" ) IF CPU.FEATURE(TLB1DUMP) ( menuitem "[:mmu]TLB1 Dump (Lockable)" "MMU.DUMP.TLB1" ) ) ) IF COMPonent.AVAILable("SMMU") ( popup "[:mmu]SMMU" ( menuitem "[:chip]SMMU1 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU1",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU1 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU1",0.)) SMMU.StreamMapTable &(name) ) IF COMPonent.AVAILable("SMMU2") ( separator menuitem "[:chip]SMMU2 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU2",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU2 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU2",0.)) SMMU.StreamMapTable &(name) ) ) IF COMPonent.AVAILable("SMMU3") ( separator menuitem "[:chip]SMMU3 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU3",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU3 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU3",0.)) SMMU.StreamMapTable &(name) ) ) IF COMPonent.AVAILable("SMMU4") ( separator menuitem "[:chip]SMMU4 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU4",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU4 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU4",0.)) SMMU.StreamMapTable &(name) ) ) IF COMPonent.AVAILable("SMMU5") ( separator menuitem "[:chip]SMMU5 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU5",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU5 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU5",0.)) SMMU.StreamMapTable &(name) ) ) IF COMPonent.AVAILable("SMMU6") ( separator menuitem "[:chip]SMMU6 Registers" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU6",0.)) SMMU.Register.Global &(name) ) menuitem "[:mmureg]SMMU6 StreamMapTable" ( PRIVATE &name &name=SMMU.COMPonentNAME(COMPonent.Base("SMMU6",0.)) SMMU.StreamMapTable &(name) ) ) ) ) IF CPU.FEATURE(L1ICACHE)||CPU.FEATURE(L1DCACHE)||CPU.FEATURE(L2CACHE) ( popup "[:cache]Cache" ( IF CPU.FEATURE(L1ICACHEDUMP) ( menuitem "[:cache]ICACHE Dump" "CACHE.DUMP IC" menuitem "[:cache]ICACHE List" "CACHE.List IC" menuitem "[:cache]ICACHE List Functions" "CACHE.ListFunc.IC" ) IF CPU.FEATURE(L1DCACHEDUMP) ( separator menuitem "[:cache]DCACHE Dump" "CACHE.DUMP DC" menuitem "[:cache]DCACHE List" "CACHE.List DC" menuitem "[:cache]DCACHE List Variables" "CACHE.ListVar.DC" ) IF CPU.FEATURE(L2CACHEDUMP) ( separator menuitem "[:cache]L2CACHE Dump" "CACHE.DUMP L2" menuitem "[:cache]L2CACHE List" "CACHE.List L2" menuitem "[:cache]L2CACHE List Variables" "CACHE.ListVar.L2" ) ) ) ) popup "&Trace" ( separator IF COMPonent.AVAILable("ITM") ( popup "ITM" ( default menuitem "[:oconfig]ITM settings..." "ITM.state" separator menuitem "[:alist]ITMTrace List" "ITMTrace.List" ) ) IF COMPonent.AVAILable("STM") ( popup "STM" ( default menuitem "[:oconfig]STM settings..." "STM.state" separator menuitem "[:alist]STMTrace List" "STMTrace.List" ) ) IF COMPonent.AVAILable("HTM") ( popup "HTM" ( default menuitem "[:oconfig]HTM settings..." "HTM.state" separator menuitem "[:alist]HTMTrace List" "HTMTrace.List" ) ) IF COMPonent.AVAILable("TPIU") ( menuitem "[:oconfig]TPIU settings..." "TPIU.state" ) IF COMPonent.AVAILable("ETR") ( menuitem "[:oconfig]ETR settings..." ( PRIVATE &pdd &pdd=OS.PDD() DO "&pdd/etc/embedded_trace_router/etr_utility.cmm" ) ) ) popup "&Misc" ( popup "Tools" ( IF CPUIS64BIT()||CPU.FEATURE("SPR") ( menuitem "ARM System Register Converter" ( DO "~~/demo/arm/etc/systemregister/systemregister_converter.cmm" ) ) IF CPU.FEATURE("C15") ( menuitem "ARM Coprocessor Converter" ( DO "~~/demo/arm/etc/coprocessor/coprocessor_converter.cmm" ) ) ) ) popup "&Perf" ( IF CPU.FEATURE(BMC) ( before "Reset" menuitem "[:bmc]Benchmark Counters" "BMC.state" before "Reset" separator ) ) ) popup "Peripherals" ( popup "[:chip]Core Registers (Cortex-M0)" ( menuitem "[:chip]System Control" "per , ""Core Registers (Cortex-M0),System Control""" menuitem "[:chip]Nested Vectored Interrupt Controller" "per , ""Core Registers (Cortex-M0),Nested Vectored Interrupt Controller (NVIC)""" popup "[:chip]Debug" ( menuitem "[:chip]Core Debug" "per , ""Core Registers (Cortex-M0),Debug,Core Debug""" menuitem "[:chip]BPU;Breakpoint Unit" "per , ""Core Registers (Cortex-M0),Debug,Breakpoint Unit (BPU)""" menuitem "[:chip]DWT;Data Watchpoint and Trace Unit" "per , ""Core Registers (Cortex-M0),Debug,Data Watchpoint and Trace Unit (DWT)""" ) ) separator menuitem "EFM" "per , ""EFM (Embedded Flash Memory)""" menuitem "CRC" "per , ""CRC (Cyclic Redundancy Check)""" menuitem "PWR" "per , ""PWR (Power Control Register)""" menuitem "RCC" "per , ""RCC (Reset and Clock Control)""" if (cpuis("STM32F048?6"))||(cpuis("STM32F078?B"))||(cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")) ( menuitem "CRS" "per , ""CRS (Clock recovery system)""" ) popup "GPIO" ( menuitem "GPIO A" "per , ""GPIO (General-Purpose I/O),GPIO A""" menuitem "GPIO B" "per , ""GPIO (General-Purpose I/O),GPIO B""" if (CPU()=="STM32F050C4"||CPU()=="STM32F050C6"||CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F058R8")||cpuis("STM32F078RB")||cpuis("STM32F078VB")||cpuis("STM32F091R*")||cpuis("STM32F091V*")||cpuis("STM32F098*")||cpuis("STM32F058C8")||cpuis("STM32F078CB")||cpuis("STM32F091C*")||cpuis("STM32F070C6")||cpuis("STM32F070CB")||cpuis("STM32F070RB")||cpuis("STM32F058T8")||cpuis("STM32F030CC")||cpuis("STM32F030RC")||cpuis("STM32F051T8")) ( menuitem "GPIO C" "per , ""GPIO (General-Purpose I/O),GPIO C""" ) if (CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F078VB")||cpuis("STM32F091V*")||cpuis("STM32F058R8")||cpuis("STM32F091R*")||cpuis("STM32F098*")||cpuis("STM32F070RB")||cpuis("STM32F030RC")) ( menuitem "GPIO D" "per , ""GPIO (General-Purpose I/O),GPIO D""" ) if (cpuis("STM32F078V*")||cpuis("STM32F091V*")) ( menuitem "GPIO E" "per , ""GPIO (General-Purpose I/O),GPIO E""" ) menuitem "GPIO F" "per , ""GPIO (General-Purpose I/O),GPIO F""" ) menuitem "SYSCFG" "per , ""SYSCFG (System configuration controller)""" menuitem "DMA" "per , ""DMA (Direct memory access controller)""" menuitem "EXTI" "per , ""EXTI (Extended interrupts and events controller)""" menuitem "ADC" "per , ""ADC (Analog-to-digital converter)""" if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F071*")||cpuis("STM32F072*")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F058?8")||cpuis("STM32F051T8")||cpuis("STM32F050G6")) ( menuitem "DAC" "per , ""DAC (Digital-to-analog converter)""" ) if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F071*")||cpuis("STM32F072*")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F058?8")||cpuis("STM32F051T8")||cpuis("STM32F058T8")) ( menuitem "COMP" "per , ""COMP (Comparator)""" ) popup "Advanced Control Timer" ( menuitem "TIM1" "per , ""ACT (Advanced-control timers),TIM1""" ) popup "General Purpose Timer" ( if !cpuis("STM32F030CC")&&!cpuis("STM32F030RC")&&!cpuis("STM32F070C6")&&!cpuis("STM32F070CB")&&!cpuis("STM32F070F6")&&!cpuis("STM32F070RB") ( menuitem "TIM2" "per , ""General-purpose timer,TIM2""" ) menuitem "TIM3" "per , ""General-purpose timer,TIM3""" menuitem "TIM14" "per , ""General-purpose timer,TIM14""" if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F058?8")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F051T8")||cpuis("STM32F070RB")||cpuis("STM32F070F6")||cpuis("STM32F070C6")||cpuis("STM32F070CB")||cpuis("STM32F030CC")||cpuis("STM32F030RC")) ( menuitem "TIM15" "per , ""General-purpose timer,TIM15""" ) menuitem "TIM16" "per , ""General-purpose timer,TIM16""" menuitem "TIM17" "per , ""General-purpose timer,TIM17""" ) if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F058?8")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F051T8")||cpuis("STM32F030CC")||cpuis("STM32F030RC")||cpuis("STM32F070CB")||cpuis("STM32F070RB")) ( popup "Basic Timer" ( menuitem "TIM6" "per , ""Basic Timer,TIM6""" if cpuis("STM32F030CC")||cpuis("STM32F030RC")||cpuis("STM32F070CB")||cpuis("STM32F070RB") ( menuitem "TIM7" "per , ""Basic Timer,TIM7""" ) ) ) menuitem "IWDG" "per , ""IWDG (Independent watchdog)""" menuitem "WWDG" "per , ""WWDG (System window watchdog)""" menuitem "RTC" "per , ""RTC (Real-time clock)""" popup "I2C" ( menuitem "I2C 1" "per , ""I2C (Inter-integrated circuit),I2C1""" if (CPU()=="STM32F051C8"||CPU()=="STM32F051K8"||CPU()=="STM32F051R8"||cpuis("STM32F058T8")||CPU()=="STM32F051C8"||CPU()=="STM32F051K8"||CPU()=="STM32F051R8"||cpuis("STM32F030CC")||cpuis("STM32F030RC")||cpuis("STM32F070CB")||cpuis("STM32F070RB")) ( menuitem "I2C 2" "per , ""I2C (Inter-integrated circuit),I2C2""" ) else ( if ((!cpuis("STM32F031*"))&&(!cpuis("STM32F042*"))&&(!cpuis("STM32F050G6"))&&(!cpuis("STM32F030F4"))&&(!cpuis("STM32F030K6"))&&(!cpuis("STM32F030C6"))&&(!cpuis("STM32F051K8"))&&!cpuis("STM32F038?6")&&!cpuis("STM32F048*")&&!cpuis("STM32F051T8")) ( menuitem "I2C 2" "per , ""I2C (Inter-integrated circuit),I2C2""" ) ) ) popup "USART" ( menuitem "USART 1" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART1""" if (CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F048?6"))||(cpuis("STM32F058?8"))||(cpuis("STM32F078?B"))||(cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")||cpuis("STM32F051T8")||cpuis("STM32F070RB")||cpuis("STM32F070F6")||cpuis("STM32F070CB")||cpuis("STM32F070C6")||cpuis("STM32F030RC")||cpuis("STM32F030CC")) ( menuitem "USART 2" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART2""" ) if (cpuis("STM32F078?B"))||(cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")||cpuis("STM32F070RB")||cpuis("STM32F070CB")||cpuis("STM32F030RC")||cpuis("STM32F030CC")) ( menuitem "USART 3" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART3""" menuitem "USART 4" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART4""" ) if (cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")) ( menuitem "USART 5" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART3""" menuitem "USART 6" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART4""" menuitem "USART 7" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART3""" menuitem "USART 8" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART4""" ) if cpuis("STM32F030RC")||cpuis("STM32F030CC") ( menuitem "USART 5" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART3""" menuitem "USART 6" "per , ""USART (Universal synchronous asynchronous receiver transmitter),USART4""" ) ) if cpuis("STM32F030CC")||cpuis("STM32F030RC")||cpuis("STM32F070C6")||cpuis("STM32F070CB")||cpuis("STM32F070F6")||cpuis("STM32F070RB") ( popup "SPI" ( menuitem "SPI1" "per , ""SPI (Serial peripheral interface),SPI1""" if cpuis("STM32F070RB")||cpuis("STM32F070CB")||cpuis("STM32F030CC")||cpuis("STM32F030RC") ( menuitem "SPI2" "per , ""SPI (Serial peripheral interface),SPI2""" ) ) ) else ( popup "SPI/I2S" ( if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||cpuis("STM32F038?6")||cpuis("STM32F048?6")||cpuis("STM32F058?8")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F070RB")) ( menuitem "SPI1/I2S1" "per , ""SPI/I2S (Serial peripheral interface/inter-IC sound),SPI1/I2S1""" if (CPU()=="STM32F051C8"||CPU()=="STM32F051K8"||CPU()=="STM32F051R8"||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")) ( menuitem "SPI2" "per , ""SPI/I2S (Serial peripheral interface/inter-IC sound),SPI2""" ) ) else ( menuitem "SPI1/I2S1" "per , ""SPI/I2S (Serial peripheral interface/inter-IC sound),SPI1/I2S1""" ) ) ) if (cpuis("STM32F042*"))||(cpuis("STM32F072*"))||cpuis("STM32F091*")||cpuis("STM32F098*") ( menuitem "bxCAN" "per , ""bxCAN (Basic Extended Controller Area Network)""" ) if (cpuis("STM32F042*"))||(cpuis("STM32F072*"))||cpuis("STM32F048?6")||cpuis("STM32F078?B")||cpuis("STM32F070RB")||cpuis("STM32F070F6")||cpuis("STM32F070C6")||cpuis("STM32F070CB") ( popup "USB" ( menuitem "USB" "per , ""USB (Universal Serial Bus)""" menuitem "USB BDT" "per , ""USB BDT (USB Buffer descriptor table)""" ) ) if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||(cpuis("STM32F042*"))||(cpuis("STM32F072*"))||(cpuis("STM32F071*"))||(cpuis("STM32F050G6"))||cpuis("STM32F051T8")||cpuis("STM32F048?6")||cpuis("STM32F058?8")||cpuis("STM32F078?B")||cpuis("STM32F091*")||cpuis("STM32F098*")) ( menuitem "TSC" "per , ""TSC (Touch sensing controller)""" ) if !cpuis("STM32F070C6")&&!cpuis("STM32F070CB")&&!cpuis("STM32F070F6")&&!cpuis("STM32F070RB") ( if (CPU()=="STM32F051C4"||CPU()=="STM32F051C6"||CPU()=="STM32F051C8"||CPU()=="STM32F051K4"||CPU()=="STM32F051K6"||CPU()=="STM32F051K8"||CPU()=="STM32F051R4"||CPU()=="STM32F051R6"||CPU()=="STM32F051R8"||(cpuis("STM32F042*"))||(cpuis("STM32F07*"))||cpuis("STM32F048*")||cpuis("STM32F058*")||cpuis("STM32F078*")||cpuis("STM32F091*")||cpuis("STM32F098*")||cpuis("STM32F051T8")) ( menuitem "HDMI-CEC" "per , ""HDMI-CEC (HDMI-CEC controller)""" ) ) if (!cpuis("STM32F030?4"))&&(!cpuis("STM32F030?6"))&&(!cpuis("STM32F030?8"))&&(!cpuis("STM32F031*"))&&(!cpuis("STM32F042*"))&&(!cpuis("STM32F071*"))&&(!cpuis("STM32F072*"))&&(!cpuis("STM32F050G6"))&&(!cpuis("STM32F038?6"))&&(!cpuis("STM32F048?6"))&&(!cpuis("STM32F058?8"))&&(!cpuis("STM32F078?B"))&&(!cpuis("STM32F091?B"))&&(!cpuis("STM32F091?C"))&&(!cpuis("STM32F098?C")&&!cpuis("STM32F051T8")&&!cpuis("STM32F070C6")&&!cpuis("STM32F070CB")&&!cpuis("STM32F070F6")&&!cpuis("STM32F070RB")&&!cpuis("STM32F030CC")&&!cpuis("STM32F030RC")) ( menuitem "ESIG" "per , ""ESIG (Device electronic signature)""" ) if !cpuis("STM32F051T8")&&!cpuis("STM32F058T8")&&!cpuis("STM32F038E6")&&!cpuis("STM32F031E6")&&!cpuis("STM32F070C6")&&!cpuis("STM32F070CB")&&!cpuis("STM32F070F6")&&!cpuis("STM32F070RB")&&!cpuis("STM32F030CC")&&!cpuis("STM32F030RC") ( if (cpuis("STM32F031?4"))||(cpuis("STM32F031?6"))||(cpuis("STM32F051?4"))||(cpuis("STM32F051?6"))||(cpuis("STM32F051?8"))||(cpuis("STM32F071?8"))||(cpuis("STM32F071?B"))||(cpuis("STM32F042?4"))||(cpuis("STM32F042?6"))||(cpuis("STM32F072?8"))||(cpuis("STM32F072?B"))||(cpuis("STM32F038?6"))||(cpuis("STM32F048?6"))||(cpuis("STM32F058?8"))||(cpuis("STM32F078?B"))||(cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")) ( menuitem "ESIG" "per , ""ESIG (Device electronic signature)""" ) ) if (cpuis("STM32F050G6"))||(cpuis("STM32F038?6"))||(cpuis("STM32F048?6"))||(cpuis("STM32F058?8"))||(cpuis("STM32F078?B"))||(cpuis("STM32F091?B"))||(cpuis("STM32F091?C"))||(cpuis("STM32F098?C")||cpuis("STM32F051T8")||cpuis("STM32F031E6")||cpuis("STM32F070C6")||cpuis("STM32F070CB")||cpuis("STM32F070F6")||cpuis("STM32F070RB")||cpuis("STM32F030CC")||cpuis("STM32F030RC")) ( menuitem "DBG" "per , ""DBG (Debug support)""" ) ) )