yasimavr


Nameyasimavr JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/clesav/yasimavr
SummaryYet Another SIMulator for AVR
upload_time2024-12-11 22:19:38
maintainerNone
docs_urlNone
authorC. Savergne
requires_python>=3.7
licenseGPLv3
keywords avr simavr
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            yasimavr
========

Yet another simulator for Microchip AVR microcontrollers, inspired from simavr
------------------------------------------------------------------------------

`yasimavr` is a simulator for AVR 8-bits microcontrollers.
It is mainly aimed at the Mega0 and Mega1 series (ATmega80x-160x-320x-480x and others)
with a possibility to work with the "classic" series. (ATMega48/88/168/328 and others)

It is composed of 2 layers:

* a C++ layer for the core API and the various peripheral simulation models
* a Python layer to handle the configuration, utilities, data recording, and external components

Installation
------------

Prerequisites:
**************

* Python (>=3.7) and PIP
* For Linux distributions, libelf is required: (for example: ``sudo apt-get install libelf-dev``)

Install:
********

* execute: ``pip install yasimavr``

The python bindings for the C++ librairies are built with the SIP tool from RiverbankComputing
(https://www.riverbankcomputing.com)

Thanks
------

Quite a few ideas in this software - and even big chunks of code - originate from simavr.
(https://github.com/buserror/simavr)
Big thanks to the simavr authors for this great tool !

Supported IOs
--------------

* GPIO
* SPI
* TWI
* USART

Supported Cores
---------------

The package includes a predefined set of MCU models:

* ATMegaxx8 series (ATMega48/88/168/328)
* ATMega 0-series (ATMega808/809/1608/1609/3208/3209/4808/4809)
* ATTiny 0-series (ATTiny202/204/402/404/406/804/806/807/1604/1606/1607)

Other device models can be easily simulated by creating a YAML config file.
A template is provided, and the example `atgiga4809` shows how to load and use a customised device configuration.
New simulation models for peripherals can be created in Python or C++ using the provided API.

Features
--------

* Real-time/Fast mode : yasimavr can try to sync the simulated time with system time or run as fast as possible
* AVR-GDB integration : yasimavr can acts as a GDB backend stub, with support for breakpoints and watchpoints
* VCD export : yasimavr can export traces of pin states, GPIO ports, interrupt vectors, memory locations or generic signals in Value Change Dump (VCD) files
* MCU dump : at any point of the simulation, yasimavr can create a snapshot of the state of the MCU model, including all registers and memories and save it in a text file.
* "Zombie" mode : yasimavr can directly interact with simulated peripherals by acting as the CPU. This is useful to verify customised peripheral models or a test script.
* Probing : yasimavr can read/write CPU registers or memories on-the-fly. This is useful to force the firmware into certain branches for example, improving test coverage.

How to use
----------

`yasimavr` can be used as a Python package to run a prepared simulation script.
(See the examples for how it looks like)

It also supports direct command line use:

* python -m yasimavr [options] [firmware]

For the list of command line options, execute python -m yasimavr -h

Some simple script examples are available here:
https://github.com/clesav/yasimavr/tree/main/examples

Documentation
-------------

The documentation is still a work in progress but will be progressively completed.
The online version, including an API reference, can be read on the Read the Docs:

* [Development documentation] http://yasimavr.readthedocs.io/en/latest/
* [Stable documentation] http://yasimavr.readthedocs.io/en/stable/

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/clesav/yasimavr",
    "name": "yasimavr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "avr simavr",
    "author": "C. Savergne",
    "author_email": "csavergne@yahoo.com",
    "download_url": "https://files.pythonhosted.org/packages/13/d3/bc8d15cd33c4cfcf91ca11bacadd62d9df33dcbe9979f4eb1fcc0850cbbb/yasimavr-0.1.4.tar.gz",
    "platform": "Any",
    "description": "yasimavr\r\n========\r\n\r\nYet another simulator for Microchip AVR microcontrollers, inspired from simavr\r\n------------------------------------------------------------------------------\r\n\r\n`yasimavr` is a simulator for AVR 8-bits microcontrollers.\r\nIt is mainly aimed at the Mega0 and Mega1 series (ATmega80x-160x-320x-480x and others)\r\nwith a possibility to work with the \"classic\" series. (ATMega48/88/168/328 and others)\r\n\r\nIt is composed of 2 layers:\r\n\r\n* a C++ layer for the core API and the various peripheral simulation models\r\n* a Python layer to handle the configuration, utilities, data recording, and external components\r\n\r\nInstallation\r\n------------\r\n\r\nPrerequisites:\r\n**************\r\n\r\n* Python (>=3.7) and PIP\r\n* For Linux distributions, libelf is required: (for example: ``sudo apt-get install libelf-dev``)\r\n\r\nInstall:\r\n********\r\n\r\n* execute: ``pip install yasimavr``\r\n\r\nThe python bindings for the C++ librairies are built with the SIP tool from RiverbankComputing\r\n(https://www.riverbankcomputing.com)\r\n\r\nThanks\r\n------\r\n\r\nQuite a few ideas in this software - and even big chunks of code - originate from simavr.\r\n(https://github.com/buserror/simavr)\r\nBig thanks to the simavr authors for this great tool !\r\n\r\nSupported IOs\r\n--------------\r\n\r\n* GPIO\r\n* SPI\r\n* TWI\r\n* USART\r\n\r\nSupported Cores\r\n---------------\r\n\r\nThe package includes a predefined set of MCU models:\r\n\r\n* ATMegaxx8 series (ATMega48/88/168/328)\r\n* ATMega 0-series (ATMega808/809/1608/1609/3208/3209/4808/4809)\r\n* ATTiny 0-series (ATTiny202/204/402/404/406/804/806/807/1604/1606/1607)\r\n\r\nOther device models can be easily simulated by creating a YAML config file.\r\nA template is provided, and the example `atgiga4809` shows how to load and use a customised device configuration.\r\nNew simulation models for peripherals can be created in Python or C++ using the provided API.\r\n\r\nFeatures\r\n--------\r\n\r\n* Real-time/Fast mode : yasimavr can try to sync the simulated time with system time or run as fast as possible\r\n* AVR-GDB integration : yasimavr can acts as a GDB backend stub, with support for breakpoints and watchpoints\r\n* VCD export : yasimavr can export traces of pin states, GPIO ports, interrupt vectors, memory locations or generic signals in Value Change Dump (VCD) files\r\n* MCU dump : at any point of the simulation, yasimavr can create a snapshot of the state of the MCU model, including all registers and memories and save it in a text file.\r\n* \"Zombie\" mode : yasimavr can directly interact with simulated peripherals by acting as the CPU. This is useful to verify customised peripheral models or a test script.\r\n* Probing : yasimavr can read/write CPU registers or memories on-the-fly. This is useful to force the firmware into certain branches for example, improving test coverage.\r\n\r\nHow to use\r\n----------\r\n\r\n`yasimavr` can be used as a Python package to run a prepared simulation script.\r\n(See the examples for how it looks like)\r\n\r\nIt also supports direct command line use:\r\n\r\n* python -m yasimavr [options] [firmware]\r\n\r\nFor the list of command line options, execute python -m yasimavr -h\r\n\r\nSome simple script examples are available here:\r\nhttps://github.com/clesav/yasimavr/tree/main/examples\r\n\r\nDocumentation\r\n-------------\r\n\r\nThe documentation is still a work in progress but will be progressively completed.\r\nThe online version, including an API reference, can be read on the Read the Docs:\r\n\r\n* [Development documentation] http://yasimavr.readthedocs.io/en/latest/\r\n* [Stable documentation] http://yasimavr.readthedocs.io/en/stable/\r\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Yet Another SIMulator for AVR",
    "version": "0.1.4",
    "project_urls": {
        "Bug Tracker": "https://github.com/clesav/yasimavr/issues",
        "Homepage": "https://github.com/clesav/yasimavr",
        "Source Code": "https://github.com/clesav/yasimavr"
    },
    "split_keywords": [
        "avr",
        "simavr"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9d3ff6e63636d5d5a66025019053b9b990f1c9ac9d631866b2f4dd9985e9f005",
                "md5": "9dea871330d9df93d495439cf719879c",
                "sha256": "4c931cb3f5372d5ddfb452bc9194fa88ad9953dff4617db07498c94c55395bbf"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9dea871330d9df93d495439cf719879c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 1236220,
            "upload_time": "2024-12-11T22:19:19",
            "upload_time_iso_8601": "2024-12-11T22:19:19.427088Z",
            "url": "https://files.pythonhosted.org/packages/9d/3f/f6e63636d5d5a66025019053b9b990f1c9ac9d631866b2f4dd9985e9f005/yasimavr-0.1.4-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c4ca302aebf33272a1c47a7bbcb200592163e71149dce303ebb6dc6251e323c0",
                "md5": "c6e62b1543d57f0aaa7276e7caeaf86a",
                "sha256": "e2ca2fcba74dc7ea0237114bf4e49c49958c0b6582bc9b12d0f5e520fe571452"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c6e62b1543d57f0aaa7276e7caeaf86a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 1236597,
            "upload_time": "2024-12-11T22:19:22",
            "upload_time_iso_8601": "2024-12-11T22:19:22.559226Z",
            "url": "https://files.pythonhosted.org/packages/c4/ca/302aebf33272a1c47a7bbcb200592163e71149dce303ebb6dc6251e323c0/yasimavr-0.1.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b8673838a6581b084d8384b6976a9d0ac7167257ae60d24bb26f6f4c09d24155",
                "md5": "9e17fe8d3de2f30479b0ca5282c0d542",
                "sha256": "3ef65a4ce210a743f0576c6d0ac35816532ba875281a91aec325ee222c9222db"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9e17fe8d3de2f30479b0ca5282c0d542",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 1238344,
            "upload_time": "2024-12-11T22:19:25",
            "upload_time_iso_8601": "2024-12-11T22:19:25.012111Z",
            "url": "https://files.pythonhosted.org/packages/b8/67/3838a6581b084d8384b6976a9d0ac7167257ae60d24bb26f6f4c09d24155/yasimavr-0.1.4-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24ce4662b744a68c2ad4af657a10d7ecfbcdf1e073c82347e82fa67f40b8c310",
                "md5": "1219167ec60812fd219b23c3dcb73caf",
                "sha256": "3971b9356d11077385a301c9e1ba7462e2bbd3c886023b8b6ee11a6e76d5c094"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1219167ec60812fd219b23c3dcb73caf",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 1240333,
            "upload_time": "2024-12-11T22:19:27",
            "upload_time_iso_8601": "2024-12-11T22:19:27.890278Z",
            "url": "https://files.pythonhosted.org/packages/24/ce/4662b744a68c2ad4af657a10d7ecfbcdf1e073c82347e82fa67f40b8c310/yasimavr-0.1.4-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94015287811f1c60d0b668b78321a914d6ad520b4e5e45cd40808b40ca31cd30",
                "md5": "3d43cf9214fa9991f42b1323c62bb3b4",
                "sha256": "9036a285f859be9d6bfc3e1f3577950a6362b95c709239db327f6bb230222cad"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3d43cf9214fa9991f42b1323c62bb3b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 1235663,
            "upload_time": "2024-12-11T22:19:31",
            "upload_time_iso_8601": "2024-12-11T22:19:31.198545Z",
            "url": "https://files.pythonhosted.org/packages/94/01/5287811f1c60d0b668b78321a914d6ad520b4e5e45cd40808b40ca31cd30/yasimavr-0.1.4-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e44ed08953cbe886bcd3603914329385570018c6897bfe442d0992ba0ca1be0a",
                "md5": "11bb02017573c6307ebf13e179f71651",
                "sha256": "aa9b01fe442464d5c286b90037f4aa4e04a76de844c68b33c4285b6ac459314b"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "11bb02017573c6307ebf13e179f71651",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 1236165,
            "upload_time": "2024-12-11T22:19:32",
            "upload_time_iso_8601": "2024-12-11T22:19:32.925793Z",
            "url": "https://files.pythonhosted.org/packages/e4/4e/d08953cbe886bcd3603914329385570018c6897bfe442d0992ba0ca1be0a/yasimavr-0.1.4-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6952ff87e8487957b58b2940e5146bdb60c2b45aefd54d0a563338f2f3ac8fe3",
                "md5": "97d29676e7bc38475a5843fa1af2b0e9",
                "sha256": "d48f25c6abe001649066d557d00f0eff5d811bb643863a96b7ed1702116e1ae5"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "97d29676e7bc38475a5843fa1af2b0e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 1236737,
            "upload_time": "2024-12-11T22:19:36",
            "upload_time_iso_8601": "2024-12-11T22:19:36.154837Z",
            "url": "https://files.pythonhosted.org/packages/69/52/ff87e8487957b58b2940e5146bdb60c2b45aefd54d0a563338f2f3ac8fe3/yasimavr-0.1.4-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13d3bc8d15cd33c4cfcf91ca11bacadd62d9df33dcbe9979f4eb1fcc0850cbbb",
                "md5": "44e70ce23e5aad4b278528777606b128",
                "sha256": "814ee351f47953acf40c85d9abcebee565c662577a69e07273ae226c05d1fc62"
            },
            "downloads": -1,
            "filename": "yasimavr-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "44e70ce23e5aad4b278528777606b128",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 310241,
            "upload_time": "2024-12-11T22:19:38",
            "upload_time_iso_8601": "2024-12-11T22:19:38.773929Z",
            "url": "https://files.pythonhosted.org/packages/13/d3/bc8d15cd33c4cfcf91ca11bacadd62d9df33dcbe9979f4eb1fcc0850cbbb/yasimavr-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-11 22:19:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "clesav",
    "github_project": "yasimavr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "yasimavr"
}
        
Elapsed time: 0.41688s