Files
simulation_core/tests/unit-tests/gdb/ArmVfpGDB.robot

71 lines
2.9 KiB
Plaintext
Raw Normal View History

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