diff options
author | 2017-04-25 14:13:46 -0500 | |
---|---|---|
committer | 2017-04-25 14:13:46 -0500 | |
commit | 8659ecea720193ab7e6d760f5948635be5b940d4 (patch) | |
tree | 0e2abb3041db252842283c1a965eec638aac147f /src | |
parent | e72687a36635ccfce494f8807269bf897b3b6d7b (diff) | |
download | rtic-8659ecea720193ab7e6d760f5948635be5b940d4.tar.gz rtic-8659ecea720193ab7e6d760f5948635be5b940d4.tar.zst rtic-8659ecea720193ab7e6d760f5948635be5b940d4.zip |
add a `peripherals!` macro
for safe declaration of `Peripheral`s
closes #12
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -705,6 +705,24 @@ pub unsafe trait GreaterThanOrEqual<RHS> {} /// Do not implement this trait yourself. This is an implementation detail. pub unsafe trait LessThanOrEqual<RHS> {} +/// Assigns ceilings to peripherals +#[macro_export] +macro_rules! peripherals { + ($device:ident, { + $($PERIPHERAL:ident: Peripheral { + register_block: $RegisterBlock:ident, + ceiling: $C:ident, + },)+ + }) => { + $( + #[no_mangle] + static $PERIPHERAL: + $crate::Peripheral<::$device::$RegisterBlock, $crate::$C> = + unsafe { $crate::Peripheral::new(::$device::$PERIPHERAL) }; + )+ + } +} + /// A macro to declare tasks /// /// **NOTE** This macro will expand to a `main` function. |