Skip to main content

A package that generates library files for a peripheral given an intermediary layer (YAML files)

Project description

Peripheral Codegen

This project is an example of how to describe peripherals with an intermediary layer (YAML files) which can be used to generate library files for a peripheral.

It can also generate reference documentation for a peripheral, useful for embedding into datasheets.

The tool works well for I2C devices, while SPI support is in alpha.

This is not an official Google product.

Setup

Note: This project requires Python3. You can install using pip

pip install cyanobyte

Run Codegen

cyanobyte-codegen -t templates/doc.md -o ./build peripherals/MCP4725.yaml

Options

  • -t - A template file. You can provide multiple template files.
  • -o - The output directory where files will be generated.
  • -e - The directory that emboss folder is stored.
  • -d - Debug flag to print out additional information.
  • -c - Clean the output directory before generating files.

One or multiple files can be passed as an argument.

Clean

rm -rf ./build

Run Validator

cyanobyte-validator peripherals/MCP9808.yaml

One or multiple files can be passed as an argument.

Peripheral YAML file

The current spec is described in docs/cyanobyte.md. You can find all examples in the peripherals/ directory.

Test

Lint

python3 -m pylint --rcfile=test/pylintrc cyanobyte/*.py
python3 -m pylint --rcfile=test/pylintrc test/sampleData/*.py

Unit test

python3 -m unittest test.test_codegen

Templates

The templates directory includes a set of canonical templates which can be used with this codegen tool.

The peripherals directory includes a set of peripheral description files that have been created along with the project. It is not an exhaustive list.

Development setup

pip install -r requirements.txt --user

For more advanced development, also install the dev list. pip install -r requirements-dev.txt --user

Contributors

Contributions are welcome! See CONTRIBUTING.md for more information.

When a pull request is submitted, a continuous integration task is run. The CI task must be completed successfully before a patch is merged. You can see the specific rules run in cloudbuild.yaml.

License

See LICENSE

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

cyanobyte-0.0.2.tar.gz (1.9 MB view details)

Uploaded Source

File details

Details for the file cyanobyte-0.0.2.tar.gz.

File metadata

  • Download URL: cyanobyte-0.0.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for cyanobyte-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d6c698aca4796fe5f13723a615e2bbe33d980a45cd61894093f47791dd40d2d3
MD5 171ca749ed7a8fbde5a70d179a71c954
BLAKE2b-256 6fd3fd2e622b2a7309d4b6ef7c126f17d22fbe2fbf313a9359c75a09e688a0a5

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