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 hashes)

Uploaded Source

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