def main(): # Obtain the first execution context debugger = Debugger() ec = debugger.getCurrentExecutionContext() # Assumed the image file is located on the project folder imgDir = getImageDir(ec) image = loadImage(imgDir + '/mnist/test_7.jpg') #--- store image --- adr = 0x80150000 # TESTDATA 0x80370000 to 0x80370C40 (size 0xC40) adr = storeImage(ec, adr, image, 7)
def main(): # Obtain the first execution context debugger = Debugger() ec = debugger.getCurrentExecutionContext() # Assumed the image file is located on the project folder imgDir = getImageDir(ec) #--- load parameters --- lay0_params = loadParams(imgDir + '/cifar-10/SaveModel/CifarModelCnnParamsCnn_v2_layer00.json') lay3_params = loadParams(imgDir + '/cifar-10/SaveModel/CifarModelCnnParamsCnn_v2_layer02.json') lay8_params = loadParams(imgDir + '/cifar-10/SaveModel/CifarModelCnnParamsCnn_v2_layer08.json') lay10_params = loadParams(imgDir + '/cifar-10/SaveModel/CifarModelCnnParamsCnn_v2_layer10.json') #--- store parameters --- s_adr = 0x80100000 print 'Keras_lay[0]' print 'biases{Array[32]}, weights{Array[3][3][3][32]}' adr = storeParams(ec, s_adr, lay0_params, 32, 3, 3, 3, 32) print 'Keras_lay[3]' print 'biases{Array[64]}, weights{Array[3][3][32][64]}' adr = storeParams(ec, adr, lay3_params, 64, 3, 3, 32, 64) print 'Keras_lay[8]' # print 'biases{Array[128]}, weights{Array[512][128]}' # adr = storeParams(ec, adr, lay6_params, 128, 512, 128, 0, 0) print 'biases{Array[1024]}, weights{Array[4096][1024]}' adr = storeParams(ec, adr, lay8_params, 1024, 4096, 1024, 0, 0) print 'Keras_lay[10]' print 'biases{Array[10]}, weights{Array[1024][10]}' e_adr = storeParams(ec, adr, lay10_params, 10, 1024, 10, 0, 0) #--- save stored parameters to binary file --- dscmd = 'dump binary memory "cifar-10/ds5_cifar10_params.bin" S:0x%08x S:0x%08x' % (s_adr, e_adr) ec.executeDSCommand(dscmd)
def main(): # Obtain the first execution context debugger = Debugger() ec = debugger.getCurrentExecutionContext() # Assumed the image file is located on the project folder imgDir = getImageDir(ec) #--- load parameters --- lay0_params = loadParams(imgDir + 'mnist_cnn_train121_params_layer0.json') lay2_params = loadParams(imgDir + 'mnist_cnn_train121_params_layer2.json') lay6_params = loadParams(imgDir + 'mnist_cnn_train121_params_layer6.json') lay8_params = loadParams(imgDir + 'mnist_cnn_train121_params_layer8.json') #--- store parameters --- s_adr = 0x80100000 print 'Keras_lay[0]' print 'biases{Array[16]}, weights{Array[5][5][1][16]}' adr = storeParams(ec, s_adr, lay0_params, 16, 5, 5, 1, 16) print 'Keras_lay[2]' print 'biases{Array[32]}, weights{Array[5][5][16][32]}' adr = storeParams(ec, adr, lay2_params, 32, 5, 5, 16, 32) print 'Keras_lay[6]' print 'biases{Array[128]}, weights{Array[512][128]}' adr = storeParams(ec, adr, lay6_params, 128, 512, 128, 0, 0) print 'Keras_lay[8]' print 'biases{Array[10]}, weights{Array[128][10]}' e_adr = storeParams(ec, adr, lay8_params, 10, 128, 10, 0, 0) #--- save stored parameters to binary file --- dscmd = 'dump binary memory "ds5_mnist_params_v2.bin" S:0x%08x S:0x%08x' % ( s_adr, e_adr) ec.executeDSCommand(dscmd)
def main(): # Obtain the first execution context debugger = Debugger() ec = debugger.getCurrentExecutionContext() # Assumed the image file is located on the project folder imgDir = getImageDir(ec) #--- load parameters --- lay0_params = loadParams(imgDir + '/scripts/mnist_cnn_train121_params_layer0.json') lay2_params = loadParams(imgDir + '/scripts/mnist_cnn_train121_params_layer2.json') lay6_params = loadParams(imgDir + '/scripts/mnist_cnn_train121_params_layer6.json') lay8_params = loadParams(imgDir + '/scripts/mnist_cnn_train121_params_layer8.json') #--- store parameters --- adr = 0x80300000 print 'Keras_lay[0]' print 'biases{Array[16]}, weights{Array[5][5][1][16]}' adr = storeParams(ec, adr, lay0_params, 16, 5, 5, 1, 16) print 'Keras_lay[2]' print 'biases{Array[32]}, weights{Array[5][5][16][32]}' adr = storeParams(ec, adr, lay2_params, 32, 5, 5, 16, 32) print 'Keras_lay[6]' print 'biases{Array[128]}, weights{Array[512][128]}' adr = storeParams(ec, adr, lay6_params, 128, 512, 128, 0, 0) print 'Keras_lay[8]' print 'biases{Array[10]}, weights{Array[128][10]}' adr = storeParams(ec, adr, lay8_params, 10, 128, 10, 0, 0)
import gc import sys import time from arm_ds.debugger_v1 import Debugger from arm_ds.debugger_v1 import DebugException import config import memory import mmu from DexParser import header_item, string_id_item, type_id_item, proto_id_item, method_id_item # obtain current execution state debugger = Debugger() execution_state = debugger.getCurrentExecutionContext() def retrieve_string_value(string_ptr): length_val = memory.readMemory32(string_ptr + config.offset_string_length) reference_ptr = memory.readMemory32(string_ptr + config.offset_string_reference) char_array = memory.retrieve_char_array(reference_ptr) return char_array def cleanup(): if mmu.page_table is not None: del mmu.page_table gc.collect()
from arm_ds.debugger_v1 import Debugger from arm_ds.debugger_v1 import DebugException import os # The CPU driver is linked at this address LINKADDRESS = 0 # The boot driver is relocated to this address RAMBASE = 0x80000000 debugger = Debugger() ec = debugger.getCurrentExecutionContext() # Load the boot driver symbols im = ec.getImageService() im.loadSymbols('Barrelfish/armv7/sbin/boot_ve', RAMBASE) # Get the CPU driver's final load address. vs = ec.getVariableService() kernel_start = vs.readValue('boot_arguments.cpu_driver_base') offset = int(kernel_start) - LINKADDRESS print "Kernel loaded at: %08x" % int( kernel_start), " linked at %08x" % LINKADDRESS, " offset %08x" % offset # Add CPU driver symbols im.addSymbols('Barrelfish/armv7/sbin/cpu_a9ve', offset) # Finally, advance to arch_init() es = ec.getExecutionService()