nvic: IRQControllers.NVIC @ sysbus 0xE000E000 priorityMask: 0xF0 systickFrequency: 72000000 IRQ -> cpu@0 exti: IRQControllers.STM32F4_EXTI @ sysbus 0x40010400 numberOfOutputLines: 32 [0, 1] -> nvicInput5@[0, 1] [2, 3] -> nvicInput6@[0, 1] [4-15] -> nvicInput7@[0-11] [21, 22] -> nvicInput12@[0, 1] [25] -> nvicInput27@[0] [26] -> nvicInput28@[0] [28] -> nvicInput29@[0] [18, 23, 27] -> nvic@[31, 23, 30] nvicInput5: Miscellaneous.CombinedInput @ none numberOfInputs: 2 -> nvic@5 nvicInput6: Miscellaneous.CombinedInput @ none numberOfInputs: 2 -> nvic@6 nvicInput7: Miscellaneous.CombinedInput @ none numberOfInputs: 12 -> nvic@7 nvicInput12: Miscellaneous.CombinedInput @ none numberOfInputs: 3 -> nvic@12 nvicInput27: Miscellaneous.CombinedInput @ none numberOfInputs: 2 -> nvic@27 nvicInput28: Miscellaneous.CombinedInput @ none numberOfInputs: 2 -> nvic@28 nvicInput29: Miscellaneous.CombinedInput @ none numberOfInputs: 7 -> nvic@29 cpu: CPU.CortexM @ sysbus cpuType: "cortex-m0" nvic: nvic usart1: UART.STM32F7_USART @ sysbus 0x40013800 frequency: 200000000 IRQ -> nvicInput27@1 usart2: UART.STM32F7_USART @ sysbus 0x40004400 frequency: 200000000 IRQ -> nvicInput28@1 usart3: UART.STM32F7_USART @ sysbus 0x40004800 frequency: 200000000 IRQ -> nvicInput29@1 usart4: UART.STM32F7_USART @ sysbus 0x40004C00 frequency: 200000000 IRQ -> nvicInput29@2 usart5: UART.STM32F7_USART @ sysbus 0x40005000 frequency: 200000000 IRQ -> nvicInput29@3 usart6: UART.STM32F7_USART @ sysbus 0x40011400 frequency: 200000000 IRQ -> nvicInput29@4 usart7: UART.STM32F7_USART @ sysbus 0x40011800 frequency: 200000000 IRQ -> nvicInput29@5 gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x48000000, +0x400> modeResetValue: 0x28000000 pullUpPullDownResetValue: 0x24000000 numberOfAFs: 8 invertedAFPins: [[1, 5], [7, 2]] [0-15] -> exti@[0-15] gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x48000400, +0x400> modeResetValue: 0x00000000 pullUpPullDownResetValue: 0x00000000 numberOfAFs: 8 invertedAFPins: [[0, 2], [1, 2], [6, 2], [7, 2], [13, 2], [14, 2], [15, 2, 3]] [0-15] -> exti@[0-15] gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x48000800, +0x400> modeResetValue: 0x00000000 pullUpPullDownResetValue: 0x00000000 numberOfAFs: 8 [0-15] -> exti@[0-15] gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x48000C00, +0x400> modeResetValue: 0x00000000 pullUpPullDownResetValue: 0x00000000 numberOfAFs: 8 [0-15] -> exti@[0-15] gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x48001000, +0x400> modeResetValue: 0x00000000 pullUpPullDownResetValue: 0x00000000 numberOfAFs: 8 [0-15] -> exti@[0-15] gpioPortF: GPIOPort.STM32_GPIOPort @ sysbus <0x48001400, +0x400> modeResetValue: 0x28000000 pullUpPullDownResetValue: 0x24000000 numberOfAFs: 8 [0-15] -> exti@[0-15] i2c1: I2C.STM32F7_I2C @ sysbus 0x40005400 i2c2: I2C.STM32F7_I2C @ sysbus 0x40005800 spi1: SPI.STM32SPI @ sysbus 0x40013000 IRQ -> nvic@25 spi2: SPI.STM32SPI @ sysbus 0x40003800 IRQ -> nvic@26 timer1: Timers.STM32_Timer @ sysbus 0x40012C00 frequency: 10000000 initialLimit: 0xFFFF [BreakInterrupt, UpdateInterrupt, TriggerInterrupt, CommutationInterrupt] -> nvic@[13, 13, 13, 13] CaptureCompareInterrupt -> nvic@14 timer2: Timers.STM32_Timer @ sysbus 0x40000000 frequency: 10000000 initialLimit: 0xFFFFFFFF -> nvic@15 timer3: Timers.STM32_Timer @ sysbus 0x40000400 frequency: 10000000 initialLimit: 0xFFFF -> nvic@16 timer6: Timers.STM32_Timer @ sysbus 0x40001000 frequency: 10000000 initialLimit: 0xFFFF timer7: Timers.STM32_Timer @ sysbus 0x40001400 frequency: 10000000 initialLimit: 0xFFFF -> nvic@18 timer14: Timers.STM32_Timer @ sysbus 0x40002000 frequency: 10000000 initialLimit: 0xFFFF -> nvic@19 timer15: Timers.STM32_Timer @ sysbus 0x40014000 frequency: 10000000 initialLimit: 0xFFFF -> nvic@20 timer16: Timers.STM32_Timer @ sysbus 0x40014400 frequency: 10000000 initialLimit: 0xFFFF -> nvic@21 timer17: Timers.STM32_Timer @ sysbus 0x40014800 frequency: 10000000 initialLimit: 0xFFFF -> nvic@22 can: CAN.STMCAN @ sysbus <0x40006400, +0x400> rtc: Timers.STM32F4_RTC @ sysbus 0x40002800 // missing TamperIRQ, TimeStampIRQ, WakeupEventIRQ AlarmIRQ -> exti@17 rcc: Python.PythonPeripheral @ sysbus 0x40021000 size: 0x400 initable: true script: ''' if request.IsInit: lastVal = 0 elif request.IsRead: lastVal = 1 - lastVal if request.Offset == 0x0: request.Value = lastVal * 0x83 elif request.Offset == 0x4: request.Value = lastVal * 0xFFFFFFF8 elif request.Offset == 0x24: request.Value = 0x0 else: request.Value = lastVal * 0xFFFFFFFF self.NoisyLog("%s on FLIPFLOP at 0x%x, value 0x%x" % (str(request.Type), request.Offset, request.Value)) ''' DMA: Python.PythonPeripheral @ sysbus 0x40020000 size: 0x400 script: ''' if request.IsWrite and request.Offset in (0x10, 0x24, 0x38): # writing base address - we write some positive value there in case initialization awaits output sysbus.WriteDoubleWord(request.Value, 0x40E33333) self.NoisyLog("0x%x written with value 0x40E33333" % request.Value) ''' adc: Analog.STM32F0_ADC @ sysbus 0x40012400 referenceVoltage: 3.3 externalEventFrequency: 1000 -> nvicInput12@2 crc: CRC.STM32_CRC @ sysbus 0x40023000 series: STM32Series.F0 configurablePoly: false // Only STM32F07x and STM32F09x implements configurablePoly: true // Alternate function mapping connections. For more details see `stm32l071.repl`. timer1: 0 -> gpioPortA#07@2 | gpioPortA#08@2 | gpioPortB#13@2 1 -> gpioPortA#09@2 | gpioPortB#00@2 | gpioPortB#14@2 2 -> gpioPortA#10@2 | gpioPortB#01@2 | gpioPortB#15@2 3 -> gpioPortA#11@2 timer3: 0 -> gpioPortA#06@1 | gpioPortB#04@1 | gpioPortC#06@1 1 -> gpioPortA#07@1 | gpioPortB#05@1 | gpioPortC#07@1 2 -> gpioPortB#00@1 | gpioPortC#08@1 3 -> gpioPortB#01@1 | gpioPortC#09@1 timer14: 0 -> gpioPortA#04@4 | gpioPortA#07@4 | gpioPortB#01@0 timer15: 0 -> gpioPortA#01@5 | gpioPortA#02@0 | gpioPortB#14@1 | gpioPortB#15@3 1 -> gpioPortA#03@0 | gpioPortB#15@1 timer16: 0 -> gpioPortA#06@5 | gpioPortB#06@2 | gpioPortB#08@2 timer17: 0 -> gpioPortA#07@5 | gpioPortB#07@2 | gpioPortB#09@2 sysbus: init: Tag <0x40002C00, 0x40002FFF> "WWDG" Tag <0x40003000, 0x400033FF> "IWDG" Tag <0x40005C00, 0x40005FFF> "USB " Tag <0x40006000, 0x400063FF> "USB/CAN SRAM" Tag <0x40006C00, 0x40006FFF> "CRS" Tag <0x40007000, 0x400073FF> "PWR" Tag <0x40007400, 0x400077FF> "DAC" Tag <0x40007800, 0x40007BFF> "CEC" Tag <0x40010000, 0x400103FF> "SYSCFGCOMP" Tag <0x40015800, 0x40015BFF> "DBGMCU" Tag <0x40020000, 0x400203FF> "DMA" Tag <0x40020400, 0x400207FF> "DMA2" Tag <0x40022000, 0x400223FF> "FLASH_INTERFACE" Tag <0x40023000, 0x400233FF> "CRC" Tag <0x40024000, 0x400243FF> "TSC"