仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
90
tests/platforms/Leon3.robot
Normal file
90
tests/platforms/Leon3.robot
Normal file
@@ -0,0 +1,90 @@
|
||||
*** Variables ***
|
||||
${SCRIPT} ${CURDIR}/../../scripts/single-node/leon3_zephyr.resc
|
||||
${UART} sysbus.uart
|
||||
${PROMPT} uart:~$
|
||||
|
||||
*** Keywords ***
|
||||
Prepare Machine
|
||||
Execute Script ${SCRIPT}
|
||||
|
||||
Create Terminal Tester ${UART}
|
||||
|
||||
ASR18 Should Be Equal
|
||||
[Arguments] ${expected}
|
||||
|
||||
Register Should Be Equal 39 ${expected}
|
||||
|
||||
*** Test Cases ***
|
||||
Should Boot Zephyr
|
||||
[Documentation] Boots Zephyr on the Leon3 platform.
|
||||
[Tags] zephyr uart
|
||||
Prepare Machine
|
||||
|
||||
Start Emulation
|
||||
|
||||
Wait For Prompt On Uart ${PROMPT}
|
||||
|
||||
Provides booted-zephyr
|
||||
|
||||
Should Print Version
|
||||
[Documentation] Tests shell responsiveness in Zephyr on the Leon3 platform.
|
||||
[Tags] zephyr uart
|
||||
Requires booted-zephyr
|
||||
|
||||
Write Line To Uart version
|
||||
Wait For Line On Uart Zephyr version 2.6.99
|
||||
|
||||
Should Handle WRASR
|
||||
Prepare Machine
|
||||
|
||||
# Note that these writes to memory are in the emulation target's endianness (which is big-endian here), NOT the host's.
|
||||
# For example, after `sysbus WriteDoubleWord 0x00000000 0x03100000`, the memory content as a byte array is `[0x03, 0x10, 0x00, 0x00]`.
|
||||
# sethi %hi(0xa5a5a400), %g1
|
||||
Execute Command sysbus WriteDoubleWord 0x40000000 0x03296969
|
||||
# or %g1, 0x1a5, %g1
|
||||
Execute Command sysbus WriteDoubleWord 0x40000004 0x821061a5
|
||||
# orn %g0, %g0, %g2
|
||||
Execute Command sysbus WriteDoubleWord 0x40000008 0x84300000
|
||||
# wr 0x1555, %asr18
|
||||
Execute Command sysbus WriteDoubleWord 0x4000000c 0xa5803555
|
||||
# wr %g1, %asr18
|
||||
Execute Command sysbus WriteDoubleWord 0x40000010 0xa5800001
|
||||
# wr %g2, 0x1555, %asr18
|
||||
Execute Command sysbus WriteDoubleWord 0x40000014 0xa580b555
|
||||
# wr %g1, %g2, %asr18
|
||||
Execute Command sysbus WriteDoubleWord 0x40000018 0xa5804002
|
||||
# wr %g2, %asr15
|
||||
Execute Command sysbus WriteDoubleWord 0x4000001c 0x9f800002
|
||||
# nop
|
||||
Execute Command sysbus WriteDoubleWord 0x40000020 0x01000000
|
||||
# ba .
|
||||
Execute Command sysbus WriteDoubleWord 0x40000024 0x10800000
|
||||
# nop
|
||||
Execute Command sysbus WriteDoubleWord 0x40000028 0x01000000
|
||||
|
||||
PC Should Be Equal 0x40000000
|
||||
|
||||
Execute Command cpu Step 3
|
||||
PC Should Be Equal 0x4000000c
|
||||
ASR18 Should Be Equal 0x0
|
||||
|
||||
Execute Command cpu Step
|
||||
PC Should Be Equal 0x40000010
|
||||
ASR18 Should Be Equal 0xfffff555
|
||||
|
||||
Execute Command cpu Step
|
||||
PC Should Be Equal 0x40000014
|
||||
ASR18 Should Be Equal 0xa5a5a5a5
|
||||
|
||||
Execute Command cpu Step
|
||||
PC Should Be Equal 0x40000018
|
||||
ASR18 Should Be Equal 0xaaa
|
||||
|
||||
Execute Command cpu Step
|
||||
PC Should Be Equal 0x4000001c
|
||||
ASR18 Should Be Equal 0x5a5a5a5a
|
||||
|
||||
Execute Command cpu Step
|
||||
# If we get here, we didn't crash on the write to ASR15.
|
||||
PC Should Be Equal 0x40000020
|
||||
ASR18 Should Be Equal 0x5a5a5a5a
|
||||
Reference in New Issue
Block a user