419 lines
20 KiB
Plaintext
419 lines
20 KiB
Plaintext
*** Variables ***
|
|
${URL} https://dl.antmicro.com/projects/renode
|
|
${AGT_ELF} ${URL}/renesas_ra6m5--agt.elf-s_303444-613fbe7bc11ecbc13afa7a8a907682bbbb2a3458
|
|
${HELLO_WORLD_ELF} ${URL}/ra6m5-hello_world.elf-s_310112-5e896556c868826bc8d25d695202ebe0beed7df2
|
|
${AWS_SCI_ICP10101_ELF} ${URL}/renesas_ra6m5--aws-icp10101.elf-s_795916-3d68631f0fdfc3838fdba768d3a6d46312707ae3
|
|
${AWS_SCI_HS3001_ELF} ${URL}/renesas_ra6m5--aws-hs3001.elf-s_758320-642c83fb428d4ccc1e35c2908178de232744dbad
|
|
${AWS_ZMOD4510_ELF} ${URL}/renesas_ra6m5--aws-zmod4510.elf-s_807176-4b4d580be7d9876f822205349432d3ea68172a17
|
|
${AWS_ZMOD4410_ELF} ${URL}/renesas_ra6m5--aws-zmod4410.elf-s_808224-8d79f1a1ff242d00131c12298f64420df21bc1d3
|
|
${SCI_SPI_ELF} ${URL}/renesas_ra6m5--sci_spi.elf-s_346192-72cd95f5c506423a29f654be7fb7471b3b230ed0
|
|
${AWS_ICM20948_ELF} ${URL}/renesas_ra6m5--aws-icm20948.elf-s_799636-492407caeb09cadd9b5bab867955ce9dc6d7229e
|
|
# SCI_UART demo is slightly modified version with additional printfs for better testability
|
|
${SCI_UART_ELF} ${URL}/renesas_ra6m5--sci_uart.elf-s_413420-158250896f48de6bf28e409c99cdda0b2b21e43e
|
|
${IIC_MASTER_ELF} ${URL}/renesas_ra6m5--iic_master.elf-s_322744-232a1bea524059a7170c97c7fa698c5efff39f03
|
|
${AWS_CC_ELF} ${URL}/renesas_ra6m5--aws.elf-s_1022068-eb223bcbec23d091f52980a36dea325060d046f7
|
|
|
|
${CSV2RESD} ${RENODETOOLS}/csv2resd/csv2resd.py
|
|
${ICM20948_SAMPLES_CSV} ${CURDIR}/ICM20948-samples.csv
|
|
|
|
${RA6M5_REPL} platforms/cpus/renesas-r7fa6m5b.repl
|
|
${CK_BOARD_REPL} platforms/boards/renesas-ck_ra6m5.repl
|
|
${CK_SCI_SENSORS_BOARD_REPL} @tests/platforms/renesas-ck_ra6m5-sensors_example.repl
|
|
|
|
${LED_REPL} SEPARATOR=\n
|
|
... """
|
|
... led: Miscellaneous.LED @ port6 10
|
|
...
|
|
... port6:
|
|
... ${SPACE*4}10 -> led@0
|
|
... """
|
|
|
|
${BUTTON_REPL} SEPARATOR=\n
|
|
... """
|
|
... button: Miscellaneous.Button @ port8 4
|
|
... ${SPACE*4}-> port8@4
|
|
... """
|
|
|
|
*** Keywords ***
|
|
Create Machine
|
|
[Arguments] ${bin} ${repl}
|
|
Execute Command using sysbus
|
|
Execute Command mach create "ra6m5"
|
|
|
|
Execute Command machine LoadPlatformDescription @${repl}
|
|
|
|
Execute Command set bin @${bin}
|
|
Execute Command macro reset "sysbus LoadELF $bin"
|
|
Execute Command runMacro $reset
|
|
|
|
Prepare Machine
|
|
[Arguments] ${bin}
|
|
Create Machine ${bin} ${RA6M5_REPL}
|
|
|
|
Prepare Machine With SCI Sensors Board
|
|
[Arguments] ${bin}
|
|
Create Machine ${bin} ${CK_SCI_SENSORS_BOARD_REPL}
|
|
|
|
Prepare Machine With CK Board
|
|
[Arguments] ${bin}
|
|
Create Machine ${bin} ${CK_BOARD_REPL}
|
|
|
|
Prepare Segger RTT
|
|
[Arguments] ${with_has_key}=False ${with_read}=False
|
|
Execute Command machine CreateVirtualConsole "segger_rtt"
|
|
Execute Command include @scripts/single-node/segger-rtt.py
|
|
Execute Command setup_segger_rtt sysbus.segger_rtt ${with_has_key} ${with_read}
|
|
Create Terminal Tester sysbus.segger_rtt
|
|
|
|
Prepare LED Tester
|
|
Execute Command machine LoadPlatformDescriptionFromString ${LED_REPL}
|
|
Create Led Tester sysbus.port6.led
|
|
|
|
Prepare UART Tester
|
|
Create Terminal Tester sysbus.sci0
|
|
|
|
Create ICM20948 RESD File
|
|
[Arguments] ${path}
|
|
${resd_path}= Allocate Temporary File
|
|
${args}= Catenate SEPARATOR=,
|
|
... "--input", r"${path}"
|
|
... "--map", "angular_rate:angular_rate_x,angular_rate_y,angular_rate_z:x,y,z"
|
|
... "--map", "acceleration:acceleration_x,acceleration_y,acceleration_z:x,y,z"
|
|
... "--map", "magnetic_flux_density:magnetic_flux_density_x,magnetic_flux_density_y,magnetic_flux_density_z:x,y,z"
|
|
... "--start-time", "200000000"
|
|
... "--frequency", "5"
|
|
... r"${resd_path}"
|
|
Evaluate subprocess.run([sys.executable, "${CSV2RESD}", ${args}]) sys,subprocess
|
|
RETURN ${resd_path}
|
|
|
|
*** Test Cases ***
|
|
Should Run Periodically Blink LED
|
|
Prepare Machine ${AGT_ELF}
|
|
Prepare LED Tester
|
|
Prepare Segger RTT with_has_key=True with_read=True
|
|
|
|
Execute Command agt0 IRQ AddStateChangedHook "Antmicro.Renode.Logging.Logger.Log(LogLevel.Error, 'AGT0 ' + str(state))"
|
|
# Timeout is only used for checking whether the IRQ has been handled
|
|
Create Log Tester 0.001
|
|
|
|
# Configuration is roughly in ms
|
|
Wait For Prompt On Uart One-shot mode:
|
|
Write Line To Uart 10 waitForEcho=false
|
|
Wait For Line On Uart Time period for one-shot mode timer: 10
|
|
|
|
Wait For Prompt On Uart Periodic mode:
|
|
Write Line To Uart 5 waitForEcho=false
|
|
Wait For Line On Uart Time period for periodic mode timer: 5
|
|
|
|
Wait For Prompt On Uart Enter any key to start or stop the timers
|
|
Write Line To Uart waitForEcho=false
|
|
|
|
# Timeout is extended by an additional 1ms to account for rounding errors
|
|
Wait For Log Entry AGT0 True level=Error pauseEmulation=true timeout=0.011
|
|
Wait For Log Entry AGT0 False level=Error pauseEmulation=true
|
|
# move to the begining of a True state
|
|
Assert Led State True timeout=0.01 pauseEmulation=true
|
|
# Run test for 5 cycles
|
|
Assert Led Is Blinking testDuration=0.05 onDuration=0.005 offDuration=0.005 tolerance=0.2 pauseEmulation=true
|
|
Assert Led State True timeout=0.005 pauseEmulation=true
|
|
|
|
# Stop timers, clear log tester history and check whether the periodic timer stops
|
|
Write Line To Uart waitForEcho=false
|
|
Wait For Line On Uart Periodic timer stopped. Enter any key to start timers. pauseEmulation=true
|
|
Assert And Hold Led State True 0.0 0.05
|
|
|
|
Should Run Hello World Demo
|
|
Prepare Machine ${HELLO_WORLD_ELF}
|
|
Execute Command machine LoadPlatformDescriptionFromString ${BUTTON_REPL}
|
|
Prepare UART Tester
|
|
|
|
Start Emulation
|
|
Wait For Line On Uart Hello world!
|
|
Wait For Line On Uart Blinking available LEDs with 1Hz frequency: P1546, P1545, P1537, P1538, P1539, P1541
|
|
Wait For Line On Uart LEDS OFF
|
|
Wait For Line On Uart LEDS ON
|
|
Wait For Line On Uart LEDS OFF
|
|
Wait For Line On Uart LEDS ON
|
|
|
|
# Test GPIO IRQ, button (PORT8.4) allows to toggle blinking
|
|
|
|
# Stop blinking
|
|
Execute Command port8.button PressAndRelease
|
|
Wait For Line On Uart Blinking has been disabled
|
|
# LEDS OFF and LEDS ON messages shouldn't be printed anymore
|
|
Should Not Be On Uart LEDS OFF timeout=1
|
|
Should Not Be On Uart LEDS ON timeout=1
|
|
|
|
# Star blinking again
|
|
Execute Command port8.button PressAndRelease
|
|
Wait For Line On Uart Blinking has been enabled
|
|
Wait For Line On Uart LEDS OFF
|
|
Wait For Line On Uart LEDS ON
|
|
Wait For Line On Uart LEDS OFF
|
|
Wait For Line On Uart LEDS ON
|
|
|
|
Should Get Correct Temperature Readouts From ICP10101
|
|
Prepare Machine With SCI Sensors Board ${AWS_SCI_ICP10101_ELF}
|
|
Prepare SEGGER_RTT
|
|
|
|
Start Emulation
|
|
Wait For Line On Uart Renesas FSP Application Project
|
|
Wait For Line On Uart I2C bus setup success
|
|
Wait For Line On Uart ICP Sensor Data
|
|
Wait For Line On Uart Temperature -000.000
|
|
Wait For Line On Uart Pressure\\s+ 29999.820 treatAsRegex=true
|
|
|
|
Execute Command sysbus.sci0.barometer_sci DefaultTemperature 13.5
|
|
Execute Command sysbus.sci0.barometer_sci DefaultPressure 40000
|
|
Wait For Line On Uart Temperature\\s+013.498 treatAsRegex=true
|
|
Wait For Line On Uart Pressure\\s+ 39999.929 treatAsRegex=true
|
|
|
|
Should Get Correct Readouts from the HS3001
|
|
|
|
Prepare Machine With SCI Sensors Board ${AWS_SCI_HS3001_ELF}
|
|
Prepare SEGGER RTT
|
|
|
|
# Due to rounding precision, some errors in the measured values are expected
|
|
Wait For Line On Uart HS3001 sensor setup success
|
|
Wait For Line On Uart HS3001 Sensor Data
|
|
Wait For Line On Uart Temperature:\\s+000.000 treatAsRegex=true
|
|
Wait For Line On Uart Humidity:\\s+000.000 treatAsRegex=true
|
|
|
|
Execute Command sysbus.sci0.hs3001_sci Temperature 13.5
|
|
Execute Command sysbus.sci0.hs3001_sci Humidity 50
|
|
Wait For Line On Uart Temperature:\\s+013.500 treatAsRegex=true
|
|
Wait For Line On Uart Humidity:\\s+050.099 treatAsRegex=true
|
|
|
|
Execute Command sysbus.sci0.hs3001_sci Temperature -40
|
|
Wait For Line On Uart Temperature:\\s-039.950 treatAsRegex=true
|
|
Wait For Line On Uart Humidity:\\s+050.099 treatAsRegex=true
|
|
|
|
Execute Command sysbus.sci0.hs3001_sci Temperature 125
|
|
Execute Command sysbus.sci0.hs3001_sci Humidity 100
|
|
Wait For Line On Uart Temperature:\\s+125.000 treatAsRegex=true
|
|
Wait For Line On Uart Humidity:\\s+100.000 treatAsRegex=true
|
|
|
|
Should Read From The ZMOD4510 Sensor
|
|
Prepare Machine With SCI Sensors Board ${AWS_ZMOD4510_ELF}
|
|
Prepare SEGGER_RTT
|
|
|
|
Wait For Line On Uart ZMOD4510 sensor setup success
|
|
# Sensor readouts depend on the "InitConfigurationRValue", "Rvalue" and "Configuration".
|
|
# This test uses the default values, but it can be set using those properties
|
|
# As the algorithm for calculating the final result is proprietary, we expose a way of providing the complete RField input vector
|
|
Wait For Line On Uart OAQ: 231.935
|
|
Wait For Line On Uart OAQ: 099.132
|
|
|
|
Should Read From The ZMOD4410 Sensor
|
|
Prepare Machine With SCI Sensors Board ${AWS_ZMOD4410_ELF}
|
|
Prepare SEGGER_RTT
|
|
|
|
Wait For Line On Uart ZMOD4410 sensor setup success
|
|
# Sensor readouts depend on the "InitConfigurationRValue", "Rvalue" , "ProductionData" and "Configuration".
|
|
# This test uses the default values, but it can be set using those properties
|
|
# As the algorithm for calculating the final result is proprietary, we expose a way of providing the complete RField input vector
|
|
Wait For Line On Uart TVOC: 000.014
|
|
Wait For Line On Uart ETOH: 000.007
|
|
Wait For Line On Uart ECO2: 401.176
|
|
# Readouts should soon stabilize
|
|
Wait For Line On Uart TVOC: 000.015
|
|
Wait For Line On Uart ETOH: 000.008
|
|
Wait For Line On Uart ECO2: 404.523
|
|
|
|
Should Read Temperature From SPI Sensor
|
|
Prepare Machine ${SCI_SPI_ELF}
|
|
Prepare Segger RTT
|
|
|
|
# Sample expects the MAX31723PMB1 temperature sensor which there is no model for in Renode
|
|
Execute Command machine LoadPlatformDescriptionFromString "sensor: Sensors.GenericSPISensor @ sci0"
|
|
|
|
# Sensor initialization values
|
|
Execute Command sci0.sensor FeedSample 0x80
|
|
Execute Command sci0.sensor FeedSample 0x6
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
|
|
# Temperature of 15 °C
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
Execute Command sci0.sensor FeedSample 0xF
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
|
|
# Temperature of 10 °C
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
Execute Command sci0.sensor FeedSample 0xA
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
|
|
# Temperature of 2 °C
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
Execute Command sci0.sensor FeedSample 0x2
|
|
Execute Command sci0.sensor FeedSample 0x0
|
|
|
|
Wait For Line On Uart Temperature:${SPACE*2}15.000000 *C
|
|
Wait For Line On Uart Temperature:${SPACE*2}10.000000 *C
|
|
Wait For Line On Uart Temperature:${SPACE*2}2.000000 *C
|
|
Wait For Line On Uart Temperature:${SPACE*2}0.000000 *C
|
|
|
|
Should Read And Write On UART
|
|
Prepare Machine ${SCI_UART_ELF}
|
|
|
|
Create Terminal Tester sysbus.sci0
|
|
|
|
Wait For Line On Uart Starting UART demo
|
|
|
|
Write Line To Uart 56 waitForEcho=false
|
|
Wait For Line On Uart Setting intensity to: 56
|
|
Wait For Line On Uart Set next value
|
|
|
|
Write Line To Uart 1 waitForEcho=false
|
|
Wait For Line On Uart Setting intensity to: 1
|
|
Wait For Line On Uart Set next value
|
|
|
|
Write Line To Uart 100 waitForEcho=false
|
|
Wait For Line On Uart Setting intensity to: 100
|
|
Wait For Line On Uart Set next value
|
|
|
|
Write Line To Uart 371 waitForEcho=false
|
|
Wait For Line On Uart Invalid input. Input range is from 1 - 100
|
|
|
|
Write Line To Uart 74 waitForEcho=false
|
|
Wait For Line On Uart Setting intensity to: 74
|
|
Wait For Line On Uart Set next value
|
|
|
|
Should Read Default Values From ICM20948
|
|
Prepare Machine With SCI Sensors Board ${AWS_ICM20948_ELF}
|
|
Prepare Segger RTT
|
|
|
|
Execute Command sci0.icm_sci DefaultAccelerationX 0.3183098861837907
|
|
Execute Command sci0.icm_sci DefaultAccelerationY 1.618033988749895
|
|
Execute Command sci0.icm_sci DefaultAccelerationZ -0.36787944117144233
|
|
|
|
Execute Command sci0.icm_sci DefaultAngularRateX 10.604
|
|
Execute Command sci0.icm_sci DefaultAngularRateY 200.002
|
|
Execute Command sci0.icm_sci DefaultAngularRateZ -3.1
|
|
|
|
Execute Command sysbus.sci0.icm_sci.magnetometer_sci DefaultMagneticFluxDensityX 150
|
|
Execute Command sysbus.sci0.icm_sci.magnetometer_sci DefaultMagneticFluxDensityY 300
|
|
Execute Command sysbus.sci0.icm_sci.magnetometer_sci DefaultMagneticFluxDensityZ 450
|
|
|
|
Wait For Line On Uart ICM Sensor Data
|
|
Wait For Line On Uart AccX 000.318
|
|
Wait For Line On Uart AccY 001.618
|
|
Wait For Line On Uart AccZ -000.367
|
|
|
|
Wait For Line On Uart GyrX 010.597
|
|
Wait For Line On Uart GyrY 199.890
|
|
Wait For Line On Uart GyrZ -003.097
|
|
|
|
Wait For Line On Uart MagX 000.149
|
|
Wait For Line On Uart MagY 000.298
|
|
Wait For Line On Uart MagZ 000.448
|
|
|
|
|
|
Should Read Values From ICM20948 Fed From RESD File
|
|
Prepare Machine With SCI Sensors Board ${AWS_ICM20948_ELF}
|
|
Prepare Segger RTT
|
|
|
|
${resd_path}= Create ICM20948 RESD File ${ICM20948_SAMPLES_CSV}
|
|
Execute Command sysbus.sci0.icm_sci FeedAccelerationSamplesFromRESD @${resd_path}
|
|
Execute Command sysbus.sci0.icm_sci FeedAngularRateSamplesFromRESD @${resd_path}
|
|
Execute Command sysbus.sci0.icm_sci.magnetometer_sci FeedMagneticSamplesFromRESD @${resd_path}
|
|
|
|
Wait For Line On Uart ICM Sensor Data
|
|
Wait For Line On Uart AccX 000.001
|
|
Wait For Line On Uart AccY 001.002
|
|
Wait For Line On Uart AccZ -004.000
|
|
|
|
Wait For Line On Uart GyrX 249.862
|
|
Wait For Line On Uart GyrY -249.862
|
|
Wait For Line On Uart GyrZ 003.143
|
|
|
|
Wait For Line On Uart MagX 000.149
|
|
Wait For Line On Uart MagY 000.298
|
|
Wait For Line On Uart MagZ 000.448
|
|
|
|
Wait For Line On Uart ICM Sensor Data
|
|
Wait For Line On Uart AccX 000.002
|
|
Wait For Line On Uart AccY 000.998
|
|
Wait For Line On Uart AccZ 003.999
|
|
|
|
Wait For Line On Uart GyrX 243.499
|
|
Wait For Line On Uart GyrY -249.549
|
|
Wait For Line On Uart GyrZ 003.280
|
|
|
|
Wait For Line On Uart MagX 000.298
|
|
Wait For Line On Uart MagY 000.448
|
|
Wait For Line On Uart MagZ 000.597
|
|
|
|
Should Communicate Over IIC
|
|
Prepare Machine ${IIC_MASTER_ELF}
|
|
Execute Command machine LoadPlatformDescriptionFromString "adxl345: Sensors.ADXL345 @ iic1 0x1D"
|
|
Prepare Segger RTT
|
|
|
|
# Sample displays raw data from the sensor, so printed values are different from loaded samples
|
|
Execute Command iic1.adxl345 FeedSample 1000 1000 1000
|
|
Wait For Line On Uart X-axis = 250.00, Y-axis = 250.00, Z-axis = 250.00
|
|
|
|
Execute Command iic1.adxl345 FeedSample 2000 3000 4000
|
|
Wait For Line On Uart X-axis = 500.00, Y-axis = 750.00, Z-axis = 1000.00
|
|
|
|
Execute Command iic1.adxl345 FeedSample 1468 745 8921
|
|
Wait For Line On Uart X-axis = 367.00, Y-axis = 186.00, Z-axis = 2230.00
|
|
|
|
Execute Command iic1.adxl345 FeedSample 3912 8888 5456
|
|
Wait For Line On Uart X-axis = 978.00, Y-axis = 2222.00, Z-axis = 1364.00
|
|
|
|
Execute Command iic1.adxl345 FeedSample 0 5000 0
|
|
Wait For Line On Uart X-axis = 0.00, Y-axis = 1250.00, Z-axis = 0.00
|
|
|
|
Wait For Line On Uart X-axis = 0.00, Y-axis = 0.00, Z-axis = 0.00
|
|
|
|
CK IIC Board Should Work
|
|
Prepare Machine With CK Board ${AWS_CC_ELF}
|
|
Prepare Segger RTT
|
|
|
|
Execute Command sysbus.iic0.hs3001 Temperature 13.5
|
|
Execute Command sysbus.iic0.hs3001 Humidity 50
|
|
|
|
Execute Command sysbus.iic0.barometer DefaultTemperature 13.5
|
|
Execute Command sysbus.iic0.barometer DefaultPressure 40000
|
|
|
|
Execute Command sysbus.iic0.icm DefaultAccelerationX 0.3183098861837907
|
|
Execute Command sysbus.iic0.icm DefaultAccelerationY 1.618033988749895
|
|
Execute Command sysbus.iic0.icm DefaultAccelerationZ -0.36787944117144233
|
|
|
|
Execute Command sysbus.iic0.icm DefaultAngularRateX 10.604
|
|
Execute Command sysbus.iic0.icm DefaultAngularRateY 200.002
|
|
Execute Command sysbus.iic0.icm DefaultAngularRateZ -3.1
|
|
|
|
Execute Command sysbus.iic0.icm.magnetometer DefaultMagneticFluxDensityX 150
|
|
Execute Command sysbus.iic0.icm.magnetometer DefaultMagneticFluxDensityY 300
|
|
Execute Command sysbus.iic0.icm.magnetometer DefaultMagneticFluxDensityZ 450
|
|
|
|
Wait For Line On Uart IAQ Sensor Data
|
|
Wait For Line On Uart TVOC: 000.015
|
|
Wait For Line On Uart ETOH: 000.008
|
|
Wait For Line On Uart ECO2: 404.384
|
|
|
|
Wait For Line On Uart OAQ Sensor Data
|
|
Wait For Line On Uart OAQ: 231.935
|
|
|
|
Wait For Line On Uart HS3001 Sensor Data
|
|
Wait For Line On Uart Humidity: 050.099
|
|
Wait For Line On Uart Temperature: 013.500
|
|
|
|
Wait For Line On Uart ICM Sensor Data
|
|
Wait For Line On Uart AccX 000.318
|
|
Wait For Line On Uart AccY 001.618
|
|
Wait For Line On Uart AccZ -000.367
|
|
|
|
Wait For Line On Uart GyrX 010.597
|
|
Wait For Line On Uart GyrY 199.890
|
|
Wait For Line On Uart GyrZ -003.097
|
|
|
|
Wait For Line On Uart MagX 000.149
|
|
Wait For Line On Uart MagY 000.298
|
|
Wait For Line On Uart MagZ 000.448
|
|
|
|
Wait For Line On Uart ICP Sensor Data
|
|
Wait For Line On Uart Temperature: 013.498
|
|
Wait For Line On Uart Pressure: 39999.929
|