This crate contains proc-macros to be used by the atsamd-hal crate. It is
not intended to be used outside this crate, and no stability guarantees are
made.
The main purpose of this crate is to separate the task of writing the code to support peripherals of the atsamd families from the task of figuring out which specific devices has those peripherals.
The actual mapping of devices to peripherals is specified in the
devices.yaml file. In the atsamd-hal crate you then only need to care
about the peripherals themselves (and their different variants).
To use the macros in this crate, you need to specify a peripheral expression, which can be one of the following:
- A peripheral from
devices.yamlin the form of a string. Examples:"serial-numbers"or"sercom3". - A peripheral from
devices.yamlsuffixed with the device family. Examples:"serial-numbers-d11"or"sercom3-d5x" - A pin from
devices.yaml. Examples:"pb22". - An expression of the form
any([peripheral expression], ...). Example:any("pm-d11", "pm-d21", "rstc-d5x"). - An expression of the form
all([peripheral expression], ...). Example:all("tc4", "tc5"). - An expression of the form
not([peripheral expression]). Example:not("dmac-d5x").