Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete pin impls #14

Open
1 of 3 tasks
mciantyre opened this issue Jan 1, 2022 · 2 comments
Open
1 of 3 tasks

Complete pin impls #14

mciantyre opened this issue Jan 1, 2022 · 2 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@mciantyre
Copy link
Member

mciantyre commented Jan 1, 2022

We've added Pin implementations on a need-be basis. As a user of this crate, you may notice some peripherals don't have all their pins assigned (like in #12). You may also notice TODOs describing missing implementations. This is expected given the history of this code.

This tracking issue identifies missing Pin implementations that we know about. We welcome contributions that add additional pins. If you find missing implementations, either

  • open a PR with the new additions (like add spi pins as in docu #12) and reference this issue; or
  • open an issue describing the missing pins, and reference this issue

If you'd like to contribute, pick one of the linked issues. Consult the "External Signals and Pin Multiplexing" section of your MCU's reference manual. The table describes which pads support which peripherals, and how to configure those pads.

1010

1060

1170


This issue does not track support for new peripherals. For instance, we know that there's no FLEXIO pin implementations, because we've not defined the FLEXIO pin interface. Open separate issues for these features.

Also, this issue does not track support for new MCU families. Open separate issues / PRs for 1020, 1050, etc. support.

@mciantyre
Copy link
Member Author

mciantyre commented Jan 1, 2022

What should be complete

@mciantyre mciantyre added good first issue Good for newcomers help wanted Extra attention is needed labels Jan 1, 2022
@mciantyre
Copy link
Member Author

mciantyre commented Jan 1, 2022

Bonus points for a tool that can consume SVD files and output human-readable and -maintainable Rust code. Here's some recommendations and informal requirements:

  • Try extracting the pin implementations from the SVD. Any SVD-based approach should ensure that it works with all of the SVDs maintained in the imxrt-ral repository.
  • It should be straightfoward to add new pin traits to the automation. This lets us generate pin implementations for traits that don't exist right now. We have a variety of traits we would already need to support, so we have a good starting point for this.
  • If the output is checked into a VCS, it should support stable re-generation; re-generating all implementations when nothing else changed should produce the same output.
  • If the pads are generated at build time using build.rs, the database that provides the definitions should be small (with "small" not yet defined). Please no large packages, or packages that take a while to download from crates.io.
  • Any approach must also support git and path dependencies, along with the usual crates.io distribution. It's important to maintain this support for development.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant