Commit graph

960 commits

Author SHA1 Message Date
Henrik Tjäder
29f354020e Remove compilation optimisations on 1.36.0 2020-06-10 14:48:36 +00:00
Henrik Tjäder
5f61f7b75f Use cargo feature instead of conditional compilation hacks 2020-06-10 13:31:48 +00:00
bors[bot]
0b3cc87f2d
Merge #310
310: Update app.md r=korken89 a=lonesometraveler

- Fix typos
- Improve readability

Co-authored-by: KENTARO OKUDA <lonesometraveler@mac.com>
2020-06-09 19:56:14 +00:00
bors[bot]
7b7dc01005
Merge #318
318: Run cargo fmt r=korken89 a=AfoHT

Fix style issues reported by cargo fmt

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-06-09 19:24:48 +00:00
bors[bot]
821f370138
Merge #316
316: Testing GHA v0.1 r=korken89 a=AfoHT

Implementing previous Travis CI setup on Github Actions

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-06-03 10:52:03 +00:00
Henrik Tjäder
137283959c Run cargo fmt 2020-06-03 10:34:01 +00:00
bors[bot]
4f769de5a4
Merge #317
317: Use statically compiled mdbook r=perlindgren a=AfoHT

Instead of building mdbook, get a precompiled version

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-06-02 20:48:34 +00:00
Henrik Tjäder
f6bce2110f Use travis to set the PATH properly 2020-06-02 20:25:33 +00:00
Henrik Tjäder
7e01b1a08e Use statically compiled mdbook 2020-06-02 19:58:56 +00:00
Henrik Tjäder
98110a01c3 Testing GHA v0.1
Implementing previous Travis CI setup on Github Actions
2020-06-02 18:58:06 +00:00
Jorge Aparicio
0ad311074e allow handlers to be named 'main'
`#[init]`, `#[idle]` and `#[task]` handlers can now be named `main`

fixes #311
2020-05-29 14:50:28 +02:00
Jorge Aparicio
3ed4fe3771 TODO(remove) codegen no-op 2020-05-26 22:21:32 +02:00
Jorge Aparicio
303e964a10 touch src/lib.rs 2020-05-26 22:16:31 +02:00
Jorge Aparicio
709e893d00 trigger incremental CI re-build 2020-05-26 22:08:49 +02:00
Jorge Aparicio
413ca089db do not optimize build deps 2020-05-26 21:43:11 +02:00
Russell Sim
7266ffe3a6
Update example to use better initial value
The example above this in the documentation states

```
        // semantically, the monotonic timer is frozen at time "zero" during `init`
        // NOTE do *not* call `Instant::now` in this context; it will return a nonsense value
        let now = cx.start; // the start time of the system
```

It results in weird scheduling issues, but still eventually works.  `cx.start` is much more reliable.

Relates to https://github.com/rtfm-rs/cortex-m-rtfm/issues/196
2020-05-26 07:33:18 +02:00
KENTARO OKUDA
6e59dacdc3 Update app.md 2020-05-13 07:35:51 -04:00
bors[bot]
7406f77a4e
Merge #306
306: Retain cfg-attributes on resources r=korken89 a=AfoHT

When rust 1.43 lands as stable this will resolve #301 and allow for the kind of conditional compilation exemplified in the issue.

Tested on beta and nightly.

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-04-22 14:18:32 +00:00
Henrik Tjäder
f58f37b2b9 Retain cfg-attributes on resources 2020-04-22 09:26:13 +00:00
bors[bot]
bb59606b7c
Merge #307
307: Use build.rs for conditional compilation r=korken89 a=AfoHT

Extend the current test suite to allow for running tests on newer rustc-versions than current MSRV.

Required by #306 to add special tests for future MSRV.

To exclude an example from the regular non-nightly testing:

```
#![no_main]
#![no_std]

#[cfg(rustc_is_nightly)]
mod example {

    use panic_halt as _;

    #[rtfm::app(device = lm3s6965)]
    const APP: () = {
    <more code>
    }
}
```

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-04-21 20:02:28 +00:00
Henrik Tjäder
0bd40dad7d Temporarily disable extra test stub since tests are not merged yet 2020-04-21 08:36:22 +00:00
Henrik Tjäder
61c0e66d11 Remove reference to example
This example will be reintroduced in #306 instead
2020-04-21 08:13:37 +00:00
Henrik Tjäder
fca678b874 Use buildrs for conditional compilation 2020-04-20 16:03:49 +00:00
bors[bot]
e870a68893
Merge #305
305: Updated dead links to SLEEPONEXIT reference on developer.arm.com r=korken89 a=FluenTech



Co-authored-by: Peter Taylor <40178570+FluenTech@users.noreply.github.com>
2020-04-14 19:50:17 +00:00
Peter Taylor
a49d51c4d2
fix SLEEPONEXIT reference link in Russian version 2020-04-13 09:39:03 -06:00
Peter Taylor
02f965ef09
correct SLEEPONEXIT reference link 2020-04-13 09:32:49 -06:00
bors[bot]
d77270adc2
Merge #297
297: Reference the correct example in the by-example book r=japaric a=AfoHT

closes #298 

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2020-01-28 21:50:55 +00:00
bors[bot]
60c14ef680
Merge #294
294: use the safe DWT::unlock API r=korken89 a=japaric

instead of a unsafe write_volatile call

Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2020-01-24 15:45:14 +00:00
Henrik Tjäder
1a1a1e2167 Reference the correct example 2020-01-24 15:34:41 +00:00
bors[bot]
03ac76a0a2
Merge #295
295: docs: do not use Instant::now in #[init] r=korken89 a=japaric



Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2020-01-24 15:14:58 +00:00
Jorge Aparicio
b04103f6df docs: do not use Instant::now in #[init] 2020-01-21 22:23:20 +01:00
Jorge Aparicio
60639b3a9c use the safe DWT::unlock API
instead of a unsafe write_volatile call
2020-01-21 22:13:23 +01:00
bors[bot]
1e827e24d0
Merge #284
284: book, Russian lang: fix "idle not defined" typo r=burbull a=kolen

Fix typo in Russian translation of book, was "When idle function is declared", should be "When no idle function is declared"

"не" means "not".

Corresponding text in English:

```markdown
When no `idle` function is declared, the runtime sets the [SLEEPONEXIT] bit and
then sends the microcontroller to sleep after running `init`.
```

Co-authored-by: Konstantin Mochalov <incredible.angst@gmail.com>
2019-12-04 19:13:35 +00:00
Konstantin Mochalov
2be654116b
book, Russian lang: fix "idle not defined" typo
Fix typo in Russian translation of book, was "When idle function is declared", should be "When no idle function is declared"
2019-12-04 20:08:14 +03:00
bors[bot]
ffe4c07869
Merge #283
283: Include DWT enable in migration guide r=korken89 a=MabezDev

Makes note of the fact the DWT has to be enabled manually in rtfm 0.5.0; an easy one to miss considering debuggers generally enable the DWT automatically.

Co-authored-by: Scott Mabin <scott@mabez.dev>
2019-12-03 16:15:26 +00:00
Scott Mabin
864ec2ebc9 Update migration guide to include the enabling of the the DWT peripheral. Also makes note of enable trace with the DCB to allow the DWT to work without a debugger connected. 2019-12-03 11:33:24 +00:00
bors[bot]
11d9bcdbd1
Merge #280
280: Fixed link to API reference r=TeXitoi a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2019-11-19 19:01:04 +00:00
Emil Fresk
b6927fa63a Fixed link to API reference 2019-11-19 19:49:59 +01:00
bors[bot]
c103d46c00
Merge #279
279: Preparation for v0.5.1 r=perlindgren a=korken89



Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
2019-11-19 15:01:06 +00:00
Emil Fresk
370cd54971 Preparation for v0.5.1 2019-11-19 15:46:07 +01:00
bors[bot]
82efffd706
Merge #277
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-19 14:00:22 +00:00
Maciej Pasternacki
fef738e832 TimerQueue.dequeue: don't set SYST reload to 0
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-19 00:07:14 +01:00
bors[bot]
8374fce0df
Merge #278
278: Cyccnt r=texitoi a=perlindgren

The subtractions in `elapsed` and `duration` may cause an overflow panic in debug mode. This is solved by using wrapping arithmetics.  


Co-authored-by: Per Lindgren <per.lindgren@ltu.se>
2019-11-18 20:07:06 +00:00
Per Lindgren
ebd62215ff Bumped version to 0.5.1, cyccntr bugfix 2019-11-18 16:38:52 +01:00
Per Lindgren
dfab15ed78 Fixed internal overflow on subtraiton in elapsed and duration 2019-11-18 16:36:17 +01:00
bors[bot]
725d5e1aa9
Merge #274
274: remove references to 'beta' from the docs r=perlindgren a=japaric



Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-11-15 00:28:33 +00:00
bors[bot]
dc8115b5ab
Merge #275
275: fix CI r=perlindgren a=japaric

after caching was enabled binary install through the trust/install.sh script
stopped working (due to permissions?). This updates crate installation to use
`cargo-install` iff the requested version of a crate is not already installed

Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-11-14 23:57:48 +00:00
Jorge Aparicio
7f863a9579 fix CI
after caching was enabled binary install through the trust/install.sh script
stopped working (due to permissions?). This updates crate installation to use
`cargo-install` iff the requested version of a crate is not already installed
2019-11-14 18:55:07 -05:00
Jorge Aparicio
73d5fa31c2 remove references to 'beta' from the docs 2019-11-14 18:19:57 -05:00
bors[bot]
f5655d6556
Merge #273
273: CI: fix caching mechanism r=perlindgren a=japaric



Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2019-11-14 23:19:45 +00:00