diff options
author | 2023-03-29 21:07:36 +0200 | |
---|---|---|
committer | 2023-03-29 21:07:36 +0200 | |
commit | ce508a1882b1cc8735c4fd901a0ad868da5fe77b (patch) | |
tree | e17930b11f05f3bfaba59f3e579dd4f49aae4b91 /rtic-macros/src/codegen | |
parent | 06ddfb7ab8d04fa519bf66a40ec7a98a5e04aa07 (diff) | |
parent | 31055fa64a6e178caa45f8a8e862ded6a68d3e55 (diff) | |
download | rtic-ce508a1882b1cc8735c4fd901a0ad868da5fe77b.tar.gz rtic-ce508a1882b1cc8735c4fd901a0ad868da5fe77b.tar.zst rtic-ce508a1882b1cc8735c4fd901a0ad868da5fe77b.zip |
Merge branch 'master' into master
Diffstat (limited to 'rtic-macros/src/codegen')
-rw-r--r-- | rtic-macros/src/codegen/bindings/cortex.rs | 16 | ||||
-rw-r--r-- | rtic-macros/src/codegen/bindings/template.rs | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/rtic-macros/src/codegen/bindings/cortex.rs b/rtic-macros/src/codegen/bindings/cortex.rs index 767befa9..eba2afca 100644 --- a/rtic-macros/src/codegen/bindings/cortex.rs +++ b/rtic-macros/src/codegen/bindings/cortex.rs @@ -322,3 +322,19 @@ pub fn interrupt_entry(_app: &App, _analysis: &CodegenAnalysis) -> Vec<TokenStre pub fn interrupt_exit(_app: &App, _analysis: &CodegenAnalysis) -> Vec<TokenStream2> { vec![] } + +pub fn async_prio_limit(app: &App, analysis: &CodegenAnalysis) -> Vec<TokenStream2> { + let max = if let Some(max) = analysis.max_async_prio { + quote!(#max) + } else { + // No limit + let device = &app.args.device; + quote!(1 << #device::NVIC_PRIO_BITS) + }; + + vec![quote!( + /// Holds the maximum priority level for use by async HAL drivers. + #[no_mangle] + static RTIC_ASYNC_MAX_LOGICAL_PRIO: u8 = #max; + )] +} diff --git a/rtic-macros/src/codegen/bindings/template.rs b/rtic-macros/src/codegen/bindings/template.rs index 18f88fe0..a33bae8e 100644 --- a/rtic-macros/src/codegen/bindings/template.rs +++ b/rtic-macros/src/codegen/bindings/template.rs @@ -42,3 +42,7 @@ pub fn interrupt_entry(_app: &App, _analysis: &CodegenAnalysis) -> Vec<TokenStre pub fn interrupt_exit(_app: &App, _analysis: &CodegenAnalysis) -> Vec<TokenStream2> { vec![] } + +pub fn async_prio_limit(app: &App, _analysis: &CodegenAnalysis) -> Vec<TokenStream2> { + vec![] +} |