| logLevel 3 |
| using sysbus |
| mach create "STM32G0" |
| |
| # Load HPS specific parts |
| machine LoadPlatformDescription @platforms/cpus/stm32g0.repl |
| machine LoadPlatformDescriptionFromString "camera: I2C.DummyI2CSlave @ i2c2 0x24 { Register0Value: 0x01; Register1Value: 0xB0 }" |
| machine LoadPlatformDescriptionFromString "flashMemory: Memory.MappedMemory {size: 0x4000000}; flashSpi: SPI.GigaDevice_GD25LQ @ spi1 { underlyingMemory: flashMemory }" # was 1000000 |
| machine LoadPlatformDescriptionFromString "cs: Miscellaneous.Button @ gpioPortA 8 { -> gpioPortA@8 }" |
| machine LoadPlatformDescriptionFromString "fpgaProgram_led: Miscellaneous.LED @ gpioPortC 15" |
| machine LoadPlatformDescriptionFromString "debug_led: Miscellaneous.LED @ gpioPortA 1" |
| machine LoadPlatformDescriptionFromString "gpioPortA: { 1 -> debug_led@0 }" |
| machine LoadPlatformDescriptionFromString "gpioPortB: { 0 -> flashSpi@0 }" |
| machine LoadPlatformDescriptionFromString "gpioPortC: { 15 -> fpgaProgram_led@0 }" |
| |
| emulation AddHPSHostController sysbus.i2c1 |
| |
| # Provide paths to proper ELFs |
| $stage0?=$CWD/rust/mcu/target/thumbv6m-none-eabi/release/stage0 |
| $stage1?=$CWD/rust/mcu/target/thumbv6m-none-eabi/release/stage1_app |
| |
| echo $stage1 |
| |
| macro reset |
| """ |
| sysbus LoadELF $stage1 |
| sysbus LoadSymbolsFrom $stage1 |
| sysbus LoadELF $stage0 |
| """ |
| runMacro $reset |
| |
| echo "Access host.HPSHostController for a list of available commands" |
| |
| start |
| sleep 2 |
| host.HPSHostController ReadSystemStatus "1.0" |
| sleep 1 |
| host.HPSHostController CommandLaunchStage1 |
| sleep 2 |
| host.HPSHostController ReadSystemStatus "1.0" |
| sleep 1 |
| host.HPSHostController StartSocketServer "2.0" |
| sleep 2 |
| q |