268 lines
9.7 KiB
Plaintext
268 lines
9.7 KiB
Plaintext
*** Variables ***
|
|
${UART} sysbus.uart
|
|
${URI} @https://dl.antmicro.com/projects/renode
|
|
${LED_DELAY} 1
|
|
|
|
*** Keywords ***
|
|
Create Machine
|
|
[Arguments] ${elf}
|
|
|
|
Execute Command mach create
|
|
Execute Command machine LoadPlatformDescription @platforms/boards/miv-board.repl
|
|
|
|
Execute Command sysbus LoadELF ${URI}/${elf}
|
|
|
|
*** Test Cases ***
|
|
Should Blink Led Using Systick
|
|
Create Machine riscv-systick-blinky.elf-s_125004-59e1fa0a46f86e8ccad8b5bbb4d92b8dfa009af3
|
|
Create Terminal Tester ${UART}
|
|
|
|
Create LED Tester sysbus.gpioOutputs.led0 defaultTimeout=${LED_DELAY}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart System timer Blinky Example.
|
|
|
|
# because of very fast LED switching this ends very soon
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
|
|
Should Blink Led Using CoreTimer
|
|
Create Machine riscv-interrupt-blinky.elf-s_135504-4fe164958c1fe3e89790f8d7d2824ba16182fa75
|
|
Create Terminal Tester ${UART}
|
|
|
|
Create LED Tester sysbus.gpioOutputs.led0 defaultTimeout=${LED_DELAY}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
Assert LED State true
|
|
Assert LED State false
|
|
|
|
Should Run FreeRTOS Sample
|
|
Create Machine riscv-freertos-sample.elf-s_208404-40208b240e2d718e999a533e084f022628aec5d6
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart Sample Demonstration of FreeRTOS port for Microsemi RISC-V processor.
|
|
Wait For Line On Uart Task - 2
|
|
Wait For Line On Uart Task - 1
|
|
Wait For Line On Uart Task - 2
|
|
Wait For Line On Uart Task - 1
|
|
Wait For Line On Uart Task - 2
|
|
Wait For Line On Uart Task - 1
|
|
Wait For Line On Uart Task - 2
|
|
Wait For Line On Uart Task - 1
|
|
Wait For Line On Uart Task - 2
|
|
Wait For Line On Uart Task - 1
|
|
|
|
Should Run LiteOS Port Sample
|
|
Create Machine riscv-liteos-port.elf-s_689820-e68d3bcf0a12c25daa66fc51e474281bcbed2fc7
|
|
Create Terminal Tester ${UART}
|
|
|
|
# this magic PerformanceInMips is required for the test to pass
|
|
# it is related to a bug in LiteOS (stack overflow and corruption) when interrupts happens in *wrong* moments
|
|
Execute Command sysbus.cpu PerformanceInMips 300
|
|
Execute Command showAnalyzer ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart Los Inspect start.
|
|
Wait For Line On Uart Los Key example: please press the UserKey (SW2) key
|
|
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_2 Toggle
|
|
Wait For Line On Uart Key test example
|
|
|
|
Should Run ZephyrRTOS Shell Sample
|
|
Create Machine shell-demo-miv.elf-s_803248-ea4ddb074325b2cc1aae56800d099c7cf56e592a
|
|
Create Terminal Tester ${UART}
|
|
|
|
Execute Command showAnalyzer ${UART}
|
|
|
|
Start Emulation
|
|
Wait For Prompt On Uart uart:~
|
|
Write Line To Uart version
|
|
Wait For Line On Uart Zephyr version 1.13.99
|
|
|
|
|
|
Should Generate Interrupts On Gpio Rising Edge
|
|
Create Machine riscv-interrupt-blinky_gpio-interrupts-edge-positive.elf-s_135192-436f2656cbcff66f043ae6ba0b7977d0ee5e82a1
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
Wait For Line On Uart Observe the LEDs blinking on the board. The LED patterns changes every time a timer interrupt occurs
|
|
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Wait For Line On Uart GPIO1
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
Wait For Line On Uart GPIO2
|
|
|
|
Should Generate Interrupts On Gpio Falling Edge
|
|
Create Machine riscv-interrupt-blinky_gpio-interrupts-edge-negative.elf-s_135192-19e453c25b09a2ecfeb7a8015588355f90ad8f02
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
Wait For Line On Uart Observe the LEDs blinking on the board. The LED patterns changes every time a timer interrupt occurs
|
|
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Wait For Line On Uart GPIO1
|
|
Sleep 1s
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Wait For Line On Uart GPIO2
|
|
Sleep 1s
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Test If Uart Is Idle 1
|
|
|
|
Should Generate Interrupts On Gpio Both Edges
|
|
Create Machine riscv-interrupt-blinky_gpio-interrupts-edge-both.elf-s_135192-1afc01350e4f0e17e2e556796cf577d2768636ec
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
Wait For Line On Uart Observe the LEDs blinking on the board. The LED patterns changes every time a timer interrupt occurs
|
|
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Wait For Line On Uart GPIO1
|
|
Sleep 1s
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Wait For Line On Uart GPIO1
|
|
Sleep 1s
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Wait For Line On Uart GPIO2
|
|
Sleep 1s
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Wait For Line On Uart GPIO2
|
|
|
|
Should Generate Interrupts On Gpio High Level
|
|
Create Machine riscv-interrupt-blinky_gpio-interrupts-level-high.elf-s_135168-e03e81b692982ad2f1f46085b9077fdfef62adf2
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
Wait For Line On Uart Observe the LEDs blinking on the board. The LED patterns changes every time a timer interrupt occurs
|
|
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
|
|
Should Generate Interrupts On Gpio Low Level
|
|
Create Machine riscv-interrupt-blinky_gpio-interrupts-level-low.elf-s_135168-f570dad79ea5aa0bfe9aa1000f453f0f50f344df
|
|
Create Terminal Tester ${UART}
|
|
|
|
Start Emulation
|
|
|
|
Wait For Line On Uart CoreTIMER and external Interrupt Example.
|
|
Wait For Line On Uart Observe the LEDs blinking on the board. The LED patterns changes every time a timer interrupt occurs
|
|
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
Test If Uart Is Idle 1
|
|
|
|
Execute Command sysbus.gpioInputs.user_switch_0 Toggle
|
|
Sleep 1s
|
|
Execute Command sysbus.gpioInputs.user_switch_1 Toggle
|
|
Sleep 1s
|
|
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
Wait For Line On Uart GPIO1
|
|
Wait For Line On Uart GPIO2
|
|
|