Minipush: Load kernel binary on demand

Allows to keep Minipush running while compiling in parallel.
pull/49/head
Andre Richter 4 years ago
parent 7d86a1d6ab
commit 8b3cd1e2e0
No known key found for this signature in database
GPG Key ID: 2116C1AB102F615E

@ -19,11 +19,12 @@ class ProtocolError < StandardError; end
# The main class
class MiniPush
def initialize(serial_name, binary_image)
def initialize(serial_name, binary_image_path)
@target_serial_name = serial_name
@target_serial = nil
@binary_size = File.size(binary_image)
@binary_image = File.binread(binary_image)
@binary_image_path = binary_image_path
@binary_size = nil
@binary_image = nil
@host_console = IO.console
end
@ -78,6 +79,11 @@ class MiniPush
end
end
def load_binary
@binary_size = File.size(@binary_image_path)
@binary_image = File.binread(@binary_image_path)
end
def send_size
@target_serial.print([@binary_size].pack('L<'))
raise ProtocolError if @target_serial.read(2) != 'OK'
@ -166,6 +172,7 @@ class MiniPush
def run
open_serial
wait_for_binary_request
load_binary
send_size
send_binary
terminal

Loading…
Cancel
Save