aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-07-09const genericsAndrey Zgarbul
2021-06-06assert emptyJames Hillyerd
2021-06-06Allow zero sized LinkedListJames Hillyerd
2021-04-08Goodbye static mutEmil Fresk
2021-04-08Fixed UB in `spawn_at`Emil Fresk
2021-03-22Updated schedule example with all combinationsEmil Fresk
2021-03-20Cancel and reschedule workingEmil Fresk
Support cfgs in the imports Account for extern tasks
2021-03-13Added interface for cancel/rescheduleEmil Fresk
Use wrapping add for marker No need to store handle to queue Remove unnecessary `SpawnHandle::new` Fix test Updated interface to follow proposal
2021-02-25Review fixesEmil Fresk
2021-02-22Updated to new interfaceEmil Fresk
2021-02-22Added enable/disable timer callsEmil Fresk
2021-02-22Of by 1Emil Fresk
2021-02-18Now with new monotonic trait and crateEmil Fresk
2021-02-06Merge branch 'master' into new_monotonicEmil Fresk
2021-01-10cleanupEmil Fresk
2021-01-04Bump cortex-m to 0.7.0Nicolas Stalder
2020-12-13CleanupEmil Fresk
2020-12-13Double check the compare instantEmil Fresk
2020-12-13Less ... hacky?Emil Fresk
2020-12-13Reexport embedded-time as rtic::timeEmil Fresk
2020-12-12Monotonic codegen now passing compile stageEmil Fresk
2020-12-10More workEmil Fresk
2020-12-08TQ handlers being generatedEmil Fresk
2020-12-03Save, init generation fixedEmil Fresk
2020-12-03Removed monotonic trait, moved to rtic-coreEmil Fresk
2020-11-26Removed cortex-m-rtEmil Fresk
2020-11-14Add multilock to the bookEmil Fresk
2020-11-14Multilock supportEmil Fresk
2020-10-15Implement all clippy suggestionsHenrik Tjäder
2020-10-01Remove exports related to heterogeneous multi-core supportHenrik Tjäder
2020-10-01Added `bare_metal::CriticalSection` to `init::Context`Emil Fresk
2020-09-01Remove stale code, fix comment stylingHenrik Tjäder
2020-09-01Brutally yank out multicoreHenrik Tjäder
2020-06-11Rename RTFM to RTICHenrik Tjäder
2020-06-11FmtEmil Fresk
2020-05-26touch src/lib.rsJorge Aparicio
2020-01-24Merge #295bors[bot]
295: docs: do not use Instant::now in #[init] r=korken89 a=japaric Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2020-01-21docs: do not use Instant::now in #[init]Jorge Aparicio
2019-11-19Merge #277bors[bot]
277: TimerQueue.dequeue: don't set SYST reload to 0 r=korken89 a=mpasternacki ARM Architecture Reference Manual says: "Setting SYST_RVR to zero has the effect of disabling the SysTick counter independently of the counter enable bit." If Monotonic's ratio is less than one, the timeout calculations can compute zero if next task is scheduled after current instant, but before next timer tick. This results in disabling SYST and freezing the timer queue. The division by ratio's denominator rounds downward and the dequeue condition is `if instant < now`. If ratio is small enough, this results in unnecessary interrupts: Let's say `instant - now` is 99 and ratio is 1/25. Then, `dur` will equal 3 and the next tick will happen at `now + 75`. In the next interrupt, `instant > now` and additional tick needs to be scheduled (which doesn't happen, because now `instant - now` is less than 25, so reload will be set to 0 and timer queue will stop). Adding one to computed duration will prevent both freezing and additional interrupts. When ratio is 1 or close, timer queue code overhead will prevent this from happening. I am working with a chip where CPU is clocked at 600MHz and SysTick is 100kHz and the freeze happens quite often. Co-authored-by: Maciej Pasternacki <maciej@3ofcoins.net>
2019-11-19TimerQueue.dequeue: don't set SYST reload to 0Maciej Pasternacki
ARM Architecture Reference Manual says: "Setting SYST_RVR to zero has the effect of disabling the SysTick counter independently of the counter enable bit." If Monotonic's ratio is less than one, the timeout calculations can compute zero if next task is scheduled after current instant, but before next timer tick. This results in disabling SYST and freezing the timer queue.
2019-11-18Fixed internal overflow on subtraiton in elapsed and durationPer Lindgren
2019-11-13Minor docs update to monotonicEmil Fresk
2019-10-15cyccnt::Instant: simplify the Send / Sync implJorge Aparicio
originally the type was made `!Send` because it loses its meaning when send from one core to another but that was an incorrect use of the `Send` bound (the send operation makes the value incorrect but that doesn't cause memory unsafety on its own). So later the type was (explicitly) made `Send` again resulting in a convoluted implementation -- this commit simplifies things.
2019-10-15document the limitations of cyccnt::{Instant,Duration}Jorge Aparicio
2019-10-15more monotonic timer docsJorge Aparicio
covers - initialization and configuration of the timer; this is now a responsibility of the application author - correctness of `Monotonic::now()` in `#[init]` - safety of `Monotonic::reset()` closes #251
2019-09-15One more place updatedEmil Fresk
2019-09-15don't use deprecated APIJorge Aparicio
2019-08-21doc tweaksJorge Aparicio
2019-08-21document #[app]Jorge Aparicio
2019-07-11change Monotonic::ratio return type to FractionJorge Aparicio