1#!/usr/bin/env python3 2from pyocd.core.helpers import ConnectHelper 3from pyocd.flash.file_programmer import FileProgrammer 4from pyocd.debug.elf.symbols import ELFSymbolProvider 5from pyocd.core.target import Target 6from pyocd.debug.elf.elf import ELFBinaryFile 7from pyocd.flash.loader import MemoryLoader 8import getserial 9 10import time 11import os.path 12 13import serial 14import re 15import io 16 17import logging 18logging.basicConfig(level=logging.ERROR) 19 20 21 22def run_out(exe_path,uuid): 23 lines= "" 24 25 with ConnectHelper.session_with_chosen_probe(unique_id = uuid) as session: 26 print("Connecting") 27 board = session.board 28 target = board.target 29 #flash = target.memory_map.get_boot_memory() 30 31 # Load firmware into device. 32 FileProgrammer(session).program(exe_path) 33 34 #target.elf = elf_path 35 36 37 #provider = ELFSymbolProvider(target.elf) 38 #main_addr = provider.get_symbol_value("main") 39 #print("main() address: 0x%X" % main_addr) 40 41 ## Set breakpoint. 42 #target.set_breakpoint(main_addr) 43 44 #target.reset() 45 lines = getserial.read_stdout(target) 46 return("".join(lines)) 47 #target.resume() 48 ## 49 ## 50 #target.reset() 51 ## 52 ### Wait until breakpoint is hit. 53 #while target.get_state() != Target.State.HALTED: 54 # pass 55 ## 56 #pc = target.read_core_register("pc") 57 #print("pc: 0x%X" % pc) 58 # 59 #target.remove_breakpoint() 60 # 61 #target.resume() 62 63if __name__ == "__main__": 64 path = "." 65 out = "cprj/out/test/MPS3-Corstone-300" 66 bin = "Release/test.axf" 67 68 axf_path = os.path.join(path,out,bin) 69 70 #axf=ELFBinaryFile(axf_path) 71 #axf.close() 72 73 lines = run_out(axf_path,"L85986697A") 74 75 76 print(lines) 77 78