import sys import os def CommandPrompt() : os.system('clear') sys.stdout.write('Enter a command: \n') sys.stdout.write('1: write\n') sys.stdout.write('2: read\n') sys.stdout.write('3: wait an interrupt\n') MyString ="9: change base address["+hex(BaseAddress)+"]\n" sys.stdout.write(MyString) sys.stdout.write('d: DUMP THE SIMULATION\n') sys.stdout.write('e: exit\n\n') sys.stdout.write('> ') Command=sys.stdin.readline().strip('\n') return Command def BuildAddress (BaseAddress, RequestString) : sys.stdout.write(RequestString) return hex(BaseAddress + int(sys.stdin.readline().strip('\n'), 16)).lstrip('0x') def SendCommand(CommandString) : fd_Out=open('../simulation/Py2V.fifo', 'w') fd_Out.write(CommandString) fd_Out.close() def ReadResult(): fd_In=open('../simulation/V2Py.fifo', 'r') ResultString = fd_In.read() fd_In.close() return ResultString Command=' ' BaseAddress=0 Command = CommandPrompt() while (Command!='e'): if Command=='d' : MyString = 'D\n' SendCommand(MyString) elif Command=='1' : Address =BuildAddress(BaseAddress, 'Where do you want to write? 0x') sys.stdout.write('What do you want to write? ') Value =sys.stdin.readline().strip('\n') MyString = 'W '+Address+' '+Value+'\n' SendCommand(MyString) print ReadResult() sys.stdin.readline() elif Command=='2' : Address =BuildAddress(BaseAddress,'Where do you want to read? 0x' ) MyString = 'R '+Address+'\n' SendCommand(MyString) print ReadResult() sys.stdin.readline() elif Command=='3' : MyString = 'I \n' SendCommand(MyString) print ReadResult() sys.stdin.readline() elif Command=='9' : sys.stdout.write('What\'s the new base address? 0x') BaseAddress =int(sys.stdin.readline().strip('\n'), 16) Command = CommandPrompt() MyString = 'S\n' SendCommand(MyString)