仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
70
tests/unit-tests/gdb/ArmVfpGDB.robot
Normal file
70
tests/unit-tests/gdb/ArmVfpGDB.robot
Normal file
@@ -0,0 +1,70 @@
|
||||
*** Settings ***
|
||||
Suite Setup Setup
|
||||
Suite Teardown Teardown
|
||||
Library Process
|
||||
Resource ${RENODEKEYWORDS}
|
||||
Library ${CURDIR}/gdb_library.py
|
||||
|
||||
*** Variables ***
|
||||
${BIN} https://dl.antmicro.com/projects/renode/cortex-v8m_tz-extended-frame-test.elf-s_92692-88fe4c7b72824b0d3700927033873924025c2b7d
|
||||
${GDB_REMOTE_PORT} 3337
|
||||
${GDB_TIMEOUT} 10
|
||||
|
||||
${PLATFORM} SEPARATOR=\n """
|
||||
... mem: Memory.MappedMemory @ sysbus 0x0
|
||||
... ${SPACE*4}size: 0x40000
|
||||
... uart: UART.NS16550 @ sysbus 0x80000
|
||||
... cpu: CPU.CortexM @ sysbus
|
||||
... ${SPACE*4}cpuType: "cortex-m33"
|
||||
... ${SPACE*4}enableTrustZone: true
|
||||
... ${SPACE*4}nvic: nvic
|
||||
... nvic: IRQControllers.NVIC @ sysbus 0xe000e000
|
||||
... ${SPACE*4}-> cpu@0
|
||||
... """
|
||||
|
||||
*** Keywords ***
|
||||
Prepare Platform
|
||||
Execute Command using sysbus
|
||||
Execute Command mach create
|
||||
Execute Command machine LoadPlatformDescriptionFromString ${PLATFORM}
|
||||
Execute Command sysbus LoadELF @${BIN}
|
||||
Execute Command machine StartGdbServer ${GDB_REMOTE_PORT}
|
||||
|
||||
Compare S Register
|
||||
[Arguments] ${number} ${expected}
|
||||
|
||||
${regvalue}= Command Gdb p $s${number} timeout=${GDB_TIMEOUT}
|
||||
${regvalue}= Evaluate ${regvalue.split('=')[1].strip()}
|
||||
Should Be Equal ${regvalue} ${expected}
|
||||
|
||||
Check And Run Gdb
|
||||
[Arguments] ${name}
|
||||
|
||||
${res}= Start Gdb ${name}
|
||||
IF '${res}' != 'OK' Fail ${name} not found skipped
|
||||
|
||||
Command Gdb target remote :${GDB_REMOTE_PORT} timeout=${GDB_TIMEOUT}
|
||||
Command Gdb monitor start
|
||||
|
||||
*** Test Cases ***
|
||||
# This test does the following:
|
||||
# 1. Loads the binary that sets each of the s0 ... s31
|
||||
# registers to the value: s(n) = 100.0 + n
|
||||
#
|
||||
# 2. Stops execution right after the registers are set
|
||||
#
|
||||
# 3. Compares register values with ground truth
|
||||
|
||||
Test VFP registers
|
||||
[Tags] skip_windows
|
||||
[Setup] Prepare Platform
|
||||
Check And Run Gdb arm-zephyr-eabi-gdb
|
||||
|
||||
Command Gdb break *0x00013a4 timeout=${GDB_TIMEOUT}
|
||||
Command Gdb continue
|
||||
|
||||
# Check S0-S31 registers
|
||||
FOR ${index} IN RANGE 32
|
||||
${expected}= Evaluate 100.0 + ${index}
|
||||
Compare S Register ${index} ${expected}
|
||||
END
|
||||
Reference in New Issue
Block a user