1nvic: IRQControllers.NVIC @ sysbus 0xE000E000
2    priorityMask: 0xF0
3    systickFrequency: 72000000
4    IRQ -> cpu@0
5
6exti: IRQControllers.STM32F4_EXTI @ sysbus 0x40010400
7    numberOfOutputLines: 32
8    [0, 1] -> nvicInput5@[0, 1]
9    [2, 3] -> nvicInput6@[0, 1]
10    [4-15] -> nvicInput7@[0-11]
11    [21, 22] -> nvicInput12@[0, 1]
12    [25] -> nvicInput27@[0]
13    [26] -> nvicInput28@[0]
14    [28] -> nvicInput29@[0]
15    [18, 23, 27] -> nvic@[31, 23, 30]
16
17nvicInput5: Miscellaneous.CombinedInput @ none
18    numberOfInputs: 2
19    -> nvic@5
20
21nvicInput6: Miscellaneous.CombinedInput @ none
22    numberOfInputs: 2
23    -> nvic@6
24
25nvicInput7: Miscellaneous.CombinedInput @ none
26    numberOfInputs: 12
27    -> nvic@7
28
29nvicInput12: Miscellaneous.CombinedInput @ none
30    numberOfInputs: 3
31    -> nvic@12
32
33nvicInput27: Miscellaneous.CombinedInput @ none
34    numberOfInputs: 2
35    -> nvic@27
36
37nvicInput28: Miscellaneous.CombinedInput @ none
38    numberOfInputs: 2
39    -> nvic@28
40
41nvicInput29: Miscellaneous.CombinedInput @ none
42    numberOfInputs: 7
43    -> nvic@29
44
45cpu: CPU.CortexM @ sysbus
46    cpuType: "cortex-m0"
47    nvic: nvic
48
49usart1: UART.STM32F7_USART @ sysbus 0x40013800
50    frequency: 200000000
51    IRQ -> nvicInput27@1
52
53usart2: UART.STM32F7_USART @ sysbus 0x40004400
54    frequency: 200000000
55    IRQ -> nvicInput28@1
56
57usart3: UART.STM32F7_USART @ sysbus 0x40004800
58    frequency: 200000000
59    IRQ -> nvicInput29@1
60
61usart4: UART.STM32F7_USART @ sysbus 0x40004C00
62    frequency: 200000000
63    IRQ -> nvicInput29@2
64
65usart5: UART.STM32F7_USART @ sysbus 0x40005000
66    frequency: 200000000
67    IRQ -> nvicInput29@3
68
69usart6: UART.STM32F7_USART @ sysbus 0x40011400
70    frequency: 200000000
71    IRQ -> nvicInput29@4
72
73usart7: UART.STM32F7_USART @ sysbus 0x40011800
74    frequency: 200000000
75    IRQ -> nvicInput29@5
76
77gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x48000000, +0x400>
78    modeResetValue: 0x28000000
79    pullUpPullDownResetValue: 0x24000000
80    numberOfAFs: 8
81    [0-15] -> exti@[0-15]
82
83gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x48000400, +0x400>
84    modeResetValue: 0x00000000
85    pullUpPullDownResetValue: 0x00000000
86    numberOfAFs: 8
87    [0-15] -> exti@[0-15]
88
89gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x48000800, +0x400>
90    modeResetValue: 0x00000000
91    pullUpPullDownResetValue: 0x00000000
92    numberOfAFs: 8
93    [0-15] -> exti@[0-15]
94
95gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x48000C00, +0x400>
96    modeResetValue: 0x00000000
97    pullUpPullDownResetValue: 0x00000000
98    numberOfAFs: 8
99    [0-15] -> exti@[0-15]
100
101gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x48001000, +0x400>
102    modeResetValue: 0x00000000
103    pullUpPullDownResetValue: 0x00000000
104    numberOfAFs: 8
105    [0-15] -> exti@[0-15]
106
107gpioPortF: GPIOPort.STM32_GPIOPort @ sysbus <0x48001400, +0x400>
108    modeResetValue: 0x28000000
109    pullUpPullDownResetValue: 0x24000000
110    numberOfAFs: 8
111    [0-15] -> exti@[0-15]
112
113i2c1: I2C.STM32F7_I2C @ sysbus 0x40005400
114
115i2c2: I2C.STM32F7_I2C @ sysbus 0x40005800
116
117spi1: SPI.STM32SPI @ sysbus 0x40013000
118    IRQ -> nvic@25
119
120spi2: SPI.STM32SPI @ sysbus 0x40003800
121    IRQ -> nvic@26
122
123timer1: Timers.STM32_Timer @ sysbus 0x40012C00
124    frequency: 10000000
125    initialLimit: 0xFFFF
126    -> nvic@14
127
128timer2: Timers.STM32_Timer @ sysbus 0x40000000
129    frequency: 10000000
130    initialLimit: 0xFFFFFFFF
131    -> nvic@15
132
133timer3: Timers.STM32_Timer @ sysbus 0x40000400
134    frequency: 10000000
135    initialLimit: 0xFFFF
136    -> nvic@16
137
138timer6: Timers.STM32_Timer @ sysbus 0x40001000
139    frequency: 10000000
140    initialLimit: 0xFFFF
141
142timer7: Timers.STM32_Timer @ sysbus 0x40001400
143    frequency: 10000000
144    initialLimit: 0xFFFF
145    -> nvic@18
146
147timer14: Timers.STM32_Timer @ sysbus 0x40002000
148    frequency: 10000000
149    initialLimit: 0xFFFF
150    -> nvic@19
151
152timer15: Timers.STM32_Timer @ sysbus 0x40014000
153    frequency: 10000000
154    initialLimit: 0xFFFF
155    -> nvic@20
156
157timer16: Timers.STM32_Timer @ sysbus 0x40014400
158    frequency: 10000000
159    initialLimit: 0xFFFF
160    -> nvic@21
161
162timer17: Timers.STM32_Timer @ sysbus 0x40014800
163    frequency: 10000000
164    initialLimit: 0xFFFF
165    -> nvic@22
166
167can: CAN.STMCAN @ sysbus <0x40006400, +0x400>
168
169rtc: Timers.STM32F4_RTC @ sysbus 0x40002800
170    // missing TamperIRQ, TimeStampIRQ, WakeupEventIRQ
171    AlarmIRQ -> exti@17
172
173rcc: Python.PythonPeripheral @ sysbus 0x40021000
174    size: 0x400
175    initable: true
176    script: '''
177if request.isInit:
178    lastVal = 0
179elif request.isRead:
180    lastVal = 1 - lastVal
181    if request.offset == 0x0:
182        request.value = lastVal * 0x83
183    elif request.offset == 0x4:
184        request.value = lastVal * 0xFFFFFFF8
185    elif request.offset == 0x24:
186        request.value = 0x0
187    else:
188        request.value = lastVal * 0xFFFFFFFF
189
190self.NoisyLog("%s on FLIPFLOP at 0x%x, value 0x%x" % (str(request.type), request.offset, request.value))
191'''
192
193DMA: Python.PythonPeripheral @ sysbus 0x40020000
194    size: 0x400
195    script: '''
196if request.isWrite and request.offset in (0x10, 0x24, 0x38):
197    # writing base address - we write some positive value there in case initialization awaits output
198    sysbus.WriteDoubleWord(request.value, 0x40E33333)
199    self.NoisyLog("0x%x written with value 0x40E33333" % request.value)
200'''
201
202adc: Analog.STM32F0_ADC @ sysbus 0x40012400
203    referenceVoltage: 3.3
204    externalEventFrequency: 1000
205    -> nvicInput12@2
206
207crc: CRC.STM32_CRC @ sysbus 0x40023000
208    series: STM32Series.F0
209    configurablePoly: false // Only STM32F07x and STM32F09x implements configurablePoly: true
210
211sysbus:
212    init:
213        Tag <0x40002C00, 0x40002FFF> "WWDG"
214        Tag <0x40003000, 0x400033FF> "IWDG"
215        Tag <0x40005C00, 0x40005FFF> "USB "
216        Tag <0x40006000, 0x400063FF> "USB/CAN SRAM"
217        Tag <0x40006C00, 0x40006FFF> "CRS"
218        Tag <0x40007000, 0x400073FF> "PWR"
219        Tag <0x40007400, 0x400077FF> "DAC"
220        Tag <0x40007800, 0x40007BFF> "CEC"
221        Tag <0x40010000, 0x400103FF> "SYSCFGCOMP"
222        Tag <0x40015800, 0x40015BFF> "DBGMCU"
223        Tag <0x40020000, 0x400203FF> "DMA"
224        Tag <0x40020400, 0x400207FF> "DMA2"
225        Tag <0x40022000, 0x400223FF> "FLASH_INTERFACE"
226        Tag <0x40023000, 0x400233FF> "CRC"
227        Tag <0x40024000, 0x400243FF> "TSC"
228