Skip to main content

A flexible configuration and remote contol tool for openocd.

Project description

Upload Python Package

oocd-tool

A flexible configuration and remote contol tool for openocd.

This tool was made to create a wireless development environment for a project. It's made public since a lack of easy solutions and it will be developed futher if there are a interrest in this tool.

Features

  1. Controls openocd remotely through gRPC. Makes wireless debugging/programming possible with a raspberry pi.
  2. Runs openocd as background process then debugging. (Windows compatible)
  3. Runs gdb/openocd in pipe mode.
  4. Capable of log streaming from remote openocd host.

Usage

Define custom sections as needed using python syntax for configparser.ExtendedInterpolation A default .oocd-tool directory with example files is create in the home dir (at first run). Can be overwritten on command line with a '-c'.

config.xx: keys defines config files. They can be specified with full path or none, they are prefix with the default configuration directory if no path is given.

3 configuration files is available in the examples directory for each operation mode. (remote.cfg, pipe.cfg and spawn.cfg). The active default configuration is should be placed in ~/.oocd-tool/oocd-tool.cfg with the rest of the configuration files.

Command line syntax:

oocd-tool [-c oocd-tool.cfg] <action> /some_path/elffile

Use '-d' for a dry run. Prints only commands.

Command line syntax gRPC daemon, see examples folder for configuration: oocd-rpcd -c oocd-rpcd.cfg

Tags avalible:

@TMPFILE@  creates a temporary file. May only be used in pairs once, and not in default section.
@CONFIG@   equales to default config path or path from '-c' on command line
@FCPU@     value from '--fcpu' parameter
@ELFFILE@  elf filename

Modes:

gdb          Runs gdb standalone / openocd remotely.
openocd      Runs openocd standalone, localy or remotely.
gdb_openocd  Spawns openocd in backgroup (used for Windows support).

Installation:

git clone git@github.com:jasa/oocd-tool.git
cd oocd-tool
python -m build
pip install dist/oocd-tool-0.0.3.tar.gz --user

Installation of RPC daemon on a remote pi4.

# Tested on: Pi OS - Debian Buster
sudo apt install openocd

sudo adduser ocd
su - ocd
git clone https://github.com/jasa/oocd-tool.git
cd oocd-tool
python -m build
pip install dist/oocd_tool-0.1.0.tar.gz
cp examples/oocd-rpcd.service to /etc/systemd/system
mkdir ~/.oocd-tool
cp examples/openocd.cfg ~/.oocd-tool
# install your programming device (st-link, cmsis-dap, ...) and copy needed file to `/etc/udev.rules.d`
# edit config file ~/.oocd-tool/openocd.cfg as needed
# exit as 'ocd' user
sudo usermod -g <udev group>   # if needed
sudo udevadm control --reload-rules
sudo udevadm trigger

sudo systemctl daemon-reload
sudo systemctl start oocd-rpcd
sudo systemctl enable oocd-rpcd

Status

  • Tested superficial in Windows with openocd 0.11.0, gdb 10.3
  • A ELF is mandatory on command line, even if it's not used. Needs to be fixed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oocd-tool-0.1.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oocd_tool-0.1.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file oocd-tool-0.1.1.tar.gz.

File metadata

  • Download URL: oocd-tool-0.1.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for oocd-tool-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5c25f4d4b66de77c8284423996593f6efef76ab55b7a44c29a643831f3ec5172
MD5 5d9364e6e838b2cacc00a9e2a2a69360
BLAKE2b-256 6c3f0ff9ebd8052364c52bbeef19a8f752aab2b288a7b653790d6eecfbb345d8

See more details on using hashes here.

File details

Details for the file oocd_tool-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: oocd_tool-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for oocd_tool-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6147759d336d6417458ffe31042cc979dd9cb064aef293d1c473cf2484ba4b7c
MD5 319534c73a2033c29539aedb82f1f011
BLAKE2b-256 fe66adc098c2beb3748cd608b6b2f1d64e1787146d108fa01d16ee0f95082668

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page