1fsmcBank1: Memory.MappedMemory @ sysbus 0x60000000
2    size: 0x10000000
3
4sram: Memory.MappedMemory @ sysbus 0x20000000
5    size: 0x00040000
6
7flash: Memory.MappedMemory @ sysbus 0x08000000
8    size: 0x200000
9
10flash_controller: MTD.STM32F4_FlashController @ {
11        sysbus 0x40023C00;
12        sysbus new Bus.BusMultiRegistration { address: 0x1FFFC000; size: 0x100; region: "optionBytes" }
13    }
14    flash: flash
15
16usart1: UART.STM32_UART @ sysbus <0x40011000, +0x100>
17    -> nvic@37
18
19usart2: UART.STM32_UART @ sysbus <0x40004400, +0x100>
20    -> nvic@38
21
22usart3: UART.STM32_UART @ sysbus <0x40004800, +0x100>
23    -> nvic@39
24
25uart4: UART.STM32_UART @ sysbus <0x40004C00, +0x100>
26    -> nvic@52
27
28uart5: UART.STM32_UART @ sysbus <0x40005000, +0x100>
29    -> nvic@53
30
31can1: CAN.STMCAN @ sysbus <0x40006400, +0x400>
32    [0-3] -> nvic@[19-22]
33
34can2: CAN.STMCAN @ sysbus <0x40006800, +0x400>
35    [0-3] -> nvic@[63-66]
36    master: can1
37
38nvic: IRQControllers.NVIC @ sysbus 0xE000E000
39    priorityMask: 0xF0
40    systickFrequency: 72000000
41    IRQ -> cpu@0
42
43cpu: CPU.CortexM @ sysbus
44    cpuType: "cortex-m4"
45    nvic: nvic
46
47pwr: Miscellaneous.STM32_PWR @ sysbus 0x40007000
48
49crc: CRC.STM32_CRC @ sysbus 0x40023000
50    series: STM32Series.F4
51
52exti: IRQControllers.STM32F4_EXTI @ sysbus 0x40013C00
53    numberOfOutputLines: 24
54    [0-4] -> nvic@[6-10]
55    [5-9] -> nvicInput23@[0-4]
56    [10-15] -> nvicInput40@[0-5]
57    [16, 17, 18, 22] -> nvic@[1, 41, 42, 3]
58
59nvicInput23: Miscellaneous.CombinedInput @ none
60    numberOfInputs: 5
61    -> nvic@23
62
63nvicInput40: Miscellaneous.CombinedInput @ none
64    numberOfInputs: 6
65    -> nvic@40
66
67gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x40020000, +0x400>
68    modeResetValue: 0xA8000000
69    pullUpPullDownResetValue: 0x64000000
70    numberOfAFs: 16
71    [0-15] -> exti@[0-15]
72
73gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x40020400, +0x400>
74    modeResetValue: 0x00000280
75    outputSpeedResetValue: 0x000000C0
76    pullUpPullDownResetValue: 0x00000100
77    numberOfAFs: 16
78    [0-15] -> exti@[0-15]
79
80gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x40020800, +0x400>
81    numberOfAFs: 16
82    [0-15] -> exti@[0-15]
83
84gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x40020C00, +0x400>
85    numberOfAFs: 16
86    [0-15] -> exti@[0-15]
87
88gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x40021000, +0x400>
89    numberOfAFs: 16
90    [0-15] -> exti@[0-15]
91
92gpioPortF: GPIOPort.STM32_GPIOPort @ sysbus <0x40021400, +0x400>
93    numberOfAFs: 16
94    [0-15] -> exti@[0-15]
95
96ethernet: Network.SynopsysEthernetMAC @ sysbus 0x40028000
97    -> nvic@61
98
99rom1: Memory.MappedMemory @ sysbus 0x1FFF0000
100    size: 0xC000
101
102rom2: Memory.MappedMemory @ sysbus 0x1FFFC400
103    size: 0x3C00
104
105spi1: SPI.STM32SPI @ sysbus 0x40013000
106
107spi2: SPI.STM32SPI @ sysbus 0x40003800
108    IRQ->nvic@35
109    DMARecieve->dma1@3
110
111spi3: SPI.STM32SPI @ sysbus 0x40003C00
112
113i2c1: I2C.STM32F4_I2C @ sysbus 0x40005400
114    EventInterrupt -> nvic@31
115    ErrorInterrupt -> nvic@32
116
117i2c2: I2C.STM32F4_I2C @ sysbus 0x40005800
118    EventInterrupt -> nvic@33
119    ErrorInterrupt -> nvic@34
120
121i2c3: I2C.STM32F4_I2C @ sysbus 0x40005C00
122    EventInterrupt -> nvic@72
123    ErrorInterrupt -> nvic@73
124
125dma1: DMA.STM32DMA @ sysbus 0x40026000
126    [0-7] -> nvic@[11-17,47]
127
128dma2: DMA.STM32DMA @ sysbus 0x40026400
129    [0-7] -> nvic@[56-60,68-70]
130
131rng: Miscellaneous.STM32F4_RNG @ sysbus 0x50060800
132    -> nvic@80
133
134iwdg: Timers.STM32_IndependentWatchdog @ sysbus 0x40003000
135    frequency: 32000
136    windowOption: false
137    defaultPrescaler: 0x4
138
139rtc: Timers.STM32F4_RTC @ sysbus 0x40002800
140    AlarmIRQ -> nvic@41
141
142rcc: Miscellaneous.STM32F4_RCC @ sysbus 0x40023800
143    rtcPeripheral: rtc
144
145timer1: Timers.STM32_Timer @ sysbus 0x40010000
146    -> nvic@25
147    frequency: 10000000
148    initialLimit: 0xFFFF
149
150timer2: Timers.STM32_Timer @ sysbus 0x40000000
151    -> nvic@28
152    frequency: 10000000
153    initialLimit: 0xFFFFFFFF
154
155timer3: Timers.STM32_Timer @ sysbus 0x40000400
156    -> nvic@29
157    frequency: 10000000
158    initialLimit: 0xFFFF
159
160timer4: Timers.STM32_Timer @ sysbus 0x40000800
161    -> nvic@30
162    frequency: 10000000
163    initialLimit: 0xFFFF
164
165timer5: Timers.STM32_Timer @ sysbus 0x40000C00
166    -> nvic@50
167    frequency: 10000000
168    initialLimit: 0xFFFFFFFF
169
170timer6: Timers.STM32_Timer @ sysbus 0x40001000
171    -> nvic@54
172    frequency: 10000000
173    initialLimit: 0xFFFF
174
175timer7: Timers.STM32_Timer @ sysbus 0x40001400
176    -> nvic@55
177    frequency: 10000000
178    initialLimit: 0xFFFF
179
180timer8: Timers.STM32_Timer @ sysbus 0x40010400
181    -> nvic@44
182    frequency: 10000000
183    initialLimit: 0xFFFF
184
185timer9: Timers.STM32_Timer @ sysbus 0x40014000
186    -> nvic@24
187    frequency: 10000000
188    initialLimit: 0xFFFF
189
190timer10: Timers.STM32_Timer @ sysbus 0x40014400
191    -> nvic@25
192    frequency: 10000000
193    initialLimit: 0xFFFF
194
195timer11: Timers.STM32_Timer @ sysbus 0x40014800
196    -> nvic@26
197    frequency: 10000000
198    initialLimit: 0xFFFF
199
200timer12: Timers.STM32_Timer @ sysbus 0x40001800
201    -> nvic@43
202    frequency: 10000000
203    initialLimit: 0xFFFF
204
205timer13: Timers.STM32_Timer @ sysbus 0x40001C00
206    -> nvic@44
207    frequency: 10000000
208    initialLimit: 0xFFFF
209
210timer14: Timers.STM32_Timer @ sysbus 0x40002000
211    -> nvic@45
212    frequency: 10000000
213    initialLimit: 0xFFFF
214
215bitbandPeripherals: Miscellaneous.BitBanding @ sysbus <0x42000000, +0x2000000>
216    peripheralBase: 0x40000000
217
218bitbandSram: Miscellaneous.BitBanding @ sysbus <0x22000000, +0x200000>
219    peripheralBase: 0x20000000
220
221sysbus:
222    init:
223        ApplySVD @https://dl.antmicro.com/projects/renode/svd/STM32F40x.svd.gz
224        Tag <0x40021000, 0x40021003> "GPIOE_MODER" 0xFFFFFFFF
225        Tag <0x40021004, 0x40021007> "GPIOE_OTYPER" 0x00000008
226        // FLASH and USB tags are required for CubeMX-based projects to pass the initialization phase
227        Tag <0x50000010, 0x5000003f> "USB:RESET" 0x80000000
228