Commit graph

1225 commits

Author SHA1 Message Date
Emil Fresk
81874adf4e Fix locks, basepri writeback error 2023-01-26 22:22:38 +01:00
Per Lindgren
8c90b3f40e examples/multiloc fixed 2023-01-26 22:22:38 +01:00
Emil Fresk
0b3cf29938 All codegen is now explicit 2023-01-26 22:22:38 +01:00
Per Lindgren
621982fa16 examples/lock fixed 2023-01-26 22:22:37 +01:00
Per Lindgren
77ca19bf73 examples/locals fixed 2023-01-26 22:22:37 +01:00
Emil Fresk
2ce382fddd Cleanup weird locals in codegen 2023-01-26 22:22:37 +01:00
Per Lindgren
c6fca67ae2 examples/idle-wfi fixed 2023-01-26 22:22:37 +01:00
Per Lindgren
8444ba7054 export Cell removed, expmples updated 2023-01-26 22:22:36 +01:00
Emil Fresk
322c8b9562 Main in main codegen 2023-01-26 22:22:36 +01:00
Per Lindgren
70fff45d4d examples/async-task fixup 2023-01-26 22:22:36 +01:00
Emil Fresk
efe00ab63c Removed same prio spawn 2023-01-26 22:22:36 +01:00
Emil Fresk
08d2930fb3 Lifetime cleanup 2023-01-26 22:22:36 +01:00
Emil Fresk
a5195c792b Break codegen for 0-prio async 2023-01-26 22:22:35 +01:00
Emil Fresk
acd20301be Removed Priority, simplified lifetime handling 2023-01-26 22:22:33 +01:00
Emil Fresk
e4c95fd26f More removal 2023-01-26 22:21:24 +01:00
Emil Fresk
c56bb3011f First example builds again 2023-01-26 22:21:24 +01:00
Emil Fresk
50a05e9d1c Even more cleanup 2023-01-26 22:21:24 +01:00
Emil Fresk
db44666f1f Fix fences 2023-01-26 22:21:24 +01:00
Emil Fresk
d27ef902f9 Added software task codegen back 2023-01-26 22:21:24 +01:00
Emil Fresk
b1ae562d4f Min codegen 2023-01-26 22:21:21 +01:00
Emil Fresk
244b085bcb syntax: Remove parse settings struct 2023-01-26 22:20:47 +01:00
Emil Fresk
c85a4e34e6 Add check again 2023-01-26 22:20:45 +01:00
Emil Fresk
ac4a3edf90 Old xtask test pass 2023-01-26 22:19:42 +01:00
Emil Fresk
4c2c05a801 RTIC v2: Initial commit
rtic-syntax is now part of RTIC repository
2023-01-26 22:00:59 +01:00
bors[bot]
d43c2b64cc
Merge #692
692: CFG: Support HW tasks, cleanup for SW tasks r=korken89 a=AfoHT

Fixes #665

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-25 20:34:49 +00:00
bors[bot]
a601c6e449
Merge #691
691: Basic cfg support, kind of, for Monotonics r=korken89 a=AfoHT

- Enable at least masking out a Monotonic
- Add example cfg-ing a Monotonic, showing limitations imposed by rtic-syntax
- Update changelog

The use case detailed in linked issue seems to be covered: Fixes #664 

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-25 20:15:31 +00:00
bors[bot]
a5e18cd529
Merge #686
686: Book: Editorial review r=korken89 a=AfoHT

Continuation of https://github.com/rtic-rs/cortex-m-rtic/pull/618

Better late than never...

A big thanks to `@jvanderk` !

Co-authored-by: John van der Koijk <33966414+jvanderk@users.noreply.github.com>
2023-01-25 20:11:17 +00:00
John van der Koijk
04189cc684 Mostly editorial review. 2023-01-25 21:07:38 +01:00
Henrik Tjäder
800904a105 Handle more cfgs, support cfg on HW/SW tasks 2023-01-22 13:38:43 +01:00
Henrik Tjäder
259be7bbf9 Update changelog 2023-01-22 12:13:49 +01:00
Henrik Tjäder
022330bfcb Add example cfg-ing a Monotonic, showing limitations imposed by rtic-syntax 2023-01-22 12:00:12 +01:00
Henrik Tjäder
be74469ab7 Enable at least masking out a Monotonic
Simplest case working, but leaves a lot to ask
as shown by examples/cfg-monotonic.rs

Current `rtic-syntax` is unable to validate and
handle the `cfgs[]` which limits the usefulness
of this.
2023-01-22 12:00:08 +01:00
bors[bot]
3240fb332a
Merge #690
690: NVIC prio bits must be in the range 1..=255: Handled by logical2hw() r=korken89 a=AfoHT

Fixes #687

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-22 07:06:30 +00:00
bors[bot]
b0bda53e4e
Merge #689
689: Missing docs: Improve #[doc] generation r=korken89 a=AfoHT

Improve RTIC doc handling

Enable use of

```
#![deny(missing_docs)]
```

and makes the cargo doc output more useful

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-22 06:57:56 +00:00
Henrik Tjäder
c29e477aa1 Cleanup NVIC prio too high example 2023-01-22 01:19:49 +01:00
Henrik Tjäder
3f74f3b845 Make clippy happy 2023-01-22 00:35:03 +01:00
Henrik Tjäder
7ba23044e6 Update changelog 2023-01-22 00:30:40 +01:00
Henrik Tjäder
f6b0d18e24 Improve RTIC doc handling
Enable use of

```
 #![deny(missing_docs)]
```
2023-01-22 00:26:23 +01:00
Henrik Tjäder
1237f5b33b Heapless 0.7.16 pool!() generates undocumented struct 2023-01-22 00:22:46 +01:00
Henrik Tjäder
40d5ace111 Deny missing_docs for all examples 2023-01-21 23:10:43 +01:00
bors[bot]
86ce8919ae
Merge #680
680: Update cortex-m-semihosting requirement from 0.3.3 to 0.5.0 r=AfoHT a=dependabot[bot]

Updates the requirements on [cortex-m-semihosting](https://github.com/rust-embedded/cortex-m) to permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-embedded/cortex-m/blob/master/CHANGELOG.md">cortex-m-semihosting's changelog</a>.</em></p>
<blockquote>
<h2>[v0.5.0] - 2018-05-11</h2>
<h3>Added</h3>
<ul>
<li>
<p><code>DebugMonitor</code> and <code>SecureFault</code> variants to the <code>Exception</code> enumeration.</p>
</li>
<li>
<p>An optional <code>&quot;inline-asm&quot;</code> feature</p>
</li>
</ul>
<h3>Changed</h3>
<ul>
<li>
<p>[breaking-change] This crate now requires <code>arm-none-eabi-gcc</code> to be installed and available in
<code>$PATH</code> when built with the <code>&quot;inline-asm&quot;</code> feature disabled (which is disabled by default).</p>
</li>
<li>
<p>[breaking-change] The <code>register::{apsr,lr,pc}</code> modules are now behind the <code>&quot;inline-asm&quot;</code> feature.</p>
</li>
<li>
<p>[breaking-change] Some variants of the <code>Exception</code> enumeration are no longer available on
<code>thumbv6m-none-eabi</code>. See API docs for details.</p>
</li>
<li>
<p>[breaking-change] Several of the variants of the <code>Exception</code> enumeration have been renamed to
match the CMSIS specification.</p>
</li>
<li>
<p>[breaking-change] fixed typo in <code>shcrs</code> field of <code>scb::RegisterBlock</code>; it was previously named
<code>shpcrs</code>.</p>
</li>
<li>
<p>[breaking-change] removed several fields from <code>scb::RegisterBlock</code> on ARMv6-M. These registers are
not available on that sub-architecture.</p>
</li>
<li>
<p>[breaking-change] changed the type of <code>scb::RegisterBlock.shpr</code> from <code>RW&lt;u8&gt;</code> to <code>RW&lt;u32&gt;</code> on
ARMv6-M. These registers are word accessible only on that sub-architecture.</p>
</li>
<li>
<p>[breaking-change] renamed the <code>mmar</code> field of <code>scb::RegisterBlock</code> to <code>mmfar</code> to match the CMSIS
name.</p>
</li>
<li>
<p>[breaking-change] removed the <code>iabr</code> field from <code>scb::RegisterBlock</code> on ARMv6-M. This register is
not available on that sub-architecture.</p>
</li>
<li>
<p>[breaking-change] removed several fields from <code>cpuid::RegisterBlock</code> on ARMv6-M. These registers
are not available on that sub-architecture.</p>
</li>
<li>
<p>[breaking-change] The <code>Mutex.new</code> constructor is not a <code>const fn</code> by default. To make it a <code>const fn</code> you have to opt into the <code>&quot;const-fn&quot;</code> feature, which was added in v0.5.1, and switch to a
nightly compiler.</p>
</li>
</ul>
<h3>Removed</h3>
<ul>
<li>[breaking-change] The <code>exception</code> module has been removed. A replacement for <code>Exception::active</code>
can be found in <code>SCB::vect_active</code>. A modified version <code>exception::Exception</code> can be found in the
<code>peripheral::scb</code> module.</li>
</ul>
<h2>[v0.4.3] - 2018-01-25</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a448e9156e"><code>a448e91</code></a> v0.5.0</li>
<li><a href="e3217ad94d"><code>e3217ad</code></a> Merge <a href="https://github-redirect.dependabot.com/rust-embedded/cortex-m/issues/88">#88</a></li>
<li><a href="05bbc3b815"><code>05bbc3b</code></a> always list all the peripherals in <code>Peripherals</code></li>
<li><a href="550f94902f"><code>550f949</code></a> fix build for ARMv7E-M + &quot;inline-asm&quot;</li>
<li><a href="7d51707b5f"><code>7d51707</code></a> simplify #[cfg]s</li>
<li><a href="2cd6092848"><code>2cd6092</code></a> ARMv6-M: remove fields that are not available from cpuid::RegisterBlock</li>
<li><a href="17bd0c8e88"><code>17bd0c8</code></a> fix x86_64 tests</li>
<li><a href="c290aa4ee8"><code>c290aa4</code></a> ARMv6-M: remove fields that are not available from NVIC and SCB</li>
<li><a href="716398ce54"><code>716398c</code></a> fix build on ARMv6-M</li>
<li><a href="1d68643772"><code>1d68643</code></a> fix build on ARMv7E-M</li>
<li>Additional commits viewable in <a href="https://github.com/rust-embedded/cortex-m/compare/c-m-sh-v0.3.5...v0.5.0">compare view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-14 21:02:10 +00:00
Henrik Tjäder
de3056eb3d Add to CHANGELOG dev-dependency cortex-m-semihosting upgraded 2023-01-14 22:00:14 +01:00
Henrik Tjäder
9764121cc1 Upgrade of semihosting changed timing
New semihosting 0.5 does not use error handling,
returns directly and as semihosting is generally slow
this led to missing print statements.

Workaround is to add NOP, which seems sufficient
to let it flush the buffers
2023-01-14 11:24:51 +01:00
Henrik Tjäder
050313d62d Missed hprintln with multiline 2023-01-11 22:16:56 +01:00
Henrik Tjäder
c370c0b21f Remove ok() from hprintln!()
sd 'hprintln(.*).ok\(\)' 'hprintln' (fd -e rs .)
2023-01-11 21:40:33 +01:00
Henrik Tjäder
1fe587c516 Remove unwrap() from hprintln!()
sd 'hprintln(.*).unwrap\(\)' 'hprintln' (fd -e rs .)
2023-01-11 21:33:44 +01:00
bors[bot]
b1fda94037
Merge #684
684: Fix Unicode ✓ r=korken89 a=n8tlarsen

Looks like the unicode didn't render properly, Here's the fix.

Co-authored-by: Nathan <n8tlarsen@gmail.com>
2023-01-05 06:39:42 +00:00
Nathan
baffeaca22
Fix Unicode ✓ 2023-01-04 17:18:48 -06:00
bors[bot]
de25c4c0c2
Merge #670
670: Add documentation for different Cortex-M architectures r=AfoHT a=n8tlarsen

Most of the RTIC documentation focuses on ARMv7-M architectures. Here's some initial thoughts on useful information I would have liked to know before starting with RTIC on ARMv6-M.

Co-authored-by: Nathan <n8tlarsen@gmail.com>
Co-authored-by: n8tlarsen <96437952+n8tlarsen@users.noreply.github.com>
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2023-01-04 20:27:21 +00:00
Henrik Tjäder
9c68b876f1 Enable the targets chapter 2023-01-04 21:20:24 +01:00