1mach create "Zolertia Z1"
2using sysbus
3
4include @platforms/cpus/msp430f2619.repl
5
6$bin?=@https://dl.antmicro.com/projects/renode/hello-world.elf-s_50467-180b9b5262a1df6ef45668ba7b6ed6d6e62ff6d2
7
8# NOTE: Simulate return from CALLA invocation
9#       This will be used to skip execution of some functions
10set callaReturn
11"""
12from Antmicro.Renode.Peripherals.CPU import RegisterValue
13
14sysbus = machine.SystemBus
15
16lr = sysbus.ReadWord(cpu.SP)
17lr |= (sysbus.ReadWord(cpu.SP.RawValue + 2) & 0xF) << 16
18cpu.SetRegister(0, RegisterValue.Create(lr, 20))
19cpu.SetRegister(1, RegisterValue.Create(cpu.SP.RawValue + 4, 20))
20"""
21
22cpu PerformanceInMips 1
23showAnalyzer usci_a0
24
25macro reset
26"""
27sysbus LoadELF $bin
28
29# NOTE: We currently doesn't support DCO and CC2420 RF
30#       so we skip initialization of both those subsystems
31cpu AddHook `sysbus GetSymbolAddress "msp430_sync_dco"` $callaReturn
32cpu AddHook `sysbus GetSymbolAddress "node_id_z1_restore"` $callaReturn
33cpu AddHook `sysbus GetSymbolAddress "cc2420_init"` $callaReturn
34cpu AddHook `sysbus GetSymbolAddress "cc2420_set_pan_addr"` $callaReturn
35"""
36
37runMacro $reset
38