module SVISubsystemNVM

Public Instance Methods

nvm_load_file(bank, offset, path) click to toggle source
# File lib/svi/api.rb, line 79
def nvm_load_file bank, offset, path
  raise ArgumentError, 'file (%s) is not readable' % path.to_s unless Pathname.new(path).readable_real?

  data = IO.binread(path).unpack 'C*'
  data = data + [0]*(data.length % 1024 > 0 ? (1024 - data.length%1024) : 0)
  data = data.each_slice(1024).to_a

  data.each_with_index do |packet, i|
    nvm_write bank, offset + i*1024, packet.pack('C*')
  end

  [0]
end
nvm_verify_file(bank, offset, path) click to toggle source
# File lib/svi/api.rb, line 93
def nvm_verify_file bank, offset, path
  raise ArgumentError, 'file (%s) is not readable' % path.to_s unless Pathname.new(path).readable_real?

  data = IO.binread(path).unpack 'C*'
  data = data + [0]*(data.length % 1024 > 0 ? (1024 - data.length%1024) : 0)
  data = data.each_slice(1024).to_a

  data.each_with_index do |packet, i|
    res = nvm_read(bank, offset + i*1024, 1024)[0]

    return [1, res, packet.pack('C*')] if res != packet.pack('C*')
  end

  [0]
end