Skip to content

Merge cortex-m-rt into this repository #391

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 586 commits into from
Jan 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
586 commits
Select commit Hold shift + click to select a range
975b4db
Merge #181
bors[bot] Mar 10, 2019
6898ce8
Merge #179
bors[bot] Mar 10, 2019
acf3939
Add thumbv8m.main support.
thejpster Mar 12, 2019
3b4f193
Update cortex-m version requirement to allow new 0.6.0 version
adamgreig Mar 14, 2019
02317e6
Merge #183
bors[bot] Mar 15, 2019
2886787
Merge branch 'master' into fix_cfg_flags
thejpster Mar 16, 2019
31fe0d6
Build on x86 (even if that's weird for a Cortex-M support crate)
thejpster Mar 16, 2019
4a0e534
Add thumv8m.main-none-eabi to Travis test matrix
thejpster Mar 16, 2019
bb25ff4
Bump cortex-m dev-dep to 0.6 (it's only a dev-dep and so doesn't affe…
thejpster Mar 16, 2019
1d40f01
Merge #182
bors[bot] Mar 18, 2019
710a06a
Remove redundant and incorrect target FPU check
jonas-schievink Mar 18, 2019
f1c317d
Merge #185
bors[bot] Mar 20, 2019
142b48b
do not KEEP the .stack_sizes section
japaric Mar 24, 2019
26fc730
Allow nightly to fail
korken89 Apr 2, 2019
a7e8ab6
Merge #187
bors[bot] Apr 2, 2019
c027df8
0.6.8 release
korken89 Mar 18, 2019
0dac1b1
Merge #186
bors[bot] Apr 2, 2019
141a1d6
Update CHANGELOG.md
therealprof Apr 2, 2019
61709d0
Merge #184
bors[bot] Apr 2, 2019
f9b14ce
Align sections
NickeZ May 31, 2019
8a6e9f1
Merge #190
bors[bot] Jun 8, 2019
94fbbe0
add a .uninit section
japaric Jun 19, 2019
5678f48
Merge #192
bors[bot] Jun 19, 2019
b98ee6c
v0.6.9
japaric Jul 11, 2019
8b723f8
update CHANGELOG links
japaric Jul 11, 2019
7de67e8
Merge #194
bors[bot] Jul 11, 2019
444d0fa
Discard .ARM.exidx, closes #197
adamgreig Jul 24, 2019
f141dee
Merge #198
bors[bot] Jul 24, 2019
e18dfcd
v0.6.10
Disasm Jul 25, 2019
0029624
Merge #199
bors[bot] Jul 25, 2019
bdc50d2
Add binary for armv8 hardfloat
aurabindo Aug 14, 2019
b27d17f
Merge #201
bors[bot] Aug 14, 2019
0aa5b90
Enable building semihosting for Armv8m
aurabindo Aug 19, 2019
1ff0a25
Merge #202
bors[bot] Aug 20, 2019
37909ec
Update to Syn 1.0
dtolnay Aug 26, 2019
94740a6
Merge #203
bors[bot] Aug 26, 2019
c15447d
Use a more robust shebang
jonas-schievink Sep 10, 2019
ac17dbd
Address shellcheck warnings
jonas-schievink Sep 10, 2019
9214dda
Merge #204
bors[bot] Sep 10, 2019
c39053c
Rejig link.x to include more lables to help the linker lay out the ob…
therealprof Oct 22, 2019
977e2bc
Merge #207
bors[bot] Oct 28, 2019
dde955d
Bump cortex-m-rt-macro version to 0.1.6 for release
therealprof Nov 1, 2019
6e85987
Merge #209
bors[bot] Nov 1, 2019
67b9557
Edition-2018ify crate
therealprof Nov 1, 2019
9256bf8
Bump rand dependency to 0.7
therealprof Nov 1, 2019
6c3367b
Merge #211
bors[bot] Nov 1, 2019
83aa309
Merge #210
bors[bot] Nov 1, 2019
fc2d2a5
Update compiletest-rs
jonas-schievink Nov 21, 2019
c8916fe
Fix interrupt-invalid.rs on stable
jonas-schievink Nov 21, 2019
0ada35e
Run compiletest tests on stable, not nightly
jonas-schievink Nov 21, 2019
2f11f0b
Merge #216
bors[bot] Nov 21, 2019
7e8d9fc
Require `device` feature when running compiletests
jonas-schievink Nov 21, 2019
d5fce0d
Generate trampolines instead of randomizing idents
jonas-schievink Nov 21, 2019
f6729db
Re-allow `&'static mut` resources for `#[entry]`
jonas-schievink Nov 21, 2019
1d790bd
Rename a function to not collide
jonas-schievink Nov 21, 2019
4f3f906
Add some compile-fail tests
jonas-schievink Nov 21, 2019
b475a86
Remove unnecessary dependency on rand
jonas-schievink Nov 21, 2019
c147d2f
Remove Remaining Rand Remnants
jonas-schievink Nov 21, 2019
b7e6d21
Add changelog entries
jonas-schievink Nov 21, 2019
528b1bd
CI: Add shebangs and address shellcheck warnings
jonas-schievink Nov 21, 2019
0457438
Merge #218
bors[bot] Nov 22, 2019
ee221ba
travis: disable cache
jonas-schievink Nov 24, 2019
3445f11
Merge #205
bors[bot] Nov 24, 2019
c284d55
Inline attr. macro docs and fix links
jonas-schievink Nov 26, 2019
b851c3b
Merge #219
bors[bot] Nov 27, 2019
dffbeb6
cortex-m-rt-macros 0.1.7
jonas-schievink Dec 4, 2019
cb393f1
cortex-m-rt 0.6.11
jonas-schievink Dec 4, 2019
9e8dbd4
Merge #221
bors[bot] Dec 4, 2019
3cee017
Bump the changelog for 0.6.11
jonas-schievink Dec 4, 2019
732d357
Update `Unreleased` link too
jonas-schievink Dec 4, 2019
af3ee92
Merge #222
bors[bot] Dec 4, 2019
43d43bd
Remove 'extern crate cortex_m_rt' from macros
mciantyre Dec 10, 2019
e6f46cf
Merge #224
bors[bot] Dec 10, 2019
59ec527
Hide trampolines from docs
korken89 Dec 28, 2019
eb2b5a4
Added missing hidden doc
korken89 Dec 28, 2019
56e8ada
Fixed changed compile-fail messages
korken89 Dec 28, 2019
3d77e2e
Merge #229
bors[bot] Dec 28, 2019
ec7a1a7
Merge #227
bors[bot] Dec 28, 2019
1b5da39
Added blacklisted attributes
korken89 Dec 29, 2019
6cfbff1
Changed to whitelist
korken89 Dec 29, 2019
2f5a648
Fixed logic error
korken89 Dec 29, 2019
5fdbab9
Updated per comments
korken89 Jan 7, 2020
fda8b74
Reduced number of whitelist checks
korken89 Jan 7, 2020
3a887e9
Added test for double attribute
korken89 Jan 8, 2020
9d0d893
Document a possible reason for the 'interrupt vectors are missing' error
Disasm Jan 8, 2020
befa121
Merge #235
bors[bot] Jan 8, 2020
4666507
Make `ExceptionFrame`s fields private
jonas-schievink Jan 11, 2020
7b57c86
Add unsafe setters
jonas-schievink Jan 11, 2020
8b10534
Fix typo
jonas-schievink Jan 11, 2020
c27910b
Add safety docs
jonas-schievink Jan 12, 2020
a0319a5
Make `ExceptionFrame` methods `#[inline(always)]`
jonas-schievink Jan 14, 2020
f55c06d
Merge #239
bors[bot] Jan 16, 2020
5894920
Better error message on multiple attributes
korken89 Jan 16, 2020
447798a
Better error message
korken89 Jan 16, 2020
6c0464c
Even better error messages
korken89 Jan 16, 2020
3dd900d
Updated to not need blacklist
korken89 Jan 16, 2020
22145ae
Merge #228
bors[bot] Jan 16, 2020
36b33b2
`#[allow(missing_docs)]` on `#[pre_init]` hooks
jonas-schievink Jan 26, 2020
a0a1786
Add a test that enables ALL the warnings
jonas-schievink Jan 26, 2020
e1994fb
Merge #241
bors[bot] Jan 26, 2020
89dcee6
Change macros crate to same version as cortex-m-rt, with strict versi…
adamgreig Feb 5, 2020
30177aa
Merge #245
bors[bot] Feb 5, 2020
cbd1e1a
Update macros repo link
jonas-schievink Feb 5, 2020
d4a5321
Fix doctests and run them in CI
jonas-schievink Feb 5, 2020
1e2b541
Merge #246
bors[bot] Feb 6, 2020
670dfe9
Expand #[pre_init] safety docs, discourage its use
jonas-schievink Feb 16, 2020
35f29c3
Merge #248
bors[bot] Feb 16, 2020
39b21be
Ignore a doctest again
jonas-schievink Feb 16, 2020
e119bc2
Merge #249
bors[bot] Feb 17, 2020
508123e
Updated r0 to 1.0.
thejpster Mar 4, 2020
aa68192
Merge #252
bors[bot] Mar 4, 2020
ffffb7b
Changed Hardfault's and DefaultHander's default implementations to panic
korken89 Mar 30, 2020
ed2df63
New compile-fail string for interrupt-invalid
korken89 Mar 30, 2020
3222d51
Merge #258
bors[bot] Mar 30, 2020
853a47f
New compile-fail string for interrupt-invalid
korken89 Mar 30, 2020
107950d
Add testing linker=arm-none-eabi-gcc and MSRV to CI
adamgreig Apr 3, 2020
cf11ef1
Refactor ci/script.sh to factor our linker
adamgreig Apr 4, 2020
b731402
Add statement of MSRV to docs
adamgreig Apr 4, 2020
3603333
Update MSRV to 1.39.0, fix doc test that fails <1.41.0.
adamgreig Apr 5, 2020
e30cbd8
Merge #262
bors[bot] Apr 7, 2020
53948aa
Add triagebot configuration
LeSeulArtichaut Apr 13, 2020
70c8edf
Merge #263
bors[bot] Apr 13, 2020
d72d3bd
Merge #257
bors[bot] Apr 20, 2020
1b35541
Document MSRV in README
eldruin Apr 21, 2020
0672a1c
Merge #264
bors[bot] Apr 21, 2020
08a1db6
link.x: .bss should be NOLOAD
Apr 28, 2020
b58f280
Merge #265
bors[bot] Apr 28, 2020
ad47e7f
Create clippy.yml
therealprof May 19, 2020
1693280
Get rid of #[deny(warnings)]
therealprof May 19, 2020
1bbc1bc
Merge #271
bors[bot] May 24, 2020
f10a810
Replace __ONCE__ with Cargo links key
adamgreig Jul 3, 2020
434d4af
Mark main() with a C ABI
mciantyre Jul 5, 2020
d08f531
Merge #278
bors[bot] Jul 5, 2020
37f58d9
Keep __ONCE__ for backcompat
adamgreig Jul 9, 2020
fbcfff1
Merge #276
bors[bot] Jul 9, 2020
cdc02c6
Add barriers after FPU enabling
thalesfragoso Jul 12, 2020
89832a7
Merge #279
bors[bot] Jul 12, 2020
282d64b
Add remainder of CI scripts
therealprof Jul 20, 2020
05f19e7
Run rustfmt to make CI happier
therealprof Jul 20, 2020
baf15e8
Install ARM gcc
therealprof Jul 20, 2020
e60fc83
Install qemu
therealprof Jul 21, 2020
bb4d9ba
Add x86_linux target
therealprof Jul 21, 2020
fd18bcf
Get rid of Travis CI and switch to GHA
therealprof Jul 21, 2020
2cb0f61
Funnel through the Rust version
therealprof Jul 21, 2020
ce04905
Add rustfmt to bors status checklist
therealprof Jul 21, 2020
1ac1453
Merge #270
bors[bot] Jul 21, 2020
e7c7297
Make Vector public in interrupt example
Tiwalun Jul 22, 2020
44c5618
Doc adding memory sections in memory.x
tstellanova Jul 31, 2020
0fdefc9
remove unintended edit
tstellanova Jul 31, 2020
d1ddbce
more specific ref to link_section attributes
tstellanova Jul 31, 2020
1a1b55c
Merge #282
bors[bot] Jul 31, 2020
ab354fd
Bump Ubuntu to 20.04 and install gcc-arm-none-eabi
therealprof Aug 4, 2020
da246f6
Update ci.yml
therealprof Aug 4, 2020
1149293
Merge #284
bors[bot] Aug 4, 2020
ebba386
Try combining some steps to speed up CI
therealprof Aug 4, 2020
a6b011a
Merge #285
bors[bot] Aug 4, 2020
cdd92e0
Fix possible overflow of .data region in FLASH
Guilucand Aug 7, 2020
972f60f
Merge #286
bors[bot] Aug 9, 2020
c4aa52c
Fix INSERT AFTER for .text and .bss
mattico Aug 19, 2020
fe77514
Workaround lld bug and ensure sections and symbols are aligned
mattico Aug 20, 2020
42b446d
Update changelog
jonas-schievink Aug 23, 2020
679d422
Make it unsafe to define NMI handlers
jonas-schievink Aug 23, 2020
ac74bff
Revert "Changed Hardfault's and DefaultHander's default implementatio…
jonas-schievink Aug 23, 2020
7d19e64
Document NMI handler unsafety
jonas-schievink Aug 23, 2020
c3851d8
Remove broken doctest/example
jonas-schievink Aug 23, 2020
bb868f4
Fix examples
jonas-schievink Aug 23, 2020
9bb2600
Add entry for #289
jonas-schievink Aug 23, 2020
cbb3c4e
Merge #288
bors[bot] Aug 23, 2020
f4a85dc
Merge #289
bors[bot] Aug 23, 2020
49a68f1
Use same method for __edata and __erodata
mattico Aug 25, 2020
2b6c1ab
Beef up CI
jonas-schievink Aug 26, 2020
8a165d9
Merge #290
bors[bot] Aug 26, 2020
97ad368
Merge #287
bors[bot] Aug 29, 2020
b9afdec
Merge #280
bors[bot] Aug 29, 2020
e9eae4d
Avoid depending on `cortex-m`
jonas-schievink Aug 29, 2020
d53d096
Merge #291
bors[bot] Aug 29, 2020
965a6d2
[ARMv6-M] initialize the LR register
japaric Sep 2, 2020
43fdade
Merge #293
bors[bot] Sep 2, 2020
971bd07
add CFI and size info
japaric Sep 4, 2020
3ee7dd9
update changelog
japaric Sep 7, 2020
109a832
Merge #294
bors[bot] Sep 7, 2020
eff9065
Add a section to place the veneers in memory
hug-dev Oct 1, 2020
7ac8f78
Merge #297
bors[bot] Oct 1, 2020
319076c
Initialize RAM in assembly
jonas-schievink Nov 25, 2020
35dc34b
Update compile-fail test
jonas-schievink Nov 25, 2020
bf037b3
Restore LR after __pre_init call
jonas-schievink Jan 6, 2021
f6b4e97
Document `__pre_init` call constraints
jonas-schievink Jan 6, 2021
0e82907
Update `PreResetTrampoline` docs
jonas-schievink Jan 6, 2021
4ee3d6b
Fix compile-fail test error message
jonas-schievink Jan 8, 2021
47987f6
Merge #305
bors[bot] Jan 8, 2021
ac4fabb
Allow using the crate with custom target JSON specs
jonas-schievink Jan 8, 2021
2dfbe11
Merge #304
bors[bot] Jan 8, 2021
4426f26
Update Reset-in-asm.
adamgreig Jan 21, 2021
4bb29e7
Merge #301
bors[bot] Jan 21, 2021
95b2837
fix #74
Jan 25, 2021
d57c545
Update cortex-m to 0.7.1
jonas-schievink Jan 25, 2021
272ee3d
Merge #307
bors[bot] Jan 25, 2021
7676b83
Merge branch 'master' of ssh://github.com/rust-embedded/cortex-m-rt
Jan 26, 2021
dbd0f6c
fix .HardFault.user section name for macos
Jan 26, 2021
b45a5b6
add host build test; rename "crate" to "examples" in others to clarify
Jan 26, 2021
9a8885f
Merge #306
bors[bot] Jan 26, 2021
774ad31
Check presence of exceptions
jonas-schievink Jan 26, 2021
8ebb044
Add compile-fail test
jonas-schievink Jan 26, 2021
3278be6
Merge #308
bors[bot] Jan 26, 2021
0912ad4
Forward-port v0.6.12/13 changelog
jonas-schievink Jan 27, 2021
8a64815
Merge #309
bors[bot] Jan 27, 2021
f0e2218
Only emit link_section for cortex-m.
adamgreig Jan 27, 2021
7b27817
Merge #310
bors[bot] Jan 27, 2021
31fa989
Update changelog
jonas-schievink Jan 27, 2021
02b308c
Merge #311
bors[bot] Jan 27, 2021
d802c58
Use volatile read for ICSR register
lulf Feb 25, 2021
59d30a4
Read all bits from ICSR register
lulf Feb 25, 2021
b381d66
Allow nightly CI to fail
adamgreig Mar 2, 2021
62de02f
Merge #316
bors[bot] Mar 2, 2021
4573928
Merge #315
bors[bot] Mar 2, 2021
c4df4b1
Fix examples build for nightly
adamgreig Mar 2, 2021
e2e0358
Merge #317
bors[bot] Mar 2, 2021
68c02e4
Minor documentation fix.
JDuchniewicz Apr 1, 2021
bbdab5a
Merge #321
bors[bot] Apr 2, 2021
bf99836
link.x.in: put most __[se] symbols back into sections
jordens Apr 7, 2021
2b0baa6
link.x.in: move sgstubs after data
jordens Apr 7, 2021
3421816
Merge #323
bors[bot] Apr 15, 2021
92d2fe9
bump version to 0.6.13
jordens Apr 29, 2021
bdb95ca
Merge #324
bors[bot] Apr 29, 2021
c88b29b
Prepare for v0.7.0
adamgreig Jul 12, 2021
1e82268
Only run tests on stable and nightly, not MSRV.
adamgreig Jul 13, 2021
8008ee5
Merge #330
bors[bot] Aug 17, 2021
69bed8e
Fix CHANGELOG for recent 0.7 release.
adamgreig Aug 17, 2021
35e99ec
Merge #331
bors[bot] Aug 17, 2021
696a266
Fix links in CHANGELOG.md
mattico Aug 19, 2021
008fd73
Merge #332
bors[bot] Aug 19, 2021
88d9b7e
Rerun build script when archive changes
jonas-schievink Nov 22, 2021
e734afb
Assemble with debuginfo
jonas-schievink Nov 22, 2021
8bf70f5
Preserve `lr` and add debuginfo
jonas-schievink Nov 22, 2021
b38af9d
Add comment
jonas-schievink Nov 23, 2021
ecf840b
Merge #337
bors[bot] Nov 23, 2021
45d8645
Update to 0.7.1.
jonathanpallant Nov 24, 2021
1fd9e3c
Add/update links.
jonathanpallant Nov 24, 2021
5932aaa
Merge #339
bors[bot] Nov 24, 2021
0ffd083
Merge cortex-m-rt repository into cortex-m.
adamgreig Jan 12, 2022
73def59
Update GHA for integrated cortex-m-rt
adamgreig Jan 12, 2022
731422e
Fix combined CI
adamgreig Jan 12, 2022
38897fa
Bump cortex-m-rt MSRV 1.39->1.40 to support non_exhaustive in cortex-m
adamgreig Jan 12, 2022
91f69a9
Move examples' memory.x to workspace root
adamgreig Jan 12, 2022
f868247
Fix cortex-m-rt compiletest tests
adamgreig Jan 12, 2022
b592db9
Fix cortex-m-rt build that was depending on old cortex-m via out-of-t…
adamgreig Jan 12, 2022
657af97
Move device.x example to workspace root for cortex-m-rt tests.
adamgreig Jan 12, 2022
27434e0
Fix break in compilefail tests on 1.58
adamgreig Jan 21, 2022
a25cb3e
Fix cortex-m-semihosting inline-asm on nightly
adamgreig Jan 21, 2022
391fb7e
Add cortex-m-rt tests to scheduled CI runs
adamgreig Jan 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/bors.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ required_approvals = 1
status = [
"ci-linux (stable)",
"ci-linux (1.40.0)",
"rt-ci-linux (stable)",
"rt-ci-linux (1.40.0)",
"rt-ci-other-os (macOS-latest)",
"rt-ci-other-os (windows-latest)",
"rustfmt",
"clippy",
]
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
branches: [ staging, trying, master ]
pull_request:

name: CI
name: cortex-m CI

jobs:
ci-linux:
Expand All @@ -29,6 +29,6 @@ jobs:
toolchain: ${{ matrix.rust }}
override: true
- name: Run tests
run: cargo test --all
run: cargo test --all --exclude cortex-m-rt

# FIXME: test on macOS and Windows
1 change: 1 addition & 0 deletions .github/workflows/clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ jobs:
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all
45 changes: 45 additions & 0 deletions .github/workflows/cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,48 @@ jobs:
https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

rt-ci-linux:
runs-on: ubuntu-20.04
continue-on-error: ${{ matrix.experimental || false }}
defaults:
run:
working-directory: cortex-m-rt
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install all Rust targets for stable
run: rustup target install --toolchain=stable thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf thumbv8m.base-none-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf
- name: Install qemu and gcc
run: sudo apt-get update && sudo apt-get install qemu-system-arm gcc-arm-none-eabi
- name: Run CI script for x86_64-unknown-linux-gnu under stable
run: TARGET=x86_64-unknown-linux-gnu TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv6m-none-eabi under stable
run: TARGET=thumbv6m-none-eabi TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv7m-none-eabi under stable
run: TARGET=thumbv7m-none-eabi TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv7em-none-eabi under stable
run: TARGET=thumbv7em-none-eabi TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv7em-none-eabihf under stable
run: TARGET=thumbv7em-none-eabihf TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv8m.base-none-eabi under stable
run: TARGET=thumbv8m.base-none-eabi TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv8m.main-none-eabi under stable
run: TARGET=thumbv8m.main-none-eabi TRAVIS_RUST_VERSION=stable bash ci/script.sh
- name: Run CI script for thumbv8m.main-none-eabihf under stable
run: TARGET=thumbv8m.main-none-eabihf TRAVIS_RUST_VERSION=stable bash ci/script.sh
- uses: imjohnbo/issue-bot@v2
if: failure()
with:
title: CI Failure
labels: ci
body: |
Scheduled CI run failed. Details:

https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
87 changes: 87 additions & 0 deletions .github/workflows/rt-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
on:
push:
branches: [ staging, trying, master ]
pull_request:

name: cortex-m-rt CI

jobs:
rt-ci-linux:
runs-on: ubuntu-20.04
continue-on-error: ${{ matrix.experimental || false }}
strategy:
matrix:
# All generated code should be running on stable now
rust: [nightly, stable, 1.40.0]

include:
# Nightly is only for reference and allowed to fail
- rust: nightly
experimental: true
defaults:
run:
working-directory: cortex-m-rt
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Install all Rust targets for ${{ matrix.rust }}
run: rustup target install --toolchain=${{ matrix.rust }} thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf thumbv8m.base-none-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf
- name: Install qemu and gcc
run: sudo apt-get update && sudo apt-get install qemu-system-arm gcc-arm-none-eabi
- name: Run CI script for x86_64-unknown-linux-gnu under ${{ matrix.rust }}
run: TARGET=x86_64-unknown-linux-gnu TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv6m-none-eabi under ${{ matrix.rust }}
run: TARGET=thumbv6m-none-eabi TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv7m-none-eabi under ${{ matrix.rust }}
run: TARGET=thumbv7m-none-eabi TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv7em-none-eabi under ${{ matrix.rust }}
run: TARGET=thumbv7em-none-eabi TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv7em-none-eabihf under ${{ matrix.rust }}
run: TARGET=thumbv7em-none-eabihf TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv8m.base-none-eabi under ${{ matrix.rust }}
run: TARGET=thumbv8m.base-none-eabi TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv8m.main-none-eabi under ${{ matrix.rust }}
run: TARGET=thumbv8m.main-none-eabi TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh
- name: Run CI script for thumbv8m.main-none-eabihf under ${{ matrix.rust }}
run: TARGET=thumbv8m.main-none-eabihf TRAVIS_RUST_VERSION=${{ matrix.rust }} bash ci/script.sh

# On macOS and Windows, we at least make sure that all examples build and link.
rt-ci-other-os:
strategy:
matrix:
os:
- macOS-latest
- windows-latest
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: cortex-m-rt
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install all Rust targets
run: rustup target install thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf thumbv8m.base-none-eabi thumbv8m.main-none-eabi thumbv8m.main-none-eabihf
- name: Build examples for thumbv6m-none-eabi
run: cargo build --target=thumbv6m-none-eabi --examples
- name: Build examples for thumbv7m-none-eabi
run: cargo build --target=thumbv7m-none-eabi --examples
- name: Build examples for thumbv7em-none-eabi
run: cargo build --target=thumbv7em-none-eabi --examples
- name: Build examples for thumbv7em-none-eabihf
run: cargo build --target=thumbv7em-none-eabihf --examples
- name: Build examples for thumbv8m.base-none-eabi
run: cargo build --target=thumbv8m.base-none-eabi --examples
- name: Build examples for thumbv8m.main-none-eabi
run: cargo build --target=thumbv8m.main-none-eabi --examples
- name: Build examples for thumbv8m.main-none-eabihf
run: cargo build --target=thumbv8m.main-none-eabihf --examples
- name: Build crate for host OS
run: cargo build
8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,13 @@ linker-plugin-lto = []
std = []

[workspace]
members = ["xtask", "cortex-m-semihosting", "panic-semihosting", "panic-itm"]
members = [
"xtask",
"cortex-m-rt",
"cortex-m-semihosting",
"panic-semihosting",
"panic-itm"
]

[package.metadata.docs.rs]
targets = [
Expand Down
34 changes: 34 additions & 0 deletions cortex-m-rt/.cargo/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[target.thumbv6m-none-eabi]
runner = "qemu-system-arm -cpu cortex-m0 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -kernel"

[target.thumbv7m-none-eabi]
runner = "qemu-system-arm -cpu cortex-m3 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -kernel"

[target.thumbv7em-none-eabi]
runner = "qemu-system-arm -cpu cortex-m4 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -kernel"

[target.thumbv7em-none-eabihf]
runner = "qemu-system-arm -cpu cortex-m4 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -kernel"

[target.'cfg(all(target_arch = "arm", target_os = "none"))']
# uncomment ONE of these three option to make `cargo run` start a GDB session
# which option to pick depends on your system
# runner = "arm-none-eabi-gdb -q -x openocd.gdb"
# runner = "gdb-multiarch -q -x openocd.gdb"
# runner = "gdb -q -x openocd.gdb"

rustflags = [
# LLD (shipped with the Rust toolchain) is used as the default linker
"-C", "link-arg=-Tlink.x",

# if you run into problems with LLD switch to the GNU linker by commenting out
# this line
# "-C", "linker=arm-none-eabi-ld",

# if you need to link to pre-compiled C libraries provided by a C toolchain
# use GCC as the linker by commenting out both lines above and then
# uncommenting the three lines below
# "-C", "linker=arm-none-eabi-gcc",
# "-C", "link-arg=-Wl,-Tlink.x",
# "-C", "link-arg=-nostartfiles",
]
7 changes: 7 additions & 0 deletions cortex-m-rt/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
**/*.rs.bk
.#*
Cargo.lock
bin/*.after
bin/*.before
bin/*.o
target/
Loading