From e99c036ed1b96abf0c4b196e5f58ef93b7effdfe Mon Sep 17 00:00:00 2001 From: Marcin Bukat Date: Wed, 26 Nov 2014 00:00:11 +0100 Subject: hwstub_shell: add support for call and jump Change-Id: Ie09d0db21831b79255da858bada7382a08ff4eef Reviewed-on: http://gerrit.rockbox.org/1052 Reviewed-by: Marcin Bukat Tested: Marcin Bukat --- utils/hwstub/tools/lua/hwlib.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 utils/hwstub/tools/lua/hwlib.lua (limited to 'utils/hwstub/tools/lua/hwlib.lua') diff --git a/utils/hwstub/tools/lua/hwlib.lua b/utils/hwstub/tools/lua/hwlib.lua new file mode 100644 index 0000000..5bbd1e2 --- /dev/null +++ b/utils/hwstub/tools/lua/hwlib.lua @@ -0,0 +1,27 @@ +HWLIB = {} + +local h = HELP:create_topic("HWLIB") +h:add("This table contains helper functions for use inside hwstub_shell") + +local hh = h:create_topic("load_blob") +hh:add("load_blob(filename, address) -- this function loads raw binary blob from the file filename") +hh:add(" at specified address in memory. No cache coherency is") +hh:add(" guaranteed") + +hh = h:create_topic("printf") +hh:add("printf(s,...) -- this function is simple wrapper around string.format to emulate") +hh:add(" C printf() function") + +function HWLIB.load_blob(filename, address) + local f = assert(io.open(filename, "rb")) + local bytes = f:read("*all") + for b in string.gmatch(bytes, ".") do + DEV.write8(address, string.byte(b)) + address = address + 1 + end + io.close(f) +end + +function HWLIB.printf(s,...) + return io.write(s:format(...)) +end -- cgit v1.1