{ "info": { "author": "Benjamin F\u00fcldner", "author_email": "benjamin@fueldner.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Embedded Systems", "Topic :: System :: Hardware", "Topic :: System :: Hardware :: Hardware Drivers" ], "description": ".. image:: https://img.shields.io/pypi/v/pysvd\n :target: https://pypi.org/project/pysvd\n :alt: Latest version on PyPi\n\n.. image:: https://img.shields.io/pypi/pyversions/pysvd\n :target: https://pypi.org/project/pysvd\n :alt: Python versions\n\n.. image:: https://img.shields.io/pypi/l/pysvd\n :target: https://pypi.org/project/pysvd\n :alt: License\n\n.. image:: https://travis-ci.org/bfueldner/pysvd.svg?branch=master\n :target: https://travis-ci.org/bfueldner/pysvd\n :alt: Build state\n\n.. image:: https://coveralls.io/repos/github/bfueldner/pysvd/badge.svg?branch=master\n :target: https://coveralls.io/github/bfueldner/pysvd?branch=master\n :alt: Coverage\n\n\npysvd\n=====\n\nA **S**\\ ystem **V**\\ iew **D**\\ escription v1.3.5 parser package for Python 3.5+.\n\n\nWhat is SVD?\n------------\n\nSVD is a XML based file format developed by ARM to describe the software sight of a microcontroller device. It contains all peripherals,\nregisters, bitfields and enumeration values to access every part on a device. For further information have a look at the `format description `_.\n\n\nMotivation\n----------\n\nSVD is a greate format to develop embedded systems on. Existing parser out in the field did not support all features (derive, dimension) supported by the format.\n\nWith the parsed system view tree, you can several cool things:\n\n* Automatic register generation (BSP skeleton)\n* Linker file generation\n* GDB register debug symbol generation\n* Custom datasheet generation\n\n\nConformance\n-----------\n\nThis parser is build to reflect 1:1 the XSD format behind SVD. The only compromis has been made by the nodes ``peripherals``, ``registers`` and ``fields`` that are simple container objects.\n\nThe node names and attributes follow the same naming convention in XML as in Python to map them easier between the languages.\n\n\nInstallation\n------------\n\nInstall from PyPI_ using pip::\n\n $ pip3 install pysvd\n\nInstall latest master from GitHub_::\n\n $ pip3 install https://github.com/bfueldner/pysvd/archive/master.zip\n\nIf you want to be able to change the code while using it, clone it and install the required pip packages::\n\n $ git clone https://github.com/bfueldner/pysvd.git\n $ cd pysvd\n $ pip3 install -e .\n\n.. _PyPi: https://pypi.org\n.. _GitHub: https://github.com/bfueldner/pysvd\n\n\nExample\n-------\n\nAs an example of the parser, a \"SVD to ReST\" converter ``svd2rst`` is included as a command line tool::\n\n $ svd2rst --help\n usage: svd2rst [-h] --svd FILE --output FILE\n\n SVD to ReST converter\n\n optional arguments:\n -h, --help show this help message and exit\n --svd FILE System view description (SVD) file\n --output FILE, -o FILE ReST output file\n --version show program's version number and exit\n\nRunning ``svd2rst`` on a Cortex-M3 core definition would generate this output::\n\n Device\n ======\n\n :Name: ARMCM3\n :Description: ARM 32-bit Cortex-M3 Microcontroller based device, CPU clock up to 80MHz, etc.\n :Series: ARMCM\n :Version: 1.2\n :Vendor: ARM Ltd.\n\n :Address unit bits: 8\n :Data width: 32\n\n CPU\n ===\n\n :Name: Cortex-M3\n :Revision: r2p1\n :Endian: little\n :MPU: no\n :FPU: no\n :VTOR: yes\n :Interrupts: 16\n :Interrupt priorities: 16\n :Vendor SYSTICK: no\n\n Memory mapping\n ==============\n\n ========== ==========\n Peripheral Address\n ========== ==========\n SYSTICK_ 0xE000E010\n NVIC_ 0xE000E100\n SCB_ 0xE000ED00\n MPU_ 0xE000ED90\n ========== ==========\n\n Interrupt mapping\n =================\n\n ========== =========\n Peripheral Interrupt\n ========== =========\n SCB_ 1\n SYSTICK_ 15\n ========== =========\n\n Peripheral\n ==========\n\n .. _SYSTICK:\n\n System timer register (SYSTICK)\n -------------------------------\n\n :Address: 0xE000E010\n :Size: 0x0010\n :Usage: registers\n :Interrupt: 15\n\n ========================= ======\n Register Offset\n ========================= ======\n `CSR `_ 0x00\n `RVR `_ 0x04\n `CVR `_ 0x08\n `CALIB `_ 0x0C\n ========================= ======\n\n .. _SYSTICK.CSR:\n\n Control and Status Register\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n :Name: CSR\n :Size: 32\n :Offset: 0x00\n :Reset: 0x00000000\n :Access: read-write\n\n - Bit 0 (read-write) - ENABLE\n Enable Timer\n\n - Bit 1 (read-write) - TICKINT\n Generate Exception\n\n - Bit 2 (read-write) - CLKSOURCE\n Clock source\n\n - 0 - EXTERNAL\n External Clock\n - 1 - PROCESSOR\n CPU Clock\n\n - Bit 16 (read-write) - COUNTFLAG\n Counted to zero\n\n .. _SYSTICK.RVR:\n\n Reload Value Register\n ^^^^^^^^^^^^^^^^^^^^^\n\n :Name: RVR\n :Size: 32\n :Offset: 0x04\n :Reset: 0x00000000\n :Access: read-write\n\n - Bits 23:0 (read-write) - RELOAD\n Reload value for CVR when counter reaches zero\n\n .. _SYSTICK.CVR:\n\n Current Value Register\n ^^^^^^^^^^^^^^^^^^^^^^\n\n :Name: CVR\n :Size: 32\n :Offset: 0x08\n :Reset: 0x00000000\n :Access: read-write\n\n - Bits 31:0 (read-write) - CURRENT\n Current counter value\n\n .. _SYSTICK.CALIB:\n\n Calibration Value Register\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n :Name: CALIB\n :Size: 32\n :Offset: 0x0C\n :Reset: 0x00000000\n :Access: read-only\n\n - Bits 23:0 (read-only) - TENMS\n Reload value to use for 10ms timing\n\n - Bit 30 (read-only) - SKEW\n Clock Skew\n\n - 0 - EXACT\n 10ms calibration value is exact\n - 1 - INEXACT\n 10ms calibration value is inexact, because of the clock frequency\n\n - Bit 31 (read-only) - NOREF\n No Ref\n\n - 0 - AVAILABLE\n Reference clock available\n - 1 - UNAVAILABLE\n Reference clock is not available\n\n ...\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://code.fueldner.net/opensource/pysvd", "keywords": "SVD CMSIS ARM", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pysvd", "package_url": "https://pypi.org/project/pysvd/", "platform": "", "project_url": "https://pypi.org/project/pysvd/", "project_urls": { "Bug Reports": "https://github.com/bfueldner/pysvd/issues", "Homepage": "https://code.fueldner.net/opensource/pysvd", "Source": "https://github.com/bfueldner/pysvd" }, "release_url": "https://pypi.org/project/pysvd/0.1.3/", "requires_dist": null, "requires_python": ">=3.5", "summary": "System View Description parser", "version": "0.1.3" }, "last_serial": 5797855, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b16ebc270938259db16ffc259c87488e", "sha256": "a0c57d1959cc7a53e53fd3e17237920ee204bf6b0ffc79521ea1bb455057e780" }, "downloads": -1, "filename": "pysvd-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b16ebc270938259db16ffc259c87488e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 23993, "upload_time": "2019-09-04T21:31:43", "url": "https://files.pythonhosted.org/packages/73/9d/7e583fc622cd379c005c3230ce9f4790322f2227ab77ee23c9b9d442b019/pysvd-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c087432ccff98cf6eceba2c19be600f6", "sha256": "4d67e45e148ceea45f264236f02317a1bfbc1363946488595328f5920307c72b" }, "downloads": -1, "filename": "pysvd-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c087432ccff98cf6eceba2c19be600f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 30914, "upload_time": "2019-09-05T10:10:47", "url": "https://files.pythonhosted.org/packages/41/7c/6c7c546a1a9ebd40a685e0f70fcde811f31cf8e70d937d0e587cc115883f/pysvd-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1715512e63e7f5ce06b1e17022f43a20", "sha256": "b28f94f5a52c14bc43276fa42bbf317c5730ae4fa9b9edd69b597e983a3f00ea" }, "downloads": -1, "filename": "pysvd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1715512e63e7f5ce06b1e17022f43a20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 27875, "upload_time": "2019-09-05T10:10:49", "url": "https://files.pythonhosted.org/packages/bf/1d/0ef13773f068b0fc58a7aeb47473d4f075b47c1fff82a8a7af4b63906bd4/pysvd-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2d089ecf32322c3ce7720b2cbb4114e2", "sha256": "81c769853140c5a9fab09bd0531eeed6be60b5c0a753cca9949f0486fd87a436" }, "downloads": -1, "filename": "pysvd-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2d089ecf32322c3ce7720b2cbb4114e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31323, "upload_time": "2019-09-06T21:34:23", "url": "https://files.pythonhosted.org/packages/69/00/f51be9e6465055d54706abf068aa0c01172848169fdc08bb76d4245cfd1d/pysvd-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad1039e4ac5b0f3d556255385fff6963", "sha256": "5d743c5a4d9f6adb39aa96841f5e69302126e172e29033166397a3370b99ab91" }, "downloads": -1, "filename": "pysvd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ad1039e4ac5b0f3d556255385fff6963", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28004, "upload_time": "2019-09-06T21:34:24", "url": "https://files.pythonhosted.org/packages/d5/3f/330c168286f91611188047e63e7ba47b43fe06d937bb06a5b68a6691258a/pysvd-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8cecf306fda117481837a614df8321af", "sha256": "2a467473010b90ff515242e1cb2ff644356fec09379b00dd709c17fe37c42c1d" }, "downloads": -1, "filename": "pysvd-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8cecf306fda117481837a614df8321af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31420, "upload_time": "2019-09-08T00:25:21", "url": "https://files.pythonhosted.org/packages/3b/a0/9998ae00a106b79222b049c4a7d8e37fd4a4b6cc3620ea4e39de1b4edcc8/pysvd-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54d5cd7b00f450238dd2f9761259c3fb", "sha256": "1bdaf52d1e3e2ee03c3e0ed662be935c2c38f0a83843ea59074da0a921e044ee" }, "downloads": -1, "filename": "pysvd-0.1.3.tar.gz", "has_sig": false, "md5_digest": "54d5cd7b00f450238dd2f9761259c3fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28104, "upload_time": "2019-09-08T00:25:22", "url": "https://files.pythonhosted.org/packages/65/0f/14c2adb3a5493be2a42ac87de60850e246ed9e4d49d7607f69935e47d6a5/pysvd-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8cecf306fda117481837a614df8321af", "sha256": "2a467473010b90ff515242e1cb2ff644356fec09379b00dd709c17fe37c42c1d" }, "downloads": -1, "filename": "pysvd-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8cecf306fda117481837a614df8321af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31420, "upload_time": "2019-09-08T00:25:21", "url": "https://files.pythonhosted.org/packages/3b/a0/9998ae00a106b79222b049c4a7d8e37fd4a4b6cc3620ea4e39de1b4edcc8/pysvd-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54d5cd7b00f450238dd2f9761259c3fb", "sha256": "1bdaf52d1e3e2ee03c3e0ed662be935c2c38f0a83843ea59074da0a921e044ee" }, "downloads": -1, "filename": "pysvd-0.1.3.tar.gz", "has_sig": false, "md5_digest": "54d5cd7b00f450238dd2f9761259c3fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28104, "upload_time": "2019-09-08T00:25:22", "url": "https://files.pythonhosted.org/packages/65/0f/14c2adb3a5493be2a42ac87de60850e246ed9e4d49d7607f69935e47d6a5/pysvd-0.1.3.tar.gz" } ] }