mps3run.py 1.8 KB

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