Commit ccacaab4 authored by Martí Bolívar's avatar Martí Bolívar Committed by Anas Nashif
Browse files

scripts: runner: pyocd: support DT-based flashing



Enable DT support in the pyOCD flasher, and turn it on in the build
system.

Signed-off-by: default avatarMarti Bolivar <marti@opensourcefoundries.com>
parent 1645d372
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
set_ifndef(BOARD_FLASH_RUNNER pyocd)
set_ifndef(BOARD_DEBUG_RUNNER pyocd)
board_finalize_runner_args(pyocd) # No default arguments to provide.
board_finalize_runner_args(pyocd "--dt-flash=y")
+14 −4
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@

import os
import sys

from .core import ZephyrBinaryRunner
from .core import ZephyrBinaryRunner, RunnerCaps, BuildConfiguration

DEFAULT_PYOCD_GDB_PORT = 3333

@@ -15,7 +14,8 @@ DEFAULT_PYOCD_GDB_PORT = 3333
class PyOcdBinaryRunner(ZephyrBinaryRunner):
    '''Runner front-end for pyOCD.'''

    def __init__(self, target, flashtool='pyocd-flashtool',
    def __init__(self, target,
                 flashtool='pyocd-flashtool', flash_addr=0x0,
                 gdb=None, gdbserver='pyocd-gdbserver',
                 gdb_port=DEFAULT_PYOCD_GDB_PORT, tui=False,
                 bin_name=None, elf_name=None,
@@ -24,6 +24,7 @@ class PyOcdBinaryRunner(ZephyrBinaryRunner):

        self.target_args = ['-t', target]
        self.flashtool = flashtool
        self.flash_addr_args = ['-a', hex(flash_addr)] if flash_addr else []
        self.gdb_cmd = [gdb] if gdb is not None else None
        self.gdbserver = gdbserver
        self.gdb_port = gdb_port
@@ -45,6 +46,10 @@ class PyOcdBinaryRunner(ZephyrBinaryRunner):
    def name(cls):
        return 'pyocd'

    @classmethod
    def capabilities(cls):
        return RunnerCaps(flash_addr=True)

    @classmethod
    def do_add_parser(cls, parser):
        parser.add_argument('--target', required=True,
@@ -77,8 +82,12 @@ class PyOcdBinaryRunner(ZephyrBinaryRunner):
                      file=sys.stderr)
                args.daparg = daparg

        build_conf = BuildConfiguration(os.getcwd())
        flash_addr = cls.get_flash_address(args, build_conf)

        return PyOcdBinaryRunner(
            args.target, flashtool=args.flashtool, gdb=args.gdb,
            args.target, flashtool=args.flashtool,
            flash_addr=flash_addr, gdb=args.gdb,
            gdbserver=args.gdbserver, gdb_port=args.gdb_port, tui=args.tui,
            bin_name=args.kernel_bin, elf_name=args.kernel_elf,
            board_id=args.board_id, daparg=args.daparg, debug=args.verbose)
@@ -97,6 +106,7 @@ class PyOcdBinaryRunner(ZephyrBinaryRunner):
            raise ValueError('Cannot flash; bin_name is missing')

        cmd = ([self.flashtool] +
               self.flash_addr_args +
               self.daparg_args +
               self.target_args +
               self.board_args +