Commit graph

23 commits

Author SHA1 Message Date
Marti Bolivar
90c0cfdc81 scripts: zephyr_flash_debug: add debug support to pyocd
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
9cf7d106f1 scripts: zephyr_flash_debug: refactor pyocd runner
Prep work for adding debug and debugserver support. No significant
functional differences.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
77c2ef54f5 scripts: zephyr_flash_debug: add debug support to openocd
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
4a665366d9 scripts: zephyr_flash_debug: refactor openocd runner
Preparatory work for supporting debugging and flashing. No significant
behavioral changes.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
9224b54105 scripts: zephyr_flash_debug: fix ARC OPENOCD_EXTRA_INIT
Though it isn't used by any in-tree Makefile.boards, looking at the
RIOT OS build system, this is meant to be split along lexical
boundaries defined by the shell, not just whitespace.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
9e619b0d26 scripts: zephyr_flash_debug: make ARC runner portable
Use run_client_and_server() to work across supported platforms.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
3e01cef06f scripts: zephyr_flash_debug: teach runners a client/server abstraction
Several debugging scripts run setsid before executing a server
process, then run GDB with SIGINT ignored.

Relying on setsid is not portable. Add a popen_ignore_int() helper
that provides a portable alternative, and provide a generic
run_server_and_client() in ZephyrBinaryRunner which uses it to
abstract the pattern.

Subsequent patches will use this to implement the 'debug' command.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
45440be89e scripts: zephyr_flash_debug: debug like arc_debugger.sh
Add debug and debugserver support.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
8ceb7ca385 scripts: zephyr_flash_debug: add missing nrfjprog line
The --pinreset line from the shell script is missing.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Marti Bolivar
fbe2fcda88 scripts: zephyr_flash_debug: generalize to support debugging
Replace the 'flash' method with a 'run' method, which takes a command
to run (flash, debug, or debugserver).

Rename the classes involved appropriately, and generalize the factory
interfaces as needed.

Add documentation and theory of ops.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-28 13:31:22 -04:00
Leandro Pereira
1d38d98284 scripts: Fix ESP_TOOL detection in zephyr_flash_debug.py
`espidf` was written as `espdif`, causing auto-detection to fail.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2017-10-19 17:13:59 -04:00
Marti Bolivar
a22a7fe1f8 scripts: zephyr_flash_debug: fix PYOCD_DAPARG
The environment variable is PYOCD_DAPARG, not PYOCD_DAPARG_ARG.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-18 15:24:38 -04:00
Marti Bolivar
a645257988 fix "scripts: zephyr_flash_debug: flash like dfuutil.sh"
- When flashing with dfu-util while alt is not a number, the name must
  be quoted.

- Add missing commas in self.list_pattern

- Always call dfu-util with the VID/PID

Fixes: 257fa4af9 ("scripts: zephyr_flash_debug: flash like dfuutil.sh")
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-13 12:50:40 -04:00
Marti Bolivar
73d560e412 fix "scripts: zephyr_flash_debug: flash like openocd.sh"
All commands need to have quotation marks stripped.

Fixes: bee6f9e73 ("scripts: zephyr_flash_debug: flash like openocd.sh")
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-13 12:50:40 -04:00
Marti Bolivar
b1e6ea27a7 scripts: zephyr_flash_debug: flash like arc_debugger.sh
Only tested by comparing commands that would be run.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
cdffad214f scripts: zephyr_flash_debug: flash like nios2.sh
Only tested by comparing commands that would be run.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
bee6f9e73e scripts: zephyr_flash_debug: flash like openocd.sh
Add support for flashing targets compatible with openocd.sh.

Tested on disco_l475_iot1.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
61aa0e06f5 scripts: zephyr_flash_debug: flash like nrf_flash.sh
Add support for flashing targets compatible with nrf_flash.sh.

Tested on nrf52840_pca10056.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
1126523396 scripts: zephyr_flash_debug: flash like esp32.sh
Add support for flashing targets compatible with esp32.sh.

Only tested by comparing commands that would be run.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
289c0f0304 scripts: zephyr_flash_debug: flash like bossa-flash.sh
Add support for flashing targets compatible with bossa-flash.sh.

This is something of a bug-for-bug reimplementation, as the existing
flashing script makes some potentially unsafe assumptions.

Only tested by comparing commands that would be run.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
4bfbe251ea scripts: zephyr_flash_debug: flash like pyocd.sh
Add support for flashing targets compatible with pyocd.sh.

Tested on 96b_nitrogen, nrf52_blenano2, and frdm_k64f, with and
without PYOCD_BOARD_ID. Additionally, frdm_k64f was tested with
PYOCD_DAPARG_ARG='limit_packets=True'.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
257fa4af90 scripts: zephyr_flash_debug: flash like dfuutil.sh
Add support for flashing targets compatible with dfuutil.sh.

Tested on 96b_carbon.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00
Marti Bolivar
113ee65b89 build: interpose zephyr_flash_debug.py in flash target
Zephyr board flashing and debugging is done via shell scripts. It
would improve the CMake transition to remove the shell dependency.

Add zephyr_flash_debug.py to allow phasing out the shell scripts.
This takes two arguments:

- a command (eventually flash, debug, and debugserver, but just flash
  for now)

- the path to the corresponding shell script

zephyr_flash_debug.py runs the command in pure Python if it
knows how. Otherwise, it falls back on the shell script. In
this patch, it always falls back. Subsequent patches add support
for existing flash backends.

Invoke zephyr_flash_debug.py from the Makefile flash target, but only
if USE_ZEPHYR_FLASH_DEBUG_SHELL is empty. This lets users keep existing
behavior in case of issues, and can be removed later once the Python
script is more widely tested.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-10-12 23:53:20 -07:00