aboutsummaryrefslogtreecommitdiff
path: root/macros/src
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-14 20:27:43 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-15 16:06:30 +0200
commit48abc26e8577e6b57c46dce40e63022fac2c9375 (patch)
tree7073205b076f168b1c6f5782a278abf11eb7746f /macros/src
parent1db5faad62c89cff19d2a94c8ce7b98bac9439ac (diff)
downloadrtic-48abc26e8577e6b57c46dce40e63022fac2c9375.tar.gz
rtic-48abc26e8577e6b57c46dce40e63022fac2c9375.tar.zst
rtic-48abc26e8577e6b57c46dce40e63022fac2c9375.zip
Detect if the rt flag is defined in the PAC/HAL
Better error message Improved error string Update UI tests
Diffstat (limited to 'macros/src')
-rw-r--r--macros/src/codegen.rs2
-rw-r--r--macros/src/codegen/pre_init.rs4
-rw-r--r--macros/src/codegen/spawn_body.rs5
-rw-r--r--macros/src/codegen/timer_queue.rs3
-rw-r--r--macros/src/codegen/util.rs2
5 files changed, 7 insertions, 9 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
index f230d395..e89776c5 100644
--- a/macros/src/codegen.rs
+++ b/macros/src/codegen.rs
@@ -144,7 +144,7 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
/// Implementation details
mod #name {
/// Always include the device crate which contains the vector table
- use #device as _;
+ use #device as you_must_enable_the_rt_feature_for_the_pac_in_your_cargo_toml;
#(#imports)*
#(#user_imports)*
diff --git a/macros/src/codegen/pre_init.rs b/macros/src/codegen/pre_init.rs
index 9c5f35ec..2aaf9ebd 100644
--- a/macros/src/codegen/pre_init.rs
+++ b/macros/src/codegen/pre_init.rs
@@ -53,14 +53,14 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
let interrupt = util::interrupt_ident();
stmts.push(quote!(
core.NVIC.set_priority(
- #device::#interrupt::#name,
+ you_must_enable_the_rt_feature_for_the_pac_in_your_cargo_toml::#interrupt::#name,
rtic::export::logical2hw(#priority, #nvic_prio_bits),
);
));
// NOTE unmask the interrupt *after* setting its priority: changing the priority of a pended
// interrupt is implementation defined
- stmts.push(quote!(rtic::export::NVIC::unmask(#device::#interrupt::#name);));
+ stmts.push(quote!(rtic::export::NVIC::unmask(you_must_enable_the_rt_feature_for_the_pac_in_your_cargo_toml::#interrupt::#name);));
}
// Set exception priorities
diff --git a/macros/src/codegen/spawn_body.rs b/macros/src/codegen/spawn_body.rs
index 4ecd0757..f29393a6 100644
--- a/macros/src/codegen/spawn_body.rs
+++ b/macros/src/codegen/spawn_body.rs
@@ -10,7 +10,7 @@ pub fn codegen(
name: &Ident,
app: &App,
analysis: &Analysis,
- extra: &Extra,
+ _extra: &Extra,
) -> TokenStream2 {
let spawnee = &app.software_tasks[name];
let priority = spawnee.args.priority;
@@ -42,12 +42,11 @@ pub fn codegen(
)
};
- let device = extra.device;
let enum_ = util::interrupt_ident();
let interrupt = &analysis.interrupts.get(&priority);
let pend = {
quote!(
- rtic::pend(#device::#enum_::#interrupt);
+ rtic::pend(you_must_enable_the_rt_feature_for_the_pac_in_your_cargo_toml::#enum_::#interrupt);
)
};
diff --git a/macros/src/codegen/timer_queue.rs b/macros/src/codegen/timer_queue.rs
index 030158e2..0abbf49d 100644
--- a/macros/src/codegen/timer_queue.rs
+++ b/macros/src/codegen/timer_queue.rs
@@ -72,7 +72,6 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
// Timer queue handler
{
- let device = extra.device;
let arms = timer_queue
.tasks
.iter()
@@ -88,7 +87,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
let pend = {
quote!(
- rtic::pend(#device::#enum_::#interrupt);
+ rtic::pend(you_must_enable_the_rt_feature_for_the_pac_in_your_cargo_toml::#enum_::#interrupt);
)
};
diff --git a/macros/src/codegen/util.rs b/macros/src/codegen/util.rs
index 2f9f3cce..41ee3ca7 100644
--- a/macros/src/codegen/util.rs
+++ b/macros/src/codegen/util.rs
@@ -83,7 +83,7 @@ pub fn instants_ident(task: &Ident) -> Ident {
pub fn interrupt_ident() -> Ident {
let span = Span::call_site();
- Ident::new("Interrupt", span)
+ Ident::new("interrupt", span)
}
/// Whether `name` is an exception with configurable priority