1*** Variables *** 2${URI} @https://dl.antmicro.com/projects/renode 3${MSP430F2619_HELLO_WORLD_ELF} ${URI}/msp430f2619-hello_world.elf-s_7912-e951b1bdd3bb562397ca9da8da88722c503507a3 4 5*** Keywords *** 6Create MSP430F2619 Machine 7 [Arguments] ${ELF}=${EMPTY} 8 9 Execute Command mach create 10 Execute Command machine LoadPlatformDescription @platforms/cpus/msp430f2619.repl 11 Execute Command sysbus.cpu PerformanceInMips 1 12 Run Keyword If "${ELF}" != "${EMPTY}" 13 ... Execute Command sysbus LoadELF ${ELF} 14 15*** Test Cases *** 16Should Change Internal Memory Every Second 17 Create MSP430F2619 Machine ${MSP430F2619_HELLO_WORLD_ELF} 18 ${counterAddress}= Execute Command sysbus GetSymbolAddress "seconds_passed" 19 20 Execute Command emulation RunFor "0.05" 21 ${secondsPassed}= Execute Command sysbus ReadWord ${counterAddress} 22 Should Be Equal ${secondsPassed} 0x0000 strip_spaces=True 23 24 FOR ${second} IN RANGE 1 10 25 ${secondHex}= Convert To Hex ${second} prefix=0x length=4 26 Execute Command emulation RunFor "1" 27 ${secondsPassed}= Execute Command sysbus ReadWord ${counterAddress} 28 Should Be Equal ${secondsPassed} ${secondHex} strip_spaces=True 29 END 30 31Should Correctly Handle Constant Generators In ADDA And SUBA 32 Create MSP430F2619 Machine 33 34 # NOTE: Prepare small program using ADDA and SUBA with CG1/CG2 35 Execute Command sysbus WriteWord 0x2100 0x02e4 # asm: ADDA R2, R4 36 Execute Command sysbus WriteWord 0x2102 0x03e4 # asm: ADDA R3, R4 37 Execute Command sysbus WriteWord 0x2104 0x02f4 # asm: SUBA R2, R4 38 Execute Command sysbus WriteWord 0x2106 0x03f4 # asm: SUBA R3, R4 39 Execute Command cpu PC 0x2100 40 41 # NOTE: Start with zeroed R4 42 Execute Command cpu R4 0x00000 43 44 # NOTE: ADDA R2, R4 ==> ADDA #4, R4 45 Execute Command cpu Step 46 ${REG_VALUE}= Execute Command cpu R4 47 ${REG_VALUE}= Convert To Integer ${REG_VALUE} base=16 48 Should Be Equal ${REG_VALUE} ${4} 49 50 # NOTE: ADDA R3, R4 ==> ADDA #2, R4 51 Execute Command cpu Step 52 ${REG_VALUE}= Execute Command cpu R4 53 ${REG_VALUE}= Convert To Integer ${REG_VALUE} base=16 54 Should Be Equal ${REG_VALUE} ${6} 55 56 # NOTE: SUBA R2, R4 ==> SUBA #4, R4 57 Execute Command cpu Step 58 ${REG_VALUE}= Execute Command cpu R4 59 ${REG_VALUE}= Convert To Integer ${REG_VALUE} base=16 60 Should Be Equal ${REG_VALUE} ${2} 61 62 # NOTE: SUBA R3, R4 ==> SUBA #2, R4 63 Execute Command cpu Step 64 ${REG_VALUE}= Execute Command cpu R4 65 ${REG_VALUE}= Convert To Integer ${REG_VALUE} base=16 66 Should Be Equal ${REG_VALUE} ${0} 67