| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- from re import search
- from SCons.Errors import UserError
- from fbt_options import OPENOCD_OPTS
- def _get_device_serials(search_str="STLink"):
- import serial.tools.list_ports as list_ports
- return set([device.serial_number for device in list_ports.grep(search_str)])
- def GetDevices(env):
- serials = _get_device_serials()
- if len(serials) == 0:
- raise UserError("No devices found")
- print("\n".join(serials))
- def generate(env, **kw):
- env.AddMethod(GetDevices)
- if (adapter_serial := env.subst("$OPENOCD_ADAPTER_SERIAL")) != "auto":
- env.Append(
- OPENOCD_OPTS=[
- "-c",
- f"adapter serial {adapter_serial}",
- ]
- )
- # Final command is "init", always explicitly added
- env.Append(
- OPENOCD_OPTS=["-c", "init"],
- )
- env.SetDefault(
- OPENOCD_GDB_PIPE=[
- "|openocd -c 'gdb_port pipe; log_output debug/openocd.log' ${[SINGLEQUOTEFUNC(OPENOCD_OPTS)]}"
- ],
- GDBOPTS_BASE=[
- "-ex",
- "target extended-remote ${GDBREMOTE}",
- "-ex",
- "set confirm off",
- "-ex",
- "set pagination off",
- ],
- GDBOPTS_BLACKMAGIC=[
- "-ex",
- "monitor swdp_scan",
- "-ex",
- "monitor debug_bmp enable",
- "-ex",
- "attach 1",
- "-ex",
- "set mem inaccessible-by-default off",
- ],
- GDBPYOPTS=[
- "-ex",
- "source debug/FreeRTOS/FreeRTOS.py",
- "-ex",
- "source debug/flipperapps.py",
- "-ex",
- "source debug/PyCortexMDebug/PyCortexMDebug.py",
- "-ex",
- "svd_load ${SVD_FILE}",
- "-ex",
- "compare-sections",
- ],
- JFLASHPROJECT="${ROOT_DIR.abspath}/debug/fw.jflash",
- )
- def exists(env):
- return True
|