仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
267
tests/platforms/MiV/MiV.robot
Normal file
267
tests/platforms/MiV/MiV.robot
Normal file
@@ -0,0 +1,267 @@
|
||||
*** 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
|
||||
|
||||
Reference in New Issue
Block a user