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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15ef32b265fed46b2c0bf5029a12a5def577097b0a24c08c069203b96e21a517 |
|
MD5 | a03fe8f91785234c23ba9947418095b8 |
|
BLAKE2b-256 | 655b06584921c0888919635dbca98662e120ac3dbedcedf98da526cb67632f15 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9075665feea83a6904ec246819039e195117a63d9ec3f1e9717e34fa1a6017b0 |
|
MD5 | 8ead2b2d7fefd7d4f1e90036ab63ef0b |
|
BLAKE2b-256 | 0c81601f0a6bfcf4c0a8df87a7bab008b782d51072b4e330deee4c5b4919b5a5 |