blob: d5e49dba75c13430a0870a93651b0aee3d0a99f0 [file]
nvic: IRQControllers.NVIC @ sysbus 0xE000E000
priorityMask: 0xF0
systickFrequency: 1000000
IRQ -> cpu@0
cpu: CPU.CortexM @ sysbus
cpuType: "cortex-m33"
nvic: nvic
spi1: SPI.STM32SPI @ sysbus 0x40013000
series: STM32Series.L5
IRQ->nvic@59
DMAReceive -> dmamux@11
DMASend -> dmamux@12
spi2: SPI.STM32SPI @ sysbus 0x40003800
series: STM32Series.L5
IRQ->nvic@60
DMAReceive -> dmamux@13
DMASend -> dmamux@14
spi3: SPI.STM32SPI @ sysbus 0x40003C00
series: STM32Series.L5
IRQ->nvic@99
DMAReceive -> dmamux@15
DMASend -> dmamux@16
// This model's registers are not compatible with the EXTI in this MCU,
// it is currently here to support direct interrupts
exti: IRQControllers.STM32F4_EXTI @ sysbus 0x4002F400
[0-15,17] -> nvic@[11-26,2]
numberOfOutputLines: 43
firstDirectLine: 17
sram1: Memory.MappedMemory @ sysbus 0x20000000
size: 0x30000
sram2: Memory.MappedMemory @ sysbus 0x20030000
size: 0x10000
flash: Memory.MappedMemory @ sysbus 0x08000000
size: 0x80000
// frequency to be verified
usart1: UART.STM32F7_USART @ sysbus 0x40013800
frequency: 200000000
IRQ -> nvic@61
usart2: UART.STM32F7_USART @ sysbus 0x40004400
frequency: 200000000
IRQ -> nvic@62
usart3: UART.STM32F7_USART @ sysbus 0x40004800
frequency: 200000000
IRQ -> nvic@63
uart4: UART.STM32F7_USART @ sysbus 0x40004C00
frequency: 200000000
IRQ -> nvic@64
uart5: UART.STM32F7_USART @ sysbus 0x40005000
frequency: 200000000
IRQ -> nvic@65
lpuart1: UART.STM32F7_USART @ sysbus 0x40008000
frequency: 200000000
IRQ -> nvic@66
gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x42020000, +0x400>
modeResetValue: 0xABFFFFFF
outputSpeedResetValue: 0x0C000000
pullUpPullDownResetValue: 0x64000000
numberOfAFs: 16
invertedAFPins: [[5, 3], [7, 1, 3]]
gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x42020400, +0x400>
modeResetValue: 0xFFFFFEBF
pullUpPullDownResetValue: 0x00000100
numberOfAFs: 16
invertedAFPins: [[0, 1, 3], [1, 1, 3], [13, 1], [14, 1, 3], [15, 1, 3]]
gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x42020800, +0x400>
modeResetValue: 0xFFFFFFFF
numberOfAFs: 16
gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x42020C00, +0x400>
modeResetValue: 0xFFFFFFFF
numberOfAFs: 16
gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x42021000, +0x400>
modeResetValue: 0xFFFFFFFF
numberOfAFs: 16
invertedAFPins: [[8, 1], [10, 1], [12, 1]]
gpioPortF: GPIOPort.STM32_GPIOPort @ sysbus <0x42021400, +0x400>
modeResetValue: 0xFFFFFFFF
numberOfAFs: 16
gpioPortG: GPIOPort.STM32_GPIOPort @ sysbus <0x42021800, +0x400>
modeResetValue: 0xFFFFFFFF
numberOfAFs: 16
gpioPortH: GPIOPort.STM32_GPIOPort @ sysbus <0x42021C00, +0x400>
modeResetValue: 0x0000000F
numberOfAFs: 16
dma1: DMA.STM32LDMA @ sysbus 0x40020000
[0-7] -> nvic@[29-36]
dma2: DMA.STM32LDMA @ sysbus 0x40020400
[0-7] -> nvic@[80-87]
dmamux: Miscellaneous.STM32_DMAMUX @ sysbus 0x40020800
numberOfInputRequestChannels: 94
numberOfOutputRequestChannels: 16
numberOfRequestGeneratorChannels: 4
[0-7] -> dma1@[0-7]
[8-15] -> dma2@[0-7]
i2c1: I2C.STM32F1_I2C @ sysbus 0x40005400
EventInterrupt -> nvic@55
ErrorInterrupt -> nvic@56
fdcanRAM: Memory.ArrayMemory @ sysbus 0x4000AC00
size: 0x400
fdcan1: CAN.STM32_FDCAN @ sysbus 0x4000A400
series: .L5
messageRam: fdcanRAM
Int0 -> nvic@39
Int1 -> nvic@40
rtc: STM32L_RTC @ sysbus <0x40002800, +0x400>
-> exti@17
timer1: Timers.STM32_Timer @ sysbus 0x40012c00
BreakInterrupt -> nvic@41
UpdateInterrupt -> nvic@42
[TriggerInterrupt, CommutationInterrupt] -> nvic@[43, 43]
CaptureCompareInterrupt -> nvic@44
frequency: 10000000
initialLimit: 0xFFFF
// frequency to be verified
timer2: Timers.STM32_Timer @ sysbus 0x40000000
-> nvic@45
frequency: 10000000
initialLimit: 0xFFFFFFFF
timer3: Timers.STM32_Timer @ sysbus 0x40000400
-> nvic@46
frequency: 10000000
initialLimit: 0xFFFF
timer4: Timers.STM32_Timer @ sysbus 0x40000800
-> nvic@47
frequency: 10000000
initialLimit: 0xFFFF
timer5: Timers.STM32_Timer @ sysbus 0x40000C00
-> nvic@48
frequency: 10000000
initialLimit: 0xFFFFFFFF
timer6: Timers.STM32_Timer @ sysbus 0x40001000
-> nvic@49
frequency: 10000000
initialLimit: 0xFFFF
timer7: Timers.STM32_Timer @ sysbus 0x40001400
-> nvic@50
frequency: 10000000
initialLimit: 0xFFFF
timer8: Timers.STM32_Timer @ sysbus 0x40013400
BreakInterrupt -> nvic@51
UpdateInterrupt -> nvic@52
[TriggerInterrupt, CommutationInterrupt] -> nvic@[53, 53]
CaptureCompareInterrupt -> nvic@54
frequency: 10000000
initialLimit: 0xFFFF
timer15: Timers.STM32_Timer @ sysbus 0x40014000
-> nvic@69
frequency: 10000000
initialLimit: 0xFFFF
timer16: Timers.STM32_Timer @ sysbus 0x40014400
-> nvic@70
frequency: 10000000
initialLimit: 0xFFFF
timer17: Timers.STM32_Timer @ sysbus 0x40014800
-> nvic@71
frequency: 10000000
initialLimit: 0xFFFF
// Alternate function mapping connections. For more details see `stm32l071.repl`.
timer1:
0 -> gpioPortA#07@01 | gpioPortA#08@01 | gpioPortB#13@01 | gpioPortE#08@01 | gpioPortE#09@01
1 -> gpioPortA#09@01 | gpioPortB#00@01 | gpioPortB#14@01 | gpioPortE#10@01 | gpioPortE#11@01
2 -> gpioPortA#10@01 | gpioPortB#01@01 | gpioPortB#15@01 | gpioPortE#12@01 | gpioPortE#13@01
3 -> gpioPortA#11@01 | gpioPortE#14@01
timer2:
0 -> gpioPortA#00@01 | gpioPortA#05@01 | gpioPortA#15@01
1 -> gpioPortA#01@01 | gpioPortB#03@01
2 -> gpioPortA#02@01 | gpioPortB#10@01
3 -> gpioPortA#03@01 | gpioPortB#11@01
timer3:
0 -> gpioPortA#06@02 | gpioPortB#04@02 | gpioPortC#06@02 | gpioPortE#03@02
1 -> gpioPortA#07@02 | gpioPortB#05@02 | gpioPortC#07@02 | gpioPortE#04@02
2 -> gpioPortB#00@02 | gpioPortC#08@02 | gpioPortE#05@02
3 -> gpioPortB#01@02 | gpioPortC#09@02 | gpioPortE#06@02
timer4:
0 -> gpioPortB#06@02 | gpioPortB#12@02
1 -> gpioPortB#07@02 | gpioPortB#13@02
2 -> gpioPortB#08@02 | gpioPortB#14@02
3 -> gpioPortB#09@02 | gpioPortB#15@02
timer5:
0 -> gpioPortB#00@02 | gpioPortF#06@02
1 -> gpioPortB#01@02 | gpioPortF#07@02
2 -> gpioPortB#02@02 | gpioPortF#08@02
3 -> gpioPortB#03@02 | gpioPortF#09@02
gpioPortA:
0 -> timer2@00
1 -> timer2@01
2 -> timer2@02
3 -> timer2@03
5 -> timer2@00
6 -> timer3@00
7 -> timer1@00 | timer3@01
8 -> timer1@00
9 -> timer1@01
10 -> timer1@02
11 -> timer1@03
15 -> timer2@00
gpioPortB:
0 -> timer1@01 | timer3@02 | timer5@00
1 -> timer1@02 | timer3@03 | timer5@01
2 -> timer5@02
3 -> timer2@01 | timer5@03
4 -> timer3@00
5 -> timer3@01
6 -> timer4@00
7 -> timer4@01
8 -> timer4@02
9 -> timer4@03
10 -> timer2@02
11 -> timer2@03
12 -> timer4@00
13 -> timer1@00 | timer4@01
14 -> timer1@01 | timer4@02
15 -> timer1@02 | timer4@03
gpioPortC:
6 -> timer3@00
7 -> timer3@01
8 -> timer3@02
9 -> timer3@03
gpioPortE:
3 -> timer3@00
4 -> timer3@01
5 -> timer3@02
6 -> timer3@03
8 -> timer1@00
9 -> timer1@00
10 -> timer1@01
11 -> timer1@01
12 -> timer1@02
13 -> timer1@02
14 -> timer1@03
gpioPortF:
6 -> timer5@00
7 -> timer5@01
8 -> timer5@02
9 -> timer5@03
sysbus:
init:
ApplySVD @https://dl.antmicro.com/projects/renode/svd/STM32L552.svd
Tag <0x40007000 0x400> "PWR"
Tag <0xE0001000 0xffb> "DWT"
rcc: Miscellaneous.STM32L5_RCC @ sysbus 0x40021000
flashController: MTD.STM32WBA_FlashController @ sysbus 0x40022000
flash: flash
rng: Miscellaneous.STM32_RNG @ sysbus 0x420c0800
series: STM32Series.L5
adc1: Analog.STM32L5_ADC @ sysbus 0x42028000
referenceVoltage: 3.3
externalEventFrequency: 1000
dmaChannel: 5
dmaPeripheral: dmamux
IRQ->nvic@37
iwdg: Timers.STM32_IndependentWatchdog @ sysbus 0x40003000
frequency: 32000