aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/timer_queue.rs
diff options
context:
space:
mode:
authorGravatar Henrik Tjäder <henrik@tjaders.com> 2020-08-27 11:21:56 +0000
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2020-09-01 14:50:06 +0000
commit76cf14c520091d00985f845203580e14c611ed14 (patch)
tree786278fef57314138f4a50eb59be0dac8a9deb5f /macros/src/codegen/timer_queue.rs
parentc5e6d1fa49e3596227a8ee8fe89e2e4f66db3169 (diff)
downloadrtic-76cf14c520091d00985f845203580e14c611ed14.tar.gz
rtic-76cf14c520091d00985f845203580e14c611ed14.tar.zst
rtic-76cf14c520091d00985f845203580e14c611ed14.zip
Brutally yank out multicore
Diffstat (limited to 'macros/src/codegen/timer_queue.rs')
-rw-r--r--macros/src/codegen/timer_queue.rs46
1 files changed, 20 insertions, 26 deletions
diff --git a/macros/src/codegen/timer_queue.rs b/macros/src/codegen/timer_queue.rs
index 56304001..41f5520e 100644
--- a/macros/src/codegen/timer_queue.rs
+++ b/macros/src/codegen/timer_queue.rs
@@ -8,9 +8,9 @@ use crate::{analyze::Analysis, check::Extra, codegen::util};
pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream2> {
let mut items = vec![];
- for (&sender, timer_queue) in &analysis.timer_queues {
- let cfg_sender = util::cfg_core(sender, app.args.cores);
- let t = util::schedule_t_ident(sender);
+ if let Some(timer_queue) = &analysis.timer_queues.first() {
+ //let cfg_sender = util::cfg_core(sender, app.args.cores);
+ let t = util::schedule_t_ident();
// Enumeration of `schedule`-able tasks
{
@@ -27,9 +27,9 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
})
.collect::<Vec<_>>();
- let doc = format!("Tasks that can be scheduled from core #{}", sender);
+ let doc = format!("Tasks that can be scheduled");
items.push(quote!(
- #cfg_sender
+ //#cfg_sender
#[doc = #doc]
#[allow(non_camel_case_types)]
#[derive(Clone, Copy)]
@@ -39,18 +39,18 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
));
}
- let tq = util::tq_ident(sender);
+ let tq = util::tq_ident();
// Static variable and resource proxy
{
- let doc = format!("Core #{} timer queue", sender);
+ let doc = format!("Timer queue");
let m = extra.monotonic();
let n = util::capacity_typenum(timer_queue.capacity, false);
let tq_ty = quote!(rtic::export::TimerQueue<#m, #t, #n>);
- let section = util::link_section("bss", sender);
+ let section = util::link_section("bss");
items.push(quote!(
- #cfg_sender
+ //#cfg_sender
#[doc = #doc]
#section
static mut #tq: #tq_ty = rtic::export::TimerQueue(
@@ -59,7 +59,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
)
);
- #cfg_sender
+ //#cfg_sender
struct #tq<'a> {
priority: &'a rtic::export::Priority,
}
@@ -68,7 +68,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
items.push(util::impl_mutex(
extra,
&[],
- cfg_sender.as_ref(),
+ //cfg_sender.as_ref(),
false,
&tq,
tq_ty,
@@ -88,17 +88,12 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
let cfgs = &task.cfgs;
let priority = task.args.priority;
- let receiver = task.args.core;
- let rq = util::rq_ident(receiver, priority, sender);
- let rqt = util::spawn_t_ident(receiver, priority, sender);
- let enum_ = util::interrupt_ident(receiver, app.args.cores);
- let interrupt = &analysis.interrupts[&receiver][&priority];
+ let rq = util::rq_ident(priority);
+ let rqt = util::spawn_t_ident(priority);
+ let enum_ = util::interrupt_ident();
+ let interrupt = &analysis.interrupts.get(&priority);
- let pend = if sender != receiver {
- quote!(
- #device::xpend(#receiver, #device::#enum_::#interrupt);
- )
- } else {
+ let pend = {
quote!(
rtic::pend(#device::#enum_::#interrupt);
)
@@ -118,11 +113,11 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
.collect::<Vec<_>>();
let priority = timer_queue.priority;
- let sys_tick = util::suffixed("SysTick", sender);
- let section = util::link_section("text", sender);
+ let sys_tick = util::suffixed("SysTick");
+ let section = util::link_section("text");
items.push(quote!(
#[no_mangle]
- #cfg_sender
+ //#cfg_sender
#section
unsafe fn #sys_tick() {
use rtic::Mutex as _;
@@ -137,7 +132,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
})
// NOTE `inline(always)` produces faster and smaller code
.lock(#[inline(always)]
- |tq| tq.dequeue())
+ |tq| tq.dequeue())
{
match task {
#(#arms)*
@@ -148,6 +143,5 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream
));
}
}
-
items
}