class RPicSim::Mplab::MplabMemory
Public Class Methods
new(memory)
click to toggle source
@param memory Should implement the interface com.microchip.mplab.mdbcore.memory.Memory
# File lib/rpicsim/mplab/mplab_memory.rb, line 6 def initialize(memory) @memory = memory end
Public Instance Methods
on_change() { |address_ranges| ... }
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 36 def on_change(&callback) MplabObserver.new(@memory) do |event| next if event.EventType != Mdbcore.memory::MemoryEvent::EVENTS::MEMORY_CHANGED address_ranges = event.AffectedAddresses.map do |mr| mr.Address...(mr.Address + mr.Size) end yield address_ranges end end
read_byte(address)
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 10 def read_byte(address) array = [0].to_java(:byte) @memory.Read(address, 1, array) array.ubyte_get(0) end
read_word(address)
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 28 def read_word(address) @memory.ReadWord(address) end
valid_address?(address)
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 32 def valid_address?(address) @memory.IsValidAddress(address) end
write_byte(address, byte)
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 16 def write_byte(address, byte) array = Java.byte[1].new array.ubyte_set(0, byte) @memory.Write(address, 1, array) byte end
write_word(address, value)
click to toggle source
# File lib/rpicsim/mplab/mplab_memory.rb, line 23 def write_word(address, value) @memory.WriteWord(address, value) value end