Difference between revisions of "Sxsim test python script"
From Just in Time
(New page: <pre> # simple test script that runs the thermostat firmware, simulates some input and # writes the program output to screen. import sys import pysix # load a listing file listing = pysi...) |
m (1 revision: copying content from old site) |
(No difference)
|
Latest revision as of 22:07, 12 July 2010
# simple test script that runs the thermostat firmware, simulates some input and # writes the program output to screen. import sys import pysix # load a listing file listing = pysix.ParseListingFile("../../test/thermostat.lst") # create an emulator sx = pysix.Simulator() # load the listings program bytes into the sx rom sx.load_rom( listing) # some code labels send_byte = 0x0405 after_spi_read = 0x0141 #some data labels spi_value = 0x08 # the entry point to the send_byte function. At this # point w will contain a character to be sent to output (LCD/rs-232) sx.set_breakpoint( send_byte) # right after a temperature has been read from the spi device # ram location spi_value will contain the temperature reading. sx.set_breakpoint( after_spi_read) while True: sx.run(10000) # do 10 000 instructions, or stop if we hit a breakpoint if send_byte == sx.state.pc: sys.stdout.write( chr(sx.state.w)) elif after_spi_read == sx.state.pc: # Todo: simplify this. state can only be copied as a whole, not changed state = sx.state state.ram.set_absolute( spi_value, 100) state.ram.set_absolute( spi_value + 1, 0) sx.state = state