aboutsummaryrefslogtreecommitdiff
path: root/macros/src
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src')
-rw-r--r--macros/src/codegen/local_resources.rs8
-rw-r--r--macros/src/codegen/shared_resources.rs10
2 files changed, 15 insertions, 3 deletions
diff --git a/macros/src/codegen/local_resources.rs b/macros/src/codegen/local_resources.rs
index 50621c32..6e7c1daa 100644
--- a/macros/src/codegen/local_resources.rs
+++ b/macros/src/codegen/local_resources.rs
@@ -27,8 +27,14 @@ pub fn codegen(
let mangled_name = util::static_local_resource_ident(name);
let attrs = &res.attrs;
+
// late resources in `util::link_section_uninit`
- let section = util::link_section_uninit();
+ // unless user specifies custom link section
+ let section = if attrs.iter().any(|attr| attr.path.is_ident("link_section")) {
+ None
+ } else {
+ Some(util::link_section_uninit())
+ };
// For future use
// let doc = format!(" RTIC internal: {}:{}", file!(), line!());
diff --git a/macros/src/codegen/shared_resources.rs b/macros/src/codegen/shared_resources.rs
index 53bb4823..4a750070 100644
--- a/macros/src/codegen/shared_resources.rs
+++ b/macros/src/codegen/shared_resources.rs
@@ -23,10 +23,16 @@ pub fn codegen(
let ty = &res.ty;
let mangled_name = &util::static_shared_resource_ident(name);
- // late resources in `util::link_section_uninit`
- let section = util::link_section_uninit();
let attrs = &res.attrs;
+ // late resources in `util::link_section_uninit`
+ // unless user specifies custom link section
+ let section = if attrs.iter().any(|attr| attr.path.is_ident("link_section")) {
+ None
+ } else {
+ Some(util::link_section_uninit())
+ };
+
// For future use
// let doc = format!(" RTIC internal: {}:{}", file!(), line!());
mod_app.push(quote!(