Skip to content

Commit f783136

Browse files
committed
Put inline(always) on inner interrupt functions and update documentation
1 parent 647877a commit f783136

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

macros/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ use syn::{
9191
/// pre-interrupt initialization to be done.
9292
///
9393
/// Note that a function marked with the entry attribute is allowed to take no input parameters
94-
/// even if `init` returns a value, due to implementation details.
94+
/// even if `init` returns a value, due to implementation details. To reduce code size, it is
95+
/// strongly recommended to put `#[inline(always)]` on `init` if it's used nowhere else.
9596
///
9697
/// ## Examples
9798
///
@@ -115,6 +116,7 @@ use syn::{
115116
/// use msp430::interrupt::CriticalSection;
116117
///
117118
/// # struct Hal;
119+
/// #[inline(always)]
118120
/// fn init(cs: CriticalSection) -> Hal {
119121
/// /* initialize hardware */
120122
/// # Hal
@@ -135,6 +137,7 @@ use syn::{
135137
/// # use msp430_rt_macros::entry;
136138
/// use msp430::interrupt::CriticalSection;
137139
///
140+
/// #[inline(always)]
138141
/// fn arg(cs: CriticalSection) {
139142
/// /* initialize */
140143
/// }
@@ -494,6 +497,7 @@ pub fn interrupt(args: TokenStream, input: TokenStream) -> TokenStream {
494497
#unsafety extern "msp430-interrupt" fn #hash() {
495498
#check
496499

500+
#[inline(always)]
497501
#unsafety fn #hash<'a>(#fn_param) #output {
498502
#(#vars)*
499503
#(#stmts)*

0 commit comments

Comments
 (0)