Skip to content

Supporting adafruit ATSAMD21 based boards #61

Closed
@wez

Description

@wez

I hack on keyboard hardware and firmware in my spare time, and I do it in bursts. I've previously worked with the nrf52 boards from adafruit and have made contact with @jamesmunns on that front.

I have a few adafruit boards that I'd love to use with rust and I'm willing to help move the ball forwards, but I'm not super sure what to do, in which order, and I'm not sure what the current best practices are.

I'm going to list my assumptions below, can you correct me and/or point me in the right direction?
I suspect some of this aligns with the weekly driver initiative, but some of these are lower level board support things.

Available M0 hardware

I have these boards floating around; they're all based on the ATSAMD21:

I'm looking at targeting the Feather M0 express for a future build, but want to make some progress on the rust side first. Ultimately, I'd like to get pure rust USB peripheral support working on one of these things. I have a couple of cheap SWD debugging adapters.

Game plan

  • apply svd2rust to svd files from http://packs.download.atmel.com/ to generate the low level board support files
  • Publish a crate named something like atsamd21_svd for this
  • Write the human-curated board support crate(s) for these. Should these get published in an adafruit m0 crate? Guidance on structure and naming appreciated! Are there canonical examples of these?
  • Quickstart crate specifically for the adafruit boards? Not sure if this is needed or if the existing cortex-m-quickstart is sufficient. Is there an alternative approach that should be taken? Does
    One step setup #43 make some of this obsolete?

Does that sound like the right plan? What am I missing? Are there folks interested in reviewing/providing feedback on these steps?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    feb-2019-cleanupThese issues are proposed to be closed, as part of a cleanup of issues in February 2019

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions