2021-09-22 13:22:45 +02:00
|
|
|
# The `#[app]` attribute and an RTIC application
|
2018-11-03 17:02:41 +01:00
|
|
|
|
2021-09-22 13:22:45 +02:00
|
|
|
## Requirements on the `app` attribute
|
2018-11-03 17:02:41 +01:00
|
|
|
|
2021-07-30 12:43:35 +02:00
|
|
|
All RTIC applications use the [`app`] attribute (`#[app(..)]`). This attribute
|
2021-09-22 13:22:45 +02:00
|
|
|
must be applied to a `mod`-item containing the RTIC application. The `app`
|
|
|
|
attribute has a mandatory `device`
|
2021-07-30 12:43:35 +02:00
|
|
|
argument that takes a *path* as a value. This must be a full path pointing to a
|
|
|
|
*peripheral access crate* (PAC) generated using [`svd2rust`] **v0.14.x** or
|
2021-09-22 13:22:45 +02:00
|
|
|
newer.
|
2021-07-30 12:43:35 +02:00
|
|
|
|
|
|
|
The `app` attribute will expand into a suitable entry point so it's not required
|
|
|
|
to use the [`cortex_m_rt::entry`] attribute.
|
|
|
|
|
|
|
|
[`app`]: ../../../api/cortex_m_rtic_macros/attr.app.html
|
|
|
|
[`svd2rust`]: https://crates.io/crates/svd2rust
|
|
|
|
[`cortex_m_rt::entry`]: ../../../api/cortex_m_rt_macros/attr.entry.html
|
|
|
|
|
2021-09-22 13:22:45 +02:00
|
|
|
## An RTIC application example
|
2018-11-03 17:02:41 +01:00
|
|
|
|
2021-09-22 13:22:45 +02:00
|
|
|
To give a flavor of RTIC, the following example contains commonly used features. In the following sections we will go through each feature in detail.
|
2020-09-15 15:41:14 +02:00
|
|
|
|
2018-11-03 17:02:41 +01:00
|
|
|
``` rust
|
2021-09-22 13:22:45 +02:00
|
|
|
{{#include ../../../../examples/common.rs}}
|
2018-11-03 17:02:41 +01:00
|
|
|
```
|
|
|
|
|