class RPicSim::Mplab::MplabSimulator
This class is a wrapper for thecom.microchip.mplab.mdbcore.simulator.Simulator class, which helps manage running a simulation.
Public Class Methods
new(simulator)
click to toggle source
Makes a new MplabSimulator
object. @param simulator [com.microchip.mplab.mdbcore.simulator.Simulator]
# File lib/rpicsim/mplab/mplab_simulator.rb, line 10 def initialize(simulator) @simulator = simulator end
Public Instance Methods
check_peripherals()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 72 def check_peripherals check_peripherals_in_data_store check_peripheral_set end
config_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 42 def config_memory @config_memory ||= MplabMemory.new data_store.getCFGMemory end
eeprom_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 46 def eeprom_memory @eeprom_memory ||= MplabMemory.new data_store.getEEDataMemory end
fr_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 18 def fr_memory @fr_memory ||= MplabMemory.new data_store.getFileMemory end
nmmr_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 26 def nmmr_memory @nmmr_memory ||= MplabMemory.new data_store.getNMMRMemory end
pins()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 54 def pins pin_descs = (0...data_store.getNumPins).map { |i| data_store.getPinDesc(i) } pin_set = data_store.getProcessor.getPinSet # The PinSet class has strangely-implemented lazy loading. # We call getPin(String name) to force it to load pin data from # the SimulatorDataStore. pin_descs.each do |pin_desc| name = pin_desc.getSignal(0).name # e.g. "RA0" pin_set.getPin name # Trigger the lazy loading. end (0...pin_set.getNumPins).map do |i| MplabPin.new pin_set.getPin(i) end end
processor()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 50 def processor @processor ||= MplabProcessor.new data_store.getProcessor end
program_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 30 def program_memory @program_memory ||= MplabMemory.new data_store.getProgMemory end
sfr_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 22 def sfr_memory @sfr_memory ||= MplabMemory.new data_store.getSFRMemory end
stack_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 34 def stack_memory @stack_memory ||= MplabMemory.new data_store.getStackMemory end
stopwatch_value()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 14 def stopwatch_value @simulator.GetStopwatchValue end
test_memory()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 38 def test_memory @test_memory ||= MplabMemory.new data_store.getTestMemory end
Private Instance Methods
check_peripheral_set()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 89 def check_peripheral_set peripherals = data_store.getProcessor.getPeripheralSet if peripherals.getNumPeripherals == 0 raise 'MPLAB X failed to load any peripherals into the PeripheralSet.' end end
check_peripherals_in_data_store()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 83 def check_peripherals_in_data_store if data_store.getNumPeriphs == 0 raise 'MPLAB X failed to load any peripheral descriptions into the data store.' end end
data_store()
click to toggle source
# File lib/rpicsim/mplab/mplab_simulator.rb, line 79 def data_store @simulator.getDataStore end