1*** Variables ***
2${program}=  SEPARATOR=${\n}
3...  ldr r0, =0x10000000
4...  ldr r1, =10000000  @ adjust to taste when running locally
5...
6...  loop:
7...  ldr r2, [r0]
8...  subs r1, r1, #1
9...  bne loop
10...
11...  subs r0, r0, #4
12...  ldr r2, [r0]
13
14${platform}=     SEPARATOR=${\n}
15...  """
16...  cpu: CPU.CortexM @ sysbus
17...  ${SPACE*4}cpuType: "cortex-m4"
18...  ${SPACE*4}nvic: nvic
19...
20...  nvic: IRQControllers.NVIC @ sysbus 0xE000E000
21...
22...  rom: Memory.MappedMemory @ sysbus 0x0
23...  ${SPACE*4}size: 0x40000
24...
25...  trivial: Mocks.TrivialPeripheral @ sysbus 0x10000000
26...  """
27
28*** Keywords ***
29Create Machine
30    ${TEST_DIR}=                    Evaluate  r"${CURDIR}".replace(" ", "\\ ")
31
32    Execute Command                 i @${TEST_DIR}/TrivialPeripheral.cs
33    Execute Command                 mach create
34    Execute Command                 machine LoadPlatformDescriptionFromString ${platform}
35    Execute Command                 using sysbus
36
37    Create Log Tester               10
38
39*** Test Cases ***
40Should Access Trivial Peripheral
41    Create Machine
42    Execute Command                 cpu AssembleBlock 0 """${program}"""
43    Execute Command                 cpu PC 0
44    Wait For Log Entry              ReadDoubleWord from non existing peripheral at 0xFFFFFFC
45