| *** 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 |
| |