Skip to main content

Convert SVD file to json

Project description

Python svd2json package

This package converts a CMSIS SVD (System View Description) file into a more friendly JSon format than raw XML to JSon conversion. The aim of this package is to ease code generation from SVD file. We state that JSon format is the best suitable for this purpose. For instance, it can be used as-is in Jinja2 template processing.

JSon format

The resulting JSon root node is the device node in SVD. XML values are converted to equivalent JSon ones.

NOTE: Some SVD files might be inconsistent in peripherals and/or registers naming convention across devices or in a single SVD file. E.g. only few registers are prefixed by peripheral name but no others, you can optionally trim this prefix in order to keep code generation as simple as possible and reusable among a wide range of devices/mcu. !!ADD REF!!

An Additional interrupts is added in the resulting JSon which collects all interrupts declared across all peripherals. This can ease, for instance, VTOR table generation, one only has to walk through this array.

Script

This package exports the following script:

svd2json

$ svd2json --help
usage: svd2json [-h] -s SVD output

convert svd file to json

positional arguments:
  output             output filename

options:
  -h, --help         show this help message and exit
  -s SVD, --svd SVD  SVD file to convert

How to ...

This package follows PEP517/518/621 for its build system using a single pyproject.toml file and setuptools with dynamic versioning as build-backend. Unit testing, linting etc. are done with tox. The minimal python version is Python 3.10.

Build

One can use any python build front-end. E.g. with PyPA build front-end :

python -m build

Lint

This package is linted by black and flake8. In case of conflict between those two linter, we choose to follow black rules by default as it is closer to PEP8 than flake8.

tox -e lint

Type check

Type checking is done with mypy with a python 3.10+ syntax.

tox -e type

License check

Package license(s) can be checked using reuse.

tox -e licenses

Doc

Documentation is generated using Sphinx and using the numpy style for pythondoc with napoleon extension.

tox -e docs

Unit tests

Package Unit tests are based on pytest with coverage support.

tox -e unittests
tox -e htmlcov

License

Licensed under Apache-2.0

see LICENSE file

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

svd2json-0.1.6.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

svd2json-0.1.6-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file svd2json-0.1.6.tar.gz.

File metadata

  • Download URL: svd2json-0.1.6.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.31.0 requests-toolbelt/0.10.1 urllib3/1.26.17 tqdm/4.65.0 importlib-metadata/6.0.0 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for svd2json-0.1.6.tar.gz
Algorithm Hash digest
SHA256 15ef32b265fed46b2c0bf5029a12a5def577097b0a24c08c069203b96e21a517
MD5 a03fe8f91785234c23ba9947418095b8
BLAKE2b-256 655b06584921c0888919635dbca98662e120ac3dbedcedf98da526cb67632f15

See more details on using hashes here.

File details

Details for the file svd2json-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: svd2json-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.31.0 requests-toolbelt/0.10.1 urllib3/1.26.17 tqdm/4.65.0 importlib-metadata/6.0.0 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for svd2json-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9075665feea83a6904ec246819039e195117a63d9ec3f1e9717e34fa1a6017b0
MD5 8ead2b2d7fefd7d4f1e90036ab63ef0b
BLAKE2b-256 0c81601f0a6bfcf4c0a8df87a7bab008b782d51072b4e330deee4c5b4919b5a5

See more details on using hashes here.

Supported by

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